Está en la página 1de 10

Julio 2004 / n.

º 353 ESPECIAL Automática e Instrumentación

Programación de controladores

Estándares IEC 61131-3 y IEC 61499


La estandarización de los lenguajes de programación en los PLC
ha surgido de la imperiosa necesidad de mejorar las técnicas de
programación para los sistemas de control industrial, no sólo para
acrecentar la calidad, sino también para incrementar la
productividad en general. Este artículo es el primero de una serie
de tres que pretende introducir al lector en las ideas básicas de
los estándares IEC 61131-3, evidenciar que este estándar, a pesar
de sus años, es de actualidad, y preparar el terreno para presentar
el estándar IEC 61499, una solución viable en el diseño de
sistemas industriales de control distribuido, tendencia en el área
de la automatización industrial.

l crecimiento acelerado en el de ensamblaje es el uso de estánda- guaje de programación con una es-

E uso de controladores lógicos


programables para aplica-
ciones industriales trajo consigo una
res y soluciones abiertas que permi-
tan la interoperabilidad entre pro-
ductos de diferentes proveedores.
tructura o representación similar a la
de los arreglos de relevadores (dia-
gramas de escalera) fue una buena
67

gran diversidad de lenguajes de pro- La adopción del estándar IEC elección, ya que facilitaba el entre-
gramación en todas sus variantes. 61131-3 es sólo un pequeño pero im- namiento de los operadores. Así, el
Diferentes soluciones propietarias portante eslabón en la cadena de so- primer lenguaje de programación
proponían cada vez mejoras indivi- luciones abiertas, y puede brindar para PLC considerado de alto nivel
duales, acrecentando la diversidad. beneficios inmediatos en los siste- fue el Lenguaje Escalera (LE). Aún
Esta situación resulta un tanto in- mas automáticos de toda empresa. hoy se utiliza este lenguaje, basado
cómoda para las empresas, ya que tie- en los principios del álgebra boolea-
nen que invertir recursos económi- Evolución del controlador na.
cos cada vez que se realiza un cambio lógico programable y los Cuando se comprendió el gran po-
o actualización de la línea de pro- sistemas de control tencial de los PLC como valiosa he-
ducción. industriales rramienta computacional y se dio la
El cada vez más exigente consu- La evolución de los lenguajes de pro- evolución de capacidades que ahora
midor demanda mejor calidad y pro- gramación de PLC ha recorrido un ca- tienen, aparecieron los lenguajes de
ductos más económicos, amen de la mino similar al de los lenguajes de alto alto nivel con funciones especiales
enorme competencia que se suscita nivel. Inicialmente se realizaban pe- complejas, que en el diagrama esca-
por apoderarse del mercado, lo que queñas aplicaciones donde se utili- lera aparecen en el lugar de las sali-
requiere de las empresas una políti- zaba la programación lineal median- das. Más tarde, se desarrollaron los
ca de constante actualización de las te lenguajes literales o a contactos Lenguajes Especiales de Computa-
líneas de producción. Para lograrlo, (diagrama de escalera). Posterior- dora, también de alto nivel, que son
optimizando todo tipo de recursos, es mente se amplió el campo de aplica- muy similares a los lenguajes de pro-
fundamental contar con sistemas pro- ción hacia áreas no sólo de control se- gramación de computadoras como
ductivos ágiles, flexibles y abiertos o cuencial, sino de control del proceso, el Basic y el C, para hacer más ami-
no propietarios. pasando a la programación estruc- gable la programación.
Una empresa tendrá éxito según turada con módulos funcionales o El lenguaje escalera utiliza un mar-
sea su capacidad de adaptarse rápi- procedimientos organizados desde co de programación que obliga a cen-
damente a los nuevos tiempos. Sin un programa principal. trarse en cada salida individualmen-
duda, una de las soluciones en el área Al inicio, la utilización de un len- te, en lugar de hacerlo en el flujo y
Automática e Instrumentación ESPECIAL Julio 2004 / n.º 353

operación del proceso o sistema que tar un sistema descentralizado res-


