Arriba

 

INTRODUCCIÓN A LA NORMA IEC 1131-3

Traducido por: Ing. José Manuel Fernández

Un Recurso de Programación Normalizado

La Norma IEC 1131-3 es el primer esfuerzo real para normalizar los lenguajes de programación usados en automatización industrial.

El IEC 1131-3 es la tercera parte de la familia de normas IEC 1131, la cual consiste de:

Parte 1: Vista General
Parte 2: Hardware
Parte 3: Lenguajes de programación
Parte 4: Directrices al usuario
Parte 5: Comunicación

La parte 3 del IEC es el resultado de la fuerza de tarea número tres dentro del IEC TC65 SC65B, la cual esta encargada de lenguajes de programación, donde han participado 7 empresas internacionales añadiendo 10 años de experiencia en el área de automatización industrial. El resultado ha sido 200 páginas de texto, con 60 tablas incluyendo tablas de características, con la especificación de la sintaxis y semántica de un suite unificado de lenguajes de programación, incluyendo el modelo de software global y sus lenguajes estructurantes.

Una visión elegante de ver la norma es dividiéndolo en dos partes (ver figura 1)

  1. Elementos comunes
  2. Lenguajes de programación

Analicemos estas partes con mas detalles,

Elementos Comunes

Tipificación de datos

Los tipos de datos son definidos dentro de los elementos comunes. La típificación de datos previene errores en etapas tempranas. Es usada para definir los tipos de cualquier parámetro a ser utilizado. Esto evita por ejemplo dividir una Fecha por un Entero.

Tipos de datos comunes son: Binarios (Booleanos), Enteros, Reales, Octetos (byte), Palabras (doble octeto), así como también Fechas, cadenas tipo Hora_del_Día. Basado en estos tipos de datos se pueden construir y definir tipos de datos personalizados, conocidos como tipos de datos derivados. En esta forma se pueden definir canales de entrada analógicas como un tipo de dato y usarlo una y otra vez.

Variables

Las direcciones de hardware (i.e. entradas y salidas)son asignadas explícitamente a las variables en las configuraciones, recursos o programas. De esta manera es creado un alto nivel de independencia, soportando la reusabilidad (reciclaje) del software. El alcance de las variables son normalmente limitadas a la unidad de organización del programa en la cual ellas son declaradas, i.e, Locales. Esto significa que sus nombres pueden ser reutilizados en otras partes sin ningún conflicto, eliminando así otra fuente de errores, e.g. variables temporales. Si la variable requiere un alcance global, debe ser explícitamente declarado con la directiva VAR_GLOBAL. Se le pueden asignar a un valor inicial al arranque o rearranque en frío, con el fin de tener el valor correcto.

Configuraciones, Recursos y Tareas

Para entender mejor esto, observemos el modelo de software, como lo define la norma según la siguiente figura 2.-

En el nivel mas alto, el software total requerido para solucionar un problema particular de control puede ser definido como una Configuración. Una Configuración es especifico a un tipo particular de sistema de control, incluyendo el arreglo de hardware, i.e recursos de procesamiento, direcciones de memoria para los canales de I/O y demás capacidades del sistema. Dentro de la configuración se pueden definir uno o mas Recursos, se puede ver un Recurso como una facilidad que es capaz de ejecutar programas IEC. Así mismo dentro de los Recursos se pueden definir una o mas Tareas, las tareas controlan la ejecución de un conjunto de Programas y/o Bloques Funcionales. Estos últimos pueden ser ejecutados periodicamente o en la ocurrencia de un evento disparador especifico, tal como un cambio en una variable.

Los programas son construidos mediante el uso de un número de diferentes elementos de software escrito en cualquiera de los lenguajes definidos por IEC. Un programa consiste típicamente, de una red de funciones y bloques funcionales, los cuales son capaces de intercambiar datos. Las funciones y bloques funcionales son los bloques básicos de construcción, conteniendo estructura de datos y un algoritmo. Si comparamos esto con un PLC convencional, este contiene un recurso, ejecutando una tarea, que controla un programa para un lazo cerrado de control. IEC 1131-3 añade mucho mas que esto, abriéndolo al futuro, un futuro que incluye sistemas multitarea en tiempo real y programas accionados por eventos, este futuro no esta muy lejos si solo miramos dentro de los Sistemas de Control Distribuido actuales. IEC 1131-3 es adecuado para un amplio rango de aplicaciones de control, sin tener que aprender lenguajes de programación adicional.

