Está en la página 1de 84

Codesys V3.5.

pbf

Manual de
Prácticas

Introducción

Leonardo
Rodriguez
Utilización Prevista y Convenida

Los procedimientos que se describe en el presente manual están


previstos exclusivamente para fines de formación y perfeccionamiento
profesional en materia de automatización. La entidad a cargo de la
formación y/o los instructores que la imparten deberán velar por que los
aprendices / estudiantes respeten las disposiciones de seguridad que se
describen en los manuales correspondientes.

Festo Didactic excluye cualquier responsabilidad en relación con daños


ocasionados al aprendiz / estudiante, a la entidad u empresa encargada
de impartir la formación y/o a otros terceros por su uso indebido o por
utilización en situaciones que no correspondan estrictamente a la
enseñanza, a menos que Festo Didactic haya ocasionado dichos daños
premeditadamente o por imprudencia o negligencia temeraria.

Datos actualizados en: 06/2013


Autor: Leonardo Rodríguez Ortiz
Gráficas: Festo Didactic Co.
Redacción: Leonardo Rodríguez Ortiz.

Festo Didactic Colombia.


Internet: www.festo-didactic.com
e-mail: Leonardo.rodriguez@co.festo.com

Sin nuestra expresa autorización, queda terminantemente prohibida la


reproducción total o parcial de este documento, así como su uso indebido
y/o su exhibición o comunicación a terceros. De los infractores se exigirá
el correspondiente resarcimiento de daños y perjuicios. Quedan
reservados todos los derechos inherentes, es especial los de patentes, de
modelos registrados y estéticos.
1

Introducción
Los controladores de los módulos de aprendizaje de automatización de
Festo que se encuentran bajo la plataforma CoDeSys de Festo Didactic
fueron concebidos para la utilización en función de diversos niveles de
estudio y requisitos profesionales. Este tipo de plataforma permite un
estudio y perfeccionamiento profesional cercano a la realidad imperante
en diversas plantas de producción. El hardware está conformado por
componentes industriales estructurados según criterios didácticos.

En general, y a través de un uso correcto de los módulos industriales que


acompañan a los controladores lógicos programables, el sistema
completo se constituye como uno apropiado para adquirir las siguientes
cualificaciones profesionales fundamentales:

 Competencia profesional en relaciones humanas.


 Competencia profesional en materias técnicas.
 Competencia profesional en relación con métodos.

Esta cualificación se rige por criterios aplicables en la práctica.


Adicionalmente se aprende a trabajar en equipo, en cooperación con los
demás y se adquieren conocimientos en materia de organización.

Mediante proyectos de estudio para la automatización industrial se


pueden abordar cada una de las siguientes fases:

 Planificación
 Montaje
 Programación
 Puesta en funcionamiento
 Funcionamiento y utilización
 Optimización de parámetros regulables
 Mantenimiento
 Localización de fallos.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


2

Contenidos Didácticos
Los contenidos didácticos están clasificados según los siguientes
sectores:

 Mecánica:
– Construcción mecánica de la estación.
 Técnicas de programación:
– Entender y crear diagramas para programar.
– Definición adecuada de entradas y salidas de proceso.
– Análisis de Sistemas.
 Electrotécnica:
– Cableado correcto de componentes eléctricos.
 Técnica de detectores y sensores:
– Utilización correcta de detectores.
– Medición de magnitudes no eléctricas.
 Puesta en funcionamiento:
– Puesta en funcionamiento de un equipo para enseñanza.
– Puesta en funcionamiento de algoritmos de control basados en
CoDeSys para la solución de problemas específicos.
 Localización de fallos:
– Localización sistemática de fallos de programación, cableado o
montaje.
– Controlar el funcionamiento, efectuar el mantenimiento y la
reparación de equipos controlados por PLC.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


3

Indicaciones Importantes.

Para la utilización segura y exenta de fallos del PLC y de las estaciones o


módulos de enseñanza a éste conectados, es indispensable conocer las
indicaciones y las normas de seguridad básica.

El presente manual (y sus prácticas), no contienen indicaciones de


seguridad relevantes, pues sus contenidos se basan enteramente en
prácticas y ejercicios a nivel de Software, sin embargo, se recomienda en
alto grado el respeto por las reglas y prescripciones de prevención de
accidentes válida en el lugar de la utilización y aquellas relacionadas con
el manejo de los equipos que se desean manejar.

Responsabilidad del Usuario.

El usuario se compromete a permitir el uso de los controladores y de los


elementos didácticos de Festo a este conectados únicamente a personas
que cumplan con las siguientes condiciones:

 Personas que conocen las normas de seguridad en el puesto de


trabajo y de prevención de accidentes, que han sido instruidas en la
utilización de equipo didáctico a cargo y de sus controladores.
 Personas que han leído y entendido el capítulo dedicado al tema de
la seguridad y las advertencias contenidas en manuales del equipo.

Deberá controlarse regularmente si el personal trabaja aplicando los


correspondientes criterios de seguridad.

Responsabilidad de los estudiantes.

Todas las personas a las que se encomendó el trabajo con la estación


modular de producción y con el controlador, deberán comprometerse a lo
siguiente antes de iniciar el trabajo:

 Leer el capítulo dedicado al tema de la seguridad y las advertencias


contenidas en los diferentes manuales.
 Respetar las normas básicas de seguridad en el puesto de trabajo y
de prevención de accidentes.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


4

Riesgos en la utilización de los equipos.

Las estaciones modulares de Producción junto con sus controladores, han


sido concebidas recurriendo a la tecnología más avanzada y respetando
las normas de seguridad técnica. No obstante, es posible que existan
riesgos que pueden poner en peligro la integridad física y la vida del
usuario o de terceras personas, que se produzcan daños en la máquina o
en otros bienes materiales.

Los controladores lógicos Programables, objetos de esta manual


únicamente deberán utilizarse respetando las siguientes condiciones:

 Utilización prevista y convenida.


 Utilización en perfecto y seguro estado técnico.

¡Deberá eliminarse de inmediato cualquier fallo que pueda reducir el


nivel de seguridad en la estación de trabajo!

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


5

Indicaciones de seguridad.

Indicaciones Generales:
 Los aprendices / estudiantes únicamente deberán trabajar con la
estación en presencia y bajo la vigilancia de un instructor.
 Tener debidamente en cuenta las indicaciones incluidas en las hojas de
datos correspondientes a cada uno de los elementos, y en especial,
todas las indicaciones correspondientes a la seguridad.

Electricidad:
 ¡Las conexiones eléctricas sólo deberán realizarse estando
desconectada la corriente eléctrica en el equipo!
 Utilizar únicamente baja tensión de máximo 24 V DC.
 Si se utilizan componentes con conexión de 120 V AC o 230 V AC, las
conexiones únicamente podrá realizarlas la persona debidamente
cualificada.
 Asegurar la conexión a la red eléctrica mediante un interruptor
adecuado para tal fin.

Neumática:
 No superar la presión máxima admisible de 800 kPa (8 Bar).
 Conectar el aire comprimido sólo después de haber conectado los
tubos flexibles y de haberlos asegurado debidamente.
 No retirar los tubos si el sistema se encuentra bajo presión.

Mecánica:
 Efectuar el montaje de todos los componentes de modo fijo y de
acuerdo a las indicaciones del manual.
 Acceder a las partes de la estación únicamente si no está en
funcionamiento.

Motores y Sistemas de posicionamiento:


 Asegurarse de informar cada proceso de encendido o apagado del
sistema a las personas cercanas a la estación o al motor.
 Asegurar que el movimiento de los motores estará libre de
obstáculos o restricciones.
 Asegurar el buen funcionamiento de los sensores utilizados como fin
de carrera antes de realizar pruebas de movimiento.

Técnica de Sensores:
 Asegurar la conexión adecuada de los sensores antes de realizar
pruebas integradas con un sistema de control.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


6

Práctica 1. Qué es CoDeSys?


Objetivos:
 Identificar las principales características de CoDeSys.
 Reconocer los procedimientos que deben seguirse para lograr una
correcta instalación de CoDeSys.
 Identificar los diferentes manuales del tema que soportan el proceso de
aprendizaje de CoDeSys.

¿Qué es CoDeSys?
CoDeSys es una herramienta de desarrollo completa para la creación de
aplicaciones específicas en PLC (CoDeSys significa Controlled
Development System).

Puede entenderse a CoDeSys como una herramienta de software que


pone a disposición del usuario final (el programador del PLC) los
principales componentes de la norma IEC 61131-3. Para lo anterior se
basa en lenguajes de programación avanzada (como Visual C++) para el
uso de entornos amigables de edición y depuración.

Gracias al soporte de la norma IEC 61131-3, CoDeSys, soporta los


diferentes lenguajes de programación y adicionalmente soporta algunas
rutinas en C y programación orientada a objetos. En combinación con un
paquete de soporte (SP por sus siglas en inglés), CoDeSys puede llegar a
soportar diferentes dispositivos y diferentes aplicaciones para la
programación.

¿Por qué CoDeSys?


CoDeSys es desarrollado por la empresa Alemana 3S Smart Software
Solutions Gmbh; actualmente esta empresa una de las más importantes
desarrolladoras de software en la industria de automatización Europea.
Así mismo CoDeSys es líder en el desarrollo de sistemas de programación
independiente basado en la norma IEC 61131-3 y que funcionan bajo
Windows.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


7

A partir de 2006 Festo inicia un trabajo conjunto con 3S, con el ánimo de
crear una línea completa de controladores lógicos programables bajo las
directivas de la norma estándar internacional, los primeros productos
nacidos de esta “alianza” fueron los controladores tipo CPX-CEC, a ello les
siguieron nuevas líneas de productos que incluyen nuevas categorías de
PLC compactos, pantallas, entre otros.

El hecho de pertenecer a este Estándar, genera ciertas ventajas entre las


que se pueden mencionar:

 Reducción en tiempos de entrenamiento, depuración,


mantenimiento y consulta, en el personal encargado de las
labores de programación.
 Reducción del tiempo en el desarrollo de aplicaciones de software
gracias a las posibilidades de re-utilización de código entre
diferentes controladores.
 Técnicas de programación fáciles de trasladar a otros
controladores (y fáciles de importar).
 Combinación armoniosa de diferentes componentes y dispositivos
provenientes de distintos lugares, compañías, países o proyectos.

¿Qué define el Estándar 61131-3?

En una forma bastante sencilla, se puede decir que la norma, establece un


marco específico y general para:
 La estructura de un proyecto desarrollado para un controlador en
específico.
 La sintaxis y la semántica que debe utilizarse para el desarrollo de
programas en 5 lenguajes de programación fundamentales:
Listados de Instrucciones, Diagrama de Bloques de Funciones,
Diagrama de Escalera, Texto Estructurado, y Esquema Secuencial
de Funciones.
 Definición de los diferentes tipos de programas y bloques de