se controla. La programación con un pecto a uno centralizado es sustan-
LE requiere el uso de soluciones de cial, pues la disminución en la canti-
casos especiales, eliminando la posi- dad de cable es considerable, lo que
bilidad de una programación limpia, se traduce en ahorro de recursos
directa y elegante. Además, muy a asignados para mantenimiento o ac-
menudo los programas resultantes tualizaciones.
son difíciles de modificar por no te- Sin embargo, en el sistema des-
ner una estructura modular. Para centralizado los elementos que lo
mejorar la programación en estos as- componen no cuentan con la auto-
pectos, han surgido metodologías de nomía necesaria para la toma de de-
programación basadas en reglas como ■ Sistema de control centralizado. cisiones, con lo que se tienen ciertas
la lógica difusa y la lógica de estado. características heredadas de los sis-
Para aplicaciones demandantes de lados por el PLC central, el cual ad- temas centralizados, tal como la toma
recursos avanzados de programa- ministra los tiempos en la sucesión de decisiones centralizada.
ción, en las cuales el lenguaje esca- de los eventos entre los elementos
lera no proporcionaba las herra- que componen el sistema. Debido a Sistema distribuido
mientas necesarias, los proveedores que un solo PLC está a cargo del res- Un sistema distribuido tiene la ca-
de PLC diseñaban para cada solu- to de entidades, las peticiones de de- racterística de que sus elementos
ción que se requería lenguajes ade- cisiones sobre qué hacer en los si- suelen ser altamente autónomos y
cuados a sus necesidades, lo que de- guientes pasos se acumulan retienen la mínima información glo-
sembocó en una gran cantidad de rápidamente. Fallos en el procesador bal. Para disminuir la complejidad
lenguajes específicos de cada prove- central provocan el fallo de todo el del sistema, se debe minimizar la in-
edor de PLC. sistema y, además, realizar modifi- formación global y mejorar la tole-
Recientes tendencias en el área de caciones es muy difícil. Por todo ello rancia a fallos. Pero la información in-
68 la automatización sugieren nuevas es evidente que este tipo de arqui- completa junto a una muy alta
formas de programar los dispositi- tectura es sólo apropiada en sistemas autonomía puede provocar que las
vos útiles para este fin. La interope- pequeños. decisiones tomadas localmente no
rabilidad entre sistemas es una de sean las más óptimas para el sistema.
las razones principales de estanda- Sistema descentralizado La diferencia radica, entonces, en la
rizar. Esto, junto a la necesidad de En los sistemas descentralizados apa- cooperación de las entidades, las res-
simplificar la forma de programar y recen como figura principal los buses ponsabilidades y los efectos que de
de reutilizar código generado con an- de campo: mediante un solo cable ésta emanan como parte implícita de
terioridad, es lo que ha conducido al de comunicación se pueden conec- su funcionamiento. Cada entidad tie-
nacimiento del estándar IEC 61131. tar al bus captador y accionamientos, ne definidas metas locales y globales.
El PLC, por sus especiales carac- reemplazando al cableado tradicional. Las primeras se refieren al cumpli-
terísticas de diseño, tiene un campo El autómata consulta cíclicamente miento de sus propias tareas, mien-
de aplicación muy extenso. La cons- el estado de los captadores y actua- tras que la meta global es lograr el óp-
tante evolución del hardware y soft- liza el estado de los accionamientos. timo desempeño general del sistema.
ware amplía frecuentemente este El ahorro de recursos al implemen- El sistema distribuido está forma-
campo para satisfacer las necesida-
des que se detectan en el espectro de
sus posibilidades reales, que han ido
adecuándose según los requisitos de
los sistemas de control que los de-
manden. A grandes rasgos, se pue-
den identificar principalmente tres
etapas dentro de los sistemas de con-
trol en los cuales ha estado presen-
te el PLC.

Sistema centralizado
En la arquitectura centralizada, la
mayoría de los eventos son contro- ■ Sistema de control descentralizado.
Julio 2004 / n.º 353 ESPECIAL Automática e Instrumentación

1992. Con la idea de desarrollar el es-


