Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Iec PDF
Iec PDF
Programación de controladores
l crecimiento acelerado en el de ensamblaje es el uso de estánda- guaje de programación con una es-
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
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
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
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
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
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
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