funciones que pueden utilizarse.
 Sintaxis y procedimientos específicos para la declaración de
datos.

CoDeSys Provided By Festo.

CoDeSys Provided By Festo, ofrece adicionalmente una interfaz adecuada


con las siguientes funciones:

 Configuración y establecimiento de parámetros del dispositivos


Festo con CoDeSys embebido.
 Librería integrada para el manejo de módulos específicos.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


8

 Administrador de librerías para la integración de librerías de


módulos adicionales o nuevos.
 Modo de simulación que permite la prueba de programas en el PC,
sin necesidad de usar PLC.
 Visualización con el editor integrado para tal fin.
 Documentación y ayuda en línea.
 Herramientas para depuración: Prueba de la secuencia del
programa, observar y cambiar variables, búsqueda de errores y
otras.

Para utilizar un controlador (target) bajo CoDeSys provided by Festo,


se requiere un paquete de soporte para controlador específico (Target
Support Package). Esto permite acceder a las funciones del sistema
del controlador y contiene la correspondiente información en forma de
“ayuda en línea”. Este paquete de soporte permite o impide la
utilización de ciertas funciones de acuerdo al controlador que se
maneje en el momento.

Al instalar la versión de CoDeSys incluida la entrega de un controlador


Festo, no será necesaria la descarga de un Paquete de soporte, sin
embargo y si se requiere la instalación del mismo, se recomienda la
lectura del aparte de “Package Manager” contenido dentro de la
ayuda en línea de Codesys 3.5, (se encuentra en el capítulo de
“Concepts and Base Components”).

Requerimientos del Sistema.

Previa a la instalación de CoDeSys, se recomienda la verificación de los


requerimientos del sistema:
– Sistema Operativo Windows XP, Windows Vista, Windows 7.
– Memoria RAM 1024 MB.
– Espacio disponible en disco 1 GB.
– Procesador Pentium V, Centrino ≥3,0 GHz. Pentium M ≥1,5 GHz.

Instalación
Para una correcta instalación de CoDeSys provided by Festo, se debe
seguir este procedimiento:

1. Buscar y ejecutar el archivo “Setup_CoDeSysV3.exe”, en la


carpeta “CoDeSys pbf Festo”; del Cederrón de la entrega.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


9

2. Seguir las instrucciones, leer el acuerdo de licencia, escoger el


destino de la instalación y seleccionar los componentes a instalar

3. Culmine el proceso de instalación siguiendo las instrucciones dadas


por el ayudante de instalación.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


10

Familiarizándose Con el Entorno CoDeSys.

Con el objetivo de conocer el entorno CoDeSys, se iniciará el programa


desde el menú de inicio en Windows siguiendo la ruta:

Inicio–Todos los Programas-- Festo Software—CoDeSys V3–


CoDeSys V3.5 pbF.
La siguiente ventana aparecerá:

La siguiente figura muestra los principales componentes del proyecto


recientemente abierto.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


11

La barra de menús: Contiene las herramientas que comúnmente se


utilizan para la creación de un proyecto en CoDeSys, como las de
ejecución, copiar, pegar, zoom, buscar y otras. Estas herramientas se
mantienen abiertas mientras exista un proyecto abierto.

Herramientas Especiales: (ver título de Herramientas en la parte derecha


de la ventana) Son herramientas específicas que se utilizan para la
creación de un programa o función, en un determinado lenguaje de
programación, estas herramientas cambian cuando se seleccionan
ventanas con lenguaje de programación diferente; para observar lo
anterior seleccione una de las ventanas de “editor de programa” mientras
que observa los íconos en esta barra de herramientas.

Editor de programa: Las Ventanas de editor de programa son aquellas


que permiten crear un programa o función como tal, siguiendo los
lineamientos y reglas de cada uno de los lenguajes de programación que
CoDeSys abarca.

Ventana de Visualización: Esta ventana ofrece la posibilidad de crear un


entorno gráfico que simula las acciones que se llevan a cabo en el
programa, aunque se observará con detalle más adelante, basta decir por
el momento que se pueden realizar labores de simulación bastante
sencillas ligando elementos gráficos con variables específicas utilizadas
en los programas creados para el PLC.

Ventana de Mensajes: Allí se podrá encontrar información referente a los


procesos de compilación y depuración que se realicen en el software, allí
se puede realizar un seguimiento adecuado de los errores, una
identificación de problemas de librerías u otros por el estilo.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


12

Barra de Estado: Resume en gran parte el estado actual de la ejecución


del programa en el software, así entonces, un rápido vistazo a las mismas
permitirá si el sistema se encuentra en línea, en modo simulación, en
error, etc.

Organizador de Objetos: Este componente del software resume en gran


parte la estructura que debe tener un proyecto como tal, siendo esta la
que se presenta en la siguiente figura:

Proyecto

POU‘s Tipos de HMI Recursos


Datos

Variables
Declaración Globales

Código Librerías

Aunque es necesario aclarar que es posible contar con diversos


dispositivos a nivel de software y diversos programas que generalmente
no siguen la estructura jerárquica anteriormente mostrada y cuya posición
en el proyecto depende casi enteramente de las necesidades de
programación.

Es probable que no todos los recursos descritos con anterioridad


aparezcan al iniciar un proyecto, posteriormente se analizarán en detalle
cada uno de ellos y se ilustrarán las maneras como se puede trabajar con
algunos de ellos.

Un ejemplo de la manera como se estructuran algunos de los elementos


que hacen parte del proyecto dentro del software se puede observar en la
siguiente figura, en la que se hace énfasis en el lugar en el que se
encuentran ubicados los Unidades de programa (POU) y los recursos de
acceso al controlador en la tabla de dispositivos, mientras que se
muestran también dos pestañas de organización una de datos y
visualización que se crean automáticamente cada vez que se requiere.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


13

Los componentes de un proyecto en CoDeSys.

Un proyecto contiene todos los objetos necesarios para la descarga de un


programa de PLC, sus componentes principales son aquellos descritos en
la parte anterior, en el “organizador de objetos”. Se puede encontrar una
breve descripción de cada uno de ellos a continuación:

POU (Program Organization Unit).


Se puede considerar como POU a toda función, bloque de funciones, y
programas que pueden realizarse e implementarse a través de acciones.
Cada POU consiste de una parte declarativa y un cuerpo, siendo este
cuerpo obligatoriamente escrito en alguno de los lenguajes de
programación que soporta CoDeSys.

Tipos de Datos.
Se refiere precisamente a los tipos de datos que se pueden manejar en un
proyecto como tal. Aparte de los estándares, el usuario puede definir sus
propios datos.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


14

NOTACIÓN RANGO EJEMPLO


BOOL 0, 1 FALSE, TRUE, 0, 1

SINT, INT, DINT -128 .. 127, -32768 .. 32767, 0, 24453


-2147483648 .. 2147483647 -38099887

USINT, UINT, UDINT 0 .. 255, 0 .. 65535, 200, 47453


0 .. 4294967295 138099887

BYTE, WORD, DWORD 0 .. 255, 0 .. 65535, 8450


0 .. 4294967295 16#2102

REAL, LREAL -1.2x 10-38 .. 3.4x 1038 1.34996


-2.3x 10-308 .. 1.7x 10308 2.8377E-15

TIME, TOD, 0 ms .. 1193h2m47s295ms T#1d8h12m8s125ms


00:00:00 .. 23:59:59 TOD#12:34:17
DATE, DT 01.01.1970 until approx. D#2001-03-15
06.02.2106 DT#2001-03-15-12:17:03

STRING 1 .. 255 chars `Emergency Stop`

HMI.
CoDeSys contiene elementos de visualización que permiten mostrar las
variables involucradas en el proceso. Se pueden graficar diversos
elementos fuera de línea, o se pueden hacer responsivos a los cambios de
variables determinadas cuando se encuentra en línea con un controlador.

Recursos.
Se requieren los recursos para la configuración y organización adecuada
de un proyecto, así como para la detección de cambios en las variables:

 Variables globales que puedan ser usadas a lo largo del proyecto.


 Gestor de Librerías para adicionar librerías al proyecto
Configuración de alarmas para el manejo de las mismas en el
proyecto.
 Configurador de tareas, para guiar a los programas a través de
tareas.

Ejercicios Adicionales:

1. Realice un resumen acerca de las principales características de


CoDeSys Provided By Festo.
2. Realice un resumen acerca de los componentes de un proyecto
realizado en CoDeSys.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


15

Práctica 2. Los Lenguajes de Programación


Objetivos.
 Reconocer los distintos lenguajes de programación disponibles en
CoDeSys provided by Festo.
 Identificar las principales diferencias y similitudes entre estos lenguajes.
 Reconocer posibles ventajas y desventajas de cada uno de ellos que
puedan ser aprovechadas de manera adecuada en la realización de
aplicaciones.

Los lenguajes de Programación.

Como se ha mencionado con anterioridad CoDeSys soporta todos los


lenguajes de programación que se describen en la siguiente tabla.

Lenguaje de
Tipo Descripción básica
programación
Lista de Lenguaje de El listado de instrucciones puede
instrucciones (IL). programación considerarse como una seguidilla de
basado en instrucciones que contienen operandos
texto. para describir el proceso del PLC.
Texto Estructurado El texto estructurado es el más
(ST). parecido a los lenguajes utilizados en
un PC, así como PASCAL y C. Consiste
en una serie de declaraciones que
pueden ejecutarse de acuerdo a
condiciones o a ciclos.
Gráfico de funciones Lenguaje de Permite la programación de tipo
Secuencial (SFC). programación secuencial, por ende es adecuado para
gráfico la estructuración de los proyectos. Con
transiciones y divisiones este lenguaje
permite la ejecución certera de pasos
de acuerdo a condiciones
determinadas.
Diagrama de bloque Trabaja con una serie de funciones
de Funciones (FUB). encadenadas en una especie de red
que realiza una función lógica o
matemática, incluye a su vez funciones
de salto, temporización y otras.
Diagrama de Basado en FUB, este lenguaje permite
Funciones Continuo una ubicación y retroalimentación más
(CFC). sencilla de los elementos a utilizar en la
programación.
Diagrama en Originado desde la lógica cableada, y
Escalera (LDR). por ende similar en desarrollo al
proceso para creación de circuitos
eléctricos lógicos de control.

Se debe anotar que el lenguaje CFC puede considerarse como una


extensión de los lenguajes de la norma aunque formalmente no pertenece
a esta.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


16

Generalidades para los lenguajes de programación.

CoDeSys soporta todos los operandos reconocidos por la norma IEC,


además de otras funciones contenidas en la librería Estándar (Standard
Lybrary), estos comandos son reconocidos de manera implícita a través
del proyecto que se desea desarrollar.

Estas funciones generales se encuentran agrupadas en los siguientes


conjuntos:

– Operando de tipo Aritmético: Tales como sumar, restar, dividir,


