1 Manual_CoDeSys V3

Codesys V3.5. pbf Manual de Prácticas Introducción Leonardo Rodriguez Utilización Prevista y Convenida Los procedimie

Views 662 Downloads 168 File size 3MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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: Autor: Gráficas: Redacción:

06/2013 Leonardo Rodríguez Ortiz Festo Didactic Co. Leonardo Rodríguez Ortiz.

Festo Didactic Colombia. Internet: www.festo-didactic.com e-mail: [email protected] 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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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 Datos

HMI

Recursos

Declaración

Variables 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. [email protected]

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. [email protected]

14

NOTACIÓN

RANGO

EJEMPLO

BOOL

0, 1

FALSE, TRUE, 0, 1

SINT, INT, DINT

-128 .. 127, -32768 .. 32767, -2147483648 .. 2147483647

0, 24453 -38099887

USINT, UINT, UDINT

0 .. 255, 0 .. 65535, 0 .. 4294967295

200, 47453 138099887

BYTE, WORD, DWORD

0 .. 255, 0 .. 65535, 0 .. 4294967295

8450 16#2102

REAL, LREAL

-1.2x 10-38 .. 3.4x 1038 -2.3x 10-308 .. 1.7x 10308

TIME, TOD, DATE, DT

0 ms .. 1193h2m47s295ms 00:00:00 .. 23:59:59 01.01.1970 until approx. 06.02.2106

STRING

1 .. 255 chars

1.34996 2.8377E-15 T#1d8h12m8s125ms TOD#12:34:17 D#2001-03-15 DT#2001-03-15-12:17:03 `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. [email protected]

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 programación Lista de instrucciones (IL).

Tipo Lenguaje de programación basado en texto.

Texto Estructurado (ST).

Gráfico de funciones Secuencial (SFC).

Lenguaje de programación gráfico

Diagrama de bloque de Funciones (FUB).

Diagrama de Funciones Continuo (CFC). Diagrama en Escalera (LDR).

Descripción básica El listado de instrucciones puede considerarse como una seguidilla de instrucciones que contienen operandos para describir el proceso del PLC. El texto estructurado es el más 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. Permite la programación de tipo secuencial, por ende es adecuado para la estructuración de los proyectos. Con transiciones y divisiones este lenguaje permite la ejecución certera de pasos de acuerdo a condiciones determinadas. Trabaja con una serie de funciones 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. Basado en FUB, este lenguaje permite una ubicación y retroalimentación más sencilla de los elementos a utilizar en la programación. Originado desde la lógica cableada, y 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. [email protected]

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. [email protected]

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 ADD ST

CASA 3 RESULTADO

LD EQ JMPC

RESULTADO 5 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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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 Soportados—Editor LD.

básicos—Lenguajes

de Programación

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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, presione Mayús.+F8 o busque el icono en la Barra de Herramientas.

o

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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 ADD ST

Conta (carga el valor de conta). 1 (le agrega el valor de uno). 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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

58

Festo Didactic 2013. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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 Paso 1

Paso 2

2 seg Paso 3

5 seg 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. [email protected]

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 entrada

Color Respuesta Programa

1

VERDE

2

AMARILLO

3

ROJO

4

ROJO AMARILLO

5

NINGUNO

Observaciones Paso 1 del semáforo 1 de la gráfica de explicación. Paso 2 del semáforo 1 de la gráfica de explicación Paso 3 del semáforo 1 de la gráfica de explicación Paso 4 del semáforo 1 de la gráfica de explicación. Necesario para bloquear el 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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

78

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

Nombre Paso Init Cambio1

Conteo

OFF

Verde2

Cambio2

Verde1

Acciones Hacer Senal1=1 Senal2=3 Senal1=2 Senal2=4 Llamar función “espera” con tiempo 2 seg Aumentar la variable de conteo en 1

Senal1=5 Senal2=5 Contador=0 Llamar función “espera” con tiempo 10 seg Senal1=3 Senal2=1 Llamar función “espera” con tiempo de 5 seg Senal1=4 Senal2=2 Llamar función “espera” con tiempo de 2 seg Senal1=1 Senal2=3 Llamar función “espera” con tiempo de 5 seg

Siguiente Paso

Transición a cumplir

Cambio1

Presencia de “Start”

Conteo

Tiempo espera culminado.

OFF Verde2

Para ir a OFF el conteo mayor a 7. De lo contrario pasará a Verde2

Cambio1

Tiempo espera culminado

Cambio2

Tiempo de espera culminado

Verde1

Tiempo de espera culminado

Init

Tiempo de espera culminado

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]

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. [email protected]