Programacin de controladores
l crecimiento acelerado en el de ensamblaje es el uso de estnda- guaje de programacin con una es-
gran diversidad de lenguajes de pro- La adopcin del estndar IEC eleccin, ya que facilitaba el entre-
gramacin en todas sus variantes. 61131-3 es slo un pequeo pero im- namiento de los operadores. As, el
Diferentes soluciones propietarias portante eslabn en la cadena de so- primer lenguaje de programacin
proponan 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). An
Esta situacin resulta un tanto in- mas automticos de toda empresa. hoy se utiliza este lenguaje, basado
cmoda para las empresas, ya que tie- en los principios del lgebra boolea-
nen que invertir recursos econmi- Evolucin del controlador na.
cos cada vez que se realiza un cambio lgico programable y los Cuando se comprendi el gran po-
o actualizacin de la lnea de pro- sistemas de control tencial de los PLC como valiosa he-
duccin. industriales rramienta computacional y se dio la
El cada vez ms exigente consu- La evolucin de los lenguajes de pro- evolucin de capacidades que ahora
midor demanda mejor calidad y pro- gramacin de PLC ha recorrido un ca- tienen, aparecieron los lenguajes de
ductos ms econmicos, 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 queas aplicaciones donde se utili- lera aparecen en el lugar de las sali-
requiere de las empresas una polti- zaba la programacin lineal median- das. Ms tarde, se desarrollaron los
ca de constante actualizacin de las te lenguajes literales o a contactos Lenguajes Especiales de Computa-
lneas de produccin. Para lograrlo, (diagrama de escalera). Posterior- dora, tambin 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- cin hacia reas no slo de control se- gramacin de computadoras como
ductivos giles, flexibles y abiertos o cuencial, sino de control del proceso, el Basic y el C, para hacer ms ami-
no propietarios. pasando a la programacin estruc- gable la programacin.
Una empresa tendr xito segn turada con mdulos funcionales o El lenguaje escalera utiliza un mar-
sea su capacidad de adaptarse rpi- procedimientos organizados desde co de programacin 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 utilizacin de un len- te, en lugar de hacerlo en el flujo y
Automtica e Instrumentacin ESPECIAL Julio 2004 / n. 353
Sistema centralizado
En la arquitectura centralizada, la
mayora de los eventos son contro- Sistema de control descentralizado.
Julio 2004 / n. 353 ESPECIAL Automtica e Instrumentacin
La instrumentacin industrial y los den muy importante, ya que cambia Grafcet, proporciona una represen-
sistemas de control necesitan siste- el resultado final. Con IL slo es per- tacin en forma de diagrama de las
mas abiertos que puedan operar con mitida una operacin por lnea. secuencias del programa. Los ele-
equipos de diferentes proveedores. mentos bsicos son pasos y transi-
Hasta la publicacin del estndar IEC Diagrama de Bloques ciones. Los pasos consisten en pie-
61131-3, no exista ningn estndar Funcionales (Function Block zas de programa que son inhibidas
que definiera la forma en que los PLC Diagram-FBD) hasta que una condicin especifica-
deban ser programados en los sis- Diagramas de Bloques Funcionales es da por las transiciones es conocida.
temas de control. un lenguaje grfico usado para cons- Como las aplicaciones industriales
El objetivo de este primer artcu- truir procedimientos complejos a par- funcionan en forma de pasos, el GSF
lo de la serie de tres que se irn pu- tir de una librera de funciones. Las es la forma lgica de especificar y
blicando, es introducir brevemente libreras estndar, tales como las de programar el ms alto nivel de una
los lenguajes de programacin es- Matemtica o Control, pueden ser aplicacin para PLC.
tandarizados en IEC 61131-3, po- combinadas con libreras de funcio-
niendo ms nfasis en los lenguajes nes personalizadas, como llamada de Texto Estructurado (Structured
grficos, y algunas de las ideas fun- mdem, interface Hart, controlado- Text-ST)
damentales del estndar se comple- res PID y ModBus Maestro para cre- Utilizado para procedimientos com-
mentarn con un ejemplo. ar programas de aplicacin de Dia- plejos o clculos que no pueden ser
gramas de Bloques Funcionales. fcilmente implementados utilizando
Lenguajes de programacin Se trata de un lenguaje grfico que lenguajes grficos, el Texto Estruc-
del estndar IEC 61131-3 permite programar elementos que turado (TE) es un lenguaje de alto
La seleccin 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 anloga al posee una sintaxis parecida al Pas-
en la naturaleza de la aplicacin, y vie- esquema de un circuito. Adems, es cal. Puede ser empleado para reali-
ne determinada por las preferencias adecuado para muchas aplicaciones zar rpidamente sentencias comple-
70 del programador. La IEC 1131-3 es que involucren el flujo de informacin jas que manejen variables con un
una norma aprobada como estndar o datos entre componentes de con- amplio rango de diferentes tipos de
internacional para los lenguajes de trol. datos, incluyendo valores analgicos
programacin de PLC. Dicha norma y digitales. Tambin especifica tipos
recoge todos los tipos de operacio- Grfico 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 aplicacin, 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 grfico para lgicas 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 programacin (Program
que dentro de una lnea. Los con- coordinacin 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, tambin 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 asignacin
(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 pequeas apli- funciones salida. Este POU es el ms usado.
caciones que requieran rpida y
ptima ejecucin. Consta de una se- Funcin FUNCTION Bloque con valor de funcin por extensin
del grupo de operaciones del PLC.
rie de lneas de texto y cada lnea
describe una instruccin, siendo el or- Tabla 1. Clasificacin de POU
Julio 2004 / n. 353 ESPECIAL Automtica e Instrumentacin
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.
Declaracin de variables.
Cuerpo del POU donde se in-
cluye el grupo de instrucciones.
Declaracin es la parte del POU
donde se realiza la declaracin de
las variables que sern usadas por
ste. El circuito lgico o el algoritmo
es programado en el cuerpo del POU,
para lo que se utiliza cualquiera de
los lenguajes del estndar. 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 ejecucin del bloque quina superior izquierda es como el
anterior, el compilador slo necesi- de funciones a otra. desarrollador ve los POU creados.
ta informacin acerca de las otras En el caso concreto del ejemplo, fue-
interfaces de los POU llamados por Organizacin de tareas ron creados en el software TwinCAT
el POU (prototipo). Los POU com- El estndar tambin define una nue- de Beckhoff, que permite, adems
pilados pueden agruparse para cre- va arquitectura para la organizacin de la programacin, la simulacin de
ar un programa completo. e interaccin de tareas con PLC. Una los programas desarrollados.
La independencia de los POU fa- tarea controla la ejecucin de un pro- 71
cilita la extensiva modularizacin de grama ejecutndolo peridicamente Declaracin de variables y
tareas de automatizacin y reutiliza- o en respuesta a un evento especfi- parmetros en un POU
cin de unidades de software ya im- co. Para optimizar los recursos del Las variables tienen que ser decla-
plementadas y probadas. controlador, una aplicacin puede radas al inicio de cada POU. Atribu-
Las diferencias entre los tres tipos ser fragmentada en pequeos pro- tos adicionales de las variables tales
de POU son: gramas concretos. Cada programa como asignacin de valores a direc-
Programa: Este tipo de POU est bajo el control de una tarea que ciones fsicas pueden ser asignadas
representa el programa principal. To- se ejecuta a la velocidad que requie- en la declaracin. 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 fsicas del PLC deben bra POU a los bloques con los cuales pueden emplear los diferentes tipos
ser declaradas aqu o en algn nivel son desarrollados programas y pro- de POU.
superior, como en la configuracin de yectos. El estndar restringe la va- Las variables declaradas como lo-
recursos. riedad y el significado de los tipos cales slo son visibles y pueden ser
Funcin: POU al cual se le pue- de bloques para unificar y simplificar procesadas en su POU. A diferencia
den asignar parmetros, pero no tie- su uso. de las variables globales, que permi-
ne variables estticas (sin memoria); ten, adems de leerse, modificarse
cuando se invoca con los mismos pa-
rmetros de entrada, siempre retie-
Tipo de variable Programa Bloque de funciones Funcin
ne el mismo resultado como el valor
de la funcin (salida). VAR S S S
Bloque de funciones: POU al VAR_INPUT S S S
cual se le pueden asignar parme- VAR_OUTPUT S S No
tros adems de variables estticas. Un VAR_IN_OUT S S No
bloque de funciones, cuando invoca VAR_EXTERNAL S S No
con el mismo parmetro de entrada, VAR_GLOBAL S No No
puede rendir valores que dependen
VAR_ACCES S No No
tambin del estado de las variables
internas o externas, las cuales son re- Tabla 2. Tipos de variables.
Automtica e Instrumentacin ESPECIAL Julio 2004 / n. 353
Conceptos y abreviaciones
IEC Comisin Electrotcnica I/O Input/Output
Internacional FB Function Block
PLC Controlador Lgico 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
Construccin de Bloques de
Funciones
IEC 61131-3 cuenta con una diver-
sidad de bloques prediseados que el
programador puede utilizar de las li-
breras de la plataforma de progra-
macin que est empleando. Sin em-
bargo, esto es slo una parte de las
Declaracin de variables en BF.
Julio 2004 / n. 353 ESPECIAL Automtica e Instrumentacin
facilidades que el estndar ofrece. Declaracin de variables bles globales en BF sin necesidad de
La opcin 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 Combinacin de elementos
sustancial en tiempo de desarrollo y puede almacenar tipos especficos Los elementos del lenguaje BF pue-
posibilita el crecimiento del ciclo de de datos segn sean declaradas. den interconectarse con lneas que
vida del software. Para el caso concreto de la funcin representan el flujo de la seal 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 pgina anterior, dentro del ellas se refiere a la prioridad en la eva-
el lenguaje de programacin dentro espacio de la declaracin de varia- luacin, que se efecta de izquierda
de los cinco estandarizados, lo que bles se pueden apreciar delimita- a derecha. La ilustracin superior iz-
facilita hasta cierto punto el traba- dores tales como VAR_INPUT y quierda de la siguiente pgina mues-
jo, ya que el programador decide de END_VAR, entre ellos la declara- tra dos bloques de funciones inter-
acuerdo a la aplicacin que desa- cin de B4 y B2, ambos como tipo conectadas. El primer bloque ejecuta
rrollar. booleanas. Es posible utilizar varia- la funcin OR; si cualquiera de las dos
Automtica e Instrumentacin ESPECIAL Julio 2004 / n. 353
variables cumple con la condicin, Conclusiones tes partes del programa en tiempos
entonces se habilita el segundo blo- En este primer artculo se han pre- diferentes o en paralelo.
que, el cual, dependiendo del valor sentado las principales caractersti- Soporte total para describir se-
de B2, permite o no la asignacin de cas del estndar IEC 61131 y los ele- cuencias complejas, describindolas
valores a las salidas. mentos que lo componen, adems y dividindolas en forma de pasos
de un ejemplo sencillo para ilustrar utilizando Cartas de Funciones Se-
Instancias de Bloques de forma general los lenguajes grfi- cuenciales (Secuential Function
Funcionales cos del estndar. Las siguientes ca- Chart SFC).
A groso modo, una instancia de un BF ractersticas hacen del estndar una El estndar permite definir es-
76 es una copia independiente de la fun- buena opcin: tructuras de datos para que ele-
cin original, la cual permanece inal- Permite la programacin bien mentos que estn asociados puedan
terada durante la ejecucin 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. Tambin es posible pasar
quieran, ya sea de BF predefinidas o puede incluir funciones, bloques de informacin 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 estndar 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 errneos. Diferentes partes del programa
tancia de DescargaTran2. Facilidad para ejecutar diferen- pueden ser expresadas en cualquie-
ra de los lenguajes, permitiendo que
el diseador elija la opcin ms 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 ejecucin 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 tecnolgicos 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 Martnez Lastra
Ed. Springer, New York. ISBN 3-540-67752-6.
Tampere Univ. of Technology
www.holobloc.com
www.beckhoff.com
Omar J. Lpez Orozco
www.nematron.com
Tecnolgico de Monterrey,
www.imsys.se
Toluca, Mxico