multiplicar, entre otros.
– Operando para el manejo de cadenas de bit: Tales como operaciones
lógicas AND, OR, XNOR, XOR y NOT.
– Operando para cambio y movimientos de Bit: Encontramos aquí
herramientas para la rotación de bits, hacia derecha o izquierda, entre
otros.
– Operando para Selección: Se utilizan para el trabajo con un grupo
determinado de datos, y así calcular aspectos como el máximo valor, el
mínimo, realizar selecciones, entre otras.
– Operando para comparación: Son aquellos utilizados para realizar una
comparación entre dos o más elementos, aquí encontramos entonces,
mayor que, menor que, mayor, menor, igual, entre otras.
– Operando para realización de llamados: De funciones, de bloques de
funciones o de programas.
– Elementos para la conversión del tipo de datos: Utilizados
simplemente para cambiar el tipo de un dato específico a otro
diferente para efectos de manipulación adecuada dentro de un
programa.
– Operando Numérico: Son utilizados principalmente para el cálculo de
operaciones matemáticas específicas y avanzadas, tales como la raíz
cuadrada, el valor absoluto, las funciones trigonométricas y otras.

Es importante recordar que, si bien las funciones anteriormente descritas


son las incluidas por defecto en la norma, CoDeSys puede soportar
diferentes tipos de librerías que agregan funciones especializadas para
determinadas labores y que obviamente están por fuera de la lista
anterior.

Generalidades del Listado de Instrucciones (Instruction List IL).

Este es un lenguaje de programación textual similar a Assembler. Puede


considerarse básicamente como una seguidilla completa de instrucciones
que se ejecutan una después de la otra de acuerdo al orden en el que
figuran en el programa.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


17

Debido a que se inicia siempre con una instrucción, se requiere un


espacio de memoria para el almacenamiento temporal de los resultados y
operaciones que se llevan a cabo, es decir, las operaciones se llevan a
cabo a través de un acumulador.

La lista de instrucciones es fácil de entender cuando el programa es


pequeño, pero se pierde esta característica cuando se requieren
procedimientos complejos dentro del proyecto, principalmente debido al
hecho de que este lenguaje no soporta operandos para la programación
estructurada.

Considérese entonces el siguiente ejemplo:

LD CASA
ADD 3
ST RESULTADO

LD RESULTADO
EQ 5
JMPC Inicio

Así, en orden descendente las funciones realizadas fueron:

Cargar la variable CASA en el acumulador


Sumar el valor de tres a lo que se encuentra en el acumulador
Guardar el resultado en la variable RESULTADO

Cargar la variable RESULTADO en el acumulador.


Comparar si el valor cargado es igual a cinco
Si el resultado de la comparación es cierto saltar a “inicio”

Generalidades del Texto Estructurado (Structured Text ST).

Lenguaje Textual especializado de alto nivel; incorpora rutinas y


componentes de programación similares a los utilizados en PASCAL.
Las características anteriores le confieren a este lenguaje las mejores
herramientas para la programación de ejecuciones basadas en
condiciones específicas, y para la realización de ciclos específicos como
IF, WHILE, FOR, entre otros.

A pesar de sus características, la programación en este lenguaje puede


llegar a ser complicada por los cuidados que deben tenerse a la hora de
sintaxis y la estructura del programa, además existen funciones
específicas como las de temporizado y otras en las que el texto
estructurado no es muy fuerte.

Se pueden observar a continuación algunos ejemplos de utilización de


ciclos con sus respectivas explicaciones:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


18

WHILE contador <> 0 DO


Var1 := Var1*2;
Contador := Contador-1;
END_WHILE

Mientras el contador sea diferente de cero, se duplicará el valor contenido


en Var1, se decrementará el contador y se repetirá el proceso.

IF temp < 17
THEN Calentador := TRUE;
ELSE Calentador := FALSE;
END_IF;

Si la temperatura es menor que 17 entonces se enciende el Calentador, de


lo contrario, se Apaga.

Diagrama de Bloques de Funciones (Function Block Diagram FBD).

Lenguaje de programación gráfico que permite la ejecución de “redes” en


forma paralela. Cada red o rama del programa se compone de bloques,
cada uno de ellos representa una función en específico que permiten
realizar una secuencia en el PLC.

La realización de secuencias, es una tarea compleja si se utiliza este


lenguaje de programación, debido principalmente a la imposibilidad de
realizar conexiones de retroalimentación entre los bloques, y por las
pocas opciones para realizar una programación estructurada.

Esquema Continuo de Funciones (Continuos Function Chart CFC).

Este lenguaje de programación retoma la capacidad gráfica del FBD para


la representación de funciones mediante bloques, pero en lugar de
trabajarlo de manera paralela, utiliza el emplazamiento libre de elementos
incorporando así una secuencialidad más clara y la posibilidad de
retroalimentación.
Las funciones de temporizado y algunas secuencias se hacen sencillas con
este lenguaje, sin embargo, funciones de asignación de valores y otras de
comparación pueden complicarse en algunos proyectos.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


19

Se presenta a continuación un ejemplo de un anidamiento de


temporizadores, utilizando este lenguaje de programación.

Diagrama de Escalera (Ladder Diagram LD).

Lenguaje de programación gráfico que se asemeja en muchos aspectos al


desarrollo de secuencias en lógica cableada, cada una de las partes del
programa se representa en una rama compuesta de contactos y bobinas.
Lo anterior hace al lenguaje Escalera apto para el manejo de variables de
tipo booleano, para el manejo y/o control de otros programas dentro del
proyecto de CoDeSys.

Se presenta a continuación un sistema de control para el encendido y


apagado de un motor a través de diferentes entradas.

Diagrama Secuencial de Funciones (Sequential Function Chart SFC).

Lenguaje Gráfico orientado, que hace posible la descripción del orden


cronológico de los acontecimientos que se llevan a cabo en el programa.
Para lograr lo anterior el lenguaje se vale de elementos de acciones
definidas dentro de pasos, involucrados en una secuencia a través de
transiciones; tal y como se explica en la norma IEC 60848 que define los
lineamientos de la metodología GRAFCET.

SFC es el lenguaje ideal para dar estructura a un proyecto en específico,


como las acciones se pueden escribir en los pasos utilizando cualquiera
de los lenguajes anteriormente descritos, es entonces posible combinar
diversas alternativas en búsqueda de una solución adecuada.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


20

Ejercicios Adicionales:
1. Para una mejor comprensión acerca de los operadores disponibles en
CoDeSys, realice una lectura del manual de usuario de CoDeSys
Versión 3.5 (ayuda en línea del software).
2. Para una mejor comprensión acerca de los lenguajes de programación
soportados por CoDeSys, se recomienda la lectura del manual de
usuario en el capítulo de “Editors”, buscar los editores de CFC,
FBD/IL/LD, SFC y ST.
3. Realice un cuadro comparativo de los lenguajes de programación
soportados por CoDeSys haciendo énfasis en sus principales ventajas
y desventajas.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


21

Práctica 3. Ejercicio LADDER LD


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:
 Comprender el procedimiento para la creación de un proyecto
para simulación en CoDeSys v3.5 provided by Festo.
 Realizar proyectos básicos en diagrama de escalera (Ladder),
insertando e interconectado elementos propios de este lenguaje
de programación.
 Comprender el procedimiento básico para la realización de
simulación para la puesta a punto de programas realizados en
diferentes lenguajes.
 Identificar principales ventajas y desventajas de este lenguaje de
programación.
 Comprender el funcionamiento de los temporizadores TON, TOFF y
TP.

Explicación del Ejercicio.

Con el ánimo de explorar la funcionalidad del diagrama de contactos, se


creará una luz de destello controlada por una entrada que simulará un
pulsador de inicio al cual llamaremos Start. Para lo anterior será
necesario el uso de funciones específicas de temporizado y de otros
elementos que se explicarán en detalle a medida que se avanza en la
creación de una solución.

Creación de un proyecto para simulación en CoDeSys.

Una vez instalado el software siguiendo las indicaciones de prácticas


anteriores, lo ejecutamos siguiendo:

Inicio—Todos los Programas –Festo Software—CoDeSys V3-CoDeSys V3.5


pbF.

Una vez allí crearemos un nuevo proyecto, dirigiéndonos a la barra de


menús para ejecutar Archivo—Nuevo Proyecto.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


22

Esto nos remite a una ventana donde podremos seleccionar el nombre y la


ubicación de destino del proyecto.

 Seleccione Proyecto standard.


 Asígnele el nombre al proyecto.
 Luego presione Aceptar.

Ahora una nueva ventana nos pedirá que seleccionemos el tipo de PLC y
lenguaje de programación que se desea trabajar (LADDER o LD en este
ejercicio).

 Seleccione el tipo de PLC. (Codesys Control Win V3)


 Seleccione el lenguaje para PLC_PRG (Diagrama de contactos).
Luego presione Aceptar (Observar gráfica siguiente)

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


23

Recuerde que: POU significa Program Organization Unit y este puede ser
de tres tipos: un programa, una función o un bloque de ellas. CoDeSys
nombra por defecto PLC_PRG al primer programa creado, debido a que
este es el único programa que se ejecuta al momento de iniciar un
proyecto en el controlador, entonces, dejaremos este nombre SIN
CAMBIOS para poder probar nuestros avances. Más adelante se
explorará la introducción de diferentes programas en la creación de
proyectos más avanzados.

Una nueva ventana aparecerá con el entorno de programación


seleccionado, en este caso las herramientas para la lógica de contactos, a
su ves en la parte inferior izquierda aparecen dos opciones para visualizar
la estructura del proyecto, seleccionamos la opción Dispositivos para
poder encontrar el archivo de programación.

Nótense dos cosas: primera, que la barra de herramientas especiales en el


menú superior contiene íconos específicos para este lenguaje, y segunda,

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


24

la ventana de programación se encuentra dividida en dos partes una


superior para la definición de variables utilizadas en el programa y la
inferior para la creación del programa como tal (sin importar el lenguaje
de programación que se seleccione, estas dos situaciones siempre se
presentarán).

Finalmente, se le indicará al software que el proyecto tendrá únicamente


objetivos de simulación, seleccionando de la barra de herramientas la
opción En línea y activando la opción Simulación. (Observar gráfica
siguiente)

En línea—Simulación.

Creación del Programa Solución en LADDER.

Para familiarizarse con la manera como se introducen comandos,


funciones y demás, se recomienda la lectura de la ayuda de CoDeSys.
Conceptos y componentes básicos—Lenguajes de Programación
Soportados—Editor LD.

El Lenguaje de programación LADDER o de diagrama de contactos, debe


ser analizado como un circuito basado en lógica de cableado que ha sido
creado con el ánimo de resolver un problema en específico. Es así como
se tendrán las entradas al sistema desde el lado izquierdo, y las salidas
del mismo al lado derecho. Cada entrada suele representarse como un
contacto normalmente abierto o cerrado, y cada salida se suele
representar con un símbolo de bobina cuya activación o desactivación
dependen directamente del estado de los elementos a ella conectados.