tándar adecuado para una gran di-
versidad de aplicaciones, se definie-
ron cuatro lenguajes: dos textuales
(lista de instrucciones (LI), texto es-
tructurado (TE)), y dos gráficos (Dia-
grama de Bloques Funcionales (DBF)
y lenguaje escalera (LE)), y se deci-
dió incluir el grafico secuencial de
funciones como herramienta para
auxiliar en el desarrollo de aplica-
■ Sistema de control distribuido.
ciones.
Los lenguajes de programación de
PLC estandarizados surgieron de la
do por entidades autónomas, pero ridad, gracias a que su entendimien- necesidad de mejorar las técnicas de
las metas son interdependientes por- to resultaba intuitivo. Pero, a pesar programación para sistemas indus-
que comparten los recursos, además de que fue adoptado por un gran nú- triales de control. Dicho estándar no
de planificar sus acciones de acuer- mero de compañías desarrolladoras, sólo aumenta la calidad del softwa-
do a una perspectiva global. cada una de las implementaciones re, sino que también mejora la pro-
difería sustancialmente, por lo que re- ductividad del desarrollo.
Nuevos controladores lógicos almente eran diferentes. Para los in- El estándar reunió algunas prácti-
programables volucrados en sistemas industriales cas comunes de programación para
Existe una gran diversidad de nue- de control, trabajar con estas dife- producir un muy bien definido gru-
vos controladores, muchos de los rencias resultaba ineficiente. po de lenguajes. Pero además, el es-
cuales conservan las características El incremento de complejidad en tándar proporciona lo necesario para
de programación antes menciona- la programación de los autómatas el desarrollo de software bien es- 69
das, que concuerdan con el estándar programables requiere más que nun- tructurado. Además de ofrecer faci-
IEC 61131-3. Sin embargo, por sus ca de la estandarización. Bajo la di- lidades para empaquetar soluciones
tendencias innovadoras y capacida- rección del IEC, fue definido el es- probadas en bloques de funciones, las
des distintas destacan el SNAP, de tándar IEC 61131-3 para la cuales pueden ser reutilizadas cada
Imsys, y el PTC, de Nematron. Am- programación de PLC, que alcanzó la vez que se requieran, el estándar me-
bos integran la máquina virtual de categoría de estándar en agosto de jora la productividad.
Java, lo que los habilita para ejecu-
tar líneas de código escritas en Java,
además de la capacidad de conec- Elementos del estándar IEC 61131
tarse a Ethernet, lo que los convier-
te en soluciones viables para el con- Parte 1. Información general (IS): define la terminología básica y con-
trol remoto. Estos dos controladores ceptos del estándar.
soportan el protocolo de comunica- Parte 2. Requisitos de equipo y pruebas (IS): Construcción mecánica
ción TCP/IP y tienen capacidades de y eléctrica y pruebas de verificación.
memoria que oscilan entre los 2 y 4 Parte 3. Lenguajes de programación (IS): Estructura del software, len-
Megabytes de memoria flash y 8 de guajes y ejecución de programas en PLC.
Memoria RAM o, en el caso del PTC, Parte 4. Líneas de guía al usuario (CD): Guías para la selección, insta-
2 de SRAM. lación y mantenimiento de los PLC.
Parte 5. Servicios de comunicación (CD): Servicios de comunicación
Surgimiento del estándar IEC para facilitar la interacción con otros dispositivos basada en servicios de
61131-3 mensajería en sistemas de manufactura.
Diversidad de lenguajes Parte 6. Comunicaciones vía buses de campo: Servicios de comunica-
Durante las décadas de los setenta y ción utilizando IEC buses de campo.
ochenta se utilizaba una amplia di- Parte 7. Programación de control difuso: Software, incluyendo FB es-
versidad de técnicas de programación tándares para manejo de lógica difusa con PLC.
para aplicaciones industriales de con- Parte 8. Pautas para la implementación de lenguajes para controles pro-
trol. El lenguaje escalera fue una de gramables: aplicación e implementación de pautas para los lenguajes del
las técnicas que ganó mayor popula- IEC 61131-3.
Automática e Instrumentación ESPECIAL Julio 2004 / n.º 353

La instrumentación industrial y los den muy importante, ya que cambia Grafcet, proporciona una represen-
sistemas de control necesitan siste- el resultado final. Con IL sólo es per- tación en forma de diagrama de las
mas abiertos que puedan operar con mitida una operación por línea. secuencias del programa. Los ele-
equipos de diferentes proveedores. mentos básicos son pasos y transi-
Hasta la publicación del estándar IEC Diagrama de Bloques ciones. Los pasos consisten en pie-
61131-3, no existía ningún estándar Funcionales (Function Block zas de programa que son inhibidas
que definiera la forma en que los PLC Diagram-FBD) hasta que una condición especifica-
debían ser programados en los sis- Diagramas de Bloques Funcionales es da por las transiciones es conocida.
temas de control. un lenguaje gráfico usado para cons- Como las aplicaciones industriales
El objetivo de este primer artícu- truir procedimientos complejos a par- funcionan en forma de pasos, el GSF
lo de la serie de tres que se irán pu- tir de una librería de funciones. Las es la forma lógica de especificar y
blicando, es introducir brevemente librerías estándar, tales como las de programar el más alto nivel de una
los lenguajes de programación es- Matemática o Control, pueden ser aplicación para PLC.
tandarizados en IEC 61131-3, po- combinadas con librerías de funcio-
niendo más énfasis en los lenguajes nes personalizadas, como llamada de Texto Estructurado (Structured
gráficos, y algunas de las ideas fun- módem, interface Hart, controlado- Text-ST)
damentales del estándar se comple- res PID y ModBus Maestro para cre- Utilizado para procedimientos com-
mentarán con un ejemplo. ar programas de aplicación de Dia- plejos o cálculos que no pueden ser
gramas de Bloques Funcionales. fácilmente implementados utilizando
Lenguajes de programación Se trata de un lenguaje gráfico que lenguajes gráficos, el Texto Estruc-
del estándar IEC 61131-3 permite programar elementos que turado (TE) es un lenguaje de alto
La selección del lenguaje a utilizar aparecen como bloques para ser ca- nivel estructurado por bloques que
para un desarrollo puede estar basada bleados entre sí de forma análoga al posee una sintaxis parecida al Pas-
en la naturaleza de la aplicación, y vie- esquema de un circuito. Además, es cal. Puede ser empleado para reali-
ne determinada por las preferencias adecuado para muchas aplicaciones zar rápidamente sentencias comple-
70 del programador. La IEC 1131-3 es que involucren el flujo de información jas que manejen variables con un
una norma aprobada como estándar o datos entre componentes de con- amplio rango de diferentes tipos de
internacional para los lenguajes de trol. datos, incluyendo valores analógicos
programación de PLC. Dicha norma y digitales. También especifica tipos
recoge todos los tipos de operacio- Gráfico Secuencial de Funciones de datos para el manejo de horas,
nes comunes en PLC. (Secuential Function Chart-SFC) fechas y temporizaciones, algo im-
Usado para describir operaciones se- portante en procesos industriales. El
Lenguaje Escalera (Ladder cuenciales en una aplicación, un Gra- lenguaje posee soporte para bucles
Diagram-LD) fico Secuencial de Funciones (GSF) iterantes, ejecuciones condicionales
El Lenguaje Escalera es un excelen- está compuesto por acciones a ser y funciones.
te lenguaje gráfico para lógicas dis- ejecutadas y pruebas de las accio-
cretas que tiene la habilidad de incluir nes ejecutadas. Unidad organizacional de
instrucciones de funciones de blo- Provee una estructura general y programación (Program
que dentro de una línea. Los con- coordinación a las secuencias del Organization Unit-POU)
tactos y bobinas del diagrama de es- programa y soporta selecciones al- Un POU es una unidad encapsulada
caleras pueden ser usados en el ternativas y secuencias paralelas. Di- que puede ser compilada indepen-
lenguaje Diagrama de Bloques Fun- cho lenguaje, también conocido como dientemente de otras partes del pro-
cionales para control discreto o fun-
ciones.
POU Identificador Significado
Lista de Instrucciones
Programa PROGRAM Programa principal que incluye asignación
(Instruction List-IL)
de tareas a las I/O, variables globales.
Lenguaje de bajo nivel similar al len-
guaje ensamblador, la Lista de Ins- Bloque de FUNCTION_BLOCK Bloque con variables de entrada y
trucciones es útil en pequeñas apli- funciones salida. Este POU es el más usado.
caciones que requieran rápida y
óptima ejecución. Consta de una se- Función FUNCTION Bloque con valor de función por extensión
del grupo de operaciones del PLC.
rie de líneas de texto y cada línea
describe una instrucción, siendo el or- ■ Tabla 1. Clasificación de POU
Julio 2004 / n.º 353 ESPECIAL Automática e Instrumentación

