Professional Documents
Culture Documents
Robert Lewis
ndice general
1. Introduccin
1.1. Bloque de Funcin Estndar IEC 61499 . . . . . . . . . . . . . . . . . . . .
1.2. Desarrollo del Concepto de Bloque de Funciones tras la Norma IEC 61131-3
1.3. IEC 61499 - Una norma en Desarrollo . . . . . . . . . . . . . . . . . . . . .
1.4. Por qu Usar Bloques de Funcin? . . . . . . . . . . . . . . . . . . . . . .
1.5. Visiones de Diseo del Sistema . . . . . . . . . . . . . . . . . . . . . . . . .
1.6. El Futuro Ms All de la Norma IEC 61499 . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
9
12
15
17
19
22
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
24
24
25
27
28
30
30
33
34
36
37
39
41
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
43
43
44
54
60
66
66
.
.
.
.
.
.
67
67
68
73
78
80
82
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
NDICE GENERAL
4
5. Bloques de Funcin de Evento
5.1. Descripcin General . . . . . . . . . . . . . .
5.2. Tipos de Bloque de Funcin de Evento Estndar
5.3. Usando Bloques de Funcin de Evento . . . . .
5.4. Resumen . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
85
85
87
96
97
Captulo 1
Introduccin
En este captulo introductorio se revisan los antecedentes y las razones detrs de la elaboracin de la norma IEC 61499. Concretamente vamos a:
revisar el diseo de sistemas de control actuales y considerar el impacto de nuevas tecnologas
examinar las razones para iniciar el desarrollo de la norma IEC 61499
considerar las razones por las cuales los bloques de funcin son todava un concepto importante para los ingenieros de procesos y sistemas
mostrar cmo los bloques de funcin tienen algunas de las caractersticas del software
orientado a objetos
y por ltimo mostrar cmo los modelos IEC 61499 se pueden utilizar en el desarrollo de
sistemas de control de ciclo de vida.
Nota: Se ha hecho todo lo posible para que este libro describa con precisin los conceptos y
definiciones de la norma IEC 61499. Sin embargo, aunque las partes 1 y 2 de la norma IEC 61499
estn bastante avanzadas en su desarrollo, pueden estar sujetas a cambios de menor importancia,
que no se reflejan en este libro.
Dado que las empresas manufactureras luchan por competir en los mercados globales impredecibles y cambiantes de hoy, surge un aumento en la urgencia de mejorar la agilidad de los sistemas
de fabricacin. Para generar productos competitivos e innovadores, las empresas deben ser capaces de disear y crear rpidamente nuevas formas de produccin automatizada avanzada. Tales
niveles de automatizacin requieren la creacin de grandes sistemas que implican una amalgama
de control industrial, fabricacin y logstica empresarial. Una caracterstica clave de todos estos
nuevos sistemas ser una capacidad propia para manejar cambios con rapidez, es decir, sistemas
de fabricacin gil. Una planta de produccin deber ser capaz de cambiar rpidamente los tipos
de productos y poner nuevos procesos en marcha para permanecer activa.
En la actualidad existe un creciente inters por las nuevas tecnologas y arquitecturas para la creacin de la prxima generacin de sistemas distribuidos para la automatizacin industrial. Estos sern sistemas donde el software se organiza como conjuntos de componentes que
cooperan en lugar de la integracin de grandes unidades de medida de software [1]. REVISAR
XXXXXXXXXXX
Hasta ahora los sistemas de control industrial han cado en uno de los dos campos principales,
ya sea sobre la base de sistemas de control distribuido tradicionales (DCS) o en los controladores lgicos programables (PLCs). Los DCSs actuales, tpicamente en las plantas petroqumicas y
refineras, se estructuran en torno al uso de unos pocos procesadores centrales grandes, que proporcionan un control de supervisin y adquisicin de datos, comunicacin a travs de redes locales
5
CAPTULO 1. INTRODUCCIN
CAPTULO 1. INTRODUCCIN
1.1.
CAPTULO 1. INTRODUCCIN
10
Veremos ms adelante que el modelo de bloque de funcin definido por IEC 61499 proporciona una
sola vista de un diseo de sistemas distribuidos. Otros puntos de vista de diseo sern necesarios
para dar con todos los aspectos de un diseo de sistema. La norma IEC 61499 es el primer paso para
proporcionar metodologas de diseo para el desarrollo y modelado de aplicaciones distribuidas.
A medida que contine la tendencia de usar software basado en componentes, se prev que
los controladores y los instrumentos industriales o bien proporcionarn bloques de funcin como
11
12
CAPTULO 1. INTRODUCCIN
1.2.
Por qu no fue posible el uso de los conceptos de bloques de funciones definidos en la norma
IEC 61131-3 para sistemas distribuidos? Hay una serie de limitaciones en el concepto de bloque de
funcin original introducido por el lenguaje PLC de la norma IEC 61131-3. Con el lenguaje grfico
Diagrama de Bloques de Funcin (FBD) de la norma IEC 61131-3, los bloques de funcin se puede
enlazar con slo unir las conexiones de flujo de datos entre la entrada del bloque y variables de
salida, como se observa en la Figura 1.7a. Cada bloque de funcin proporciona un nico algoritmo
interno que es ejecutado cuando el bloque de funciones es invocado. El orden normal de ejecucin
es determinado por la dependencia del bloque de funcin con los otros bloques; normalmente se
ejecuta de izquierda a derecha porque los bloques a la derecha dependen de los valores de salida
de bloques de la izquierda.
Sin embargo, cuando se introduce una red de realimentacin (ver la Figura 1.7b), el orden de
ejecucin no puede ser determinado a partir del diagrama, ya que la ejecucin de ambos bloques
depende de un valor de salida del otro bloque. En una red compleja, es muy difcil para el sistema
de programacin determinar un orden vlido de ejecucin. Para superar este problema, muchos
sistemas de programacin IEC 61131-3 proporcionan mecanismos adicionales que definen el orden
de ejecucin de los bloques. Por ejemplo, el usuario puede ver una lista de los los bloques de
funcin y asignar manualmente una orden de ejecucin. Por desgracia, dichos mecanismos estn
fuera del mbito de aplicacin de la norma IEC 61131-3. Como consecuencia de ello, un aspecto
importante de una red de bloques de funcin, es decir, el mtodo para definir el orden de ejecucin
de los bloques, no es consistente o porttil a travs de diferentes sistemas de control.
1.2. DESARROLLO DEL CONCEPTO DE BLOQUE DE FUNCIONES TRAS LA NORMA IEC 61131-313
CAPTULO 1. INTRODUCCIN
14
Variables Globales
Mediante el uso de variables globales situadas a nivel de configuracin, es posible transferir
datos y seales de control entre programas y bloques de funciones que se estn ejecutando
en diferentes medios. Sin embargo, se entiende bien que el uso de variables globales es un
mecanismo muy pobre y a veces inseguro para el manejo de la transferencia de datos entre
los procedimientos que se ejecutan en diferentes procesadores. No es posible identificar
claramente dnde se actualizan las variables globales y dnde se utilizan. No hay manera
grfica en la norma IEC 61131-3 para definir la relacin entre las variables globales y las
variables que, referenciadas a ellas, se encuentran dentro de los programas y bloques de
funcin. Tambin hay problemas ms graves con las variables globales ya que el tiempo
y la sincronizacin de las seales pasadas por stas variables es difcil de definir. Por otra
parte, los mecanismos previstos dentro de la configuracin para el manejo de la inicializacin
y actualizacin de las variables globales compartidas no estn definidos en la norma IEC
61131-3.
2.
15
de soporte que permiten a un PLC solicitar y controlar a otro PLC o a un sistema funcionando
como un servidor.
La norma IEC 61131-3 permite un sub-conjunto de variables dentro de una configuracin para
acceder externamente. stas se llaman variables de acceso (ACCESS) y se puede acceder a ellas a
travs de una interfaz de comunicaciones de un PLC externo utilizando los bloques de funciones de
comunicacin o se puede acceder desde otros dispositivos (que no siguen la norma IEC 61131-3)
utilizando servicios que estn fuera de dicha norma.
Hemos visto que la norma IEC 61131-3, junto con la fabricacin de mensajera estndar IEC
61131-5, ofrece una gama de diferentes mecanismos de software para permitir a los PLC comunicarse. Estos son muy adecuados para sistemas con slo unos pocos PLC. Sin embargo, estaba claro
para el grupo de desarrollo de la norma IEC de bloque de funciones que el modelo de comunicaciones IEC 61131 presentaba serias limitaciones. Conceptos como variables globales y bloques de
funciones de comunicaciones no proporcionan un mtodo claro y conciso para definir las conexiones entre los bloques de funciones distribuidas.
Un modelo de comunicaciones consistente que podra ser utilizado no slo para comunicaciones PLC a PLC, sino tambin entre dispositivos grandes y pequeos distribuidos a travs de redes
industriales, era requerido. El nuevo modelo de bloque de funcin tena que ser escalable y extensible, por lo que sera igualmente aplicable para el modelado de comunicaciones entre sistemas
de control, PLCs y controladores como entre los dispositivos Fieldbus ms pequeos, tales como
vlvulas y sensores inteligentes. De hecho, se busc un modelo de bloque de funcin que cubra
todos los tipos de dispositivos y controladores.
Para resumir, las principales deficiencias del modelo de software proporcionado por la norma
IEC 61131-3 para sistemas distribuidos son las siguientes:
Las aplicaciones en el modelo IEC 61131-3 no son distribuibles a travs de mltiples recursos.
El orden de ejecucin de los bloques de funcin no siempre claramente definido.
La asignacin de tareas a los programas y bloques de funcin no proporciona suficiente
flexibilidad.
El escaneado natural de la ejecucin del bloque de funcin IEC 61131-3 no se puede
asignar a los bloques de funcin conectados a travs de recursos distribuidos.
16
CAPTULO 1. INTRODUCCIN
17
4. reglas para el uso de bloques de funciones para cumplir los requerimientos de comunicacin
de IPMCSs distribuidos
5. reglas para el uso de bloques de funcin en la gestin de aplicaciones, recursos y dispositivos
en IPMCSs distribuidos
6. requisitos de los sistemas y estndares compatibles.
El objetivo principal de este libro se refiere a la arquitectura y los modelos definidos en la Parte 1
de la norma IEC 61499.
La Parte 2 define los requisitos de herramientas de software para crear definiciones de tipos de
bloques de funcin y gestionar bibliotecas de bloques de funcin. Incluye un extenso anexo de tipos
de definicin de documentos XML para el intercambio de diseos de bloques de funciones entre
las herramientas de software de diferentes proveedores. XML es ahora el formato de intercambio
preferido para diseos de bloques de funcin. El objetivo principal de la parte 2 es "el soporte de
tareas de ingeniera" y proporcionar orientacin sobre las tareas de ingeniera relacionadas con
el diseo, la implementacin, la operacin y el mantenimiento de IPMCSs construidos usando la
arquitectura y los conceptos definidos en la Parte 1.
El estndar para el intercambio de datos de productos, STEP (standard for the exchange of
product data) (ISO 10303), haba sido considerado previamente para este propsito. STEP es utilizado por las estaciones CAD para el almacenamiento y la portabilidad de los diseos de circuitos
electrnicos en una forma de implementacin independiente. Es evidente que hay una fuerte sinergia entre esquemas electrnicos y diseos de sistemas de control basados en bloques de funcin.
Tambin se propone ahora en la Parte 2 de la norma IEC 61499 que el lenguaje de marcado
extendido (XML Extended Markup Language) puede ser utilizado como una forma de guardar
y portar definiciones de bloque de funcin. Esto proporcionar la posibilidad de ser capaz de
transferir diseos a travs de Internet y verlos con la prxima generacin de exploradores Web.
XML ha sido desarrollado como una importante mejora en el lenguaje de marcado de hipertexto
(HTML) que se utiliza actualmente para la creacin de la pgina web. El uso de XML permite
diseos que se guardan con varios atributos, incluyendo detalles de la informacin sobre la versin
y el diseo grfico - esto es discutido con ms detalle en el captulo 7.
CAPTULO 1. INTRODUCCIN
18
de funcin ofrece facilidades que permiten a los bloques de funcin compartir las interfaces y por
lo tanto tener un comportamiento polimrfico.
En el mundo de bloques de funciones, el enfoque principal del diseador del sistema es tomar
estndar probado y funcionalidad encapsulada y vincularlos en la forma ms rpida y ms intuitiva
posible. La utilizacin de bloques de funcin est ms cerca de la mentalidad del diseador del
sistema industrial, quien est familiarizado con la conexin fsica de dispositivos de diferentes
modos para proporcionar una solucin de sistema particular.
Los bloques de funciones comparten muchos de los beneficios del uso de objetos de software.
Cules son las caractersticas tiles de un objeto? Un objeto es un paquete de software independiente que tiene sus propios procedimientos (llamados mtodos) que manipulan los datos internos
del objeto. Algunos de los mtodos proporcionan una interfaz externa (llamada mtodos pblicos)
para la comunicacin con otros objetos. "La caracterstica esencial de un objeto es que provee una
fusin de la lgica del proceso con datos." - Ver Objetos Distribuidos para Negocios [9].
Los principales beneficios del uso de objetos pueden resumirse como:
Los objetos reflejan el mundo real
Al disear una aplicacin es ms natural e intuitivo representar entes del mundo real asociados con una aplicacin como objetos, por ejemplo, documentos, empleados y productos.
Los objetos son estables
Generalmente los objetos son elementos de software probados que no cambian significativamente. En muchos casos, los desarrolladores utilizan las mismas clases de objetos en una
amplia gama de aplicaciones. Por ejemplo, cuando un objeto que se ha creado representa
todo el comportamiento y las caractersticas de una entidad como "proveedor de productos,
esto podra ser utilizado en una amplia gama de aplicaciones de negocios relacionados con
los proveedores. Un objeto proveedor de productos tendra tpicamente detalles como el
nombre, la direccin, las gamas de productos, condiciones comerciales, etc, y los mtodos
para obtener y actualizar esta informacin.
Los objetos reducen la complejidad
Un desarrollador puede trabajar con un objeto sin entender realmente cmo funciona el
objeto internamente. Una aplicacin puede desarrollarse mediante la creacin y vinculacin
de objetos - en general no hay que entender internamente al objeto.
Los objetos son reutilizables
Una vez que un objeto ha sido desarrollado y probado puede convertirse en parte del repertorio de un desarrollador. En algunos casos, un objeto puede ser publicado en una biblioteca
en la que puede ser utilizado por los desarrolladores de forma local o incluso a nivel global.
Los bloques de funciones tambin comparten la mayora de estas caractersticas que se traducen
en algunos beneficios significativos para el desarrollador del sistema y del usuario final:
la cantidad de software de control a ser desarrollado para una aplicacin se reduce mediante
el uso de bloques de funciones
el tiempo necesario para desarrollar sistemas de control se reduce
los sistemas de control que utilizan el mismo tipo de bloque de funcin tendrn un comportamiento ms consistente
se mejorar la calidad de los sistemas de control.
Objetos
19
Bloques de
Funciones
Datos
encapsulados
Si
Si
Interfaz
externa
Si
Si
Invocacin
Los objetos
tienen mtodos
con argumentos y
valores devueltos
Los bloques de
funcin utilizan
variables y eventos
de entrada y de
salida
Herencia
Si
No
Polimorfismo
Si
Si
Instancias de
bloques de
funciones son
definidas desde el
tipo bloque de
funciones
Instanciado de
una clase
Comentarios
Los objetos pueden contener
datos que tambin son
instancias de otros objetos.
Los bloques de funcin
pueden contener instancias
de otros bloques de funcin
En bloques de funciones IEC
61499 no hay distincin entre
las interfaces pblicas y
privadas
Con los bloques de funcin,
los datos se pueden
sincronizar con un evento
Actualmente en la norma
IEC 61499 no existe ningn
mecanismo para que un
bloque de funcin herede
comportamiento
La norma IEC 61499
presenta un nuevo concepto
de "adaptador" que permite a
los bloques de funcin
compartir interfaces comunes
CAPTULO 1. INTRODUCCIN
20
21
Escenarios
El ltimo, pero no menos importante, punto de vista que complementa cualquier diseo de
sistema es lo Kruchten llama "Escenario". Un escenario representa las principales interacciones
entre las unidades de software para proporcionar la funcionalidad clave ms importante de un
sistema. Por ejemplo, en un sistema de control distribuido, algunos escenarios importantes a tener
22
CAPTULO 1. INTRODUCCIN
en cuenta pueden ser: el inicio del sistema, deteccin y recuperacin de fallos de dispositivos, la
activacin de la receta (Revisar XXXXXX), y el cierre del sistema. Cada escenario debe considerar
las interacciones entre las diferentes partes funcionales del software. Un escenario podra mostrar
tanto los aspectos de los puntos de vista de diseo lgico y como de procesos.
Al describir los distintos escenarios, el diseador puede revisar y probar el diseo haciendo
una serie de preguntas del tipo "qu pasara si? (what if? questions) . El diseo no puede
ser considerado completo hasta que se hayan definido todos los escenarios clave. Actualmente no
existe una metodologa definida por ninguna norma IEC que se puede usar para definir escenarios
para los sistemas de control distribuidos.
De esta rpida visin general del Modelo de Arquitectura 4+1 de Puntos de Vista, es evidente
que la Norma IEC 61499 proporciona slo uno de los cinco puntos de vista de diseo requeridos
para los sistemas de control distribuido. Sin embargo, la norma IEC 61499 s representa un paso
importante hacia una arquitectura de diseo unificado. Los otros puntos de vista, sin duda, surgirn
en tanto los diseadores empiecen a enfrentar el desafo de la construccin de grandes sistemas
distribuidos.
Captulo 2
Modelos y Conceptos IEC 61499
Ahora revisaremos los principales modelos y conceptos definidos en la norma IEC 61499 para
obtener una visin general del bloque de funciones estndar. Es aconsejable tener algn conocimiento del material de este captulo antes de proceder a cualquiera de los siguientes captulos,
donde vamos a revisar las caractersticas especficas de la norma IEC 61499 en ms detalle.
Los temas tratados en este captulo incluyen:
los modelos de sistemas, dispositivos y recursos para los sistemas de control distribuido
modelos para la representacin de las aplicaciones distribuidas
caractersticas de los bloques de funcin y su ejecucin
especificaciones de tipo para diferentes formas de bloque de funciones
bloques de funcin de interfaz de servicio para proporcionar interfaces a los sistemas operativos y hardware
adaptadores para interfaces de los bloques compartidos
sintaxis textual para definir entes IEC 61499.
Antes de proceder a examinar en detalle los muchos modelos y conceptos introducidos por la
norma IEC 61499, vamos a reconsiderar el alcance de la norma IEC 61499 como se discuti por
primera vez en el captulo introductorio. Sorprendentemente, el objetivo principal de la norma IEC
61499 no es como una metodologa de programacin, sino como una arquitectura y un modelo
para los sistemas distribuidos. No hay intencin de que la norma, como se ha definido, sea utilizada
directamente por herramientas de programacin. En su lugar, IEC 61499 proporciona un conjunto
de modelos para la descripcin de los sistemas distribuidos que se han programado usando los
bloques de funcin. Esta distincin es importante y debe ser entendida para evitar muchos de los
malentendidos acerca de IEC 61499.
Si no le permite programar un sistema de control distribuido, cmo puede ser de alguna utilidad? La norma IEC 61499 proporciona terminologa, modelos y conceptos que permiten la implementacin de un sistema de control distribuido orientado a bloques de funcin que se describe de
manera inequvoca y formal. Tener un enfoque formal y estndar para los sistemas descriptos le
permitir a los mismos ser validados, comparados y comprendidos. Este es el primer paso hacia las
metodologas de programacin estndar para sistemas distribuidos. Los escritores de la norma IEC
61499 han considerado que no es posible disponer de una metodologa de programacin coherente
a menos que haya una arquitectura coherente que sustente lo que estamos tratando de programar.
No obstante, no hay dudas de que los futuros conceptos de la norma IEC 61499 tambin se podrn
usar como parte de la metodologa de diseo del sistema.
Ahora vamos a revisar los diferentes modelos introducidos por la norma IEC 61499 que en su
conjunto forman la arquitectura para un sistema distribuido orientado a bloques de funcin.
23
24
2.1.
2.2.
El modelo de dispositivo que se muestra en la Figura 2.2 presenta algunos conceptos importantes. Un dispositivo es capaz de soportar uno o ms recursos. Un recurso IEC 61499 tiene propiedades similares al concepto de recurso definido en la norma IEC 61131-3 de Lenguajes de
25
26
Es claro que el recurso define el lmite importante que existe entre lo que est dentro del alcance
del modelo IEC 61499 y lo que es dispositivo y la funcionalidad especfica del sistema. Cuestiones
tales como diseo de sistemas operativos y protocolos de comunicaciones que son especficos a
los tipos de dispositivos y redes estn, por el momento, fuera del alcance de la norma.
La Figura 2.3 muestra las principales caractersticas de un recurso IEC 61499. Dentro del
recurso, se muestra una red de bloques de funcin interconectados por enlaces de flujo de datos
y eventos. Una funcin de programacin proporcionada por el recurso asegura que los algoritmos
dentro de los bloques de funciones se ejecutan en el orden correcto, es decir, como se requiere por
la llegada de los eventos en cada bloque de funcin. Los bloques de funciones de Interfaz de
servicio (SI - Service Interface) son una forma especial de bloque de funciones que proporcionan
un vnculo entre los bloques de funciones y las interfaces del recurso. Por ejemplo, un bloque
de comunicaciones SI se puede utilizar para leer o enviar datos a los bloques de funcin en los
recursos remotos. Una serie de diferentes tipos de bloques SI son identificados y definidos en la
norma IEC 61499 y son descriptos en detalle en el captulo 4.
Una caracterstica importante de un recurso es que permite el funcionamiento independiente.
Un recurso se puede cargar, configurar, iniciar y detener sin afectar a otros recursos en el mismo
dispositivo o red.
Sin embargo, es importante tener en cuenta que la gestin de una aplicacin distribuida puede
requerir el control coordinado de una serie de recursos, donde se cargan fragmentos de la red de
bloques de funcin, por ejemplo, cuando se cargan e inician los diversos fragmentos de red de
bloques de funciones que componen la aplicacin distribuida. Las prestaciones necesarias para
lograr dicha coordinacin componen un tema que an no est totalmente abordado por la norma
IEC 61499.
27
28
Tenga en cuenta que los bloques de funcin IEC 61499 contienen todos los algoritmos y los
valores de inicializacin para definir su comportamiento completo.
Por tanto, una aplicacin consiste de instancias y definiciones de interconexin de bloques de
funciones que, en algunos casos, incluyen varias instancias de bloques de funcin de determinados
tipos de bloques. Es un principio de la norma IEC 61499 que todo el comportamiento se define
en trminos de bloques de funcin. Como resultado, veremos que no hay variables globales o
locales en una aplicacin que pueda existir fuera de los bloques de funcin. Esta es una distincin
importante entre un programa de aplicacin creado para un PLC basado en IEC 61131-3 y una
aplicacin IEC 61499.
2.5.
29
30
ejemplo en un dispositivo Fieldbus, sera siempres til con fines de mantenimiento o puesta en
marcha para ser capaz de examinar las variables internas dentro de un bloque. As que puede haber
mtodos de puerta trasera para acceder a la parte interna del bloque de funciones, sin embargo,
desde el punto de vista de la arquitectura IEC 61499, las variables de control y los eventos son slo
trasladados por las interfaces expuestas al exterior.
31
32
Tiempo 5 El algoritmo procesa los valores de entrada y, en algunos casos, tambin procesa los
valores almacenados internamente para crear nuevos valores de salida que se escriben
en las salidas del bloque de funcin.
Tiempo 6 El algoritmo completa su ejecucin, y sealiza la funcin de programacin para indicar que los valores de salida estn estables y listos.
Tiempo 7 La funcin de programacin invoca el control de ejecucin del bloque de funcin para
generar un evento de salida. Diferentes eventos de salida se pueden generar en funcin
de los eventos de entrada que han llegado y el estado interno del control de ejecucin.
Tiempo 8 El control de ejecucin, a su vez crea un evento de salida correspondiente en la interfaz
de eventos de salida del bloque de funcin. El evento de salida es utilizado por los
bloques de funcin posteriores para indicar que ahora pueden utilizar los valores de
salida generados por este bloque.
Es importante tener en cuenta que hay una serie de restricciones sobre este modelo de ejecucin.
Estas fases temporales no pueden superponerse y deben aparecer en el orden prescrito para que el
bloque de funcin se ejecute correctamente. Sin embargo, en algunas implementaciones, algunas
fases pueden ser tan cortas en duracin como para ser consideradas como instantneas. La norma
IEC 61499 no define lmites en ninguno de estos tiempos. Sin embargo, deja en claro que en
cualquier modelo de bloque de funcin, debera ser posible definir la duracin de estas diferentes
fases con el fin de modelar con precisin las caractersticas de temporizacin de la red completa
de bloques de funcin.
La norma define las siguientes duraciones que sern importantes en la construccin de aplicaciones:
Tsetup = Tiempo 2 Tiempo 1 tiempo entre la recepcin de los valores de entrada y la llegada de
su evento de entrada asociado
Tstart = Tiempo 4 Tiempo 2 el tiempo entre la recepcin de un evento de entrada y ejecucin
del algoritmo; esta duracin puede depender de la carga de recursos, es decir, cmo
muchos otros bloques de funcin estn tambin pendientes en la cola de la funcin de
programacin
Talgorithm = Tiempo 6 Tiempo 4 el tiempo entre comenzar y completar el algoritmo del bloque
de funciones
Tfinish = Tiempo 8 Tiempo 6 tiempo desde que termina el algoritmo y se provoca el evento de
salida.
La relacin entre estos puntos temporales se representa en la Figura 2.7; los puntos en los que los
datos de entrada y salida de los bloques de funcin cambian tambin son mostrados. Cabe sealar
que la norma supone que los eventos se comportan como puntos discretos en el tiempo y no tienen
duracin. En un sistema fsico, los eventos pueden requerir la transferencia de alguna forma de
informacin de cambio de estado entre los bloques y pueden tener una duracin corta pero finita.
Es evidente que en diferentes implementaciones puede ser necesaria una variedad de mecanismos para asegurar que el bloque de funcin sea capaz de ejecutarse utilizando datos consistentes.
Por ejemplo, es importante que los valores de datos de entrada se mantiengan estables mientras
que un algoritmo se ejecuta. El algoritmo slo debe utilizar los valores de entrada que existen en el
momento del arribo del evento de entrada, es decir, el evento de entrada se puede utilizar como una
captura de los valores de entrada listos para la ejecucin del algoritmo. Tambin es muy importante
33
34
Bloque de
Funcin
Subaplicacin
Aplicacin
Distribuible
No
Si
Si
Temporizado
Depende slo del
dispositivo
Depende de los
dispositivos y
comunicaciones
Depende de los
dispositivos y
comunicaciones
Confiabilidad
Depende slo del
dispositivo
Depende de los
dispositivos y
comunicaciones
Depende de los
dispositivos y
comunicaciones
Replicacin
Como instancias
de tipo FB
Como copias de
tipo
subaplicacin
No
2.9.
Modelo de Gestin
Hemos visto que un recurso puede soportar fragmentos de redes de bloques de funciones que
forman parte de las aplicaciones o subaplicaciones distribuidas. Pero, cmo son estos fragmentos
de aplicaciones creados y gestionados? Para este propsito, la norma IEC 61499 define tambin una
forma especial de aplicacin llamada aplicacin de gestin, que es responsable de la creacin de
redes de bloques de funcin dentro de un recurso. La aplicacin de gestin, con una funcionalidad
ms privilegiada que las aplicaciones normales, puede construir parte de otras aplicaciones mediante la creacin de bloques de funciones y conexiones. Por lo general se conectar con agentes
externos, tales como estaciones de programacin remota a travs de enlaces de comunicaciones.
La funcionalidad de una aplicacin de gestin incluir lo siguiente:
crear instancias de bloques de funciones dentro de un recurso
asociar fragmentos de bloques de funcin con una aplicacin particular
crear conexiones de datos y eventos entre los bloques de funcin y los bloques de interfaz de
servicio
iniciar la ejecucin de los bloques de funcin como parte de una aplicacin distribuida
35
36
2.10.
Los grandes sistemas basados en redes de bloques de funciones IEC 61499 tpicamente se
desarrollan, encargan y ponen en funcionamiento en una serie de etapas. As que dentro de una
red de bloques de funciones, la norma IEC 61499 propone que el concepto de ciclo de vida se
modele y se aplique a las unidades funcionales, tales como dispositivos, recursos y aplicaciones.
Al igual que con todos los grandes sistemas basados en software, esto es necesario de manera que
sea posible gestionar y controlar los estados de las diferentes partes que lo componen.
El modelo de estado operacional no est todava completamente definido dentro de la norma,
pero se propone que cada unidad funcional tenga estados bien definidos, tales como:
DETENIDO - la unidad no est en funcionamiento
CARGADO - la unidad se ha cargado, por ejemplo, un dispositivo puede estar en un estado
cargado cuando todas las definiciones de bloques de funciones y las instancias de bloques
de funciones asociadas para una aplicacin se han cargado en un dispositivo
CONFIGURABLE - la unidad est cargada y lista para ser configurada antes de entrar
en funcionamiento; un dispositivo podra estar en un estado configurable cuando se han
cargado las instancias de bloques de funciones, pero an se esperan detalles de la conexin
de los bloques de funciones
OPERATIVO - la unidad ha sido cargada y configurada y est lista para iniciar la ejecucin
o apoyar la ejecucin de parte de una aplicacin cargada
FUNCIONANDO - la unidad se encuentra en pleno funcionamiento y se est ejecutando.
37
Para controlar y sincronizar la carga de una aplicacin distribuida, la norma propone que las estrategias se han desarrollado para garantizar un estado de funcionamiento consistente a travs de
sus componentes. Por ejemplo, una aplicacin distribuida puede requerir que los fragmentos de
redes de bloques de funciones se carguen en un serie de diferentes recursos que se encuentran en
una variedad de dispositivos diferentes y, en algunos casos, remotos. La carga y la configuracin
de los bloques de funciones que residen en los diferentes dispositivos pueden ocurrir en diferentes
momentos, sin embargo, el cambio entre los estados operativo y funcionando de todos los dispositivos y recursos asociados pueden necesitar ser sincronizado para una correcta aplicacin de
puesta en marcha.
La norma tambin contempla situaciones en las que ciertas unidades funcionales privilegiadas
puedan tomar el control de otras unidades funcionales. Por ejemplo, un bloque de funcin cargador de trabajo en el dispositivo A se puede utilizar para cargar nuevas definiciones de bloque de
funcin en los dispositivos remotos B y C con el fin de modificar una aplicacin para un determinado tipo de perfil por lotes. En tales casos, es un requisito para ser capaz de dar ciertos bloques,
tener los derechos para cargar, configurar y cambiar los estados de otros bloques. Los bloques de
funcin de aplicacin de gestin que ya se han introducido en este captulo necesitarn claramente
tener privilegios especiales para poder cargar e iniciar aplicaciones completas.
La gestin de aplicaciones y el control de los estados de funcionamiento de aplicaciones es un
rea que sigue en espera de desarrollo dentro de la norma IEC 61499 y probablemente se trate en
otras secciones de la norma.
38
39
40
2.13. RESUMEN
41
2.13. Resumen
Hemos revisado los principales conceptos introducidos por la norma IEC 61499 que proporcionan un marco y una arquitectura para modelar bloques de funcin orientados sistemas distribuidos. En resumen:
El modelo de sistema define un conjunto de dispositivos interconectados que pueden comunicarse a travs de conexiones de red.
El modelo de dispositivo es compatible con uno o ms recursos que proporcionan soporte
para la carga, la configuracin y la ejecucin de las redes de los bloques de funcin.
Una aplicacin puede residir en uno o ms recursos. Cada recurso puede apoyar la gestin y
ejecucin de parte de una aplicacin, con cada parte siendo distribuida como un fragmento
de una red de bloque de funcin.
Hay bloques de funciones bsicos y compuestos para hacer frente a las diferentes formas de
construccin del bloque y la jerarqua del bloque.
42
Captulo 3
Definicin de Tipo Bloque de Funciones y
Subaplicacin
En este captulo vamos a revisar cmo crear definiciones de tipos para bloques de funciones y
subaplicaciones y mostrar cmo estos pueden ser utilizados para crear instancias de bloques de
funcin y copias de subaplicaciones.
Concretamente vamos a:
revisar las diferentes formas de definicin de bloque funcin
mostrar cmo se pueden definir eventos e interfaces de datos
examinar cmo se construyen algoritmos y se vinculan a la ejecucin del evento
considerar cmo se comportan las instancias de bloques de funciones
revisar dnde se pueden utilizar subaplicaciones y comparar su comportamiento y propiedades con los bloques de funcin compuestos.
44
Distribuible
No
Definicin
Estados definidos
usando la Tabla de
control de ejecucin
(ECC). Algoritmos
definidos usando un
lenguaje apropiado, por
ejemplo, Texto
Estructurado, Java.
Bloque de Funcin
Compuesto
No
Subaplicacin
Si
Construido a partir de
una red de bloques de
funcin bsicos y
compuestos. La
definicin se da en
trminos de las
conexiones de datos y
eventos entre los
bloques de funcin.
Construido a partir de
redes de bloques de
funcin bsicos y
compuestos. Una
subaplicacin puede
contener a su vez
copias de
subaplicaciones
pequeas.
Comentarios
Un bloque de funcin
bsico no puede ser
distribuido, solamente
se puede ejecutar en un
solo recurso. Bloques
de funciones bsicos
definen los bloques
fundamentales desde
los cuales grandes
bloques compuestos
pueden ser construidos.
Un bloque de funcin
compuesto es
construido a partir de
una red de bloques de
funcin de nivel
inferior. stos pueden
ser bloques bsicos o
bien compuestos de
nivel inferior.
Este tipo de bloque est
destinado a
proporcionar una parte
reutilizable de una
aplicacin que puede
ser distribuida a travs
de muchos recursos.
3.3.
Bloques de funciones bsicos se pueden describir tanto textualmente utilizando la sintaxis textual IEC 61499 como grficamente. Hay dos representaciones grficas que juntas representan las
propiedades y el comportamiento de un bloque de funcin bsico: (i) la declaracin de interfaz
externa y (ii) la tabla de control de ejecucin (ECC) que define las relaciones entre la ejecucin de
eventos, estados y algoritmos.
45
46
47
tipo de mensaje que permite que un evento y sus datos sean pasados entre los bloques como un
conjunto coherente.
Una consecuencia de esta caracterstica es la implicacin de que el bloque debe tener un almacenamiento para mantener los valores de las entradas entre las muestras de eventos. Asimismo,
cuenta con almacenamiento para guardar los valores de las salidas entre los tiempos cuando se
disparan los eventos de salida. Existe siempre, por supuesto, la posibilidad de que un bloque pueda recibir eventos con los datos a una velocidad que es ms rpida que lo que el bloque puede
almacenar y luego procesar. La norma establece que, en tales casos, la funcin de programacin
subyacente debe priorizar la ejecucin del algoritmo del bloque de funcin de una manera que
asegure que tales situaciones de sobrecarga no se producirn.
Comportamiento Interno
Hay dos aspectos para la descripcin del comportamiento interno de un bloque de funcin
bsico: cuerpo del algoritmo y control de ejecucin del algoritmo. El bloque bsico contendr
generalmente uno o ms algoritmos. Cada algoritmo se invoca por la funcin de programacin de
recursos en respuesta a los eventos de entrada particulares que llegan a la interfaz de bloque. Al
ejecutarse el algoritmo, se procesan los datos de entrada y las variables internas para crear nuevos
valores para las variables internas y de salida. Cuando el algoritmo ha completado ciertas fases de
su ejecucin se pueden disparar eventos de salida para indicar que los datos de salida estn listo
y se pueden consumir por otros bloques. Cada algoritmo debe disparar al menos un evento de
salida para indicar que ha finalizado su ejecucin.
La norma IEC 61499 no define un lenguaje que se debe utilizar para las definiciones de algoritmos. Cualquier lenguaje de alto nivel se puede utilizar siempre y cuando un mapeo pueda ser
definido entre las variables de entrada y salida de datos, sus tipos de datos y las variables dentro del
lenguaje del algoritmo. Veremos ms adelante que el Texto Estructurado (ST) tal como se define
en la Norma IEC 61131-3 de lenguajes para PLC, y Java, son dos buenos ejemplos de lenguajes
de alto nivel que pueden ser usados para expresar el comportamiento de los algoritmos de bloques
de funcin.
Un aspecto importante del comportamiento de un bloque de funcin bsico se refiere a modelar
la relacin entre la ejecucin de eventos y de algoritmos. Esto se logra usando un concepto llamado
Tabla de Control de Ejecucin (ECC - Execution Control Chart). Al igual que otras caractersticas
del bloque, la ECC se puede definir grfica o textualmente.
Cada bloque de funcin bsico exige una ECC para definir lo siguiente:
los principales estados internos del bloque
cmo el bloque responder a cada tipo de evento de entrada
cules algoritmos se activan en respuesta a los eventos de entrada
cules eventos de salida se activan cuando se ejecutan los algoritmos.
La ECC es una forma de diagrama de transicin de estado que tiene muchas similitudes con la
grfica de Diagrama de Funcin Secuencial (SFC) de la norma IEC 61131-3. Sin embargo, como
tcnica de modelado de estado, su propsito es muy diferente y no se debe confundir con lenguajes
de programacin grfica como SFC.
En la Figura 3.3 se muestra un ejemplo de un ECC adecuado para el bloque de funcin Ramp
como se discuti anteriormente (vase la Figura 3.2). En este caso, la ECC muestra tres estados,
START, INIT y RAMP que corresponden a los tres estados principales del bloque. El estado START representa el estado de reposo del bloque cuando se est esperando para recibir
48
Hacia
INIT
START
RAMP
START
Transicin
E_Init (Evento)
1 (Siempre verdadero)
E_Run (Evento)
1 (Siempre verdadero)
49
contorno.
Cualquiera de las formas redondas o rectangulares pueden ser utilizadas para representar los
estados dentro de la ECC. Nota: en este libro, las formas rectangulares se han utilizado para
representar estados ECC.
La ECC puede utilizar las entradas de evento representadas como variables de evento. Por
lo general, las transiciones entre estados se definen por expresiones lgicas utilizando las
variables de entrada de eventos.
La ECC tambin puede comprobar o modificar las salidas de eventos, una vez ms representadas en la ECC como variables booleanas de salida de eventos.
La ECC tambin puede probar, pero no modificar las variables booleanas declaradas dentro
del cuerpo del bloque de funcin. Esto permite al comportamiento de ECC para ser modificado en funcin de los estados internos del cuerpo del bloque de funcin.
Por ejemplo, un bloque de funcin puede tener dos modos principales tales como Manual
y Auto definidos por una variable booleana interna llamada ManualFlag. Ante la llegada
de un evento de entrada particular, la ECC podra poner a prueba ManualFlag e ir a los
estados correspondientes para invocar ya sea algoritmos manuales o automticos.
Expresiones de transicin que provocan un cambio de estado dentro del ECC normalmente
involucran variables de eventos de entrada. Sin embargo, estas expresiones tambin pueden
incluir variables que representan eventos de salida, los estados internos del bloque de funcin, y expresiones condicionales basadas en los valores de las variables de entrada y salida
principales del bloque.
Cada estado ECC puede tener cero o ms acciones. A modo de ejemplo, la Figura 3.4 muestra un estado MAIN que tiene dos acciones para llamar algoritmos CALC y FILTER;
los eventos de salida de disparo ExO_1 y ExO_2, respectivamente, cuando la ejecucin
se completa. Cada accin es normalmente asociada con un algoritmo y un evento de salida.
Cuando el estado est activo, se ejecutan todas las acciones definidas para el estado. Sin embargo, una accin puede tener un algoritmo nulo donde slo es necesario para desencadenar
un evento de salida. Tambin es posible tener acciones sin eventos de salida. Normalmente,
un estado tendr al menos una accin que tiene un evento de salida para sealar al mundo
externo de que ciertas salidas se han actualizado.
Es importante tener en cuenta que las condiciones de transicin dentro de un ECC no se prueban hasta que el estado anterior a la transicin est activo. As, a pesar de que un bloque de funcin
puede tener un muy complejo ECC con un gran nmero de transiciones entre los estados, la sobrecarga implicada en las transiciones de prueba puede ser pequea porque en cualquier momento
slo un estado estar activo.
Cabe destacar que el ECC est pensado principalmente para representar las relaciones entre los
eventos de entrada, ejecucin de algoritmo y el disparo de eventos de salida. No debe ser utilizado
para modelar el comportamiento de estado de aplicacin, por ejemplo, para modelar diversos modos de control. Los estados de aplicacin y el comportamiento relacionado deben definirse dentro
de los bloques de funcin propios algoritmos. Para una gran mayora de los bloques de funcin
bastante complejos, la ECC debe ser relativamente simple, con tan slo cuatro o cinco estados.
50
51
END_STATES
EC_TRANSITIONS
START TO INIT
INIT TO START
START TO RAMP
RAMP TO START
END_TRANSITIONS
:=
:=
:=
:=
E_Init;
1;
E_Run;
1;
VAR_INPUT
X0 : REAL;
X1 : REAL;
Cycle : TIME;
Duration : TIME;
PV : REAL;
END_VAR
VAR_OUTPUT
Out : REAL;
Hold : BOOL
END_VAR
VAR
T : TIME; (* Time into Ramp *)
END_VAR
(* Algorithm definitions *)
ALGORITHM ALG_INIT IN ST:
T := T#0s;
END_ALGORITHM
ALGORITHM ALG_RAMP IN ST:
IF T < Duration THEN
OUT := X0 + (X1-X0)*
TIME_TO_REAL(T)/TIME_TO_REAL(Duration);
T := T + Cycle;
Hold := PV > Out;
END_IF;
END_ALGORITHM
END_FUNCTION_BLOCK
El comportamiento del bloque de funcin Ramp est completamente definido en esta declaracin de tipo. A la entrada del evento de inicializacin E_Init, los valores de entrada que caracterizan el comportamiento de Ramp, es decir, X0, X1, Duration y Cycle, son almacenados.
El estado INIT se activa causando que el algoritmo de inicializacin ALG_INIT sea invocado. Esto restablece la variable de temporizador interno T. El evento de salida E_rdy se
activa cuando el algoritmo de inicializacin ha terminado, tal como se define en las declaraciones
EC_STATE.
52
Del mismo modo, cuando se recibe el evento de de ejecucin E_Run, una transicin de estado RAMP se produce haciendo que el algoritmo ALG_RAMP se ejecute. Esto calcula el
nuevo valor de salida para OUT en base a los valores de X0, X1, Cycle y Duration y el tiempo
T de Ramp. El algoritmo tambin comprueba si la salida supera el valor de entrada de PV, en
cuyo caso la salida Hold se establece en true.
Ejecucin de Algoritmos
La norma define de manera muy precisa la manera en que los eventos que llegan a las entradas
de evento de los bloques de funcin desencadenan cambios de estado dentro del ECC que luego, a
su vez, causan la programacin de algoritmos de bloque de funcin por el recurso. Los principales
aspectos de este comportamiento se resumen de la siguiente manera:
Las variables que almacenan recursos y actualizan eventos para registrar la llegada de los
eventos de entrada en la interfaz de la instancia de bloque de funcin. REVISAR XXXXXXX
El recurso a continuacin slo permite un cambio de estado dentro del ECC si: (a) que se
hayan recibido eventos de entrada, (b) la condicin de transicin que va desde el estado
activo actual (es decir, del Estado predecesor de la transicin) se ha cumplido y (c) todos los
algoritmos invocados por las acciones en el estado actual han cesado la ejecucin.
53
54
Condicin
Libre
s1
Programando
algoritmos
s2
Esperando que se
completen los
algoritmos
Notas
En este estado, nada en el bloque
se est ya sea ejecutando o
pendiente de ejecucin. El bloque
est a la espera de la llegada de los
eventos de entrada.
Durante el estado S1, el recurso ha
detectado que un evento de entrada
ha llegado y va a programar el/los
algoritmo/s del bloque cuando
otros algoritmos activos o de
mayor prioridad de otros bloques
hayan terminado.
El recurso ha iniciado la ejecucin
del/de los algoritmo/s
seleccionado/s del bloque y ahora
espera hasta que el/los algoritmo/s
haya/n terminado.
3.4.
55
mientras que las conexiones de eventos definen el orden de ejecucin de los algoritmos dentro de
los bloques. REVISAR XXXXX
56
57
58
59
60
MERGE1 : E_MERGE;
END_FBS
(* Event connections *)
EVENT_CONNECTIONS
E_RUN TO RAMP1.E_RUN;
E_INIT TO MERGE1.EI1;
MERGE1.EO TO RAMP1.E_INIT;
RAMP1.E_Rdy TO E_Rdy;
RAMP1.E_ExO TO E_ExO;
COMPARE.E_GT TO MERGE1.EI2;
END_CONNECTIONS
(* Data connections *)
DATA_CONNECTIONS
0.0 TO RAMP1.X0;
1000.0 TO RAMP1.X1;
CYCLE TO RAMP1.CYCLE;
DURATION TO RAMP1.DURATION;
RAMP1.OUT TO COMPARE1.X;
TARGET TO COMPARE1.Y;
Compare1.X0 TO OUT;
END_CONNECTIONS
END_FUNCTION_BLOCK;
El formato de texto es ms bien como una lista para construir un circuito electrnico. En l
se describen todas las entradas y salidas de eventos y datos, los bloques de funcin internos y las
conexiones de eventos y datos. Cada parte de la definicin es introducida por una palabra clave de
bloque, por ejemplo, EVENT_INPUT ... END_EVENT define todos los eventos de entrada para
el bloque, de manera similar DATA_CONNECTIONS ... END_CONNECTIONS define todas las
conexiones de datos entre la interfaz externa y bloques internos.
La Sintaxis Textual ha sido desarrollada para formar un formato genrico y portable que se
puede utilizar para expresar la estructura de un bloque compuesto. No expresa directamente los aspectos algortmicos de la conducta del bloque, pero s define sin ambigedades cmo se construye
el bloque desde el cual su comportamiento puede ser deducido. De hecho, actualmente se estn
desarrollando herramientas de software que puede traducir automticamente entre las representaciones grficas y textuales.
3.5.
Definiendo Subaplicaciones
Una subaplicacin puede considerarse como una forma especial de bloque de funcin compuesto que est diseado para ser distribuido. Es decir, puede correr opcionalmente en ms de
un recurso. Tiene una estructura similar a un bloque compuesto, pero algunas de las normas relativas al uso de los datos y eventos son relajadas. Un tipo de bloque de funcin subaplicacin slo
se puede utilizar dentro del cuerpo de otras subaplicaciones ms grandes y dentro de aplicaciones
completas. Sin embargo, un tipo subaplicacin s puede ser definido mediante bloques de funcin
compuestos, bsicos y otras subaplicaciones.
La principal caracterstica de contraste de una subaplicacin en comparacin con un bloque de
funcin compuesto es que opcionalmente se puede ejecutar en mltiples recursos. Recuerde que
los bloques bsicos y compuestos slo se pueden ejecutar en el mismo recurso, es decir, no es
posible dividirlas en partes que pueden funcionar con diferentes recursos. Una subaplicacin, sin
61
embargo, puede funcionar por un recurso o ser distribuido de manera que las diferentes partes se
ejecutan en diferentes recursos, en otras palabras, es distribuible.
Una forma de considerar una subaplicacin es que sta representa una seccin de red de bloques
de funcin reutilizable. Sera tpicamente utilizado para definir un arreglo de bloques de funcin
y las conexiones que se pueden volver a utilizar en diferentes configuraciones de red. En muchos
sentidos una definicin de tipo subaplicacin se asemeja a una macro de software, ya que permite
una solucin particular en forma de una red de bloque de funcin para ser fcilmente copiado.
REVISAR XXXXXXX
Por ejemplo, considere un bloque subaplicacin que proporciona un lazo de control de temperatura que consiste en un bloque de entrada analgica, un bloque de control PID y un bloque de
salida analgica tal como se muestra en la Figura 3.9a. Tpicamente, esto se puede utilizar para
controlar la temperatura de un dispositivo, por ejemplo, un recipiente de calentamiento u horno.
La funcin principal de este lazo de control es para (i) medir la temperatura actual, (ii) comparar
su valor con respecto al setpoint o temperatura deseada y luego (iii) ajustar un valor de salida que
acciona un dispositivo de calentamiento para corregir la temperatura. Estas tres funciones son mapeadas a tres bloques de funciones componentes que forman la subaplicacin. El bloque Input1
lee el valor actual de un sensor externo. El bloque PID1 proporciona un algoritmo a PID2 para
comparar la medida (PV) y los valores de setpoint y crear el valor de salida. El bloque Output1
toma el valor creado por el bloque PID y lo transfiere al actuador externo.
Input1 y Output1 se construirn como bloques de funcin compuestos y cada uno requiere
por lo menos un bloque de funcin de interfaz de servicio para proporcionar una interfaz con el
controlador subyacente con el fin de leer los valores de entrada y salida (E/S) del hardware del
controlador. Los bloques de funcin de interfaz de servicio son una forma especial de bloque que
proporciona diferentes interfaces con el dispositivo fsico o el sistema de comunicaciones y se
discuten en el captulo 4.
La Figura 3.9b muestra cmo la subaplicacin TempControl podra ser ejecutada dentro de
un simple controlador para proporcionar control de temperatura de lazo cerrado de un recipiente
calentado usando una camisa de vapor. La entrada a la subaplicacin TempControl es un valor de
temperatura que se lee desde un sensor tal como un termopar; la salida de la subaplicacin acciona
algn tipo de actuador, tal como una vlvula de vapor, para modificar el calentamiento.
Note que en este ejemplo, la subaplicacin TempControl es en realidad parte de una aplicacin
Single_Vessel_Control que ha sido declarada dentro de un solo recurso IEC 61499, es decir, todos
sus bloques de funcin se ejecutan en el mismo recurso.
Esta subaplicacin tiene dos entradas de evento, E_Init y E_Run. E_Init se utiliza para inicializar los bloques componentes internos. Se dispara el bloque PID para ejecutar y leer las variables
de entrada, es decir, el valor de la entrada Setpoint que se lee y se almacena en el PID. Esto define
la temperatura deseada a la que el lazo de control se estabilizar. En general, un algoritmo PID requerir un gran nmero de parmetros, tales como constantes de tiempo para las acciones integral
y derivativa. Estos no se muestran con el fin de mantener el ejemplo sencillo pero se inicializan en
la misma forma que el Setpoint. El evento E_Run se propaga a travs de la subaplicacin y hace
que el lazo de control actualice su salida externa de acuerdo con el valor calculado por el algoritmo
PID. En este ejemplo, podemos suponer que otro bloque de funcin de temporizacin dentro de
la aplicacin proporciona un flujo regular de eventos, a decir intervalos de 100 milisegundos en la
entrada de evento E_Run, para asegurar que el bloque TEMPCONTROL se invoque regularmente. Esto asegurar que la temperatura se mide a una tasa de barrido dada y su valor propagado a
la PID1, que a su vez crea un nuevo valor de salida para modular la salida de calor. REVISAR
XXXXXXX
62
63
64
La Figura 3.10 muestra el cuarto arreglo de distribucin donde los bloques Input1 y PID1 para la
entrada analgica y el algoritmo PID se ejecutan sobre un recurso Resource1 y la salida analgica Output1 se ejecuta en un segundo recurso Output1. En la prctica, esta disposicin significa
que la subaplicacin TEMPCONTROL se puede ejecutar en dos recursos independientes ubicados
en diferentes controladores. La Figura 3.10 muestra una posible configuracin fsica del sistema
que podra ser considerada. Se muestran dos controladores A y B unidos por algn tipo de sistema
de comunicaciones, por ejemplo utilizando una red Fieldbus o Ethernet. La entrada analgica se
conecta al controlador A, mientras que el actuador est conducido desde el otro controlador B.
La subaplicacin est distribuida en dos controladores, pero la funcionalidad interna est siendo
determinada por los bloques de funcin definidos en la definicin de tipo subaplicacin TEMPCONTROL original.
Se contempla que un diseador del sistema tendr libertad para seleccionar la disposicin de
distribucin apropiada para una subaplicacin de acuerdo con los requisitos de diseo del sistema. La disposicin de distribucin seleccionada por un diseador depender de muchos factores,
65
66
de servicio que estn manejando las comunicaciones entre los recursos. Cabe destacar que la norma IEC 61499 no define protocolos de comunicacin o direccionamiento estndar o parmetros
relacionados con las comunicaciones. Pero s proporciona un marco y una arquitectura para la definicin de los servicios como las comunicaciones con bloques de funcin de interfaz de servicio.
3.6. Resumen
En este captulo hemos cubierto los aspectos ms importantes de la definicin de tipo de bloque de funcin. Hemos examinado cmo las definiciones de tipo se pueden utilizar para crear
instancias de bloques de funcin. A su vez, hemos visto cmo Instancias de Bloques de Funcin
pueden ser utilizadas en nuevas definiciones de tipos para construir jerrquicamente bloques de
funcin de funcionalidad an mayor. Aunque los diseos se pueden crear grficamente, hemos
observado que la norma tambin define una sintaxis textual formal que puede ser utilizada como
una representacin alternativa.
Para resumir:
Hay tres categoras de bloque de funcin: (i) bsico, (ii) compuesto y (iii) subaplicacin.
El comportamiento de un bloque de funcin bsico se define en trminos de un grfico de
control de ejecucin (ECC) y uno o ms algoritmos.
Bloques de funcin compuestos se definen en trminos de una red de bloques de funcin
componentes.
Bloques subaplicacin son similares a los bloques de funcin compuestos pero tambin tienen la caracterstica flexible que pueden ser distribuidos para funcionar en ms de un recurso.
Bloques de funcin de interfaz de servicio proporcionan un medio para modelar la interaccin entre los recursos, el hardware subyacente y los sistemas de comunicacin.
Todas las definiciones de tipo de bloque de funcin se pueden definir grfica o textualmente.
Las representaciones grficas y textuales son intercambiables.
3.7.
Notas
1. SFC - Lenguaje Grfico de Funcin Secuencia definido en la Norma IEC 61131-3 de Lenguaje de Programacin PLC, y se utiliza para programar el comportamiento secuencial en
trminos de etapas y transiciones.
2. PID - Algoritmo de control proporcional, integral y derivativo comnmente utilizado para
proporcionar un control de lazo cerrado estable para la temperatura y la presin.
Captulo 4
Bloques de Funcin de Interfaz de Servicio
Este captulo revisa una forma especial de bloque de funcin que proporciona interfaces a los
sistemas de comunicaciones y recursos subyacentes.
Especficamente vamos a:
discutir por qu se requieren bloques de funcin de Interfaz de Servicio y mostrar dnde se
pueden utilizar
revisar las variables estndar de datos y eventos de entrada y salida requeridas en definiciones de tipo bloque de funcin de Interfaz de Servicio
revisar la notacin especial que se utiliza para describir la secuencia de interacciones externas con bloques de funcin de Interfaz de Servicio
considerar algunos ejemplos de bloques de funcin de Interfaz de Servicio y ver donde
podran aplicarse
finalmente, vamos a revisar los bloques de funcin de Gestin, que son una forma especializada adicional del bloque de Interfaz de Servicio para controlar la creacin y gestin de
bloques de funcin dentro de recursos y dispositivos.
68
Nombre de
tipo
IO_Writer
IO_Reader
Publisher
Subscriber
Servicio proporcionado
Aplicacin ejemplo
4.2.
Definiciones de Tipo
La norma IEC 61499 especifica en trminos generales la forma en que se define una interfaz
para un bloque de funcin SI. Cada bloque de funcin SI ofrece algn tipo de servicio, como
69
Lectura de E/S, Publicacin de valores en una red y as sucesivamente. Por lo tanto, se propone que
el nombre dado a cada tipo de bloque de funcin SI refleja el nombre del servicio que proporciona
el bloque, por ejemplo, ValvePositioner, HMIWriter.
Cabe sealar que un bloque SI puede iniciar un servicio en respuesta a un estmulo de una
aplicacin. Alternativamente, el bloque SI puede responder a una solicitud externa, tal como una
seal de un panel HMI, para obtener un valor desde una aplicacin. Los bloques de funcin SI
pueden ser modelados para soportar ambos tipos de comportamiento.
Eventos de entrada
INIT
Este evento de entrada se utiliza para inicializar un servicio particular que ha sido proporcionado por el bloque. Por ejemplo, se podra iniciar un servicio para proporcionar
la transmisin de datos a travs de un enlace serie. Este evento se enva tpicamente
con un nmero de parmetros de entrada para caracterizar el tipo de servicio, tales
como la direccin de red y la tasa de transmisin.
REQ
Este evento inicia una peticin para obtener datos de un agente externo. Por ejemplo,
este evento podra ser usado para iniciar una transmisin de una peticin para obtener
datos desde un dispositivo externo.
RSP
Este evento inicia la transmisin de una respuesta hacia un agente externo. Por ejemplo, se podra enviar datos a un dispositivo HMI remoto en respuesta a una peticin de
datos.
Eventos de salida
INITO
Estos eventos de salida sealan que el bloque de funcin SI ha completado su inicializacin, es decir, como resultado de recibir un evento INIT. No significa necesariamente
que el servicio se ha iniciado con xito; una salida de estado se proporciona para este
propsito.
CNF
El evento de confirmacin se emite cuando el bloque ha finalizado la transmisin
de una solicitud a un agente externo. Por ejemplo, se debe utilizar para indicar que
una peticin de lectura de un punto fsico particular de E/S ha sido procesado por el
sub-sistema de controlador de E/S.
IND
70
Datos de entrada
QI: BOOL
La entrada de datos QI se utiliza con el evento de entrada INIT como un simple calificador. Cuando es true, indica que el servicio prestado por el bloque debe ser
iniciado. Cuando se tiene el valor false con un evento INIT, indica que el servicio
debe ser terminado.
PARAMS: ANY
Esta entrada representa una estructura de datos que contiene un conjunto de valores
que se asocian con el servicio SI y definen sus caractersticas particulares. Los tipos
de datos y el nmero de valores dentro de la estructura sern especficos para el tipo
de servicio proporcionado por el bloque de funcin. Definicin de tipo de bloque de
funcin SI definir la estructura PARAMS y los valores por defecto de los parmetros
dentro de ella. Esta entrada slo se utiliza con el evento INIT y se utiliza para la
inicializacin del servicio.
Por ejemplo, una entrada PARAMS para un bloque de funcin SI de comunicaciones contendra la informacin de direccionamiento de red y otras caractersticas de
comunicaciones.
SD_1, ... SD_N: ANY
Estas entradas de datos se utilizan para enviar datos con las solicitudes y las respuestas.
El nmero de entradas y sus tipos de datos sern especficos para el tipo de servicio
prestado por el bloque de funcin, lo que se muestra en la notacin SD_1, ... SD_N.
Por ejemplo, en la escritura de valores a los dispositivos de salida, estos parmetros contendrn las direcciones de hardware (por ejemplo, rack, mdulo, canal) y los
valores de salida.
Datos de salida
QO: BOOL
Esta salida de clasificacin se usa para indicar si el servicio se ha completado con xito
por cualquier evento de entrada. Por ejemplo, despus de un evento de inicializacin
INIT, un valor true indicara una exitosa puesta en marcha, false indicara que el
servicio no ha podido ser inicializado.
STATUS: ANY
Esta salida se puede configurar con cualquiera de los eventos de entrada y se utiliza
para proporcionar el estado de procesamiento del ltimo evento de entrada. Por ejemplo, Status se establecer cuando un servicio se inicializa utilizando el evento INIT y
no ha tenido xito. Del mismo modo, cuando un evento REQ utilizado para transmitir
los valores a un dispositivo remoto se procesa y posteriormente falla, Status se utiliza
para mantener la razn del fallo.
71
72
respuesta a la solicitud puede ser devuelta, al escribir los datos a las entradas Responder SD_1 a
SD_m y disparando un evento en la entrada de evento RSP de respuesta. Estos datos se enviarn
por el sistema de comunicaciones de vuelta al bloque Requester originario donde ser recibido
y a su vez desencadenan un evento de salida CNF de confirmacin con datos, como ya hemos
comentado. REVISAR XXXX
Juntos, los bloques de funcin SI Requester y Responder pueden utilizarse para intercambiar
datos entre dos recursos vinculados por algn tipo de comunicacin o instalacin de red. El bloque Requester proporciona un servicio para que la norma IEC 61499 llame una interaccin de
aplicacin iniciada, en otras palabras, la solicitud de datos externos se desencadena por un evento
generado dentro de una aplicacin. REVISAR XXXXXXXXX
En contraste, el bloque Responder proporciona un servicio para una interaccin de recurso
iniciada. La solicitud de datos llega desde un recurso externo y los resultados en un evento de
indicacin IND siendo producido. En este caso, la aplicacin ser necesaria para reaccionar a los
eventos que pueden ocurrir en cualquier momento. REVISAR XXXXXXX
La Figura 4.2 muestra dos ejemplos ms de los bloques de funcin SI; IO_Writer se utiliza para
escribir valores en las salidas fsicas mientras IO_Reader se proporciona para leer los valores de las
entradas fsicas seleccionadas. Ambas funciones de una manera similar. REVISAR XXXXXXX
Vamos a considerar cmo podra utilizarse el bloque IO_Writer. La solicitud requerir por lo
menos una instancia de este bloque para escribir los valores a las salidas fsicas. Para configurar el
servicio, la aplicacin debe primero enviar un evento INIT con entrada QI en true y la entrada
PARAMS establecida para identificar las caractersticas del servicio. La entrada PARAMS podra
contener los detalles, tales como escribir las tasas de actualizacin, el nmero de reintentos en
73
caso de fallo, etc. A partir de entonces, los datos pueden ser enviados a la salida seleccionada
mediante el establecimiento de la entrada SD_1 a una direccin de salida, por ejemplo, punto de
rack, canales de E/S y el establecimiento del nuevo valor a la entrada SD_2. La escritura se inicia
con un evento en la entrada de evento REQ. REVISAR XXXXXXXX
Algn tiempo ms tarde, cuando el sistema de E/S de hardware ha completado la operacin de
escritura, un evento CNF de salida se producir para confirmar que la escritura se ha completado.
La salida STATUS proporciona una indicacin de si la operacin ha sido un xito. Si la operacin
ha fallado, STATUS contendr un cdigo de error apropiado. La salida RD_1 proporciona una
retroalimentacin del valor como lectura desde el dispositivo de salida. Esto se puede utilizar para
confirmar que la escritura ha sido exitosa. REVISAR XXXXXXXX
El bloque IO_Reader se lleva a cabo de una manera muy similar. Despus de inicializar el
servicio mediante el evento INIT, con las entradas QI y PARAMS, el valor de cualquier entrada
fsica se puede leer mediante el establecimiento de la direccin de IO en la entrada SD_1 y enviar
un evento a la entrada de evento REQ. Algn tiempo despus, cuando los datos se han ledo del
sensor de entrada, un evento de confirmacin tendr lugar en el evento de salida CNF. El xito de
la operacin de lectura se indica con el valor de salida STATUS y, si tiene xito, el valor ledo de
la entrada estar disponible en la salida RD_1. REVISAR XXXXXX
IO_WRITER e IO_READER son formas muy simples de bloques SI para acceder a hardware
de E/S. Sin embargo, bloques ms complejos podran ser considerados para modelar servicios para
leer y escribir, por ejemplo, varios valores para muchos puntos de E/S en una sola operacin.
Tenga en cuenta que el tiempo transcurrido entre la emisin de una solicitud mediante la activacin de un evento REQ y la recepcin del evento CNF de confirmacin depender de muchos
factores tales como:
la carga del sistema de planificacin de recursos
la velocidad del sistema operativo del dispositivo en respuesta a la peticin del recurso
el tiempo para transmitir una solicitud al punto fsico de E/S.
74
75
76
REQ+
REQCNF+
CNF-
IND+
INDRSP+
RSP-
77
78
END_SEQUENCE
SEQUENCE resource_initiated_termination
-> REQUESTER.INITO-(STATUS)
END_SEQUENCE
END_SERVICE
END_FUNCTION_BLOCK
Nuevas palabras clave SERVICE y END_SERVICE se proporcionan para contener las definiciones de la secuencia de servicio. Cada secuencia de servicio es introducida con la palabra clave
SEQUENCE y se cierra con la palabra clave END_SEQUENCE. La definicin de secuencia define los parmetros de las primitivas de servicio y asociadas que inician la transaccin. El operador
-> implica dos cosas: (i) que puede haber una demora de tiempo debida al procesamiento externo o latencia de comunicaciones y (ii) que el servicio primitivo resultante, como se indica a la
derecha de este operador, se producir como consecuencia de la primitiva de servicio en el lado
izquierdo. Los nombres de las secuencias deben asignarse uno-a-uno con los nombres que figuran
en los diagramas de secuencia temporal. Los nombres de las entradas, que deberan ser vlidos
cuando se inicia el servicio, se incluyen entre parntesis despus de la primitiva de servicio. Del
mismo modo, los nombres de las salidas, que se establecen para el servicio que resulta primitivo,
se muestran a la derecha.
Tenga en cuenta que en la ltima definicin de secuencia para resource_initiated_termination
no hay ningn componente para la transaccin dada a la izquierda del smbolo ->. Esto se debe
a que, en este caso, la transaccin se produce por algn agente desconocido fuera del recurso.
Por ejemplo, esto puede ocurrir cuando hay un fallo de suministro de energa inminente y por lo
tanto el dispositivo enva una transaccin no solicitada a travs de la interfaz de los recursos para
terminar el servicio IO_WRITER.
Cualquier comportamiento adicional del bloque de funcin SI, por ejemplo, para comprobar
la validez de determinadas entradas antes de iniciar un servicio, puede ser modelado mediante la
encapsulacin del bloque SI dentro de un bloque compuesto como se discute en el captulo 3.
Bloques de funcin adicionales podran ser aadidos para filtrar los datos de entrada y verificar los
datos de respuesta.
Cabe sealar que la definicin de tipo de bloque de funcin SI slo contiene definiciones de
comportamiento que se produce dentro del dominio de bloque de funcin, es decir, dentro del
recurso. No define el comportamiento fuera del Recurso que es proporcionado por el sistema operativo del dispositivo, hardware o sistemas de comunicaciones. Todo esto est fuera del alcance de
la norma IEC 61499.
79
80
4.5.
La ltima forma de bloque de funcin SI que se define en la norma concierne los servicios
para carga, comienzo e inicio de la ejecucin del bloque de funcin. La norma define una forma
genrica de bloque de funcin de Gestin como se muestra en la Figura 4.8 que puede ser utilizado
para iniciar una serie de funciones de servicio que utilizan diferentes definiciones de comandos.
Las descripciones de estos servicios y su funcionamiento slo se dan en lneas generales en la
norma. Esta es un rea que es particularmente difcil de modelar porque los sistemas tienden a
tener mecanismos completamente diferentes para la carga y la creacin de redes de bloques de
funcin y para comenzar la ejecucin de las aplicaciones cargadas. En el futuro, es probable que
ms detalles sobre estos servicios se incluyan en otras partes de la norma, pero es un gran tema
que ser difcil de modelar de una manera general.
En un extremo, para iniciar una aplicacin, un sistema puede requerir que todos los bloques de
funcin y bibliotecas de recursos de soporte se compilen en un formato binario y se descarguen
en dispositivos separados. En el otro extremo, los dispositivos pueden tener grandes bibliotecas
de bloques de funcin pre-cargadas, por ejemplo, las definiciones de bloques de funcin podran
ser todas parte del firmware del dispositivo. En este caso, una aplicacin puede ser creada con
slo descargar las definiciones de las conexiones que se requieren para crear redes de bloques
de funcin de la aplicacin en los diferentes dispositivos. Tambin puede haber sistemas hbridos
donde algunos bloques de funcin estn en el firmware, mientras que otros son descargados.
Los servicios que son compatibles con el bloque de funcin de Gestin se aplican tanto a nivel
de recursos como de dispositivos, tal como se muestra en la Tabla 4.3 y en la Tabla 4.4.
El bloque de funcin de Gestin puede usarse especificando valores diferentes para la entrada
CMD para iniciar las diversas funciones de servicio. La respuesta a cada forma de funcin de
servicio est dada por el valor devuelto en la salida Status. La funcin de servicio se caracteriza
adems por el valor de la entrada CMD_PARAMS.
Ejemplos:
CMD = CREATE
CMD_PARAMS = fb_instance_definition
Initialise
Start
Stop
Delete
Query
81
Descripcin
Crea definiciones de tipos de datos, tipos de
bloques de funcin e instancias y las
conexiones entre los bloques de funcin. Esto
implicar descarga de definiciones de una
fuente, por ejemplo, copiado a travs de una
red, copiado desde una tarjeta de memoria
inteligente.
Inicializar tipos de datos, tipos de bloques de
funcin e instancias y las conexiones. Esto
concierne la creacin de los bloques de funcin
y las conexiones en un estado ejecutable e
incluir restablecer las variables a sus valores
predeterminados iniciales.
La funcin Start provoca la ejecucin de las
redes de bloques de funcin dentro de un
recurso. Por lo general comenzar la funcin
de planificacin de los recursos y empieza a
ejecutar los bloques de funcin SI que generan
eventos temporales. Estos, a su vez, disparan
cadenas de eventos que causan la ejecucin del
bloque de funcin.
El servicio Stop hace que toda la ejecucin
cese suspendiendo la funcin de planificacin
de los recursos.
El servicio Delete se puede utilizar para
suprimir la definicin de cualquier tipo de
datos, bloques de funcin o conexin.
El servicio Query proporciona un medio para
acceder a la informacin sobre el estado, los
atributos y la existencia de tipos de datos,
bloques de funcin y conexiones.
82
Initialise
Start
Stop
Delete
Query
Descripcin
Crea y establece un recurso dentro de un
dispositivo. Esto establece las caractersticas y
atributos de un recurso en un dispositivo.
Inicializa el recurso para estar listo para cargar
y ejecutar los bloques de funcin.
Inicia el recurso para permitir la ejecucin de
bloques de funcin.
Detiene la ejecucin de los recursos de los
bloques de funcin.
Borra los recursos desde el dispositivo de
manera que ya no se pueda acceder para cargar
y ejecutar los bloques de funcin.
Consulta el dispositivo para obtener
informacin sobre el estado, los atributos y la
existencia de recurso/s en el dispositivo.
4.6.
Resumen
Ahora hemos cubierto los aspectos importantes de las funciones de Interfaz de Servicio de la
norma IEC 61499. Para recapitular, se proporcionan bloques de funcin de Interfaz de Servicio
(SI) para dar una interfaz entre los bloques de funcin que se ejecutan en los recursos y los
servicios proporcionados fuera del recurso. Una definicin de tipo de bloque de funcin SI slo
4.6. RESUMEN
Estado
THAWED
RETAINED
IDLE
RUNNING
STOPPED
KILLED
83
Significado
La informacin de estado interno del bloque de funcin est
disponible y el bloque de funcin est listo para iniciar la
ejecucin. Este estado existe cuando el dispositivo que contiene
el bloque de funcin est siendo encendido.
Un bloque de funcin es considerado en este estado cuando el
dispositivo que lo contiene est completamente apagado.
El bloque de funcin se encuentra en un estado inicializado. El
grfico de control de ejecucin del bloque se encuentra en su
estado inicial, las variables de entrada y salida tienen sus valores
iniciales.
En este estado, el bloque de funcin se considera disponible para
la recepcin de eventos de entrada. Cualquier evento de entrada
se har por medio de la funcin de programacin de recursos.
Todo el procesamiento de los algoritmos y eventos de entrada se
termina mediante la funcin de programacin.
La operacin de todos los procesos eventos y algoritmos de
entrada se inhiben.
84
Captulo 5
Bloques de Funcin de Evento
Como se ha expuesto en los captulos 1 y 2, una propiedad fundamental de las redes de bloques
de funcin IEC 61499 es que la ejecucin de todos los programas dentro de cada bloque de funcin
es, de alguna manera, disparado por evento. En este captulo vamos a revisar un conjunto especial
de bloques de funcin estndar que se proporcionan para el comportamiento de eventos. Estos
bloques de funcin pueden ser utilizados para modelar el control, la generacin y la deteccin de
eventos.
En este captulo se describirn los bloques de funcin de eventos estndar que:
permiten que los eventos se dividan para producir nuevos eventos
permiten que los eventos se combinen
permiten la propagacin de eventos particulares
seleccionan entre dos o ms eventos
retrasan un evento por un perodo determinado
generan flujos de eventos
crean eventos de deteccin de flancos Booleanos.
86
primer bloque de funcin en cada cadena de bloques de funcin. Los sistemas de control tpicamente tambin tendrn otros requerimientos tales como una necesidad de dividir los eventos para
activar simultneamente mltiples cadenas de bloques o para crear trenes de eventos para que los
bloques sean regularmente re-ejecutados, por ejemplo, cuando se modela un sistema que escanea
E/S. REVISAR XXXXXXX
La Figura 5.1 muestra un ejemplo sencillo de un sistema de control que inicia la ejecucin
cuando el sistema est inicialmente encendido, es decir, arranca en fro y luego contina con
la ejecucin de dos cadenas de bloques de funcin en paralelo. Un evento de arranque en fro
es claramente necesario para iniciar el primer bloque de funcin en la cadena. Cuando el primer
bloque FB1 ha completado su ejecucin, hay un requisito para ejecutar dos cadenas separadas de
bloques de funcin. Esto se demuestra por los bloques FB2a y FB3a divisores y disparadores de
evento. Cuando FB2b y FB3b han completado ambos su ejecucin, los eventos de los dos bloques
se unen utilizando un punto de encuentro para crear un evento simple que luego, a su vez, dispara
el ltimo bloque de funcin FB4.
En este primer ejemplo, los bloques de funcin slo se ejecutan una vez cuando el sistema
arranca en fro, porque slo es generado un evento inicial. Sin embargo, por lo general un sistema
de control requerir comportamiento escaneado donde los bloques de funcin se necesitan ejecutar
varias veces para supervisar estados de la planta, actualizaciones de actuadores y as sucesivamente. Esto puede lograrse haciendo pasar un tren de eventos en el primer bloque de funcin, como se
muestra en la Figura 5.2. Supongamos que el tren de eventos consta de un flujo regular de eventos
enviados a intervalos regulares, por ejemplo cada 100 milisegundos. Ahora todos los bloques de
funcin en los dos caminos paralelos sern continuamente re-ejecutados cada 100 milisegundos
despus del arranque en fro.
En las Figuras 5.1 y 5.2, cada crculo sombreado representa alguna forma de comportamiento
de los eventos. De hecho, veremos que cada crculo puede ser sustituido por uno de los bloques de
funcin de evento IEC 61499. El diagrama de tiempos que se muestra abajo de la red bloque de
funcin en la Figura 5.2 describe el flujo de eventos que entran en la cabecera de control de eventos
del bloque de funcin FB1. Tambin se muestra la secuencia de eventos que salen del evento punto
de encuentro. Tenga en cuenta que aqu los eventos estn ligeramente retrasados debido al tiempo
para ejecutar algoritmos en las redes de bloques de funcin paralelas y debido a los retrasos en la
programacin de recursos. El perodo entre los eventos tambin vara ligeramente debido a retrasos
en la ejecucin que pueden variar, por ejemplo, un algoritmo puede no necesariamente siempre
toma el mismo perodo de tiempo para ejecutarse ya que esto puede depender de los valores de
entrada y de variables internas.
87
88
Evento Splitter
El Evento Splitter produce dos o ms eventos de salida simultneos sobre la recepcin de un
solo evento de entrada, como se muestra en el diagrama de temporizacin (Figura 5.4).
Evento Merger
El Evento Merger produce un nico flujo de eventos de salida mediante la fusin de los eventos
entrantes en las entradas de evento EI1 a EIn . Esto puede ser utilizado para combinar dos o ms
eventos (Figura 5.5).
89
Evento Selector
El Evento Selector permite que el flujo de eventos de salida sea seleccionado desde cualquier
entrada de evento EI0 o EI1 dependiendo de si G tiene valor false o true, respectivamente
(Figura 5.8).
Evento Switch
El Evento Switch puede ser utilizado para dirigir el flujo de eventos entrante sobre la EI para
ir a la salida EO0 o EO1. G establecido en false conmuta los eventos hacia laa salida EO0, G
seteado en true enva los eventos hacia la salida EO1 (Figura 5.9).
90
91
92
93
94
95
y Event Switch. Debido a que el Data Latch slo produce un evento de salida cuando la entrada
cambia de estado, un evento slo se produce cuando hay un cambio de false a true. El Evento
Switch asegura que slo se selecciona el evento para una transicin positiva.
96
5.3.
Est previsto que las herramientas de software proporcionarn definiciones de estos bloques de
funcin de eventos en sus bibliotecas de bloques de funcin estndar. Ahora podemos examinar el
ejemplo de la cadena de eventos cclicos como se muestra en la Figura 5.2 y ver cmo los eventos
pueden ser modelados usando los bloques de funcin de eventos estndar. La Figura XXX muestra
cmo el esquema de eventos tal como se representa en la Figura 5.2 se puede crear mediante la
insercin de bloques de funcin de eventos estndar.
El evento de arranque en fro es proporcionado por una instancia del generador de eventos de
reinicio (ver FB_E3). El tren de eventos necesario para mantener la ejecucin cclica de las dos
cadenas de bloques de funcin es proporcionado por un Generador de Evento Cclico (ver FB_E4).
El evento de arranque en fro y el tren de eventos se fusionan con un Evento Merger (ver FB_E5).
La secuencia de eventos fusionada resultante se utiliza para desencadenar la ejecucin de FB1. La
secuencia de eventos que emerge de FB1 se divide en dos flujos de eventos para ejecutar las dos
cadenas de bloques de funcin por medio de un Evento Splitter (ver FB_E1).
Los flujos de eventos finales de las dos cadenas de bloques de funcin, es decir, de FB2b y
FB3b, pasan luego por un bloque de Encuentro de Dos Eventos (ver FB_E2). Esto asegura que la
ejecucin de ambas cadenas de bloques de funcin est completa antes de la ejecucin del bloque
final FB4.
5.4. RESUMEN
97
5.4. Resumen
Ahora hemos cubierto todos los bloques de funcin de eventos estndar definidos en la norma
IEC 61499 y visto que estos pueden ser utilizados para modelar una amplia gama de diferentes
esquemas de eventos, por ejemplo, desde redes en las que los bloques de funcin slo estn obligados a ejecutarse una vez, por ejemplo como respuesta a un arranque en fro del sistema, hasta
redes complejas donde hay cadenas paralelas de bloques que requieren ejecucin cclica.
En resumen:
Bloques de funcin de eventos proporcionan una definicin precisa del comportamiento del
evento.
98
5.4. RESUMEN
99
100
5.4. RESUMEN
101