3.- Autómatas programables.-Los autómatas programables ya no se pueden definir solamente como los controladores de máquinas secuenciales, que ejecutan un programa en lenguaje de estados. En la última década en el campo de la Automatización Industrial se ha incorporando toda una gama de nuevas funcionalidades, que han superado el tradicional concepto de controlador secuencial, para pasar a realizar funciones especializadas como regulación de procesos continuos, comunicación mediante redes industriales, incorporar novedosos sistemas de cableado distribuido mediante los buses de campo. En el mercado se dispone de módulos especializados en pesaje, control de ejes, identificadores de productos…
Figura 28. Nuevas funciones de los autómatas programables
No solo se han producido avances en los lenguajes de programación sino también en los sistemas de ejecución de los programas. Un programa de aplicación de autómata se estructura en tareas. Estas tareas pueden ser del tipo:
- Tarea maestra:
La tarea maestra siempre está presente y puede ser cíclica o periódica. En ella se efectúa el tratamiento de la mayor parte del programa de aplicación. La tarea maestra está organizada según lo descrito anteriormente: lectura de entradas, ejecución del programa de aplicación y escritura de las salidas. En esta tarea es donde se programa el clásico tratamiento secuencial.
- Tarea rápida:
La tarea rápida se programa opcionalmente. Su ejecución es más prioritaria que la tarea maestra, y es periódica, dado que si fuera cíclica impediría la ejecución de la tarea maestra de menor prioridad. Los programas asociados a esta tarea deben ser de corta duración para no retardar la ejecución de la tarea maestra.
- Tareas de eventos:
Tratamientos de eventos, ejecutados por el sistema al aparecer un evento en un módulo de entradas, en un contaje rápido… Estos tratamientos se programan opcionalmente y son utilizados en aplicaciones que necesitan tiempos de respuestas muy cortos para actuar sobre las salidas.
- Tareas auxiliares:
En algunos modelos de autómata existen las llamadas tareas auxiliares que se ejecutan con prioridad más baja que la tarea maestra. Son tareas destinadas a los tratamientos más lentos como son la medida, la regulación, el diálogo operador, la ayuda al diagnóstico.
Figura 29. Ejecución de tareas en un autómata programable.
La prioridad de ejecución de las tareas es, de mayor a menor:
- Tareas de eventos.
- Tarea rápida.
- Tarea maestra.
- Tareas auxiliares.
- Operaciones de sistema.
Figura 30. Estructura unidad central del autómata Premium.
La evolución en el hardware de los autómatas también ha sido notable. La estructura interna ha pasado de ser monoprocesador a multiprocesador con procesadores especializados en tareas específicas de comunicación, de cálculo booleano, de control de entradas/salidas…. En las gamas altas, con el objeto de mejorar la seguridad de funcionamiento, se pueden encontrar modelos con doble unidad central, donde la segunda unidad garantiza la continuidad del control en el caso de que falle la unidad maestra.
La arquitectura ha evolucionado desde los primeros autómata Compactos, pasando por autómatas semicompactos con rack para conectar tarjetas, llegando a autómatas multirack que pueden distribuir sus módulos de entrada/salida no solamente en el rack de la unidad central sino en racks remotos. Los sistemas de cableado tradicionales hilo a hilo van siendo sustituidos por módulos de entrada/salida distribuidas o por buses de campo como el AS-i Interface que permiten la conexión directa de captadores y accionadores.
Lenguajes de programación de autómatas:
Junto con la evolución hardware de los autómatas se ha producido una evolución paralela de sus sistemas de programación. Los primeros lenguajes desarrollados fueron la lista de instrucciones y el lenguaje de contactos. El lenguaje de lista de instrucciones se puede considerar una herencia de la arcaica programación en ensamblador a la que se le añadieron paulatinamente instrucciones de lectura de entradas y escritura de salidas digitales, instrucciones de manejo de bloques funcionales. Aunque parezca extraño, es un lenguaje que ha tomado una posición que precisamente no se puede calificar de minoritaria en el mercado, sino todo lo contrario. Marcas como Siemens lo siguen suministrando como opción principal y existe un gran número de programadores que lo utilizan e incluso lo prefieren. Sus partidarios dicen que permite un mayor control de la máquina, sus detractores opinan que ese mayor control se refiere al autómata, no a la máquina o proceso controlado. En definitiva, aleja al programador del problema real.
El lenguaje de contactos imita el funcionamiento de los circuitos basados en relés eléctricos. Tiene la ventaja de que es un lenguaje fácil de asimilar por el operador en planta, además de que resulta muy fácil depurar el funcionamiento de los programas. Sin embargo no resulta adecuado para el desarrollo de grandes aplicaciones. El lenguaje de contactos se debe considerar el más universal de todos, dado que lo incorporan prácticamente todos los fabricantes de autómatas.
Una de las primeras implementaciones industriales de las redes de Petri es el lenguaje de programación de autómatas Grafcet. El Grafcet un lenguaje gráfico que permite realizar la implementación programada de redes de Petri binarias que no posean arcos inhibidores. El Grafcet ha contado con un gran apoyo por parte del gobierno y de los fabricantes franceses entre ellos Telemecánica.
Un Grafcet es un diagrama funcional cuyo objetivo es describir de forma gráfica el comportamiento de un automatismo secuencial. Un Grafcet esta definido por una serie de elementos gráficos (etapas y transiciones) y unas reglas de evolución que reflejan la dinámica del comportamiento del sistema. El Grafcet se desarrolló en las décadas de los setenta y ochenta siendo en esta última cuando se incorpora el concepto de macroetapa.
Estos tres lenguajes junto con el texto estructurado, de sintaxis similar al Pascal, y el Diagrama de bloques funcionales han sido estandarizados en la norma IEC 61131 que intenta unificar el sistema de programación de todos los autómatas en un único estándar internacional. En el año 1979 la Comisión Internacional Electrotecnia (IEC) designa al Comité de Investigación 65A para la definición de una norma específica referente a los autómatas programables industriales. El objetivo de este comité era responder a la complejidad creciente de los sistemas de control y a la diversidad de autómatas incompatibles entre sí, de forma que se convergiera a un único estándar de programación y desarrollo de aplicaciones de autómatas programables. De dicho comité se definió la norma 61131 cuyos diversos apartados son:
- IEC 61131-1 (1992-10).
Autómatas programables. Parte 1: Información general.
- IEC 61131-2 (1992-10).
Autómatas programables. Parte 2: Especificaciones y ensayos de los equipos.
- IEC 61131-3 (1993-03).
Autómatas programables. Parte 3: lenguajes de programación.
- IEC/TR3 61131-4 (1995-03).
Autómatas programables. Parte 4: Guías del usuario.
Todas estas normas se encuentran actualmente en revisión.
Además se están definiendo las siguientes:
- IEC 61131-5 Ed. 1.0.
Autómatas programables. Parte 5: Comunicaciones.
- IEC 61131-6 Ed. 1.0.
Autómatas programables. Parte 6: Comunicaciones vía buses de campo.
- IEC 61131-7 Ed. 1.0.
Autómatas programables. Parte 7: Programación del control Fuzzy.
- IEC 61131-8 TRTR Ed. 1.0.
Guías para la aplicación e implementación de lenguajes para autómatas programables.
La norma define los lenguajes de programación de autómatas:
- Gráfico secuencial de funciones (Grafcet).
- Lista de instrucciones.
- Texto estructurado.
- Diagrama de contactos.
- Diagrama de funciones.
La lista de instrucciones (IL o AWL) es un lenguaje de bajo nivel, similar al lenguaje ensamblador. Solo se permite programar una operación en cada línea. Este lenguaje es adecuado para pequeñas aplicaciones y para optimizar partes de una aplicación.
El texto estructurado (structured text o ST) es un lenguaje de alto nivel que posee una sintaxis parecida al Pascal. El ST puede ser empleado para realizar rápidamente sentencias complejas que manejen variables con un amplio rango de diferentes tipos de datos, incluyendo valores analógicos y digitales. También se especifica tipos de datos para el manejo de horas, fechas y temporizaciones, algo importante en procesos industriales. El lenguaje posee soporte para bucles iterativos, ejecuciones condicionales y funciones matemáticas
El diagrama de funciones (function block diagram o FBD) es un lenguaje gráfico que permite programar elementos que aparecen como bloques para ser cableados entre sí de forma análoga al esquema de un circuito. FBD es adecuado para muchas aplicaciones que involucren el flujo de información o datos entre componentes de control.
El estándar también define una nueva arquitectura para la organización e interacción de tareas en los autómatas programables.
En los lenguajes de programación de autómatas se han incorporado bibliotecas de funciones que desde siempre han estado disponibles en los lenguajes de programación de ordenadores. El programador puede utilizar las funciones matemáticas clásicas, funciones de manejo de tablas, funciones de conversión numérica, funciones de diálogo operador. Se abre la posibilidad de que las tareas de gestión y cálculo sobre los datos, normalmente asignadas a un computador, se programen en autómatas. Existen instalaciones donde un autómata, denominado de gestión, recibe las ordenes de producción las procesa y se las transmite a los autómatas de control, a la vez recoge datos de planta y convenientemente tratados se los envía al ordenador central.
Un paso más allá ha sido la incorporación de funciones orientadas a la gestión de la comunicación, al diálogo con los módulos de control de ejes, con módulos de pesaje, función de control PID programable, y módulos de control PID configurables.
Algunas casas han sacado al mercado Kits de desarrollo que permiten programar los autómatas en el clásico lenguaje C. Estos Kits añaden al lenguaje las funciones necesarias para tratar con los objetos de autómata (entrada/salida, memoria, sistema, constantes…). Hay que observar que puede ser una buena opción pero realmente no ha tenido una gran difusión, siendo en la práctica no muy utilizada.
Casi todos los fabricantes de autómatas han desarrollado los drivers para OPC (Ole for Process Control). Estos drivers permiten que aplicaciones de ofimática como Access o Excel se comuniquen de una forma sencilla con los autómatas programables. La comunicación se establece solamente con añadir un objeto tipo OLE a los documentos creados en el ordenador. Los objetos OLE se comunican con variables de memoria del autómata en procesos de lectura o escritura.