Elementos de un POU
Un POU consta de tres elementos
principalmente:
• Tipo y nombre de POU, y tipo de
dato para el caso particular de las
funciones.
• Declaración de variables.
• Cuerpo del POU donde se in-
cluye el grupo de instrucciones.
Declaración es la parte del POU
donde se realiza la declaración de
las variables que serán usadas por
éste. El circuito lógico o el algoritmo
es programado en el cuerpo del POU,
para lo que se utiliza cualquiera de
los lenguajes del estándar. En la figura
■ Los tres elementos del POU.
adjunta se identifican dichos ele-
mentos. La lista que aparece en la es-
grama. Para lograr exitosamente lo tenidas de una ejecución del bloque quina superior izquierda es como el
anterior, el compilador sólo necesi- de funciones a otra. desarrollador ve los POU creados.
ta información acerca de las otras En el caso concreto del ejemplo, fue-
interfaces de los POU llamados por Organización de tareas ron creados en el software TwinCAT
el POU (prototipo). Los POU com- El estándar también define una nue- de Beckhoff, que permite, además
pilados pueden agruparse para cre- va arquitectura para la organización de la programación, la simulación de
ar un programa completo. e interacción de tareas con PLC. Una los programas desarrollados.
La independencia de los POU fa- tarea controla la ejecución de un pro- 71
cilita la extensiva modularización de grama ejecutándolo periódicamente Declaración de variables y
tareas de automatización y reutiliza- o en respuesta a un evento específi- parámetros en un POU
ción de unidades de software ya im- co. Para optimizar los recursos del Las variables tienen que ser decla-
plementadas y probadas. controlador, una aplicación puede radas al inicio de cada POU. Atribu-
Las diferencias entre los tres tipos ser fragmentada en pequeños pro- tos adicionales de las variables tales
de POU son: gramas concretos. Cada programa como asignación de valores a direc-
• Programa: Este tipo de POU está bajo el control de una tarea que ciones físicas pueden ser asignadas
representa el programa principal. To- se ejecuta a la velocidad que requie- en la declaración. La tabla 2 muestra
das las variables que son asignadas ra la E/S asociada. IEC 61131-3 nom- los diferentes tipos de variables que
a direcciones físicas del PLC deben bra POU a los bloques con los cuales pueden emplear los diferentes tipos
ser declaradas aquí o en algún nivel son desarrollados programas y pro- de POU.
superior, como en la configuración de yectos. El estándar restringe la va- Las variables declaradas como lo-
recursos. riedad y el significado de los tipos cales sólo son visibles y pueden ser
• Función: POU al cual se le pue- de bloques para unificar y simplificar procesadas en su POU. A diferencia
den asignar parámetros, pero no tie- su uso. de las variables globales, que permi-
ne variables estáticas (sin memoria); ten, además de leerse, modificarse
cuando se invoca con los mismos pa-
rámetros de entrada, siempre retie-
Tipo de variable Programa Bloque de funciones Función
ne el mismo resultado como el valor
de la función (salida). VAR Sí Sí Sí
• Bloque de funciones: POU al VAR_INPUT Sí Sí Sí
cual se le pueden asignar paráme- VAR_OUTPUT Sí Sí No
tros además de variables estáticas. Un VAR_IN_OUT Sí Sí No
bloque de funciones, cuando invoca VAR_EXTERNAL Sí Sí No
con el mismo parámetro de entrada, VAR_GLOBAL Sí No No
puede rendir valores que dependen
VAR_ACCES Sí No No
también del estado de las variables
internas o externas, las cuales son re- ■ Tabla 2. Tipos de variables.
Automática e Instrumentación ESPECIAL Julio 2004 / n.º 353