Ahora, iniciaremos por la creación de un contacto al que llamaremos


“start”, para ello diríjase a la primera línea del programa haga clic derecho
y seleccione la opción “Contact”, o si lo desea haga clic en la línea del
programa y luego clic sobre el ícono correspondiente a un nuevo contacto
en la barra de herramientas especiales. Su ventana debe lucir como a
continuación:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


25

Los signos de interrogación (???) sobre el contacto creado indican que no


se ha introducido la variable que se desea manejar, para hacerlo, haga clic
sobre este símbolo y allí escriba Start u otro nombre con el que quiera
designar su contacto y presione Enter. Al momento de hacerlo, una
ventana de definición de variables aparecerá automáticamente.

Entonces, cada vez que se ingrese una variable desconocida CoDeSys


desplegará este asistente para ayudar con la configuración, allí
encontramos tres aspectos fundamentales:

Declaración de Variables.
1. Visibilidad: Se define si esta será una variable de entrada
(VAR_INPUT), una variable de salida (VAR_OUTPUT), o una variable
para uso interno y exclusivo de este programa (VAR). Cabe anotar que

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


26

las variables de entrada y de salida serán aquellas que le permitan a


un programa en específico interactuar con otros programas o bloques
de funciones.
2. Nombre: El nombre que queremos asignar a la variable.
3. Tipo de Dato: Que corresponde al tipo de dato que se maneja INT,
BOOL, REAL, TIME, específicos de alguna función u otros (ver ayuda
en el manual CoDeSys v.3).

Recuerde que: Cada vez que se define una variable a través del asistente,
el código correspondiente aparecerá en la parte superior de la ventana de
programación, así que si se desea realizar alguna corrección, supresión, o
adición, esta puede hacerse de manera manual allí.

Para el caso de nuestro pulsador “Start” tenemos que será una variable
de entrada de tipo Booleano (VAR_INPUT, BOOL). Como este pulsador
controlará un temporizador, se debe buscar entonces la función de tiempo
adecuada para la inserción, se remitirá a la barra de herramientas opción
ayuda se selecciona Contenido y el programa cargara las ayudas de todos
los temas, diríjase a Bibliotecas/Bibliotecas estándar/Timer. Donde podrá
encontrar detalles acerca del funcionamiento de los mismos.

Modos de visualización de variables

En CoDeSys las variables se pueden visualizar de dos formas:


1. Textual: Las variables se muestran en forma textual

2. Tabular: Las variables se muestran en forma de tabla

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


27

Inserción de temporizadores.

En CoDeSys los temporizadores se consideran funciones especiales que


deben ingresarse de manera especial haciendo clic en el ícono
correspondiente en la barra de herramientas especiales.

En donde se adicionara un bloque en blanco, en el cual se escribirá que es


de tipo TON dando clic en los signos de interrogación en la parte interna
del bloque como se muestra en la imagen.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


28

Aparece un Tipo de temporizador tipo TON, con parámetros por definir,


uno de ellos el nombre (en la parte superior de la función), y el otro el
valor a temporizar (cerca al terminar PT).

Recuerde que: Siempre que se inserte una función especial debe


asignársele un nombre para su uso dentro del programa, al ser
reconocido como Variable el tipo de la misma debe Coincidir con el
nombre de la función, así por ejemplo, al asignar el valor de “tiempo” a la
función recientemente insertada, la ventana de declaración de variables
debe llenarse como se sugiere a continuación:

Ahora, la terminal PT, recibe datos en el formato de tiempo, estos pueden


ingresarse siguiendo las indicaciones para variables de este tipo, así si se
desea tener un tiempo de 4 minutos, 5 segundos, y 300 milisegundos se
escribe: T#4m5s300ms.

En nuestro caso se probará el temporizador con 3 segundos, haciendo:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


29

Para completar nuestra prueba, se requiere una salida (bobina) del


temporizador que se conecta en la terminal Q, para lo anterior se puede
hacer clic derecho en la rama correspondiente y seleccionar la opción
“Insertar Bobina” o hacer uso del ícono para tal fil.

A la bobina creada se le da el nombre de LUZ, y se define como una


VAR_OUTPUT de tipo BOOL, siguiendo los procedimientos anteriormente
mostrados, la ventana debe lucir como a continuación:

Si se desea conocer el tiempo actual en el que se encuentra el contador se


asigna una variable a la salida ET, si no es necesario conocer este tiempo
se debe eliminar los símbolos de interrogación para que no generen error
al momento de compilar.

Procedimiento para la Depuración y Simulación de Programas.

Una vez concluido el procedimiento anterior, Grabe sus progresos


seleccionado una ubicación y un nombre apropiados.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


30

Ahora, realizaremos una compilación de los componentes de nuestro


proyecto ejecutando en la barra de menús Compilar—Compilar, o
simplemente presionando la tecla F11.

Como resultado de este proceso, la ventana de en la parte inferior deberá


mostrar cero errores y cero advertencias.

Recuerde que: En caso de que su proyecto presente algún error o errores,


estos se presentarán en la lista con un color rojo, para corregirlos, busque
siempre el primero en la lista haga doble clic sobre el error e
inmediatamente será remitido al punto donde se encuentra el problema,
trate de corregirlo y repita el procedimiento de compilación, en búsqueda
de los cero errores y cero advertencias; en caso de una nueva falla…
…corrija de nuevo.
Sólo con un proceso de compilación exitoso se puede proceder a una
simulación o a una descarga.

Para simular primero se debe realizar una conexión con el PLC virtual,
para ello ejecuta en el menú de herramientas. En línea—Iniciar la Sesión,
o simplemente presione Alt+F8.

Cuando se inicia sesión por primera ves el sistema arroja un mensaje de


advertencia el cual solicita autorización para crear el archivo de enlace, se
da clic en Si tal como se observa en la siguiente imagen.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


31

Al hacer lo anterior, la pantalla de programación cambia inmediatamente


para mostrar los elementos que se encuentran activos en el momento, por
otra parte, la declaración de variables muestra el actual estado de las
variables asociadas con nuestro proyecto.

Nótese además que la barra de estado en la parte inferior cambia para


mostrar que el sistema se encuentra en línea, y en modo simulación.

Una vez conectados con el PLC, debemos iniciar la ejecución del programa
ejecutando: Depuración—Inicio, o presionando la tecla F5.

Ahora, el programa se encuentra listo para ejecutar los cambios en las


variables que se deseen verificar, en nuestro caso, el sistema iniciará
cuando la variable “start” pase de FALSE a TRUE, para simular lo anterior,
se hace doble clic sobre la variable “start” obteniendo lo siguiente:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


32

Nótese que a pesar de que se han cambiado los valores, no se producen


cambios en el programa, esto se debe a que el software está esperando a
que se realice una labor de “Escritura de valores”, para ello haga:

“Depuración—Escribir Valores”, presione Ctrl + F7 o busque el icono en la


Barra de Herramientas.

Al terminar, lo anterior la variable START cambiará a TRUE, iniciando así la


ejecución del proceso.

Si se quiere cambiar de nuevo el valor de la variable Start, se debe repetir


el proceso de cambio y de escritura de valores explicado anteriormente.

Para salir del modo de simulación ejecute: Depuración—Parada, o


presione Mayús.+F8 o busque el icono en la Barra de Herramientas.

Para cambiar las propiedades o los nombres iniciales de las variables se


debe Salir de la sesión activa bien sea por la barra de herramientas opción
En Línea y dar clic en Salir o presionando la combinación Crtl+F8.

Explorando los diversos Tipos de Temporizadores.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


33

Una vez analizados los resultados obtenidos de la simulación con el


temporizador TON, se estudiará el funcionamiento de los temporizadores
TOF y TP.

Haciendo clic en los nombres correspondientes se realizarán los


siguientes cambios de manera manual:

Completado el proceso anterior, compile y simule su programa.


Analizados los resultados, proceda a realizar las pruebas con el
temporizador tipo TP.

Compilar, simular y analizar los resultados.

Control de una luz de Destello.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


34

Aunque existen muchas maneras de controla una luz de destello a través


de un pulsador de inicio, se explorará en este momento la siguiente
solución:

Para su implementación se deben tener en cuenta dos cosas:

1. Aparece en la solución una variable “ayuda” que se utiliza para lograr


una unión adecuada de los temporizadores de encendido y apagado.
Como esta variable no representa entrada o salida del programa,
entonces se define como clase “VAR” de tipo “BOOL”.
2. Nótese que se ha utilizado un contacto denominado “tiempo.Q”. Esta
es precisamente una de las ventajas de CoDeSys, la posibilidad de
utilización de objetos y sus propiedades, así entonces, debido a que
se definió la variable “Tiempo” como una de tipo “TON”, entonces
“tiempo” contiene dentro de sí todos los elementos de un
temporizador con retardo a la conexión, como lo son: su valor a
temporizar PT, su valor actual ET, su entrada IN, y su salida Q. Para
acceder a ellos solo es necesario dar el nombre de la variable seguido
de un punto, y allí aparecerán todas las variables que pueden
trabajarse.

Realice el montaje del ejercicio, compile, simule y analice sus resultados.

Ejercicios Adicionales.

1. Modifique el ejercicio de control de la luz de destello, para lograr el mismo


resultado pero utilizando temporizadores con retardo a la desconexión
TOF.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


35

2. Implemente un pulsador de STOP, que permita detener la secuencia de


destello en cualquier momento, para ello puede valerse de la propiedad
de encender y apagar bobinas que aparece en las herramientas
especiales.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


36

Práctica 4. Ejercicio Lista de Instrucciones IL


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:

 Realizar proyectos básicos en Lista de instrucciones (IL)


escribiendo el código propio de este lenguaje de programación.
 Identificar principales ventajas y desventajas de este lenguaje de
programación.
 Realizar aplicaciones de conteo sencillas, utilizando funciones de
adición, y saltos.
 Comprender la importancia del asistente para entradas (input
Asistant).

Explicación del Ejercicio.

En esta oportunidad se utilizarán funciones de tipo matemático para


contar el número de veces que una entrada cambia de FALSE a TRUE,
mientras que el sistema se encuentre contando una salida se mantendrá
encendida. Una segunda entrada servirá para apagar la salida indicadora
y para reiniciar el proceso de conteo.
Durante el proceso de realización de este ejercicio se analizarán algunos
referentes a la ejecución de tareas en lista de instrucciones, con el ánimo
de ilustrar formas en las que se pueden resolver diferentes ejercicios en
este lenguaje de programación.

Creación del Programa Solución en IL.

Antes de comenzar a realizar algún avance respecto a la creación del


programa es necesario tener en cuenta que:

1. Toda línea de código en la lista de instrucciones debe comenzar con