Unidades para la organización del programa (POU).

Dentro de IEC 1131-3, los Programas, Bloques Funcionales y Funciones son llamados Unidades Organizativas del Programa, o POU’s.

Funciones

IEC ha definido funciones normalizadas y funciones definidas por el usuario. Las funciones normalizada son tales como ADD o suma, ABS (valor absoluto), SQRT (raíz cuadrada), SIN (seno) y COS (coseno). Funciones definidas por el usuario, una vez definidas, pueden ser usadas repetidamente.

Bloques Funcionales (FB)

Estos son el equivalente a los circuitos integrados (IC) o a los módulos de control discreto analógicos, representando funciones de control especializado. Ellos contienen tanto datos como algoritmos, de manera tal que mantienen la pista del pasado (la cual es una de las diferencias con las funciones escritas). Estos FB’s tienen un interfaz bien definido e internos escondidos, así como un IC o un modulo de control discreto tipo caja negra. De esta forma ellos dan un clara separación entre diferentes niveles de programadores o personal de mantenimiento.

Un lazo de control de temperatura o un PID, es un ejemplo excelente de un Bloque Funcional. Un vez definido puede ser usado una y otra vez en el mismo programa, diferentes programa, o mas aun en diferentes proyectos. Esto lo hace altamente reutilizable.

Los bloques funcionales pueden ser escritos en cualquiera de los lenguajes IEC, y la mayoría de los casos hasta en lenguajes de alto nivel como el "C". De esta manera pueden ser definidos por el usuario. Bloques Funcionales Derivados son basados en FB's normalizados, pero siendo estos completamente nuevos, estos FB’s hechos a la medida pueden estar luego dentro de los normalizados: proveyendo así una plataforma de programación.

Programas

Con los bloques constructivos anteriormente mencionados, se puede decir que un programa es una red de Funciones y Bloques Funcionales. Un programa puede ser escrito en cualquiera de los lenguajes de programación definidos.

Gráficos Funcionales Secuenciales (SFC)

El SFC describe gráficamente el comportamiento secuencial de un programa de control. Es derivado de las Redes de Petri y la norma Grafcet IEC 848, con los cambios necesarios para convertir la representación de una norma para documentación a un conjunto de elementos de control ejecutables.

El SFC estructura la organización interna de un programa, y ayuda a descomponer un problema de control en partes mas manejables, manteniendo una visión del todo. El SFC consiste de Pasos, enlazados con Bloques de Acción y Transiciones. Cada Paso representa un estado particular del sistema bajo control. Una Transición es asociada a una condición, la cual, cuando es cierta, causa que el paso anterior a la transición sea desactivada, y el siguiente paso sea activado. Los pasos son interconectados a Bloques de Acción, realizando estos ciertas acciones de control. Cada elemento puede ser programado en cualquiera de los lenguajes IEC, incluyéndose a si mismo el SFC. Se pueden programar secuencias alternativas y mas aun secuencias paralelas, tal como comúnmente es requerido en las aplicaciones por lotes (batch). Por ejemplo, una secuencia es usada para un proceso primario, y la segunda para monitorear globalmente condiciones operativas de limite.

Debido a su estructura muy general, SFC provee también una herramienta comunicativa, combinando gente de diferentes disciplinas, departamentos o mas aun, de diferentes países.

Lenguajes de Programación

Dentro de la norma son definidos cuatro lenguajes de programación. Esto significa que su sintaxis y semántica ha sido también definida, no dejando ningún espacio para los dialectos. Una vez que han sido aprendidos, se pueden usar en una gran variedad de sistemas basados en esta norma.

Los lenguajes consisten de dos versiones textuales y dos gráficas:

 

Textuales:

Lista de Instrucciones, IL
Texto Estructurado, ST

Gráficos:

Diagrama Escalera, LD
Diagrama de Bloques Funcionales, FBD

En la figura 4, los cuatros lenguajes describen la misma parte de un programa sencillo. La selección del lenguaje a ser usado depende de:

