SFC Codesys
SFC Codesys
AREA DE AUTOMATIZACIÓN
Contenido
1. SFC EN CODESYS 3
1.1. Instalación 3
1.2. Primeros pasos 3
2. COMPONENTES BÁSICOS 8
2.1. Inicio de ciclo 8
2.2. Etapas 8
2.3. Transiciones 8
2.4. Operaciones lógicas 9
1.1.1. Direccionamiento 9
1.1.2. Proceso simultáneo 9
1.1.3. Salto 10
3. ACTIVACION Y DESACTIVACION DE VARIABLES Y TRANSICIONES. 10
3.1. Activación y desactivación de variables en las etapas 10
1.1.4. Modo de programación 1 11
1.1.5. Modo de programación 2 11
3.2. Activación de transiciones 12
4. CONEXIÓN CODESYS CON FACTORY I/O 13
5. EJEMPLO PROYECTO 17
AREA CURRICULAR INGENIERIA ELECTRICA Y CONTROL
AREA DE AUTOMATIZACIÓN
1. SFC EN CODESYS
1.1. Instalación
CoDeSys (Sistema de Desarrollo de Controladores) es un entorno de desarrollo para la
programación de controladores conforme con el estándar industrial internacional IEC 61131-3.
CoDeSys puede ser descargado directamente de la página
https://store.codesys.com/?___store=en, sin embargo, es recomendado descargar la versión
proporcionada por Festo. Lo anterior se debe a que la versión proporcionada por Festo no presenta
problemas de conexión con la plataforma Factory I/O.
Allí se aprecia la sección Operaciones base, en ella se presentan tres opciones, para el caso de
crear un nuevo proyecto se debe seleccionar la opción “Nuevo proyecto”:
Al hacer click en la opción de “Nuevo proyecto” aparecerá una ventana emergente, en la cual se
podrá poner el nombre del proyecto y seleccionar la ubicación del archivo (para la ubicación es
recomendado crear una carpeta para cada proyecto a realizar):
Allí, se debe seleccionar el dispositivo en el cual se desea montar el proyecto, en este caso la
opción recomendada es CODESYS Control Win V3, sin embargo, puede variar de computador a
computador, por lo anterior, se recomienda dejar el dispositivo que el programa selecciona por
defecto. Luego, en la parte inferior se puede seleccionar el lenguaje de programación a usar, en
este caso, se utiliza SFC. Finalmente, se da click en aceptar.
Al crear el proyecto, en la parte izquierda se puede apreciar la barra de dispositivos, allí debe
aparecer habilitada la sección Application, donde se encuentra la sub – sección PLC_PRG (PRG)
como se muestra en la siguiente figura:
AREA CURRICULAR INGENIERIA ELECTRICA Y CONTROL
AREA DE AUTOMATIZACIÓN
Al abrir la sub – sección PLC_ PRG (PRG) deben desplegarse dos ventanas, en la parte central
superior, el espacio para la definición de variables y en la parte central baja el bloque que Codesys
trae por defecto, como se muestra en la siguiente figura:
En la parte superior, se puede seleccionar dos formas de ingresar las variables, la primera es en
forma de tabla, donde sólo es necesario llenar el campo de “Nombre”.
En el modo de visualización “Texto”, es necesario escribir todos los datos de la variables, es decir, si
la variable1 es de tipo bool, además de la variable, deberá agregar “:” y escribir BOOL;.
AREA CURRICULAR INGENIERIA ELECTRICA Y CONTROL
AREA DE AUTOMATIZACIÓN
2. COMPONENTES BÁSICOS
2.1. Inicio de ciclo
En Codesys, la etapa inicial o etapa 0, está dada por la etapa Init.
2.2. Etapas
Las etapas en el Codesys se denominan Pasos, y se pueden seleccionar desde la barra
de tareas superior o la barra de herramientas lateral derecha.
AREA CURRICULAR INGENIERIA ELECTRICA Y CONTROL
AREA DE AUTOMATIZACIÓN
2.3. Transiciones
Las transiciones en Codesys se denominan Trans1, Trans2, etc. Estas se pueden
seleccionar desde la barra de herramientas que se encuentra la zona derecha.
1.1.3. Salto
Caso particular de divergencia O donde existe un camino que conecta una etapa
con otra que es anterior o posterior en una estructura serie, se puede generar a
través de la sección de herramientas en de la barra lateral seleccionando primero
la opción rama, luego seleccionando la opción salto.
NOTA: Es importante notar que para la programación de variables analógicas es necesario usar el
modo 1, debido a que el modo 2 solo soporta variables booleanas.
2. Allí aparecerá una ventana de cómo desea que se llame la lista. Seleccione el nombre que
desea usar y de click en agregar
3. De manera similar a lo visto en la sección “1.2. Primeros pasos”, se programan las variables
del programa. Luego de programar las variables se da click en “Compilar”. NOTA: Es
necesario que el programa no presente errores, debido a que, si presenta errores, la
compilación no será posible.
5. Luego, se repite el proceso del punto 1, esta vez, se agrega “Symbol configuration”, no se
cambia ningún parámetro y se agrega.
5. EJEMPLO PROYECTO
5.1. Descripción del proceso
En Codesys se desarrolló un proyecto en el cual, se realiza la separación de tres elementos, materia
prima (MP), bases (B) y tapas (T), mediante el uso de diferentes sensores y actuadores.
1. El proceso podía seleccionar entre modo manual y modo automático, para propósitos de
esta práctica solo se programó el modo automático, el cual comienza con la activación del
sensor de la banda de entrada del proceso, el cual se activa al detectar un elemento sobre
la banda.
2. Luego, el elemento cruza un sensor análogo el cual envía una señal entre 1 y 6 para
determinar si es una base, tapa o materia prima, debido a que se trabaja con dos colores,
las variables para los elementos medidos se duplican, en este ejercicio no se tiene en
cuenta el color, solamente la forma.
3. Según el elemento, se puede generar tres posibilidades:
a. Si es materia prima, es descartada mediante la tercera banda, para esto, se acciona
una banda auxiliar 3, y un brazo 3 que genera el desvío de la materia prima, luego
de que el elemento se encuentra en la banda auxiliar 3 y es detectado por el
sensor de esta, el brazo vuelve a su posición inicial y el proceso regresa al punto 2.
b. Si el elemento es una base, se realiza el mismo proceso del punto a. con la banda
auxiliar 2 y el brazo 2.
c. Si el elemento es una tapa, se realiza el mismo procedimiento de los literales a. y
b.
4. Cuando el sistema detecta que hay una base y una tapa en las bandas auxiliares 1 y 2, se
realiza el paso a la etapa de ensamblado.
5. Para esta etapa, se utilizan dos sensores, los cuales al detectar que hay una tapa y una
base, envían una señal para que los topes que se encuentran obstaculizando las bandas
auxiliares 1 y 2 se desactiven y automáticamente se activen las bandas que hacen parte del
proceso de ensamblado.
6. Las bandas auxiliares se encuentran activas por unos 5 segundos, al tiempo, se encuentran
dos acomodadores, los cuales reacomodan las piezas para que el brazo ensamblador
pueda seleccionar una y estas queden justas para el ensamblado.
7. En el momento en el que los dos acomodadores se desactivan, se activa el brazo
ensamblador, cabe resaltar que este trabaja con tres variables, movimiento en el eje X,
movimiento en el eje Z y succión. De esta manera, se activa primeramente el movimiento
en el eje X, un segundo después el movimiento en el eje Z (esto se hace para evitar
AREA CURRICULAR INGENIERIA ELECTRICA Y CONTROL
AREA DE AUTOMATIZACIÓN
choques con los elementos), y finalmente cuando el brazo indica que ha llegado a su
posición máxima en ambos ejes, procede a realizar la succión de la tapa.
8. Al realizar la succión de la tapa, debe esperar al menos un segundo antes de comenzar a
realizar el proceso de devolución, esto se debe a que es necesario que el brazo seleccione
adecuadamente el elemento.
9. Se realiza el proceso de devolución, de manera similar al literal 7., sin embargo, se debe
tener presente que en este caso el primer eje en desactivarse no es el eje X sino el eje Z,
debido a que es importante evitar que el brazo se choque con los bordes de las bandas.
10. Finalmente, cuando ya se ha obtenido el producto, se levanta el acomodador y se activa la
banda para el siguiente proceso. Se repiten los pasos desde el literal 4., hasta que el
proceso se detenga.
5.2. Programación
5.2.1. Definición de las variables globales
Debido a que el proceso desde un inicio se pensaba simular con la herramienta Factory I/O, se
realizó todo el proceso explicado en la sección 4 del presente documento. Por lo anterior, se realizó
la definición de las variables de manera global desde un inicio, como se muestra a continuación:
NOTA: no es necesario realizar tantos temporizadores, existe una opción en Codesys, en la cual en
la transición se pone el siguiente comando: Step#.t>T#(tiempo deseado)s y este habilita el
siguiente Step una vez el tiempo se haya cumplido.
5.2.3. Programación
1. En la primera etapa de programación, se programa un reset en el estado Init, esto se debe
a que se busca que todo el proceso se encuentre reposo. Para el Step1, el proceso debe
tener el modo seleccionado, en este caso, debe estar en cero y activarse el botón de start,
en este punto mantiene el estado de reposo hasta que el sensor de entrada se activa se
pasa al Step2, se activan las bandas de entrada y principal.
AREA CURRICULAR INGENIERIA ELECTRICA Y CONTROL
AREA DE AUTOMATIZACIÓN
2. Cuando el elemento pasa por el sensor seleccionador, se envía una señal y se habilita una
de las tres bandas auxiliares, con su respectivo brazo, este paso se encuentra activo hasta
que el sensor de la banda auxiliar es activado, luego se espera un segundo para que se
pueda realizar el proceso de conteo y se regresa de manera automática al Step2.
3. Al tiempo que se realiza el salto al Step2, se realiza un sondeo, donde se observa si los
sensores de B y T se encuentran activos, en caso de no encontrarse activos, se habilitan los
topes que impiden el inicio de la etapa de ensamblado. En caso de encontrarse ambos
sensores activos, se habilita el Step11, donde se deshabilitan los topes y se permite el paso
de ambos materiales a la etapa de ensamblado, habilitando las bandas para este fin.
Cuando ambos elementos han pasado a la etapa de ensamblado se habilitan nuevamente
los topes y se espera un tiempo hasta que los elementos se encuentren correctamente
posicionados en los acomodadores, activándolos.
AREA CURRICULAR INGENIERIA ELECTRICA Y CONTROL
AREA DE AUTOMATIZACIÓN
6. SIMULACIÓN
Para la simulación, se realizó el siguiente montaje en la plataforma Factory I/O.
7. REREFENCIAS
CoDeSys. (s. f.). CODESYS. https://www.codesys.com/
Festo. (2012). Controlador Festo.
https://www.festo.com/net/SupportPortal/Files/584993/CMXR-C2-CoDeSys_2012-05a_57
1701e1.pdf
Games, R. (s. f.). Setting up CODESYS OPC DA - Factory I/O - Documentation. FACTORY I/O.
https://docs.factoryio.com/tutorials/codesys/setting-up-codesys-opc-da/
Guía rápida para CODESYS. (2021, 18 enero). HBM.
https://www.hbm.com/es/4478/guia-rapida-para-codesys/