una instrucción específica.
2. En muchos sentidos la programación en lista de instrucciones se
facilita si se piensa en la similitud de cada línea creada con su
contraparte en Ladder.
3. El orden en la ejecución en lista de instrucciones (de arriba hacia
abajo), facilita la creación de pasos que permiten omitir ciertas partes
de código.
4. Para una mayor comprensión de algunos de los aspectos que se
explicarán a continuación, se recomienda la lectura completa (Editor
Lista de Instrucciones), del manual de usuario de CoDeSysy v3
provided by festo.

Ahora, y siguiendo el procedimiento para la creación de proyectos se debe


llegar hasta la ventana de selección de lenguaje de programación, donde
se escogerá, por supuesto, lista de instrucciones IL.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


37

El Asistente de Entradas (Input Asistant).

En este lenguaje en particular, las instrucciones juegan un papel bastante


importante, y debido a la naturaleza escrita del mismo, la sintaxis puede
ser un grave problema en ocasiones. Con el ánimo de dar una salida a este
inconveniente existe en CoDeSys el “Input Asistant” o asistente de entrada
(disponible para otros lenguajes aparte de IL). Para acceder primero se
debe cambiar la visualización de variables a forma textual, luego se hace
clic derecho en algún espacio en el lugar donde están las variables y se
elige la opción adecuada, o simplemente presionando la tecla F2.

Allí podrán encontrarse todas las funciones disponibles en el estándar y


otras adicionales propias de las librerías disponibles en la versión de
CoDeSys que se trabaje en el momento (para mayor información favor
remitirse a los apéndices A y D del manual de usuario de CoDeSys).

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


38

Dejando de lado el asistente para la entrada de datos, comenzaremos por


la implementación de un ejercicio sencillo: el encendido y el apagado de
una Luz, utilizando una entrada Start y otro Stop. El diagrama Ladder
equivalente es el siguiente:

Tratando de explicar cada una de las ramas del anterior diagrama,


podríamos decir lo siguiente:
1. Se carga el valor de START para encender la salida LUZ.
2. Se carga el valor de STOP para apagar la salida LUZ.

Esta explicación puede traducirse fácilmente si se tiene en cuenta que:


 LD es la instrucción para cargar un valor en el acumulador.
 S es la instrucción para encender una determinada salida.
 R es la instrucción para apagar una determinada salida.
 START es una variable de entrada de tipo booleano (VAR_INPUT,
BOOL).
 STOP es una variable de entrada de tipo booleano (VAR_INPUT,
BOOL).
 LUZ es una variable de salida de tipo booleano (VAR_OUTPUT,
BOOL).

Pasamos a la ventana de programación de lista de instrucciones para


escribir nuestros progresos:

Y siguiendo los procedimientos vistos con anterioridad se compila, se


simula y se analizan resultados.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


39

En el lenguaje de Lista de Instrucciones hay que diferenciar entre una


línea nueva y un segmento nuevo. Las líneas se agregan con Crtl+Enter y
sirven para escribir las instrucciones antes de un salto. Los segmentos
diferencian los saltos y partes separadas del código, estos segmentos
se agregan con Crtl+i

Variables de tipo Entero.

Para trabajar con un contador, se requiere definir una variable que admita
incrementos y operaciones de tipo matemático. Por esta razón se
trabajará con la variable “Conta” de tipo entero o INT para su correcta
configuración.

Una de las maneras para lograr un incremento en esta variable, utilizando


la lista de instrucciones, es el siguiente:

LD Conta (carga el valor de conta).


ADD 1 (le agrega el valor de uno).
ST Conta (guarda el resultado en conta).

Se agrega este código para poner en evidencia los problemas que se


pueden presentar con el conteo, de la siguiente manera.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


40

Compilar, Simular y Analizar resultados.

Detección de Flancos y Generación de Saltos.

El problema de la simulación anterior se resume de manera sencilla:


desborde de contador; algo que puede atribuirse a dos problemas
fundamentales:

1. La falta de un sistema para la detección de flancos ascendentes y


descendentes en la variable START.
2. La pobre unión de condiciones para la realización de conteo (si se
simula hasta el momento el contador se incrementará sin importar
el estado de los demás elementos).

Par la solución de la detección de flancos se puede acudir a una variable


adicional que permita determinar cuando existe una transición de Falso a
Verdadero y de Verdadero a Falso. A esta variable adicional la
llamaremos “ayuda”, y funcionará de la siguiente manera:

 Si START es verdadero y AYUDA es falsa, encenderemos la


variable AYUDA para hacer que esta condición no se cumpla.
 Si START es falso y AYUDA es verdadera, quiere decir que se
presionó “Start”, pero ya se liberó, razón por la cual podemos
poner la variable AYUDA de nuevo en Falso.

Por otra parte, y con el ánimo de hacer que el conteo solamente se ejecute
una vez se presione el botón de “Start”, entonces utilizaremos la
instrucción JMPCN que quiere decir “Salto si la condición anterior no se
cumple”.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


41

Integrado luce como lo siguiente:

Se analiza, se compila, se simula y se analiza de nuevo.

Ejercicios Adicionales.

1. Tomando como base el ejercicio anteriormente desarrollado,


hacer que la entrada STOP, apague la luz indicadora y también
retorne el contador a Cero.
2. Realizar un proyecto que cumpla con los requerimientos del
numeral anterior, pero en diagrama de contactos (LADDER).

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


42

Práctica 5. Ejercicio Diagrama de Bloque de Funciones FUB.


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:

 Realizar proyectos básicos diagrama de bloque de Funciones


(FUB) insertando funciones y conexiones propias de este lenguaje
de programación.
 Identificar principales ventajas y desventajas de este lenguaje de
programación.
 Realizar aplicaciones con lectura de datos numéricos.
 Utilizar la ayuda en línea para el manejo de funciones específicas.

Explicación del Ejercicio.

Una entrada llamada START, encenderá una salida MOTOR, por un


determinado tiempo; posteriormente y al apagarse el motor se encenderá
un calentador, cuando una variable que simula la temperatura supere los
20 grados, el calentador debe apagarse.

Creación del programa Solución en FBD.

El diagrama de bloques de funciones, es un lenguaje de programación


gráfico similar al LADDER, pero que utiliza funciones de diferente tipo para
la realización de una tarea en específico.

Si consideramos cada función como un bloque con entradas y salidas,


vemos que el FBD deja de basarse en la pura lógica cableada, y pasa a
tomar fundamentos de la lógica digital utilizada en circuitos electrónicos.

Para comenzar crearemos un proyecto basándonos en los procedimientos


explicados en guías anteriores, y seleccionando el lenguaje de
programación adecuado:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


43

Ahora, nuestra primera tarea será idear un código que permita encender y
apagar una salida, a través de entradas independientes. Un breve vistazo
a las funciones disponibles, nos mostrará que una buena selección puede
ser la función SR. Así que la insertaremos de la siguiente manera.

Estando ubicados sobre la ventana de programación, haremos clic en el


ícono de insertar función (BOX), o de manera abreviada (CTRL+B) dar clic
en Palabras clave y buscar en la lista el bloque ADD y dar clic en aceptar.

Como resultado de esta operación tendremos lo siguiente (La función AND


será la que se agregue siempre por defecto):

Ahora cambiaremos el nombre de la función por la que elegimos


previamente, es decir reemplazamos AND por SR, al hacerlo
inmediatamente la forma del cuadro cambiará para ajustarse a los
parámetros de la nueva función.

La ayuda En línea (Online Help).

Una de las ventajas que ofrece CoDeSys provided by Festo, consiste en la


ayuda en línea, es decir, ayuda inmediata sobre dudas que se presentan
sobre la marcha, utilizaremos entonces esta propiedad para averiguar la
ayuda disponible para nuestra función SR, para ello seleccione con el
cursor la totalidad del nombre de la función y posteriormente presione la
tecla F1, el resultado debe ser el siguiente:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


44

Este procedimiento puede repetirse cada vez que el usuario requiera


conocimientos adicionales al respecto de una función, estos contenidos
son los mismos que aparecen en el manual de CoDeSys V3 provided by
Festo.

Tal y como lo ilustra la ayuda, una entrada en SET1 encenderá la salida Q,


y una entrada en RESET apagará la salida Q. Entonces obviamente
pondremos la variable START para encender un motor y un temporizador,
haciendo lo siguiente:

1. Se escribe START en la entrada SET1, se define esta variable como


VAR_INPUT de tipo BOOL.
2. Se asigna una salida en Q, haciendo clic derecho sobre el pin de
salida y seleccionando la opción adecuada.
3. Se asigna un nombre a la función (en este caso “memo”) y se
define esta variable como una de tipo SR.

Una vez asignada repetimos el proceso y asignamos una nueva función


(CTRL + B) con el ánimo de recrear el siguiente montaje:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


45

La función recientemente agregada la reemplazaremos con un


temporizador con retardo a la conexión TON, con un tiempo
preestablecido de 6 segundos, y con una salida a una variable de ayuda
llamada precisamente “ayuda”, esta será la variable que necesitamos
para apagar el motor, es decir, también la asignaremos a la entrada RESET
de la función “memo”. El montaje esperado se presenta a continuación:

Para probar que hasta ahora todo está en orden, se compila, se simula, y
se analizan resultados.

Ahora, la segunda parte del ejercicio consiste en encender un calentador,


para ello podemos valernos de una nueva función SR, la cual recibirá
como entrada para encendido la variable “ayuda”, y para apagar el
calentador recibirá una segunda variable llamada “ayuda2”.

La variable “ayuda”, se encenderá única y exclusivamente cuando una


nueva variable de tipo INT llamada “temp” supere los 20 grados. Para
hacer lo anterior se requiere una función de comparación mayor que o
simplemente GT.

Conectando los elementos de manera apropiada y definiendo las


variables asociadas con el proceso podremos tener algo como lo
siguiente:

De nuevo, analizamos, compilamos, descargamos y analizamos de nuevo.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


46

Ejercicios Adicionales.

1. Agregue una entrada adicional llamada STOP que sirva para


detener el motor, y el calentador en cualquier momento.
2. Encuentre una solución al problema de esta práctica (incluyendo
los requerimientos del numeral anterior), utilizando IL.
3. Encuentre una solución al problema de esta práctica (incluyendo
los requerimientos del numeral anterior), pero utilizando LD.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


47

Práctica 6. Ejercicio Texto Estructurado ST.


Objetivos.

Al finalizar esta práctica, el estudiante estará en capacidad de:

 Realizar proyectos básicos utilizando texto Estructurado (ST)


utilizando sintaxis propia de este lenguaje de programación.
 Identificar principales ventajas y desventajas de este lenguaje de
programación.
 Realizar aplicaciones utilizando listas de declaraciones (IF).
 Comprender el manejo y utilidad de los ciclos disponibles en