La preparación del Programador
El problema a resolver
El nivel de descripción del problema
La estructura del sistema de control
La interfaz con otro personal o departamentos

Todos los cuatro lenguajes están interconectados: ellos proveen una suit de programación común, manteniendo una conexión a la experiencia existente. De esta manera se provee una herramienta comunicativa, combinando gente con diferentes conocimientos y experiencias.

Los Diagramas de Escalera tiene sus raíces en USA. Están basados en un representación gráfica de

Lógicas de Escalera por Relevadores.

Lista de Instrucciones es su contraparte Europea. Como un lenguage textual, que se asemeja al lenguaje ensamblador.

Diagrama de Bloques Funcionales es muy común a la industria de procesos. Este expresa el comportamiento de funciones, bloques funcionales y programas como un conjunto bloques gráficos interconectados, parecido a diagramas de circuitos electrónicos. Se mira al sistema en términos de flujo de señales entre elementos de procesamiento.

Texto Estructurado es un lenguaje muy poderoso con sus raíces en el ADA, Pascal y "C". Puede ser usado excelentemente para la definición de bloques funcionales muy complejos, el cual puede ser usado luego dentro de cualquiera de los otros lenguajes.

Descendente vs Ascendete (Top-down vs. bottom-up)

La norma también permite dos vías de desarrollo de los programas: De forma decendente y ascendente o de abajo hacia arriba. Tanto como que se declare la aplicación como un todo y se divida en sus partes, declare las variables, y así sucesivamente. O se inicia por programar su aplicación en las partes a niveles mas bajos, mediante el uso por ejemplo de funciones derivadas y bloques funcionales. Cualquiera que se escoja, el ambiente de desarrollo ayudará al usuario a través de todo el proceso.

Implementaciones

Los requerimientos globales de la norma IEC 1131-3 no son fáciles de satisfacer. Por esta razón, la norma permite implementaciones parciales de varios aspectos. Esto aplica para el numero de lenguajes, funciones y bloques funcionales soportados. Esto da cierta libertad del lado del fabricante, pero el usuario debería estar bien advertido de esto durante el proceso de selección. También con nuevas versiones se puede subir dramáticamente el nivel de implementación.

Muchos de los ambientes de programación ofrecen todo lo que se espera hoy en día de ambientes modernos: operación mediante ratón, menús descendientes, pantallas de programación gráfica, soporte para multi-ventanas, funciones de hipertexto, verificación durante la fase de diseño, etc. Pero se advierte que esta funcionalidad no están especificada dentro de la norma por si mismo, siendo uno de los aspectos donde los fabricantes pueden diferenciarse.

Conclusión de la IEC 1131-3

Las implicaciones técnicas de la norma IEC 1131-3 son altas, dejando suficiente espacio para el crecimiento futuro y la diferenciación. Esto hace esta norma adecuado para el presente siglo. IEC 1131-3 tendrá un gran impacto en toda la industria del control y automatización industrial. Ciertamente no será restringida a solamente el mercado convencional de PLC’s. Hoy en día, se puede observar que ha sido adoptado por el mercado de control de movimiento, sistemas distribuidos, sistemas de control basados en computadoras personales con lógica por software (softlogic), incluyendo sistemas SCADA’s.

Teniendo una norma sobre tan amplia área de aplicación, trae numerosos beneficios para usuarios y programadores. Los beneficios de adoptar la norma son varios, dependiendo de las áreas de aplicación.

Solo para mencionar algunas:

Reduce el desperdicio en recursos humanos, en entrenamiento, depurado, mantenimiento e ingeniería de consulta.
Se crea un enfoque a la resolución del problema mediante reciclaje o reutilización del software de alto nivel
Reduce los malentendidos y errores
Técnicas de programación utilizables en un ambiente amplio: control industrial en general
Combinación de diferentes componentes en diferentes programas, proyectos, localizaciones, compañías y/o países.

Si quieres participar en estos articulos por envía tus comentarios: Comentarios

Ud es el Lector número: Contador de visitas a la página

Muchas gracias por tu atención

Este publicación es basicamente una traducción y adaptación a un documento introductorio a la Norma IEC 1131-3 conseguido en http://www.plcopen.org/