efectos colaterales que puede tener Mapeo de direcciones del PLC


Tipo de dato Descripción Bits
esta acción. mediante variables
BOOL Boolean 1 No es posible realizar recursividad. Los fabricantes de PLC son los res-
BYTE Bit string 8 8 Esto quiere decir que un POU no ponsables de especificar la corres-
WORD Bit string 16 16 puede llamarse a sí mismo directa o pondencia entre la representación
DWORD Bit string 32 32 indirectamente, lo que puede ser re- directa de una variable y su localiza-
LWORD Bit string 64 64 emplazado usando, por ejemplo, ci- ción física o la dirección lógica en
clos de programa. memoria de cada una de las entradas
■ Tabla 3. Tipo de cadena de caracteres y salidas. Cuando a una representa-
en el estándar IEC 61131. Variables, tipos de datos y ción se le agregan dígitos enteros
elementos en común adicionales separados por puntos,
por otros POU como variable exter- IEC 61131-3 define cinco grupos de puede interpretarse como una di-
na, esta variable puede ser cambia- tipos de datos elementales: cadena de rección jerárquica física o lógica, don-
da por el POU que la contiene (como caracteres, entero (con y sin signo), de el elemento de menor jerarquía es
variable local), y dicho cambio es real, tiempo (hora), duración y deri- el primero de derecha a izquierda.
efectivo para todos los POU que usan vados. La tabla 3 muestra los tipos de
esta variable. datos pertenecientes al tipo de ca- Programación gráfica
Las variables de entrada son visi- dena de caracteres y su respectiva Grafico Secuencial de
bles para el POU solicitante y pueden descripción. Funciones (GSF)
ser modificadas sólo por este mismo IEC 61131-3 estandariza diversos Generalidades
y no por el POU que las contiene. tipos de datos, algunos de ellos con Es común encontrar aplicaciones
Una variable de salida puede ser vis- límites de tamaño y otros, como los complejas estructuradas en el Gráfi-
ta por el POU que realiza el llamado, que definen los datos para el tiempo, co Secuencial de Funciones como
pero solamente puede ser leída para dependientes de la implementación. medio para controlar la ejecución de
realizar modificaciones por el POU Además de los tipos de datos ele- los otros POU. GSF permite la des-
72 que la contiene. mentales, el estándar define otros cripción secuencial de los aspectos
Las variables de entrada y salida conocidos como genéricos, que pue- de control y puede ser utilizado a
agrupan las características de las va- den ser declarados utilizando el pre- alto nivel para mostrar las fases prin-
riables de salida y de las de entrada, fijo “ANY” además del tipo de dato cipales del proceso; sin embargo,
lo que quiere decir que pueden ser elemental. La característica de es- puede usarse en otros niveles, como
leídas y modificadas dentro o fuera tos últimos es que un elemento de- proceso o acción anidada.
de su POU. clarado como genérico puede con- GSF es especialmente útil en par-
Por último, las variables de acce- tener subelementos. ticionar problemas de control en los
so son las encargadas de contener la Complementando lo anterior, el es- cuales sólo necesitan ser considera-
configuración como un canal de co- tándar define variables multiele- dos y ejecutados aspectos relevantes
municación entre los componentes mento, mejor conocidos como arre- de fases específicas.
(recursos). glos y estructuras.
Estructura de un Gráfico
Principales características de Secuencial de Funciones
un POU Prefijo Significado Un GSF es representado como una
Las características principales de los secuencia de pasos dibujados como
POU pueden resumirse de la si- I Localidad de Entrada rectángulos conectados por líneas
guiente forma: Q Localidad de Salida verticales. Cada rectángulo repre-
• Programas que pueden llamar a M Localidad de memoria senta un paso particular del sistema
funciones o a bloques de funciones. X Bit a ser controlado. Cada conexión en-
• Una función puede llamar a otra None Bit tre dos pasos tiene una barra hori-
función, pero no a un bloque de fun- B Byte (8 bits) zontal que representa una transición,
ciones. W Word (16 bits) la cual es asociada con una condición.
• Un bloque de funciones puede D Double word (32 bits)
Dicha condición regula el flujo de
llamar a otro bloque de funciones o ejecución, esto es, cuando la condi-
L Long Word (64 bits)
a otra función. ción es verdadera deshabilita el paso
Intentar realizar un llamado de un anterior a ella y habilita el siguiente.
■ Tabla 4. Ubicación y tamaño de las ca-
bloque de funciones por una función racterísticas de la representación directa
Cada paso puede ser asociado con
no es recomendado, debido a los de variables. una o más acciones y una transición
Julio 2004 / n.º 353 ESPECIAL Automática e Instrumentación