Lenguaje Estructurado.
 Comprender el manejo de arreglos de números.

Explicación del Ejercicio.

Se abordaran dos problemas básicos, el primero de ellos relacionado con


una luz que se encenderá por 4 segundos luego de que se active una
entrada mostrada como START, el segundo relacionado con el cálculo de
los primeros 11 elementos de la sucesión de Fibonacci utilizando los
ciclos disponibles en Lenguaje Estructurado.

Creación del programa Solución 1 en ST.

El lenguaje de texto estructurado utiliza herramientas de programación


avanzada para la creación de secuencias complejas de cálculo, así mismo
puede utilizarse para la creación de secuencias relacionadas con sistemas
de automatización, a partir de la utilización de declaraciones
encadenadas por ejemplo. Sin embargo la manera como las instrucciones
son ejecutadas puede llevar a confusiones a la hora de realizar un
programa complejo.

Se recomienda la lectura completa de la ayuda del Editor De Texto


Estructurado del manual de usuario de CoDeSys, para comprender
detalles acerca de la estructura y asignaciones que se usarán en las
soluciones mostradas a continuación.

Para comenzar se debe crear un nuevo proyecto y seleccionar el lenguaje


de programación adecuado.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


48

Ahora, en la ventana de programación se usará una entrada de tipo


Booleano para el control de una salida, para ello será necesario transcribir
el siguiente código:

Compilar, simular y analizar.

Ahora, se creará un programa que realice lo siguiente:

1. Al detectar la presencia START, se encenderá la variable LUZ.


2. Mientras la LUZ permanezca encendida, se ejecutará el llamado a un
temporizador con retardo a la conexión para determinar en qué
momento se puede apagar la misma.
3. Cuando la salida del temporizador se active, se reinicializarán las
variables para comenzar de nuevo.

El primer punto puede resolverse de manera sencilla haciendo:

IF START
THEN LUZ: = TRUE;
ELSE LUZ: = FALSE;
END_IF

Para la segunda parte, se tienen que conocer los parámetros para el


llamado a un temporizador, por eso ejecutamos el asistente de entradas

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


49

con F2 se selecciona módulos de Función/Standard/Timer , para conocer


la correcta sintaxis.

A partir de lo anterior puede plantearse el siguiente código, que busca


