Vinculación entre CodeSys y Factory IO
Para mostrar como vincular Codesys con Factory IO utilizaremos la escena de
Factory IO “From A to B” y aprovecharemos de recordar los pasos para el trabajo
con Codesys, haciendo un código básico del accionamiento de un motor con
enclavamiento y deasctivación con sensor óptico.
Para ello partimos abriendo Codesys desde el menú de Windows, que al ingresar a
Codesys, saldrán varios íconos, pero debemos buscar el que diga Codesys V3.5
SPXX Patch XX, número que dependerá de la versión descargada (se actualizan
bastante seguidos, pero no pierden funcionalidades para lo que se debe realizar en
esta actividad).
Al ingresar el programa seleccionamos realizar un nuevo proyecto, que llamaremos
“Test”, pero como ya teníamos uno con dicho nombre, aceptaremos la opción de
sobrescribir cuando consulte.
Tecnológico Nacional Iplacex
Luego seleccionamos la opción de COSESYS Control Win V3 x64, que es apto para
nuestro sistema operativo (en mi caso el procesador es de 64 bits, que es lo común
en PC actuales) y seleccionamos Diagrama de Contactos (LD), que selecciona
Ladder.
Tecnológico Nacional Iplacex
Además, abriremos la aplicación de Factory I/O y seleccionamos la escena “From
A to B”.
En dicha escena, seleccionamos la cámara 2, para poder manipular el sensor óptico
y el reflector, los cuales eliminaremos, seleccionándolos y presionando la tecla
“Supr” del teclado.
En su lugar dejaremos un sensor óptico difuso, ya que este sensor trabaja con lógica
positiva y no negativa como el anterior, lo que implica que podremos hacer el mismo
programa de manejo del Conveyor que se realizó en la semana 2. Si dejamos el
que viene por defecto, no funcionará con la lógica usada anteriormente, pues
debemos recordar que se usaba un contactor negado, por ende como el por defecto
trabaja con lógica negativa, lo activaríamos de forma inmediata y por lo general los
sensores entregan un valor lógico alto al activarse y no al revés, pero esto
dependerá del dispositivo entregado, por ende en la realidad, es muy importante
chequear la forma de activación de nuestros sensores, para ver con qué lógica
trabajan, pues de ello dependerá la forma de configurar por software la opresión de
nuestro sistema.
Tecnológico Nacional Iplacex
Antes de comenzar el código, activamos la casilla “Start PLC” del controlador de
Codesys para Windows y hacemos lo propio con el controlador para 64 bits. Los
cuales se accede en la barra de tareas al mostrar los iconos ocultos en la esquina
inferior derecha de la pantalla.
Ahora, realizamos un diagrama Ladder, el cual se activará con la Variable Inicio, se
detendrá cuando el sensor detecte la caja, variable que llamaremos Optico y al
accionamiento del conveyor llamaremos Motor.
Con esto se tiene:
Tecnológico Nacional Iplacex
Ahora, comenzaremos el vínculo para el trabajo con Factory IO, lo que implica que
los siguientes pasos son necesarios para que se logre el vínculo.
Seleccionamos con el botón derecho, en Application, la opción de agregar objeto y
seleccionamos Configuración de símbolos.
Y seleccionamos “Agregar”.
Tecnológico Nacional Iplacex
Con esto se agrega el objeto a nuestro programa y allí presionamos “Crear” que
compila el código.
Ya compilado, seleccionamos la casilla Variables Locales y si las expandimos,
veremos que nuestras variables se encuentran todas marcadas.
Tecnológico Nacional Iplacex
Ahora, volvemos a compilar. Este paso permite al software de programación
comunicarse con el servidor OPC y por lo tanto, reflejar estas variables en el Factory
I/O. Por ende, si estamos modificando el programa, borramos alguna variable o
creamos otra, debemos pinchar con el puntero del mouse el panel de Configuración
de Símbolos, compilar y seleccionar nuestras nuevas variables, luego, volvemos a
complilar. En caso de que se haya eliminado una variable, esta se muestra en rojo
en esta pestaña y si la desmarcamos, desaparece, si la hemos borrado de las
variables del programa.
Ahora, para configurar el servidor OPC, primero preparamos el dispositivo para que
se vea en nuestra red. Para lo cual hacemos doble clic sobre Device en el árbol del
costado izquierdo del software.
Luego, entramos a la red virtual, seleccionando examinar.
Tecnológico Nacional Iplacex
Allí seleccionamos nuestro dispositivo y presionamos aceptar, pero primero
debemos recordar la dirección de éste, que para el caso mostrado en la imagen es
de 0301.A115, pero en su caso puede ser distinto, dependiendo de su equipo, ya
que se asigna de forma automática por el software.
Cuando se configura por primera vez, Codesys pedirá que cree un usuario y
contraseña para el control del dispositivo:
Luego en la misma pestaña Devive, seleccionamos Derechos de acceso (ver flecha)
y actualizamos en el ícono verde de la esquina superior derecha de la ventana que
aparece (Ver círculo rojo):
Tecnológico Nacional Iplacex
Aquí buscamos la opción OPC UA Service (ver flecha roja) y verificamos que esté
activado el usuario anónimo, con las tres cruces en verde:
Si no estuviese habilitado, se debe ir a la pestaña Device en configuración de la
comunicación y se selecciona la pestaña dispositivo y en el menú colgante se va a
cambiar políticas en tiempo de ejecución:
Tecnológico Nacional Iplacex
Allí se configura una nueva política y se habilita Configuración de usuarios opcional
y se marca la casilla de Permitir inicio de sesión anónimo:
Con lo que se habilita la comunicación y ahora debiésemos ver la pantalla que se
mostró anteriormente:
Tecnológico Nacional Iplacex
Volvemos a compilar, para que se actualicen los cambios realizados y
aprovechamos de guardar lo que hemos hecho hasta el momento.
Ahora, damos clic en Iniciar la aplicación (símbolo que parece una rueda de
engranaje).
Puede que salga una advertencia dado que tenemos activo nuestro PLC Virtual,
pero no habíamos descargado nada, por ende, aceptamos para descargar el código
a nuestro PLC.
Con esta acción el PLC virtual comienza a funcionar, pero está detenido, por ende,
iniciamos el modo RUN, presionando el botón de Play o F5 (Inicio).
Tecnológico Nacional Iplacex
Volvemos ahora al Factory I/O, donde vamos a File y seleccionamos Drivers
Estando allí seleccionamos, OPC Client DA/UA.
Tecnológico Nacional Iplacex
Luego aparecerá una pantalla que avisa que no se encuentra servidor, pues no lo
hemos activado aún, por ende, vamos a la opción de Configuración.
Allí presionamos Browse Server y esperamos que identifique lo que tenemos en
nuestro equipo.
Tecnológico Nacional Iplacex
Cuando los detecta, seleccionamos el de Codesys OPC UA que nos aparezca:
Esta acción, hace que las variables que seleccionamos en el Codesys estén visibles
a través del servidor OPC y las veamos en el Factory, por ende, volvemos a éste
último y presionamos Browse en la parte de Items/Nodes
Tecnológico Nacional Iplacex
Al volver a Driver, veremos un cuadrado que representa a nuestro servidor OPC y
en él estarán las variables que declaramos, luego arrastramos y hacemos calzar las
variables del Factpry I/O en nuestro bloque OPC, dejando Inicio en Factory I/O
(Running) para que programa parta al iniciar la simulación, ya que no hay un botón
que dé inicio en este ejemplo, luego el sensor difuso lo arrastramos a nuestra
variable Optico y el conveyor lo asociamos al motor.
Ahora, volvemos a la pantalla principal del Factory I/O, seleccionamos View y la
opción Dock All Tags, verificando que no hayan forzadas entradas o salidas.
Tecnológico Nacional Iplacex
Luego ajustamos las ventanas de ambos programas para que se vean al mismo
tiempo.
Y presionamos el botón de Play del Factory I/O, con los que se ejecuta nuestra
aplicación y podemos ver como se accionan las variables en el Ladder, al mismo
tiempo que en la simulación del Factory I/O.
NOTA 1: En caso de que esté alguna variable forzada, presionar play y seleccionar Release para
desactivarla.
Para finalizar la simulación, presionamos el botón de stop primero en el Factory I/O
y luego el en Codesys. Además, salimos del modo RUN presionando Salida o
engranaje con una X roja.
Tecnológico Nacional Iplacex
Al realizar esta última opción, volvemos al modo de diseño, por lo cual podemos
realizar cambios a nuestro diagrama ladder.
Si hemos hecho una modificación y queremos volver a simular en el Factory I/O,
debemos compilar nuevamente, verificar las variables en la Configuración de
símbolos, sólo si quitamos o agregamos variables.
Y al volver a colocar el PLC virtual en modo RUN, nos indicará lo que muestra la
imagen siguiente, a lo cual seleccionamos la primera opción.
Con ello modificamos lo que muestra el PLC virtual, por ende, en Factory IO,
volvemos a los drivers y entramos en la configuración. Presionamos Browse Server,
seleccionamos none y luego seleccionamos el OPC de Codesys.
NOTA 2: Es importante modificar los sensores en el Factory I/O pues como hemos puesto un
contacto normalmente cerrado (que es una negación al estado de una variable) y el sensor por
defecto está activo (nivel alto) cuando no pasa una caja, en nuestro Ladder, esta variable estaría
deshabilitada, por ende, el programa no funcionaría. En caso de que la escena tenga muchos
sensores de este tipo, debiésemos decláralos como contactos abiertos en el programa del PLC, pues
como están accionados, al iniciar el programa, la variable estará en nivel alto, por ende, accionada
(en azul en el ladder al rutear el código), que es lo que queremos, por eso se forzaba al contacto a
estar cerrado, pues así el accionamiento dependía sólo de inicio.
Tecnológico Nacional Iplacex