Conceptos y abreviaciones
IEC Comisión Electrotécnica I/O Input/Output
Internacional FB Function Block
PLC Controlador Lógico FBD Function Block Diagram
Programable LD Ladder Diagram graphical
POU Program Organization Unit language
GUI Graphic user interface SFC Sequential Function Chart
MFC Microsoft foundation classes PC Personal computer
COMComponent object model ST Structured Text language

puede ser descrita utilizando cual-


quiera de los siguientes lenguajes:
Texto Estructurado, Diagrama de
Bloques de Funcionales, Lenguaje
Escalera o incluso en un diagrama
que involucre a los tres.
En una secuencia pueden ser uti-
lizados pasos alternativos, constru-
yendo una divergencia donde una o ■ Parte del diagrama escalera de la fun- ■ Gráfico Secuencial de Funciones del
más transiciones pueden ser asocia- ción INICIAR del ejemplo. ejemplo.
das. Una secuencia divergente pue-
de abordar a otra secuencia utili- Componentes de los Diagramas para transiciones positivas o negati-
zando un camino convergente. Escalera vas.
En el estándar IEC, los símbolos han
Pasos sido racionalizados (se ha reducido Diagrama de Bloques de 73
Para cada uno de los pasos debe pro- su número). La figura superior mues- Funcionales (DBF)
porcionarse un nombre único; esto tra parte de los elementos más co- Los Bloques Funcionales (BF) son
quiere decir, además, que el paso no munes; sin embargo, éstos no son bloques estándar que ejecutan algo-
podrá repetirse en el mismo diagra- los únicos, pues se pueden encontrar ritmos como reguladores PID. El es-
ma. Existen dos tipos de pasos: ini- algunos más especializados. Para el tándar IEC asegura que los BF sean
cial y normal. La diferencia radica caso que aparece en la figura, es po- definidos empleando una metodolo-
en que al segundo, además de re- sible apreciar cuatro contactos, el gía estándar. Dicha metodología pre-
presentarse con un rectángulo, se le primero de ellos normalmente abier- tende asegurar que coincidan con-
agregan barras verticales. to y los demás normalmente cerra- diciones tales como la posición de
Las acciones que un paso puede re- dos. Como se ha mencionado, este los parámetros de entrada y salida,
alizar vienen descritas por cualquie- tipo de diagramas está basado en la la asignación de valores a parámetros
ra de los lenguajes del estándar. lógica booleana. Así, pues, los cuatro de entrada, declaración de BF tex-
contactos forman parte de la condi- tualmente, etcétera. Existen con-
Lenguaje Escalera (LE) ción a evaluar previa a la asignación troles empleando parámetros exter-
LE tiene sus raíces en la lógica boo- de valor a las bobinas, las cuales son nos, mientras que los algoritmos
leana o procesamiento de valores las salidas de la red. De las cuatro bo- internos permanecen ocultos.
análogos. El diagrama de contactos binas de la red, las primeras tres es- Adicionalmente, el usuario tiene
es un lenguaje que utiliza un juego es- tarán en reset una vez que se cum- la capacidad de crear librerías es-
tandarizado de símbolos de progra- pla la condición definida por los tándar, escritas en C o en lenguajes
mación. contactos. La bobina restante asigna IEC 61131-3, que pueden ser llama-
Algunos lenguajes son mejores para a M4 set en condiciones verdaderas. das desde la aplicación. El progra-
algunas aplicaciones que para otras. Los valores (1=verdad, 0=falso) ne- mador puede utilizar tantos lengua-
El LE, particularmente, debido a su cesarios para que se cumpla la con- jes IEC como desee en el desarrollo
significado implícito, resulta apro- dición es que EXT=1, B1=0, B2=0 del programa. Esta modularidad y
piado para aplicaciones en las que y B5=0. capacidad de re-utilización del códi-
pueda existir la intervención de ope- Es posible el uso de contactos para go de aplicación, combinada con in-
rarios. detectar transiciones positivas o ne- terfaces fáciles de usar, funciones de
gativas, bobinas con memoria y otras búsqueda poderosas, depuración en
Automática e Instrumentación ESPECIAL Julio 2004 / n.º 353

Ejemplo de programación: elevador


