# IEC 61499

La norma internacional 'IEC 61, que aborda el tema de los bloques de funciones para sistemas de control y medición de procesos industriales, fue publicada inicialmente por la Comisión Electrotécnica Internacional (IEC) en 2005. La especificación de IEC 61499 define un modelo genérico para sistemas de control distribuido y se basa en el estándar IEC 61131 . Lewis y Zoitl, así como Vyatkin, también explican los conceptos de IEC 61499.

## Parte 1: Arquitectura

IEC 61499-1 define la arquitectura para sistemas distribuidos. En IEC 61499, el modelo de ejecución cíclica de IEC 61131 se reemplaza por un modelo de ejecución controlado por eventos. El modelo de ejecución controlado por eventos permite una especificación explícita del orden de ejecución de los bloques de funciones. Si es necesario, las aplicaciones que se ejecutan periódicamente se pueden implementar utilizando el bloque de funciones E_CYCLE para la generación de eventos periódicos como se describe en el Anexo A de IEC 61499-1.
IEC 61499 permite un diseño centrado en la aplicación, en el que se crean una o más aplicaciones, definidas por redes de bloques de funciones interconectados, para todo el sistema y, posteriormente, se distribuyen a los dispositivos disponibles. Todos los dispositivos dentro de un sistema se describen dentro de un modelo de dispositivo . La topología del sistema se refleja en el modelo del sistema . La distribución de una aplicación se describe dentro del modelo de mapeo . Por lo tanto, las aplicaciones de un sistema son distribuibles pero se mantienen juntas. IEC 61499 está fuertemente influenciado por Erlang, con su modelo de nada compartido y transparencia de distribución.
Al igual que los bloques de funciones IEC 61131-3, los tipos de bloques de funciones IEC 61499 especifican tanto una interfaz como una implementación. A diferencia de IEC 61131-3, una interfaz IEC 61499 contiene entradas y salidas de eventos además de entradas y salidas de datos . Los eventos se pueden asociar con entradas y salidas de datos mediante restricciones WITH . IEC 61499 define varios tipos de bloques de funciones, todos los cuales pueden contener una descripción de comportamiento en términos de secuencias de servicio:
* Bloque de función de interfaz de servicio – SIFB: el código fuente está oculto y su funcionalidad solo se describe mediante secuencias de servicio.
* Bloque de función básico - BFB: Su funcionalidad se describe en términos de un Gráfico de Control de Ejecución (ECC por sus siglas en inglés), que es similar a un diagrama de estado (UML) . Cada estado puede tener varias acciones. Cada acción hace referencia a uno o cero algoritmos y uno o cero eventos. Los algoritmos se pueden implementar como se define en los estándares compatibles.
* Bloque de funciones compuesto - CFB: Su funcionalidad está definida por una red de bloques de funciones.
* Interfaces de adaptador: una interfaz de adaptador no es un bloque de función real. Combina varios eventos y conexiones de datos dentro de una conexión y proporciona un concepto de interfaz para separar la especificación y la implementación.
* Subaplicación: Su funcionalidad también se define como una red de bloques de funciones. A diferencia de los CFB, las subaplicaciones se pueden distribuir.
Para mantener las aplicaciones en un dispositivo, IEC 61499 proporciona un modelo de gestión . El administrador de dispositivos mantiene el ciclo de vida de cualquier recurso y administra la comunicación con las herramientas de software (p. ej., herramienta de configuración, agente) mediante comandos de administración . A través de la interfaz de la herramienta de software y los comandos de gestión, se puede realizar la reconfiguración en línea de las aplicaciones IEC 61499.

## Parte 2: Requisitos de la herramienta de software

IEC 61499-2 define los requisitos para que las herramientas de software cumplan con IEC 61499. Esto incluye requisitos para la representación y la portabilidad de elementos IEC 61499, así como un formato DTD para intercambiar elementos IEC 61499 entre diferentes herramientas de software. Ya existen algunas herramientas de software compatibles con IEC 61499 disponibles. Entre estos se encuentran herramientas de software comercial, herramientas de software de código abierto y desarrollos académicos y de investigación. Por lo general, se necesita un entorno de tiempo de ejecución compatible con IEC 61499 y un entorno de desarrollo compatible con IEC 61499.

## Parte 3: Información del tutorial (2008 retirado)

IEC 61499-3 estaba relacionado con una versión anterior de especificación disponible públicamente (PAS) del estándar y se retiró en 2008. Esta parte respondió preguntas frecuentes relacionadas con el estándar IEC 61499 y describió el uso de elementos IEC 61499 con ejemplos para resolver desafíos comunes durante la ingeniería de sistemas de automatización.
Entre otros ejemplos, IEC 61499-3 describió el uso de los SIFB como bloques de funciones de comunicación para el acceso remoto a datos y parámetros de bloques de funciones en tiempo real; el uso de interfaces de adaptador para implementar conceptos orientados a objetos; algoritmos de inicialización en redes de bloques de funciones; y la implementación de ECC para un control motor simplificado de VCR hipotéticos. Además, se explicaron los impactos del mapeo con respecto a los bloques de funciones de comunicación, así como la gestión de dispositivos por parte de las aplicaciones de gestión y sus bloques de funciones, y el principio del bloque de funciones del administrador de dispositivos (DEV_MGR).

## Parte 4: Reglas para perfiles de cumplimiento

IEC 61499-4 describe las reglas que debe seguir un sistema, dispositivo o herramienta de software para cumplir con IEC 61499. Estas reglas están relacionadas con la interoperabilidad, la portabilidad y la configuración . Dos dispositivos son interoperables si pueden trabajar juntos para proporcionar la funcionalidad especificada por una configuración del sistema. Las aplicaciones que cumplen con IEC 61499 deben ser portátiles, lo que significa que pueden intercambiarse entre herramientas de software de diferentes proveedores teniendo en cuenta los requisitos para las herramientas de software descritos en IEC 61499-2. Los dispositivos de cualquier proveedor deben ser configurables por cualquier herramienta de software compatible con IEC 61499.
Además de estas reglas generales, IEC 61499-4 también define la estructura de los perfiles de cumplimiento . Un perfil de cumplimiento describe cómo un sistema se ajusta a las reglas del estándar IEC 61499. Por ejemplo, la capacidad de configuración de un dispositivo por una herramienta de software está determinada por los comandos de administración admitidos. El formato de intercambio XML que determina la portabilidad de las aplicaciones compatibles con IEC 61499 se define en la parte 2 y se completa con el perfil de cumplimiento, por ejemplo, al declarar las extensiones de nombre de archivo admitidas para el intercambio de elementos de la biblioteca de software.
La interoperabilidad entre dispositivos de diferentes proveedores está definida por las capas de los modelos OSI . También deben tenerse en cuenta las salidas de estado, las direcciones IP, los números de puerto, así como la codificación de datos de bloques de funciones como PUBLICAR/SUSCRIBIRSE y CLIENTE/SERVIDOR, que se utilizan para la comunicación entre dispositivos. HOLOBLOC, Inc. define el "perfil de cumplimiento de IEC 61499 para demostraciones de viabilidad", que, por ejemplo, es compatible con FBDK, 4diac IDE, y nxtSTUDIO, herramientas de software compatibles con IEC 61499