14 de agosto de 2011

Probando los Add-Ons de Logix: control de cilindro neumático de doble efecto

En esta entrada programé un control para cilindros neumáticos de doble efecto en Step7. Ahora, aprovechando la configuración que preparé en las dos entradas anteriores, voy a traducir el mismo código a Logix. Para ello voy a programar un Add-On, que es lo que viene a ser el equivalente a los bloques de función (FB) de Step7.

Voy a conservar la funcionalidad: los parámetros de entrada y salida se llaman igual en ambos sistemas y tienen exactamente la misma función. Lo único que cambia es el formato de los tiempos: en Step7 son en formato #Time y en Logix son DINT expresados en milisegundos.

Empezamos creando y configurando un proyecto en el RSLogix 5000. A continuación, para crear un Add-On vamos al árbol de proyecto y sobre la carpeta Add-On Instructions, con el botón derecho del ratón, pulsamos sobre New Add-On Instruction...


Aparecerá una ventana donde deberemos darle un nombre y, opcionalmente, una descripción, número de versión, etc.



Si hemos dejado marcada la casilla Open Definition, se abrirá la ventana Add-On Instruction Definition, donde podremos especificar los parámetros de entrada y salida, las variables (tags) locales y una descripción extendida a modo de ayuda.

En la siguiente captura muestro los parámetros de entrada / salida configurados:


Las variables locales al Add-On necesarias:


Y una descripción del funcionamiento del Add-On:


Respecto al código, no voy a detallarlo aquí pues quedaría demasiado largo. Es muy similar al código de Step7, adaptado, claro está, a las perculiaridades de Logix. Al final de esta entrada pondré un enlace al Add-On exportado a un fichero en formato L5X (XML).

Al crear el Add-On, en el árbol de proyecto bajo Data Types -> Add-On-Defined, veremos que aparece un nuevo tipo de dato con el mismo nombre que el Add-On.


En él figuran todos los parámetros de entrada (Input), salida (Output) y entrada/salida (InOut). En las variables del controlador (Controller Tags), por cada cilindro neumático que pretendamos controlar deberemos declarar una variable de este tipo. En este ejemplo he declarado un tag llamado CIL_DOSIFICADOR.


Para usar el Add-On en el programa la forma de proceder será:
  1. Asignar valores a los parámetros de entrada del tag correspondiente al cilindro.
  2. Hacer la llamada al Add-On con el tag correspondiente.
  3. Leer los parámetros de salida en el mismo tag.
Por ejemplo, en la siguiente captura de pantalla asigno las entradas de origen y avance del cilindro, hago la llamada al Add-On y finalmente activo las salidas correspondientes al cilindro:


El resto de parámetros los he forzado estando On-Line con el SoftLogix.

En Step7 la asignación de parámetros de entrada/salida es más visual pues se hace en la misma llamada al FB. En Logix debe hacerse por separado. Personalmente prefiero la forma en que lo hace Step7, aunque la funcionalidad es la misma en ambos sistemas.

El código de mi Add-On lo puedes descargar aquí. Para incorporarlo a un proyecto debes ir al árbol de proyecto y sobre Add-On Instructions, con el botón derecho del ratón seleccionar Import Add-On Instruction...


Y hasta aquí mi primer contacto con un Add-On en Logix. Como siempre, cualquier comentario será bienvenido.

2 comentarios:

  1. Hola

    Lo que no me gusta nada es el paso previo de inicializacion de parametros de la instruccion antes de llamarla. Aunque al final el resultado es modular, como en Siemens, se pierde la inmediatez de verlo todo a la vez.

    Pronto tendré que programar mi primera planta usando RSLogix y Factory Talkview. Este articulo y los previos de Allen Bradley me vienen fenomenal.


    Un saludo

    ResponderEliminar
  2. Hola Ragundo,

    coincido contigo en la apreciación, en RSLogix las funciones con parámetros no son tan visuales como en Step7, pero es cuestión de acostumbrarse.

    Tengo pensado escribir algo sobre Factory Talk View ME, aunque a partir de ahora estaré un poco pillado de tiempo y no sé cuando será.

    Un saludo y gracias por tus comentarios.

    ResponderEliminar

Por favor, no pidas copias de programas comerciales, licencias o números de serie.