a programación de un PLC se inicia con la ejecución de un Gráfico
L Secuencial de Funciones del proceso a controlar y, basándonos en
éste, se realiza el Diagrama de Escalera y los Bloques de Funciones, que
permiten una representación gráfica de control.
El dispositivo en el cual está basado el ejemplo (elevador), como se
aprecia en la figura, cuenta con tres transportadores. Dos de ellos (los
del lado izquierdo) permanecen fijos en su eje vertical y sólo están ha-
bilitados para suministrar movimiento de la banda transportadora en su
eje horizontal. El tercer transportador es un transportador adicional, que
tiene movimiento de la banda en su eje vertical para descargar el palet
en el siguiente nivel superior (suponiendo como origen la parte inferior). Elevador y POU del ejemplo.
Cada transportador cuenta con un motor y un detector de presencia.
La tabla 5 muestra una breve descripción de cada uno de los elementos que componen el dispositivo.

POU del ejemplo


Se dividieron de acuerdo al proceso por el que pasa un palet desde el momento que se recibe la señal EXT, avi-
sando de la llegada del palet al primer transportador, hasta que es entregado por el tercer y ultimo transportador.
Como se muestra en la figura, fueron declarados seis POU. A continuación se ofrece una breve descripción de cada
uno de ellos.
• BajaTran2: Se utiliza para decidir cuándo es el momento en que el transportador 2 debe regresar a su posición
vertical inicial.
• CargarTran2: Si el detector de presencia del transportador dos entrega FALSO, se activa el motor de este mis-
mo.
74
• DescargarTran2: Cuando el transporta-
Elementos Nombre Descripción
dor 2 termina de subir, monitorea el esta-
do de su detector y el del detector de fin M1, M2, M3 Motor Proporcionan movimiento
de carrera superior B4; si ambas condi- horizontal a los transportadores
ciones son verdaderas, apaga el motor M4
B1,B2, B3, Switch Detectores de presencia
que proporciona el movimiento vertical y
enciende M2 y M3, para traspasar el palet M4 Motor Proporcionan movimiento vertical
del segundo transportador al tercero. Des- al transportador
cargarTran2 está declarado como un Blo-
B4, B5 Switch Detectores de fin de carrera
que Funcional, del cual se crea una ins-
tancia llamada DST2.
Tabla 5. Descripción de los componentes del elevador.

línea, gerencia de proyecto y gene-


ración de documentación, reducen el
tiempo de diseño, de desarrollo, de
pruebas, de arranque y de manteni-
miento.

Construcción de Bloques de
Funciones
IEC 61131-3 cuenta con una diver-
sidad de bloques prediseñados que el
programador puede utilizar de las li-
brerías de la plataforma de progra-
mación que esté empleando. Sin em-
bargo, esto es sólo una parte de las
■ Declaración de variables en BF.
Julio 2004 / n.º 353 ESPECIAL Automática e Instrumentación

• INICIAR: Está declarado como un bloque


funcional, que más tarde es llamado por una ins-
tancia de éste llamada INICIO como parte de la
acción a realizar por el paso INIT.
• MAIN: Es el POU que contiene el Grafico Se-
cuencial de Funciones y el cual se ha estado des-
glosando en esta sección.
• SubirTran2: Es declarado como Bloque Fun-
cional, del cual después es creada una instan-
cia (SubirAct) que es llamada desde la acción
a realizar contenida en el paso Sube.

Gráfico Secuencial de Funciones


El gráfico secuencial de funciones del ejemplo
está formado por cinco pasos, cada uno de los
cuales cuenta con un llamado a alguna función.
Dicho llamado es conocido en el estándar como
a) Grafico Secuencial de Funciones del programa, b) Llamado a la función la acción a realizar por el paso.
INICIO desde el primer paso del GSF, c) Bloque de Funciones INICIO como
instancia de BF INICIAR.
En este caso, el llamado a la función cuenta
con el nombre de la instancia (INICIO) y los va-
lores de los parámetros. Para el caso específi-
co del ejemplo, las variables no están asociadas a direcciones físicas, si no que para propósitos de simulación tie-
nen un valor predefinido, el cual es asignado en cada uno de los pasos del diagrama secuencial de funciones.
Este estado inicial cuenta con dos redes y ambas cuentan con cuatro contactos monitoreando las mismas va-
riables bajo la operación booleana “and”, sólo que con condiciones distintas. La primera red cumplirá cuando se 75
den las condiciones (de izquierda a derecha) VERDADERO, FALSO, FALSO, FALSO. Cumplida esta condición,
M1, M2 y M3 pasarán a estado de reset y M4 al de set (hasta que en otra parte del programa se cambie esta con-
dición).
La explicación de las redes es simple. La variable EXT es la referencia de que un objeto está próximo al primer
transportador y las demás variables de los contactos están definidas como los detectores de presencia. La prime-
ra red se activa cuando se reciba señal verdadera en EXT y falsa en los detectores.
Dentro del rectángulo que representa cada paso se puede observar otro pequeño cuadrado con la letra E, que
indica que el paso ejecutará una acción de entrada. Además de la acción de entrada, se puede tener acción a eje-
cutar mientras se encuentre en el paso, y acción de salida. Cada una de estas acciones puede ser programada en
cualquiera de los lenguajes del IEC 61131-3.

