29 de marzo de 2011

Empezando con Rockwell: un vistazo desde Step7

En vista de que pronto tendré que enfrentarme a un PLC Rockwell he estado poniéndome al día. Hace tiempo que no programo uno, el último fue un SLC 500 hace ya unos añitos. Ahora me toca uno de la serie CompactLogix, más avanzado. Aún no dispongo del software de programación RSLogix5000 para trastear con él, pero en la web de Rockwell hay abundante literatura para ir echando un vistazo.

Para alguien que, como yo, se siente cómodo programando en Step7, Rockwell tiene el documento perfecto: “Guía para conversión de aplicaciones Simatic S7 a Logix5000” cuya lectura recomiendo (está en español). Esta entrada es un pequeño resumen de este documento con las características que más me han llamado la atención.

Una de las cosas que más me ha gustado es que trae tablas de equivalencia entre material de Rockwell y Siemens, aquí un extracto para los PLC S7-300:

Siemens S7-300Rockwell
313C L23 Serial
314C-DPL23 EtherNet/IP, L31
315-2 DPL32E, L32C
317-2 DPL35CR, L35E
317T-2 DPL43, L45
319-3 PN/DPL45, L61
(en amarillo están marcados los que me interesan).

En el documento hay más tablas con más PLC y tarjetas.

Hablando ya de las características de la programación, en el RSLogix5000 se estructura el programa en tareas (Task), que equivalen a los bloques de organización (OB) de Siemens:
  • Tarea continua de organización → OB de ciclo del programa
  • Tarea periódica → OB de interrupción cíclica
  • Tarea de evento → OB de interrupción hardware
Las tareas las ejecuta el sistema operativo (al igual que los OB en Step7). Una tarea puede contener uno o más programas. Cada programa contiene una sección de datos y una o más rutinas de código. A cada tarea se le puede asignar una prioridad. La tarea continua, si está presente, siempre tiene la prioridad más baja.

Un controlador Logix acepta una única tarea continua, pero no es obligatorio incluirla: se puede ejecutar todo el programa con tareas periódicas y/o tareas de evento.

La diferencia entre los conceptos programa y rutina de Logix no tiene un equivalente en Step7.

Si queremos encontrar en Siemens una estructuración de programa similar tenemos que irnos al Simotion Scout, cuyo Execution system es muy similar al Controller Organizer de Logix.

Otra diferencia fundamental es el modo de organizar la memoria. Los datos en Step7 tienen direcciones absolutas en áreas seleccionables de memoria. En Logix los datos se organizan en bases de datos de tags: no existe direccionamiento absoluto.

En Logix se pueden definir variables (tags) globales en la base de datos bajo el control del controlador y puede accederse a ellas mediante rutinas en cualquier parte del programa. Sin embargo, si definimos los tags bajo el control del programa solo pueden utilizar en rutinas en dicho programa.

En Logix, a una variable se le pueden asignar diferentes nombres mediante alias. Uno de los usos más evidentes es asignar nombres descriptivos a los tags que por defecto se asignan a las entradas y salidas.

En Logix existen cuatro lenguajes de programación:
  • Diagrama de lógica de escalera (LD) – comparable con el KOP (diagrama de contactos) de Step7
  • Texto estructurado (ST) – Equivalente al SCL de Step7
  • Diagrama de bloques de funciones (FBD) – Equivalente al CFC de Step7
  • Diagrama de función secuencial (SFC) – Comparable al hiGraph de Step7
No hay un lenguaje equivalente al AWL (STL) de Step7.

Una rutina en lenguaje LD se divide en rungs (peldaños), equivalente a los segmentos de Step7. Algunos programadores los llaman renglones, imagino por traducir mal rungs.

Si es necesario ejecutar funciones con paso de parámetros (lo que serían los FB en Step7), en Logix existen las instrucciones Add-on con área de datos privados.

Comparación entre las instrucciones Add-On y los FB:
  • Ambas se pueden llamar como funciones desde cualquier lugar del programa.
  • Ambas contienen un área de datos propios de datos estáticos (este área en el Add-on es totalmente privado).
  • En una instrucción Add-on no existe área de datos temporales.
  • Ambas tienen tres tipos de parámetros: entrada (paso por valor), salida (paso por valor) y entrada-salida (paso por referencia). El parámetro de paso por referencia es una gran ventaja puesto que permite que se pasen eficientemente grandes estructuras de datos.
Con la instrucción Add-On se puede configurar una rutina previa al scan para que se ejecute cuando el controlador cambia del modo de programación al modo run, o se activa en el modo run. Bajo estas condiciones, la rutina previa al scan se ejecutará una vez y normalmente se usa para inicializar los datos. Es algo similar a lo que hace el OB100 en Step7.

En Step7, al iniciar el ciclo de scan se lee la imagen de proceso de entradas, se ejecuta el programa y se vuelcan las salidas, de forma que durante un mismo ciclo de scan sus valores permancen constantes. Sin embargo en los sistemas Logix, las entradas y salidas se actualizan asíncronamente, con lo cual, si se necesita que las entradas/salidas se mantengan sin variación durante la ejecución del programa, deberá ser tenido en cuenta por el programador.

Internamente todos los tipos de datos enteros se tratan en 32 bits. Si usamos uno de 8 o 16 será convertido a 32, con lo que siempre es más eficiente usar DINT que INT o SINT (estos tipos de datos se proporcionan por compatibilidad con la norma IEC61131-3).

En Logix no hay punteros. Las matrices realizan la misma función que los punteros, pero son más simples y seguras.

Hasta aquí este resumen, seguramente me dejo conceptos importantes, pero ya los iré completando por el camino.

Cualquier comentario, como siempre, será bienvenido.

2 comentarios:

  1. Desde luego, por mi corta (ínfima) experiencia con Rockwell, de momento no se me parece en nada con Siemens. Me da la sensación de tener menos orden, pero vaya, así por encima

    ResponderEliminar
  2. Buenos dias, por el momento me estoy metiendo en el el tema del step7 pero no tengo mucha inrmacion y me gustaria saber si hay algun simulador para meterme mas en practica, veo que tu manejas bien el tema no se si me puedes ayudar, gracias mi correo es miltonleg@hotmail.co

    ResponderEliminar

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