CODESYS CoDeSys significa Controller Development System (Sistema de desarrollo de controladores) y es uno de los sistemas de programación del estándar IEC 61131-3 más comunes para PLCs y reguladores industriales. Es desarrollado por la empresa 3S-Smart Software Solutions y permite programar autómatas de diferentes fabricantes, así cómo generar código para algunos microprocesadores y DSPs. Soporta los cinco lenguajes de programación del estándar, dispone de visualización integrada, además de un simulador offline. Se trata de un software de programación abierto y se puede descargar directamente de la página del desarrollador (http://www.codesys.com/support-training/selfhelp/downloads-updates.html)) help/downloads-updates.html 1. Pantalla de presentación: Barra de menús Barra de instrucci ones
Barra de iconos
Panel de declaración de variables locales Panel de declaración de variables glob ales Edit ditor or de ro ra rama ma
Explorador de proyectos u Organizador de proyectos
Panell de visu aliza Pane alización ción
Panell de resultados o Centro de Pane mensajes
Barra de estado
Figura 1 La figura 1 muestra todas las partes de la interface de Codesys aunque no todas se muestran al iniciar el programa 2. Arranque del programa.
Antes de empezar, si desea usar el idioma español como ambiente de trabajo, vaya a "Proyect/Options/Desktop" y allí configure el idioma español en la opción Language. Codesys permite vincular programas, pero para empezar, cada actividad que realicemos emplearemos únicamente proyectos nuevos Al crear un nuevo proyecto, Codesys le preguntará por el tipo de módulo que se va a generar, esto es sobre qué tipo de PLC va a aplicarse la programación. Para nuestro caso, como sólo vamos a simular, debemos elegir None.
Figura 2 Guía 1: Codesys: Codesys: Ladder - Ing. Mario Urrutia E.
1
A continuación debe elegirse el lenguaje de programación que vamos a utilizar. Para empezar, nuestro ejemplo será usando Ladder (LD). Note el nombre del módulo PLC_PRG el cual no debe ser modificado ya que garantiza la ejecución cíclica del programa
Figura 3 A continuación junto al panel Explorador de proyectos debe aparecer tres paneles: el panel de declaración de variables locales, el Panel de edición de programas y el Centro de mensajes los que se muestran en la siguiente figura:
Panel de declaración de variables locales
Panel Pa nel de Edici Edición ón de Pro Pro ram ramas as
Centro Ce ntro de mensa es
Figura 4 3. Programación.
La programación la podemos dividir en partes: – – – – –
Construcción del circuito Ladder Declaración de variables Asignación de variables al circuito Ladder Verificación del programa Simulación
3.1 Construcción del circuito Ladder
Para empezar y con el fin de mostrar sólo el proceso, se construirá el circuito Ladder más sencillo posible, esto es un contacto normalmente abierto (NA) conectado a una bobina. En el panel de Edición de Programas , haga click sobre el escalón en el que desea añadir el contacto NA:
Guía 1: Codesys: Codesys: Ladder - Ing. Mario Urrutia E.
2
Figura 5 Note la presencia, en el margen derecho, de un rectángulo con líneas discontinuas que indica que ese es el escalón seleccionado. En la Barra de instrucciones haga click sobre el contacto NA, el que inmediatamente se mostrará en el escalón:
Figura 6 Haga click en la línea del escalón a la derecha del contacto NA y repita el procedimiento para la bobina y obtendrá el resultado esperado:
Figura 7 Note que tanto el contacto NA de entrada como la bobina de salida no tienen asociada ninguna variable lo que se denota con ???. En el caso que desee añadir escalones antes o después del seleccionado, puede ir al menú Insertar
Red (antes) o Red (después) según sea el caso o usar los iconos respectivos: 3.2 Declaración de variables
Antes de declarar las variables veamos algunos conceptos relacionados con el Árbol de Organización del proyecto: •
•
•
•
Módulos POUs (Program Organization Unit): Tanto funciones como bloques de funciones y programas son POUs, los cuales pueden ser complementados por acciones. Cada POU consiste en una parte de declaración y un cuerpo. El cuerpo del programa se escribe en el editor del programa en alguno de los lenguajes de programación del IEC (IL, ST, SFC, FBD, LD o CFC). CoDeSys soporta todos los POUs del estándar IEC. Si se quieren usar estos POUs en el proyecto, se debe incluir la librería standard.lib en éste. Tipos de datos: en este apartado el usuario puede definir sus propios tipos de datos. Como por ejemplo: estructuras, tipos de enumeración y referencias. Visualizaciones: CoDeSys proporciona visualizaciones de modo que el usuario pueda mostrar las variables de su proyecto. Se pueden dibujar elementos geométricos offline, que en modo online, pueden cambiar su forma/color/texto en respuesta a valores especificados de las variables. Recursos: en este apartado se ayuda a configurar y a organizar el proyecto. Es posible entre otras tareas la definición de variables globales las cuales se pueden utilizar en todo el proyecto; la gestión de las librerías; la configuración de un sistema de alarma o la configuración del hardware del PLC. Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
3
Figura 8 Puede decirse que existen dos formas de declarar variables. La primera es la más sencilla, puesto que sólo se escribe las variables y su tipo, en cambio, en la segunda, a través de una ventana, se puede declarar, además del nombre y tipo, el valor inicial, la dirección de memoria, comentario, etc. Ambas formas puede llevarse a cabo para las variables locales o para las globales
i.
Primera forma:
Como se sabe, se puede trabajar con distintos tipos de variables. Inicialmente se utiliza variables globales ya que puedan ser utilizadas en todos los programas, funciones y bloques funcionales, por lo que se procede de la siguiente manera: En el Explorador de proyectos haga clic en la pestaña inferior Recursos:
Figura 9 Expanda la carpeta Variables globales y luego haga doble click sobre la opción Variables_globales lo que nos dará acceso la ventana respectiva donde podremos declarar las variables que se requiera.
Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
4
Figura 10 Haga espacio entre VAR_GLOBAL y END_VAR presionando INTRO y declare todas las variables globales que necesite. Para nuestro ejemplo, declare las variables Entrada y Salida de tipo booleano tal como se muestra en la figura 11:
Figura 11 Cierre la ventana Variables_globales. Ahora puede pasar al punto 3.3 Asignación de las variables al circuito Ladder , si es que no quiere revisar la segunda forma de declarar variables.
ii.
Segunda forma:
Para este caso, antes de escribir las variables, haga click derecho en cualquier punto de la ventana Variables_globales y elija Declaración de variables…
Figura 12 Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
5
A continuación se ha de mostrar la ventana Declaración de variables:
Figura 13 En la casilla Nombre colocamos el nombre de la variable (en nuestro ejemplo, Entrada), en el tipo de variable hay que elegir entre todos los tipos de variables que se usan en este tipo de programación (Bool). El valor inicial de la variable es un dato que ella tomará al momento de iniciar el programa. La dirección de la variable indica la ubicación dentro del PLC utilizada para manejar esta variable. Estas direcciones pueden ser de varios tipos, y está definida por el tipo de dato a emplear los cuales se pueden observar en la siguiente tabla: Variable a ingresar Entrada de un solo BIT Entrada tipo palabra Salida de un solo BIT Salida tipo palabra Memoria de un solo bit Memoria tipo palabra
Tipo de variables
Longitud de la variable
Palabra
Bit
%I
X
0
.1
%I
W
1
%O
X
0
%O
W
1
%M
X
2
%M
X
2
.1
.3
Descri pción
%IX0.1, corresponde a una entrada ubicada en el Bit 1 de la palabra 0 %IW1, corresponde a una entrada donde se maneja la palabra 1 completa %OX0.1, corresponde a una salida ubicada en el Bit 1 de la palabra 0 %OW1, corresponde a una salida donde se maneja la palabra 1 completa %MX2.3, corresponde a una memoria ubicada en el Bit 3 de la palabra 2 %MW2 ,corresponde a una memoria donde se maneja la palabra 2 completa
Tabla 1 Si se rellena los datos de la siguiente manera:
Figura 14 Se tendrá la siguiente declaración de variables:
Figura 15 Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
6
En este caso, como se trata de una simulación, no es relevante definir las direcciones de entradas y salidas pero en el caso de efectuar la programación para un PLC físico, sí es necesario. Es importante aclarar que para llevar a cabo este paso se hace necesario conocer bien la naturaleza de la variable a utilizar, si es digital o booleana (cero o uno), si es un entero, si es un real, si es una palabra, etc. 3.3 Asignación de las variables al circuito Ladder
Ya declaradas las variables hay que ubicarlas en el circuito Ladder. Haga click sobre el contacto NA y escriba el nombre de la variable anteriormente definida como Entrada y repita el mismo procedimiento con la bobina asignándole el nombre Salida.
Figura 16 3.4 Verificación del programa.
Una vez acabada la programación, se debe comprobar que no tenga errores ya sea de sintaxis o de uso Compilar todo: incorrecto de variables. Para verificar un proyecto, acceda al menú Proyecto
Figura 17 Los posibles errores de programación deben aparecer en el Panel de resultados , que para nuestro caso no existen como se ve en la figura
Figura 18 En el caso de que aparezcan mensajes de error, mediante un doble click sobre el mismo, se accederá directamente a la línea de programación donde se ha producido, en el Editor del programa. 3.5 Simulación.
Debe cumplirse necesariamente el Inicio de Sesión y posterior Inicio de la simulación y opcionalmente la simulación tipo Scada.
3.5.1 Inicio de sesión Debe acceder al menú En línea
Inicio de sesión:
Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
7
Figura 19 Aproveche verificar que la opción Simulación esté activada. Hecho esto, note como varían los paneles Declaración de variables locales y Editor de programa:
Figura 20 Nota: También puede usar la barra de iconos para iniciar y cerrar sesiones:
Figura 21 3.5.2 Inicio de la Simulación Para empezar el proceso de simulación, puede hacerlo de tres formas: presionar la tecla F5, acceder al menú En línea Inicio o presionar el ícono Inicio de la barra respectiva:
Figura 22 Ahora debemos determinar qué valores van a asignarse a las entradas, lo que puede hacerse de dos formas: Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
8
Primera forma: En el Editor de programa, si hace doble click sobre la Entrada, indicará que dicha entrada ha de tomar el valor “1” para la simulación, tal como se muestra en la figura:
Figura 23 Si nuevamente hace doble click sobre la Entrada, indicará que tomará el valor “0” para la simulación:
Figura 24 Si nuevamente hace doble click, la Entrada regresará a su posición original, es decir, no adoptará ningún valor. Para la simulación, la Entrada debe tomar el valor “1” y a continuación efectuamos la simulación Escribir escribiendo los valores asignados a las entradas y esto se hace accediendo al menú En línea valores o presionando Ctrl+F7 :
Figura 25 Note como la habilitación de la Entrada provoca la activación de la Salida. Para desactivar la Salida, primero debemos determinar que la Entrada debe ir a “0” haciendo doble click sobre ella y luego, para la simulación, presione nuevamente Ctrl+F7 . Segunda forma: En este caso se usa el panel de Declaración de Variables.
Figura 26
Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
9
Haga doble click sobre la Entrada y note como cambia el valor asignado (de FALSE a TRUE):
Figura 27 Para llevar a cabo la simulación, presione Ctrl+F7 :
Figura 28 Para salir de la simulación, cierre la sesión lo que puede hacerlo de tres formas: accediendo al menú En
línea
Cierre de sesión, presionando Ctrl+F8 o usando el ícono respectivo (
):
Figura 29 Es conveniente, antes de empezar una nueva programación, borrar todos los datos anteriores, es decir, Limpiar todo. eliminar los datos del PLC virtual y para ello acceda al menú Proyecto Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
10
Figura 30 3.5.3 Simulación con visualización (HMI) tipo Scada La simulación puede hacerse más entendible si es que se usa una interfaz HMI que Codesys ofrece a modo de un Scada de menor escala. Usando el mismo ejemplo, en el árbol de Organización del proyecto , seleccione la pestaña Visualizaciones lo que mostrará la siguiente ventana:
Figura 31 Haga click derecho sobre la carpeta Visualizaciones y elija Insertar objeto:
Figura 32 Asigne un nombre a la visualización que va a construir, en este caso, scada y presione Aceptar
Figura 33 Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
11
Debe presentarse una ventana enrejillada donde se va a construir el Scada. Note en la parte superior la barra de herramientas de dibujo que permite añadir diferentes objetos tales como rectángulos, elipses, polígonos, polilíneas, botones, etc, los cuales usaremos para este proceso.
Figura 34 En nuestro ejemplo, para la Entrada le asignaremos un botón por lo que hacemos click sobre dicho ícono, como lo muestra la figura 34, y en el panel de dibujo lo creamos como muestra la figura 35:
Figura 35 Para la Salida, usaremos un círculo como lámpara piloto
Figura 36 Ahora hay que configurar los parámetros de cada objeto. Para la Entrada, haga doble click sobre el botón y aparece la ventana Configurar elemento, donde en la opción Texto, escriba el texto INICIO como lo muestra la figura
Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
12
Figura 37 Ahora debemos configurar la variable que va a accionar el botón. Para ello elegimos la opción Entrada lo que muestra la siguiente ventana:
Figura 38 La opción Conmutar variable, permite que la entrada se comporte como un interruptor y la opción Palpar variable que se comporte como un pulsador. En nuestro ejemplo usaremos un interruptor y para ubicar la variable que lo accionará, colocamos un punto (.) en el cuadro de entrada Conmutar variable lo que mostrará un desplegable con todas las opciones de variables g lobales previamente programadas. En nuestro caso elegiremos Entrada, presionamos Intro y finalmente damos Aceptar.
Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
13
Figura 39 El procedimiento anterior (colocar un punto) sirve solamente cuando se usan variables globales. Si quiere visualizar todas las variables (globales y locales) coloque el cursor sobre el cuadro Conmutar variable y presione la tecla F2:
Figura 40 Para la lámpara piloto seguimos un procedimiento análogo. En nuestro ejemplo, dicha lámpara ha de mostrar un cambio de color cuando la Salida cambie de estado. Entonces haga doble click sobre el círculo y elija Colores:
Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
14
Figura 41 En la zona Color opción Interior debe seleccionar el color que aparece por defecto, esto es cuando la variable asignada se encuentre desactivada. En la zona Color de alarma opción Interior debe seleccionar el color cuando la variable se active. Para nuestro caso elegiremos el color verde oscuro para el primer caso y el verde claro para el segundo caso. Finalmente hay que asignar la variable que va a llevar a cabo esta función. En Categoría elegimos la opción Variables y en el cuadro Entrada desactivar , colocamos un punto (.) lo que desplegará todas las posibles variables globales previamente programadas. Seleccionamos Salida, presionamos Intro y damos a Aceptar .
Figura 42 Para llevar a cabo la simulación efectuamos el mismo proceso anterior, esto es, compilamos, iniciamos sesión y ejecutamos Inicio de simulación.
Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
15
Figura 43 Presionando el botón INICIO la lámpara cambiará de color. Note además cómo cambia el estado de las variables en la ventana de Declaración de variables y en el Editor de programa Ladder. Terminado el ejemplo, guárdelo con el nombre ejercicio1. 4.
EJERCICIOS:
4.1 Sistema de arranque y paro con enclavamiento ( archivo: ejercicio2)
Variables de entrada: – ON: pulsador NA – OFF: pulsador NC Variables de salida: – LAMPARA: Actuador.
Figura 44 Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
16
4.2 Lámpara con encendido temporizado. ( archivo: ejercicio3)
Variables de entrada: – ON: pulsador NA Variables de salida: – LAMPARA: Actuador. Bloque funcional: – TP1: Temporizador de pulsos
Figura 45 Para introducir un temporizador, primero cerciórese de que tiene cargada la librería respectiva. Para ello, en el Árbol de organización del proyecto, pestaña Recursos, haga doble click sobre el Administrador de Bibliotecas:
Figura 46 Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
17
El Administrador de bibliotecas debe mostrar las librerías disponibles.
Figura 47 En caso no hubiera ninguna librería o no estuviera la que necesite, presione la tecla Insert (Ins) y en la ventana que aparece elija la librería Standard.lib y presione Abrir.
Figura 48 Cierre el Administrador de bibliotecas y ahora para añadir el temporizador, haga click derecho sobre la línea del escalón elegido y elija Bloque de funciones :
Figura 49 Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
18
En Bloque de funciones estándar despliegue Timer y elija TP (FB):
Figura 50 4.3 Aplicación (archivo: ejercicio4).
En la pantalla del Scada indique qué hace el circuito Ladder
Circuito Ladder:
Figura 51
Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
19
Declaración de variables
Figura 52 Visualización Scada:
Figura 53 Arranque: Forma: Botón Texto: Arranque. Entrada → Conmutar variable → entrada6 Intermitente Forma: Círculo Texto: Intermitente Colores: Color → Interior: Gris Color de alarma: → Interior: verde claro Variables → Entradas desactivar → intermitente Valor del Contador: Forma: Rectángulo Texto: Contador %s Variables → Mostrar Texto → VALOR_CNT Barra de desplazamiento del Contador Forma: Rectángulo Colores: Color Interior: Rojo Marco: Rojo Movimiento relativo → Borde derecho → VALOR_CNT Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
20
5. PROBLEMAS
5.1 Se desea implementar un automatismo que evoluciona en función de tres entradas (A, B y C). Se debe activar una salida S0 cuando ninguna de las entradas está activa, una salida S1 cuando solamente una de ellas está activa y una salida S2 en cualquier otro caso 5.2 Diseñe un sistema de control con PLC para una lavadora doméstica que conecta una bomba para introducir agua en la máquina durante 100 segundos, se desconecta y conecta un calentador durante 50 segundos para calentar el agua. El calentador se desconecta y otra bomba vacía el agua de la lavadora en 100 segundos 5.3 Tras un pulso momentáneo del interruptor de arranque, las pelotas son empujadas una a una al interior de las cajas mediante un pistón. Cada diez pelotas un segundo pistón cambia la caja llena por una caja vacía en una operación que dura 3 segundos. A las 5 cajas llenas se activa una banda transportadora durante 5 segundos. Una vez transcurrido este tiempo la secuencia se repite Diseñe un programa que lleve a cabo el proceso antes descrito, considerando que si se vuelve a presionar el interruptor de arranque, mientras el proceso está en marcha el sistema no debe alterar su funcionamiento. Incluya un segundo interruptor para detener la secuencia en caso de emergencia (todo debe regresar a su estado inicial sin importar su posición)
Guía 1: Codesys: Ladder - Ing. Mario Urrutia E.
21