facilidades que el estándar ofrece. Declaración de variables bles globales en BF sin necesidad de
La opción que el programador tiene Como ya se ha mencionado, exis- ser declaradas dentro.
de encapsular soluciones probadas en ten variables de entrada, salida, in-
forma de BF le permite un ahorro ternas y globales. Cada una de ellas Combinación de elementos
sustancial en tiempo de desarrollo y puede almacenar tipos específicos Los elementos del lenguaje BF pue-
posibilita el crecimiento del ciclo de de datos según sean declaradas. den interconectarse con líneas que
vida del software. Para el caso concreto de la función representan el flujo de la señal si-
Para el desarrollo de nuevos blo- DescargaTran2 mostrado en la fi- guiendo ciertas convenciones. Una de
ques de funciones es posible elegir gura de la página anterior, dentro del ellas se refiere a la prioridad en la eva-
el lenguaje de programación dentro espacio de la declaración de varia- luación, que se efectúa de izquierda
de los cinco estandarizados, lo que bles se pueden apreciar delimita- a derecha. La ilustración superior iz-
facilita hasta cierto punto el traba- dores tales como VAR_INPUT y quierda de la siguiente página mues-
jo, ya que el programador decide de END_VAR, entre ellos la declara- tra dos bloques de funciones inter-
acuerdo a la aplicación que desa- ción de B4 y B2, ambos como tipo conectadas. El primer bloque ejecuta
rrollará. booleanas. Es posible utilizar varia- la función OR; si cualquiera de las dos
Automática e Instrumentación ESPECIAL Julio 2004 / n.º 353

■ Conexión entre Bloques Funcionales. ■ Muestra el contenido de una instancia de DescargaTran2.

variables cumple con la condición, Conclusiones tes partes del programa en tiempos
entonces se habilita el segundo blo- En este primer artículo se han pre- diferentes o en paralelo.
que, el cual, dependiendo del valor sentado las principales característi- • Soporte total para describir se-
de B2, permite o no la asignación de cas del estándar IEC 61131 y los ele- cuencias complejas, describiéndolas
valores a las salidas. mentos que lo componen, además y dividiéndolas en forma de pasos
de un ejemplo sencillo para ilustrar utilizando Cartas de Funciones Se-
Instancias de Bloques de forma general los lenguajes gráfi- cuenciales (Secuential Function
Funcionales cos del estándar. Las siguientes ca- Chart SFC).
A groso modo, una instancia de un BF racterísticas hacen del estándar una • El estándar permite definir es-
76 es una copia independiente de la fun- buena opción: tructuras de datos para que ele-
ción original, la cual permanece inal- • Permite la programación bien mentos que estén asociados puedan
terada durante la ejecución del pro- estructurada, apoyado por la facilidad pasar entre diferentes partes de un
grama, no así la instancia. Se pueden de dividir el programa en elementos programa como si fueran una sola
crear tantas instancias como se re- funcionales llamados POU. Un POU entidad. También es posible pasar
quieran, ya sea de BF predefinidas o puede incluir funciones, bloques de información compleja como una sim-
construidas por el desarrollador. Para funciones y programas. ple variable entre diferentes POU.
el caso concreto del ejemplo, se creó • Los lenguajes del estándar re- Lo anterior mejora la legibilidad y
un BF llamado DescargaTran2, de la ducen los errores cuando un pro- asegura que los datos asociados siem-
cual se muestra el contenido (desa- gramador intenta utilizar tipos de pre sean accezados correctamente.
rrollado con LE), DST2 es una ins- datos o variables erróneos. • Diferentes partes del programa
tancia de DescargaTran2. • Facilidad para ejecutar diferen- pueden ser expresadas en cualquie-
ra de los lenguajes, permitiendo que
el diseñador elija la opción más ade-
Referencias cuada para cada parte del programa.
• Debido a que IEC 61131-3 pro-
1. IEC SC65B/WG7/TF3, IEC 61131-3, International Standard.
vee lenguajes estandarizados y mé-
2. R. W. Lewis. Programming Industrial control system using IEC
todos para la ejecución de los pro-
61131-3, IEE Control Engineering. The Institution of Electrical Engi-
gramas, una amplia variedad de
neers, 1998. ISBN 0-852-96950-3
problemas tecnológicos pueden ser
3. IEC SC65B/WG7/TF3, IEC 61131-3, International Standard.
programados por un vendedor de
4. J. Karl-Heinz, M. Tiegelkamp. IEC 61131-3: Programming Indus-
software independiente.
trial Automation Systems, concepts and programming languages, re-
quirements for programming systems, aids to decision-making tools.
José Luis Martínez Lastra
Ed. Springer, New York. ISBN 3-540-67752-6.
Tampere Univ. of Technology
www.holobloc.com
www.beckhoff.com
Omar J. López Orozco
www.nematron.com
Tecnológico de Monterrey,
www.imsys.se
Toluca, México

También podría gustarte