mantener la entrada (IN) del temporizador en verdadero para lograr un
retardo de 4 segundos como lo indica PT:
IF LUZ
THEN TIEMPO(IN:=TRUE,PT:=T#4S)
END_IF

Cabe aclarar que la variable TIEMPO debe ser definida como una de tipo
TON.

Finalmente, para conocer la salida del temporizador se recurre a una


sintaxis ya utilizada en prácticas anteriores que consiste en lo siguiente:
IF TIEMPO.Q
THEN LUZ:=FALSE;
TIEMPO (IN:=FALSE);
END_IF

Uniendo el código bajo el entorno de programación tendremos algo como


lo siguiente:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


50

Transcribir, compilar, simular y analizar.


Ejercicio Adicional Parte 1.

1. Implementar un sistema que permita bloquear el proceso luego de


haber encendido la luz más de 4 veces. Así mismo cree un pulsador
de STOP que permita reiniciar el programa una vez se ha bloqueado.

Solución al Ejercicio 2 Utilizando Texto Estructurado.

Como ya se mencionó anteriormente en este ejercicio se utilizará una


entrada START, la cual permitirá el cálculo de los primeros 11 elementos
de la sucesión de Fibonacci, para esta labor se requiere:

1. Una entrada VAR_INPUT de tipo BOOL, llamada START.


2. Un arreglo de 11 elementos, con el primer elemento definido como
cero y el segundo como uno.
3. Una variable entera para contar de manera automática los elementos
pertenecientes al vector.
4. La utilización de uno de los ciclos. En este caso se optará por el ciclo
WHILE.

Para enfrentar el primer problema basta con escribir, en la parte de


definiciones de variables lo siguiente:
VAR_INPUT
START: BOOL;
END_VAR

En cuanto a la definición de arreglos se recomienda al lector la revisión de


la ayuda Defined Data types, específicamente la parte referente a los
arreglos (arrays), para iniciar un vector de 11 elementos, haciendo el
primero igual a cero, el segundo igual a uno y los restantes iguales a cero,
usando el siguiente código escrito en la parte de definición de variables
(se usará el nombre “vector” para esta variable).
Manejo de arreglos
VAR
Vector: ARRAY [0..10] OF INT:=[0,1,9(0)];
END_VAR

Para la definición de la variable de conteo utilizaremos la palabra “conta”


inicializada en cero, agregándola a los datos del arreglo previamente
definidos haciendo:
VAR
vector : ARRAY [0..10] OF INT :=[0,1,9(0)];
conta : INT:=0;
END_VAR
Manejo de Ciclos

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


51

Para obtener ayuda acerca del uso de while, se escribe WHILE en la


ventana de programación y se presiona F1, la ayuda contextual ilustrará
con un ejemplo la manera como debe usarse.

Así que uniendo todos los elementos aquí descritos se llega al código
descrito en la siguiente ventana:

Al compilar, simular y analizar debe notarse que al momento de culminar


con la ejecución del programa, los elementos del vector deben contener
los números esperados:

Ejercicios Adicionales parte 2.

1. Utilice el ciclo FOR para el cálculo de los 11 primeros elementos de la


sucesión de Fibonacci, tomando como ejemplo el ejercicio
anteriormente desarrollado.
2. Utilice el ciclo REPEAT para el cálculo de los 11 primeros elementos de
la sucesión de Fibonacci, tomando como ejemplo el ejercicio
anteriormente desarrollado.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


52

Práctica 7. Ejercicio Diagrama de Funciones Continuo (CFC)


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:
 Realizar proyectos básicos utilizando las funciones y elementos
propios del Diagrama de Funciones Continuo (CFC).
 Identificar principales ventajas y desventajas de este lenguaje de
programación.
 Comprender la importancia de las funciones matemáticas dentro
del desarrollo de aplicaciones.
 Aprender a cargar librerías para el uso de funciones especiales.
 Explorar las funciones para creación de macros en este lenguaje
de programación.

Explicación del Ejercicio.

Se contará el número de veces que cambia la variable de entrada START, a


medida que aumenta este número de veces disminuirá la frecuencia de
una luz de destello. Existirá adicionalmente una entrada STOP que se
encargará de reiniciar el contador y de detener la luz de destello.
El sistema se detendrá bajo dos condiciones, al pasar el estado de STOP a
verdadero, o cuando el conteo llegue a un total de 5 veces.

Creación del programa Solución en CFC.

El lenguaje de programación CFC puede entenderse como una “mejora”


en cuanto a lo observado en FUB, pues permite la ubicación libre de
elementos dentro del área de trabajo, permite la creación de lazos de
retroalimentación y por ende la creación de programas es mucho más
intuitiva, aunque la comprensión de los mismos para labores de
mantenimiento o de reprogramación.

Se recomienda la lectura del manual de CoDeSys The Continuous Function


Chart Editor (CFC) en, antes de abordar la realización de estos ejercicios.

Siguiendo los procedimientos anteriores, se crea un nuevo proyecto y se


selecciona el lenguaje de programación adecuado.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


53

Ahora, teniendo en cuenta la solución del programa, primero se realizará


una prueba del funcionamiento de los contadores, para ello se
recomienda la lectura del funcionamiento de los mismos en el manual del
usuario de CoDeSys (Counter).

Seleccionaremos el contador ascendente CTU, ubicándolo sobre el área


de trabajo, para ello haga Ctrl+B sobre el área de programación o ejecute
el ícono correspondiente sobre la barra de herramientas especiales.

Por defecto, aparecerá el bloque en blanco así que seleccione este bloque
y escriba CTU; la ventana resultante debe lucir como la siguiente:

Teniendo en cuenta que todas funciones tienen las entradas en el costado


izquierdo y sus salidas al costado derecho, se asignarán las mismas de
acuerdo a las indicaciones del ejercicio, para ello basta con hacer clic
derecho en las entradas correspondientes y seleccionar la opción que se
desea. No olvidar definir las variables de manera adecuada.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


54

Si se sigue el procedimiento definiendo todo de manera apropiada, se


tendrá el siguiente resultado (fíjese en las variables en la parte superior).

Se compila, se simula y se analiza.

Ahora, y con el ánimo de simplificar el código desarrollado, se buscará


una función que realice de manera automática la secuencia de la luz de
destello, para ello nos remitiremos al manual de CoDeSys donde se
describen los componentes de la librería Util.lib, allí en Signals,
encontraremos la función BLINK.

Proceso para Agregar Librerías a un Proyecto.

Las funciones de Blink se ajustan adecuadamente a lo que se requiere en


este ejercicio; pero esta función pertenece a la librería Util.lib la cual no se
encuentra integrada por defecto a los proyectos de simulación, así que se
estudiará el proceso para agregar una nueva librería, proceso que puede
hacerse extensivo a otros proyectos más complejos.

El primer paso consiste en la exploración de las librerías existentes, para


ello en la barra de dispositivos hacer clic: Application—Administrador de
Bibliotecas.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


55

En la nueva ventana se pueden observar las librerías que actualmente


hacen parte del proyecto (nótese la ausencia de Util.lib), así que la
adicionaremos haciendo clic en agregar librería tal como se muestra en la
siguiente figura.

En la ventana emergente aparece un explorador donde se supone


debemos buscar la librería deseada. Dependiendo de las condiciones de
instalación esta dirección puede variar, pero por lo general puede hallarse
en:
C: \Archivos de Programa\Festo\CoDeSys V.3\CoDeSys Converter\Library\

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


56

Una vez insertadas puede encontrarse allí la función BLINK.

Fíjese en la ayuda de “Blink”, y notará que las entradas TIMELOW y


TIMEHIGH son entradas de tipo tiempo. Ahora, como el contador utiliza
variables de tipo Entero o palabra, se requerirá una conversión de datos,
la cual analizaremos posteriormente.

Volviendo a nuestro circuito tenemos entonces que la salida del contador


es ascendente, de cero en adelante. Para disminuir la frecuencia inicial se
utilizará una división, partiendo de un tiempo base inicial de 2 segundos,
tal y como se muestra a continuación:

Nótese que se agrega un bloque de adición luego del contador, esto con
el ánimo de evitar la división por cero en el bloque DIV, además se ha
creado la variable “convert” para poder simular el resultado antes de
insertar la función “Blink”, de acuerdo a los parámetros definidos a
continuación.

Se simula, y se estima si el resultado es adecuado para la inserción de la


función “Blink”.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


57

Aprovechando el adecuado funcionamiento del sistema, se agregará una


retroalimentación para hacer que el contador deje de funcionar una vez
que la salida Q se activa. Tal y como se muestra en la siguiente figura:

Finalmente se agregan dos funciones adicionales, “BLINK” para controlar


la luz de destello, y la función “SR” para hacer que se active o desactive
de acuerdo a las condiciones dadas por las señales de “START” y de
“STOP”, el resultado final puede observarse en la siguiente figura:

Se compila, se simula y se analiza.

Ejercicio Adicional.
1. Modificar el ejercicio hasta ahora desarrollado para que descuente
250 ms cada vez que se activa el pulsador de START; Utilice
adicionalmente la funcionalidad para la creación de macros para
resumir su programa de manera adecuada.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


58

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


59

Práctica 8. Ejercicio Grafico Secuencial de Funciones (SFC)


Objetivos.

Al finalizar esta práctica, el estudiante estará en capacidad de:


 Realizar proyectos básicos utilizando las funciones y elementos
propios del Gráfico Secuencial de Funciones (SFC).
 Comprender la manera como se ejecutan las funciones y
transiciones.
 Comprender los procedimientos para la inserción y ejecución de
acciones, usando los lenguajes de programación vistos en
prácticas anteriores.
 Realizar llamados de funciones utilizando lenguajes de
programación de tipo textual.
 Comprender las ventajas y desventajas de este lenguaje de
programación.

Explicación del Ejercicio.

Con el ánimo de explorar las ventajas para la realización de secuencias en


este lenguaje de programación, realizaremos el control de dos luces
intermitentes utilizando un solo Pulsador, creando algo como lo siguiente:
1. Al activar Start inicia una luz de destello con un Período de 4
segundos.
2. Al desactivar Start se detiene la luz anterior, y una nueva luz comienza
una secuencia intermitente, con un período de 2 segundos.
3. Al activar de nuevo Start, entonces, ambas luces prenderán y
apagarán al unísono con un período de 1 segundo.
4. Al desactivar Start el sistema queda listo para iniciar de nuevo.

Solución del Ejercicio Utilizando SFC.

Antes de abordar la solución del problema se sugiere al lector la revisión


del manual CoDeSys ( SFC), Así mismo una revisión completa de la teoría
relacionada con GRAFCET ayudará a la comprensión de la estructura de la
presente solución.

Siguiendo las indicaciones dadas en prácticas anteriores se crea un


programa y se selecciona el lenguaje de programación adecuado.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


60

Aparecerá una nueva ventana para la iniciación del programa, la primera


parte consiste en un paso llamado “init”, y una transición denominada
“Trans0”. En este paso inicial crearemos las condiciones acordes con los
requerimientos del ejercicio, en este caso, ambas luces apagadas.

Procedimiento para la creación de acciones en Grafcet.

Para la creación de esta acción, se hace doble clic en el paso deseado, allí
aparecerá una nueva ventana que nos solicita el ingreso del lenguaje que
se desea para escribir las instrucciones propias de este paso (En este caso
seleccionaremos texto estructurado).

Allí se crea el código correspondiente para realizar la función descrita


anteriormente:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


61

Las variables Luz1 y Luz2, se declaran como VAR_OUTPUT de tipo BOOL.

Creación de Condiciones de Transición.

Ahora, para pasar a la siguiente parte de la secuencia, se debe cumplir


una condición específica y esta es la presencia de “Start”. Para crear esta
transición se hace clic en el título de la misma y allí se escribe una
condición lógica de respuesta Verdadero o Falso.

Si la condición de Transición se cumple se ejecutará el paso siguiente, de


lo contrario la ejecución del paso actual permanecerá activa.

Procedimiento para Agregar nuevos Pasos.

Para la creación de nuevos pasos, se hace clic derecho sobre la transición


recientemente modificada y del menú emergente se selecciona la opción
adecuada.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


62

En este nuevo paso se ejecutará una luz de destello (2 segundos


encendida, 2 segundos apagada); con la utilización de la función “BLINK”,
así que antes de realizar y definir las acciones del nuevo paso
agregaremos la librería “Util.lib” siguiendo los procedimientos explicados
en prácticas anteriores.

Ahora, cambiaremos el nombre del paso a “L1_2s” (el nombre de paso


puede ser cualquiera, este no interfiere con el funcionamiento del
lenguaje de programación pues solamente se utiliza para labores de
identificación sencilla); y posteriormente definiremos una acción para ella
haciendo doble clic (en lista de instrucciones).

Allí llamaremos constantemente “BLINK”, siguiendo las instrucciones


mostradas a continuación:

1. Definir la Variable.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


63

2. Crear el código de llamado apropiado.

3. Definir la Siguiente Transición, siendo esta la ausencia de “Start”, es


decir, “NOT Start” (ver detalle en Figura anterior). Se requiere así
mismo definir un nuevo paso sobre esta Transición siguiendo los
mismos procedimientos anteriores.

Siguiendo las indicaciones dadas en la explicación del ejercicio, tenemos


que el próximo paso debe ejecutar una luz de destello (1 segundo
encendida, 1 segundo apagada). Esta acción será realizada en FUB, tal y
como se muestra a continuación.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


64

Nótese que tanto la nueva transición como el nombre del paso han sido
cambiados de acuerdo a las condiciones del ejercicio.

Sobre la última transición definida creamos un nuevo paso, cambiamos el


nombre y definimos acción en lenguaje LAD.

Recuerde que este paso debe encender ambas luces con una frecuencia
de 1Hz. Para ello se crea el siguiente código.

Finalmente la última Transición “NOT Start”, permitirá el salto al paso


“Init” el cual crea condiciones iniciales. Si todo se ha cumplido
correctamente su proyecto debe lucir similar a la siguiente figura:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


65

Finalmente, se compila, se simula, y se analiza.

Ejercicios Adicionales:
1. Tomando como base el ejercicio anterior, defina una nueva entrada
llamada “Selector”. Si el selector se encuentra en Estado Falso, la
secuencia se ejecutará igual al ejercicio anterior, pero si el Selector se
encuentra en estado Verdadero al iniciar la secuencia esta se
ejecutará pero cambiando el orden de los dos primeros pasos.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


66

Práctica 9. Visualización en CoDeSys V3


Objetivos.

Al finalizar esta práctica, el estudiante estará en capacidad de:


 Aprender los fundamentos para la realización de pantallas de
visualización sencillos en CoDeSys.
 Comprender el procedimiento para la escritura y lectura de datos
del programa, a través de componentes del sistema de
visualización.

Explicación del Ejercicio.

Tomando como base el ejercicio desarrollado en la práctica anterior, se


creará una pequeña ventana de visualización compuesta de un rectángulo
para el manejo de “Start” y dos círculos para la Visualización del estado
de las variables “Luz1” y “Luz2”.

Creación del Sistema de Visualización.

Aunque en este momento se estudiarán los principios básicos de la parte


de visualización, existen muchos elementos por explorar que pueden ser
consultados completamente en el manual CoDeSys Visualization V3

Como primera instancia se abrirá el proyecto creado en la práctica


anterior, para dirigirnos a la pestaña de visualización.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


67

Sobre esta carpeta de “visualización” se da clic derecho para seleccionar


la opción “Agregar Objeto”, aquí una nueva ventana solicitará el nombre
que se desea asignar a la misma, al introducirlo y hacer clic en “OK” se
tendrá una nueva pantalla para comenzar a crear nuestro entorno.

Considere esta nueva pantalla como un software para la creación de


entornos gráficos a partir de herramientas básicas para la creación de
figuras geométricas, realizar dibujos a mano alzada, insertar botones,
íconos interactivos, inserción de gráficas y otros.

Ahora seleccionando la herramienta para la creación de círculos


crearemos uno que representará la primera luz, una vez termine de
dibujar haga doble clic para acceder a las propiedades del mismo.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


68

En esta ventana de propiedades pueden cambiarse y configuración


elementos relacionados con la parte gráfica del elemento, así como la
asociación con variables que hacen parte del proyecto desarrollado en
CoDeSys. Como en nuestro caso deseamos que el Color del círculo
cambie de acuerdo a la variable “luz1”, entonces realizamos la asignación
en la categoría “Color Variables” y en el campo “Toggle Color” escribimos
“PLC_PRG.luz1” , es decir la “luz1” perteneciente al programa PLC_PRG”
(se puede observar este proceso en la imagen anterior).

También puede hacer clic sobre el cuadro donde aparecen los puntos
suspensivos para seleccionar la variable que está dentro del proyecto del
programa; esto es útil cuando el proyecto contiene muchas variables.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


69

Para completar el proceso de configuración, nos dirigiremos a la categoría


de “Colors” y allí elegiremos un color oscuro para “NormalState-
>FillColor”, y otro más brillante para “AlarmState-> FillColor”

Finalmente tendremos el círculo que representa la luz listo, pero como


necesitamos otro de similares características utilizaremos las
herramientas de Copiar y Pegar, para crear un segundo círculo.

Recuerde cambiar la variable “PLC_PRG.luz1” de este nuevo círculo, por la


variable “PLC_PRG.luz2”. Para que el color de este cambie de nuevo de
acuerdo al estado de la variable Luz2.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


70

Culminada la creación de los botones, se creará un rectángulo que servirá


de pulsador para el manejo de la variable Start.

Utilizando la herramienta adecuada se completa el rectángulo, y


posteriormente se ingresa a las propiedades para cambiar el texto y los
colores.
Finalmente se configura la acción que este rectángulo realizará sobre la
variable eligiendo la categoría “Inputconfiguration”, y allí se debe
habilitar la función “Toggle” y se debe escribir sobre el campo el nombre
de la variable a modificar, es decir la variable “PLC_PRG.Start”.

NOTA: Antes de realizar la simulación del programa asegúrese que esta


vez el programa no esté en modo de simulación; si lo está, deshabilítelo a
través de la opción “En Línea-> Simulación”. Luego cerciórese de que el
servicio de WIN V3 está activo, para esto diríjase a la barra de inicio del
escritorio y de clic derecho el siguiente icono; selecciones START PLC.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


71

PLC
Virtual

Luego, a través de la opción “en línea”, seleccione “En línea->Iniciar


Sesión”, inmediatamente le aparecerá la siguiente ventana:

Seleccione “si”; a continuación aparecerá una ventana de asistencia para


la conexión con el PLC virtual dependiendo del tipo de red de conexión;
dado que es un PLC virtual no habrá problema con la red.

Si inicialmente no aparece, oprima el botón “Examinar red”. Una vez


seleccionado el PLC virtual, nuevamente de clic sobre Iniciar sesión.

Con nuestra pantalla de visualización lista, compilamos y corremos la


simulación normalmente, pero esta vez el accionamiento de “START”
puede realizarse de manera sencilla haciendo clic sobre el rectángulo

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


72

definido y el estado de las luces podrá observarse en los círculos creados,


tal y como se observa en la siguiente figura:

Ahora, es fácil notar que aunque en CoDeSys no es posible crear entornos


visuales con excesivos detalles o elementos gráficos complejos, la
herramienta de visualización puede constituirse como un excelente apoyo
que hace mucho menos tediosa la prueba de ejercicios realizados en los
diferentes lenguajes de programación.
Ejercicios Adicionales:

1. Tomando como base los proyectos desarrollados en las prácticas


anteriores, desarrolle y pruebe sistemas de simulación que permitan
una interacción más sencilla y amigable con el usuario.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


73

Práctica 10. Creación de un proyecto, Integración de Programas


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:
 Reconocer la importancia de la realización de proyectos a través
de la integración de varios programas para el desarrollo de
funciones específicas.
 Crear Proyectos básicos que impliquen la utilización de más de un
programa.
 Comprender el procedimiento para la creación de bloques de
funciones.
 Definir variables de tipo Global.

Explicación del Ejercicio.

Aunque el ejercicio que se desarrollará en las siguientes páginas es


tomado de las páginas del manual original de CoDeSys, la explicación que
allí aparece es bastante mecánica y deja ciertos vacíos conceptuales que
dificultan el verdadero aprendizaje a través del mismo. Así que con el
ánimo de hacer de este ejemplo una verdadera experiencia de aprendizaje
se retomará el mismo realizando una explicación completa de los
diferentes paso involucrados teniendo en cuenta lo que se ha trabajado
en prácticas anteriores.

El ejercicio consiste en el control de dos semáforos para una intersección.


Este control se realizará a través de un pulsador de “Start”, cada vez que
se presione este, las luces deben realizar la siguiente transición:

Start 2 seg 5 seg

Paso 1 Paso 2 Paso 3 Paso 4

2 seg

Así, en cada uno de los pasos puede observarse el conjunto de los dos
semáforos en su respectivo color, las flechas adicionalmente indican las
transiciones que deben cumplirse para continuar con la secuencia, así por
ejemplo para pasar del paso 3, al paso 4, se debe cumplir con un tiempo
de espera de 5 segundos.

Adicionalmente el sistema debe contar el número de secuencias


realizadas, y una vez ese número de secuencias sea mayor a 7, los

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


74

semáforos deben apagarse, y esperar mínimo 10 segundos antes de


volver a iniciar.

Creación de la Solución.

Debido a la naturaleza del problema que se presenta y con el ánimo de


reducir al máximo el código que se cree, se abordará el problema basados
en este procedimiento:

1. Creación de un bloque de Funciones que permita definir el color que


presentará el semáforo de acuerdo al paso en el que se encuentre la
secuencia, así por ejemplo al decirle a este programa que nos
encontramos en el Estado 1, este debe determinar que el color es
Verde. Así pues, los posibles estados y respuestas de este programa
de control pueden encontrarse en la siguiente tabla (entiéndase
semáforo 1 como el semáforo de la derecha en la gráfica explicativa
vista anteriormente):

Estado de Color Respuesta Observaciones


entrada Programa
Paso 1 del semáforo 1 de la
1 VERDE
gráfica de explicación.
Paso 2 del semáforo 1 de la
2 AMARILLO
gráfica de explicación
Paso 3 del semáforo 1 de la
3 ROJO
gráfica de explicación
ROJO Paso 4 del semáforo 1 de la
4
AMARILLO gráfica de explicación.
Necesario para bloquear el
5 NINGUNO programa, en caso que la
secuencia sea mayor a 7.

2. Creación de un bloque de funciones que permita coordinar los


tiempos de espera, es decir, que realice un llamado a alguna función
de tiempo, una vez culminado retorna una señal aprobatoria. En
conclusión, la entrada a este programa será el tiempo a esperar, y el
retorno será la señal de culminado.
3. El Tercer programa contendrá la secuencia como tal, con sus pasos y
transiciones, describiendo los requerimientos solicitados en la
descripción del problema.
4. Llamado al programa que controle la ejecución de la secuencia y el de
los estados del semáforo.

NOTA: Consulte bajo la opción ayuda las diferencias entre bloques de función y función.

Como se ha visto con anterioridad, el programa principal es el llamado


PLC_PRG, entonces lo crearemos en lenguaje de programación CFC y
podremos empezar a ejecutar los pasos propuestos.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


75

Creación del bloque de funciones para Control de Estados (Punto 1).

Básicamente lo que se realizará en este punto será una “traducción” de la


tabla vista en el punto 1, al lenguaje de programación FUB, teniendo en
cuenta lo siguiente:
a. El programa debe recibir una entrada que solicita el “estado” del
semáforo.
b. Tres salidas de tipo booleano correspondientes a cada color del
semáforo.

Ahora, se crea un nuevo bloque de funciones llamado tráfico, en Diagrama


de bloques de funciones.

Allí se crea el siguiente código (correspondiente a la tabla):

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


76

Culminada la elaboración del primer punto pasaremos ahora a la creación


del programa para el manejo del tiempo de transiciones.

Creación del bloque de funciones para los tiempos de Espera (Punto 2).

Como ya se tienen claras las entradas y salidas de este bloque de


funciones, se procederá a la creación de uno utilizando el lenguaje lista de
instrucciones IL, y lo llamaremos “espera”:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


77

En este programa se llamará a una función de tiempo (TP en este caso) y


cuando se cumpla el tiempo configurado en la variable del mismo nombre,
entonces se pasará a TRUE la variable “ok”, para ello se crea el siguiente
código con las siguientes variables:

Las funciones creadas anteriormente (“trafico” y “Espera”) se llamarán


apropiadamente en la creación de la secuencia del siguiente punto:

Creación del programa para control de la Secuencia (Punto 3).

Aquí crearemos una secuencia utilizando el lenguaje apropiado para este


fin, es decir, el gráfico secuencial de funciones SFC. Esta secuencia debe
contar con los siguientes elementos:
a. Una entrada de tipo booleano llamada START, que le permitirá iniciar
b. Dos salidas de tipo Entero, cada una para el control de un semáforo
(esta señal se utilizará posteriormente con entrada del bloque de
funciones “trafico”, y así se podrán determinar los colores que tendrá
el semáforo), estas salidas se llamarán “Senal1” y “Senal2”
c. Un contador para control de las 7 secuencias que deben realizarse.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


78

La siguiente tabla muestra un resumen de lo que debe contener el


esquema de SFC.

Nombre Acciones Siguiente Transición a cumplir


Paso Paso
Hacer
Init Senal1=1 Cambio1 Presencia de “Start”
Senal2=3
Senal1=2
Senal2=4 Tiempo espera
Cambio1 Llamar función “espera” Conteo
culminado.
con tiempo 2 seg
Aumentar la variable de Para ir a OFF el
conteo en 1 OFF conteo mayor a 7.
Conteo
Verde2 De lo contrario
pasará a Verde2
Senal1=5
Senal2=5
Tiempo espera
OFF Contador=0 Cambio1
Llamar función “espera” culminado
con tiempo 10 seg
Senal1=3
Senal2=1 Tiempo de espera
Verde2 Llamar función “espera” Cambio2
culminado
con tiempo de 5 seg
Senal1=4
Senal2=2 Tiempo de espera
Cambio2 Llamar función “espera” Verde1
culminado
con tiempo de 2 seg
Senal1=1
Senal2=3 Tiempo de espera
Verde1 Llamar función “espera” Init
culminado
con tiempo de 5 seg

Ahora, para poder llevar lo anterior a cabo, se debe hacer una correcta
definición de variables de un nuevo programa en SFC al cual llamaremos
“secuencia”. Las variables de este programa secuencia serán:

Nótese que aparte de las entradas, salidas y la variable de conteo,


aparece allí una variable que llamaremos “delay”, fíjese además que esta
variable es de tipo “espera”, es decir, “delay” es la variable que

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


79

utilizaremos para llamar el bloque de funciones para esperar por un


determinado tiempo.

A continuación se puede observar la totalidad del código creado en SFC


con cada una de sus acciones definida en Lista de instrucciones, acorde
con la tabla anterior.

Ahora, realice el programa de acuerdo a condiciones vistas en prácticas


anteriores.

Llamado al programa principal (Punto 4).

Ahora debemos llamar al programa principal (PLC_PRG), teniendo en


cuenta lo siguiente:

a. Desde el programa principal se debe llamar primero al programa


llamado “secuencia”, encargado de general el “estado” de ambos
semáforos (identificados por las salidas Senal1 y Senal2).
b. Este programa secuencia arroja dos salidas, así que para saber cual
color asumen los semáforos, debe ingresarse el estado como una
entrada adicional de la función “tráfico”.

Pero antes de realizar este programa se definirán las variables de entrada


y salida, de todo el proyecto, estas variables que hacen parte de TODO el
proyecto son las llamadas “variables globales”, una de las principales

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


80

propiedades de estas variables es que pueden ser utilizadas en


cualquiera programa o función que se requiera sin necesidad de definirlas
de manera local.
Definición de Variables Globales

Para definir estas variables globales diríjase a la sección de:

Dispositivos – Application(Clic derecho) – Agregar objeto – Lista de


variables globales.

Allí deberá asignarle el nombre a las lista de variables globales y luego


presionara “Abrir”. Se desplegará una ventana donde se definen las
variables de tipo global, tal y como aparece a continuación.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


81

Finalmente regresamos a nuestro programa principal PLC_PRG, para la


realización del programa que coordinará la ejecución de las actividades
para la solución de nuestro ejercicio.

Cabe aclarar que para realizar el llamado a una función realizada por el
usuario, basta con agregar un bloque de función y sobre el título que
aparece allí por defecto se escribe el nombre del bloque de funciones o
del programa que se desea ejecutar. Tal y como aparece en la siguiente
figura:

Si se desea, se puede compilar, simular y analizar el proyecto.

Creación de la visualización (Punto Adicional).

Para completar nuestro proyecto se creará un sistema de visualización


siguiendo las indicaciones dadas en prácticas anteriores. Para ello utilice
las variables globales recientemente definidas teniendo en cuenta que
para su utilización no se requiere un direccionamiento a programa, sólo
basta escribir directamente el nombre de la variable global. Así por
ejemplo para utilizar la variable de color rojo, solo faltaría escribir en la
ventana de propiedades algo como lo siguiente:

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com


82

Un ejemplo de cómo debería lucir el sistema de visualización se muestra


en la siguiente figura, una vez culminado todo el sistema puede probarse
para encontrar posibles fallas en la programación, si se presentan debe
revisarse el contenido de esta guía y corregir de ser necesario.

Con este ejercicio culmina la preparación teórica y de simulación


correspondiente al manejo de equipos, a continuación se presentarán una
serie de guías enfocadas al manejo, conexión y configuración de sensores
y controladores; cada una de las guías contiene un detallado proceso que
debe seguirse para la realización de prácticas sencillas, la unión de estas
con los elementos de programación vistos hasta ahora permitirá el
desarrollo de aplicaciones complejas acordes con proyectos en desarrollo.

Festo Didactic 2013. Leonardo.rodriguez.ortiz@gmail.com

También podría gustarte