Está en la página 1de 115

Sistemas de Aprendizaje para la Automatizacin y la Comunicacin

Controlador Lgico Programable

Nivel Bsico TP 301


Libro de Texto

Capitulo 1

El PLC en la
Tecnologa de la Automatizacin

1.1 Introduccin

El primer Control Lgico Programable (Programable Logic Control o PLC) fue


desarrollado por un grupo de ingenieros en la General Motors en 1968, cuando la
empresa estaba buscando una alternativa para reemplazar los complejos sistemas
de control por rels.
El nuevo sistema de control tena que cumplir con los siguientes requerimientos:
Programacin sencilla
Cambios de programa sin intervencin en el sistema (sin tener que rehacer el
cableado interno)
Ms pequeo, ms econmico y ms fiable que los correspondientes sistemas de
control por rels
Sencillo y con bajo coste de mantenimiento
Los sucesivos desarrollos llevaron a un sistema que permita la conexin sencilla
de seales binarias. Los requerimientos de cmo estaban conectadas debe
distinguirse seales se especificaban en el programa de control. Con los nuevos
sistemas, fue posible por primera vez mostrar las seales en una pantalla y
archivar los programas en memorias electrnicas.
Desde entonces han pasado tres dcadas, durante las cuales los enormes
progresos hechos en el desarrollo de la micro electrnica han favorecido la
proliferacin de los controles lgicos programables. Por ejemplo, a pesar de que en
sus comienzos la optimizacin del programa y con ello la necesidad de reducir la
ocupacin de memoria representaba una tarea importante para el programador, en
la actualidad esto apenas tiene importancia.
Adems, las funciones disponibles han crecido considerablemente. Hace quince
aos, la visualizacin de procesos, el procesamiento analgico o incluso la
utilizacin de un PLC como un regulador, eran considerados una utopa.
Actualmente, muchos de estos elementos son parte integral de muchos PLCs.
En las pginas siguientes de este captulo de introduccin, describiremos el diseo
bsico de un PLC junto con las tareas y aplicaciones ms importantes actualmente.

1.2 Areas de
aplicacin de un PLC

Todas las mquinas o sistemas automticos tienen un control. Dependiendo del


tipo de tecnologa utilizada, los controles pueden dividirse en neumticos,
hidrulicos, elctricos y electrnicos. Con frecuencia se utiliza una combinacin de
las diferentes tecnologas. Adems, debe distinguirse entre controles con programa
cableado (es decir, conexionado fsico de componentes electromecnicos (rels,
etc) o componentes electrnicos (circuitos integrados)) y controles lgicos
programables. Los primeros se utilizan principalmente en casos en los que la
reprogramacin por el usuario est fuera de toda duda y el alcance de la tarea
justifica el desarrollo de un sistema de control especial. Las aplicaciones tpicas de
tales controles pueden hallarse en los electrodomsticos, video cmaras,
vehculos, etc.

Sin embargo, si la tarea de control no justifica el desarrollo de un control especial, o


si el usuario debe tener la posibilidad de hacer cambios sencillos, o de modificar
tiempos o valores de contadores, entonces el uso de un control universal, en el que
el programa se escribe en una memoria electrnica, es la opcin preferida. El PLC
representa un control universal. Puede utilizarse para diferentes aplicaciones y,
dado que el programa se halla escrito en su memoria electrnica, el usuario puede
modificar, ampliar y optimizar con cierta sencillez sus procesos de control.

Figura B 1.1
Ejemplo
de
una
aplicacin de PLC

La tarea original de un PLC es la interconexin de seales de entrada, de acuerdo


con un determinado programa y, si el resultado de esta interconexin es "cierta",
activar la correspondiente salida. El lgebra de Boole forma la base matemtica
para esta operacin, ya que solamente reconoce dos estados definidos de una
variable: "0" (falso) y "1" (cierto). Consecuentemente, una salida solo asume estos
dos estados. Por ejemplo, una electrovlvula conectada a la salida puede estar
activada o desactivada, es decir, controlada.

Esta funcin ha acuado el nombre de PLC: Programmable Logic Control o Control


Lgico Programable. En l, el comportamiento de las entradas/salidas es similar al

de los controles realizados con rels electromagnticos o con elementos lgicos


neumticos o electrnicos; la diferencia reside en que el programa en lugar de
estar 'cableado' est almacenado en una memoria electrnica.
Sin embargo las tareas del PLC se ampliaron rpidamente: las funciones de
temporizacin y recuento, operaciones de clculo matemtico, conversin de
seales analgicas,etc., representan funciones que pueden ejecutarse en casi
todos los PLCs actuales.
Las demandas que se requieren de los PLCs siguen creciendo al mismo ritmo que
su amplia utilizacin y desarrollo en la tecnologa de automatizacin. Por ejemplo:
la visualizacin, es decir, la representacin de los estados de las mquinas o la
supervisin de la ejecucin del programa por medio de una pantalla o monitor.
Tambin el control directo, es decir, la facilidad de intervenir en los procesos de
control o, alternativamente, impedir tal intervencin a las personas no autorizadas.
Tambin se ha visto la necesidad de interconectar y armonizar sistemas
individuales controlados por PLC, por medio de redes o buses de campo. Aqu, un
ordenador master permite la generacin de rdenes de mayor nivel para el
procesamiento de programas en los diversos sistemas PLC interconectados.
La conexin entre de varios PLCs, as como la de un PLC con el ordenador mster
se realiza por medio de interfaces de comunicacin especiales. Para ello, la
mayora de los ms recientes PLCs son compatibles con sistemas de bus abiertos
estandarizados, tales como Profibus segn DIN 19 245. Gracias al enorme
aumento de la potencia y capacidad de los PLCs avanzados, estos pueden incluso
asumir directamente la funcin de un ordenador mster.
Hacia finales de los setenta, las entradas y salidas binarias fueron finalmente
ampliadas con la adicin de entradas y salidas analgicas, ya que hay muchas
aplicaciones tcnicas que emiten y requieren seales analgicas (medicin de
fuerzas, velocidades, sistemas de posicionado servoneumticos, etc.). Al mismo
tiempo, la adquisicin y emisin de seales analgicas permite la comparacin de
valores reales con los de consigna y, como consecuencia, la realizacin de
funciones de regulacin automtica; una tarea que va ms all del mbito que
sugiere el nombre de control lgico programable.

Los PLCs que existen actualmente en el mercado han sido adaptados a los
requerimientos de los clientes hasta tal punto que ya es posible adquirir un PLC
exactamente adaptado para casi cada aplicacin. As, hay disponibles actualmente
desde PLCs en miniatura con unas decenas de entradas/salidas hasta grandes
PLCs con miles de entradas/salidas.
Muchos PLCs pueden ampliarse por medio de mdulos adicionales de
entradas/salidas, mdulos analgicos y de comunicacin. Hay PLCs disponibles
para sistemas de seguridad, barcos o tareas de minera. Otros PLCs son capaces
de procesar varios programas al mismo tiempo (multitarea). Finalmente, los PLCs
pueden conectarse con otros componentes de automatizacin, creando as reas
considerablemente amplias de aplicacin.

Figura B 1.2
Ejemplo de un PLC
Modicom A120

El trmino 'control lgico programable' se define en IEC 1131, parte 1, como


sigue:
"Un sistema electrnico de funcionamiento digital, diseado para ser utilizado en un
entorno industrial, que utiliza una memoria programable para el almacenamiento
interno de instrucciones orientadas al usuario, para la realizacin de funciones
especficas tales como enlaces lgicos, secuenciacin, temporizacin, recuento y
clculo, para controlar, a travs de entradas y salidas digitales o analgicas,
diversos tipos de mquinas o procesos. Tanto el PLC como sus perifricos
asociados estn diseados de forma que puedan integrarse fcilmente en un
sistema de control industrial y ser fcilmente utilizados en todas las aplicaciones
para las que estn previstos."

AEG

1.3 Definicin bsica


de un PLC

Por lo tanto, un control lgico programable es sencillamente un ordenador,


adaptado especficamente para ciertas tareas de control.
La figura B 1.3 ilustra los componentes del sistema de PLC.

Figura B 1.3
Sistema de componentes de
un PLC

La funcin de un mdulo de entrada es la de convertir seales de entrada en


seales que puedan ser procesadas por el PLC y pasarlas a la unidad de control
central. La tarea inversa es realizada por el mdulo de salida. Este convierte las
seales del PLC en seales adecuadas para los actuadores.
El verdadero procesamiento de las seales se realiza en la unidad central de
control, de acuerdo con el programa almacenado en la memoria.
El programa de un PLC puede crearse de varias formas: a travs de instrucciones
parecidas al lenguaje ensamblador (assembler) en ' lista de instrucciones', el
lenguaje de alto nivel orientados al problema, tales como el texto estructurado, o en
forma de diagrama de flujo como se representa en el diagrama de funciones
secuencial. En Europa, la utilizacin de los diagramas de bloques de funcin
basados en los diagramas de funciones con smbolos grficos para puertas lgicas
(logigramas) es ampliamente utilizado. En Amrica el lenguaje preferido por los
usuarios es el ' diagrama de contactos' o ' diagrama en escalera' (ladder diagram).
Dependiendo de como se halla conectada la unidad central a los mdulos de
entrada y salida, hay que distinguir entre PLCs compactos (mdulo de entrada,
unidad central y mdulo de salida en un solo cuerpo) o PLCs modulares.

La figura B1.4 muestra el control FX0 de Mitsubishi, representando un ejemplo de


un PLC compacto.

Figura B1.4
PlC Compacto
(Mitsubishi FX0)
Modular PLC
(Siemens S-3000)
PLC Modular
(Festo FPC 405)

Los PLCs modulares pueden configurarse individualmente. Los modos requeridos


por la aplicacin prctica -aparte de los mdulos de entradas/salidas digitales que
pueden, por ejemplo, incluir mdulos analgicos, de posicionamiento y
comunicacin- se insertan en un rack, en el que todos los mdulos estn
enlazados por un sistema de bus. Este diseo se conoce tambin como tecnologa
modular. Dos ejemplos de PLCs modulares se muestran en las figuras B1.2 y B1.4.
Estos representan la familia modular de PLC de AEG Modicon y el S7300 de
Siemens.
Existe una amplia gama de variantes, particularmente en el caso de las PLCs ms
recientes. Esto incluye tanto las caractersticas compactas como las modulares y
caractersticas importantes tales como el ahorro de espacio, flexibilidad y
posibilidad de ampliacin.
La tarjeta con formato PLC es un tipo especial de PLC modular desarrollado
durante los ltimos aos. Con este tipo, varios mdulos realizados sobre tarjetas
de circuito impreso se montan en una caja estandarizada. El FPC 405 de Festo es
representativo de este tipo de diseo (Fig. B1.4).

El diseo del hardware de un control lgico programable est hecho de forma que
pueda soportar los entornos tpicos industriales en cuanto los niveles de las
seales, calor, humedad, fluctuaciones en la alimentacin de corriente e impactos
mecnicos.
1.4 El nuevo estndar
para PLC, 1
IEC131

A finales de los setenta, se plantearon en Europa algunos estndares vlidos para


programacin de PLCs, enfocados principalmente al estado de la tecnologa en
aquel momento. Tenan en cuenta sistemas de PLC no interconectados, que
realizaban operaciones lgicas con seales binarias. DIN 19 239, por ejemplo,
especifica un lenguaje de programacin que posee las correspondientes
instrucciones para estas aplicaciones.
Anteriormente, no existan elementos de lenguaje estandarizados ni equivalentes
para el desarrollo de programas de PLC. Los desarrollos aparecidos en los aos
ochenta, tales como el procesamiento de seales analgicas, interconexin de
mdulos inteligentes, sistemas de PLC en red, etc., agravaron el problema.
Consecuentemente, los sistemas PLC de diferentes fabricantes requeran tcnicas
de programacin completamente diferentes.
Desde 1992, existe un estndar internacional para controles lgicos programables
y dispositivos perifricos asociados (herramientas y programacin y diagnosis,
equipos de verificacin, interfaces hombre-mquina, etc.). En este contexto, un
dispositivo configurado por el usuario y compuesto por los elementos citados
anteriormente, se conoce como un sistema PLC.
El nuevo estndar IEC 1131 consta de cinco partes:
Parte 1: Informacin general
Parte 2: Requerimientos y verificaciones del equipo
Parte 3: Lenguajes de programacin
Parte 4: Directrices para el usuario
Parte 5: Especificacin del servicio de mensajes
Las partes 1 a 3 de este estndar se adoptaron sin enmiendas como el estndar
Europeo EN 61 131, partes 1 a 3.
La finalidad del nuevo estndar era definir y estandarizar el diseo y funcionalidad
de un PLC y los lenguajes requeridos para la programacin hasta un grado en el
que los usuarios pudieran hacer funcionar sin ninguna dificultad los diferentes
sistemas de PLC de los distintos fabricantes.

Los siguientes captulos tratarn con detalle sobre este estndar. Por el momento,
ser suficiente la siguiente informacin:
El nuevo estndar tiene en cuenta la mayora de los aspectos posibles en relacin
con el diseo, aplicacin y utilizacin de sistemas PLC.
Las amplias especficaciones sirven para definir sistemas de PLC abiertos y
estandarizados.
Los fabricantes deben ajustarse a las especificaciones de este estndar, tanto en
el aspecto puramente tcnico de los requerimientos de un PLC como en lo que se
refiere a la programacin de tales controles.
Todas las variaciones de vencer completamente documentadas para el usuario.
Tras unas reticencias iniciales, ser formado un grupo relativamente grande de
personas interesadas (PLCopen) para apoyar este estndar. La mayora de los
principales proveedores de PLC son miembros de la asociacin, es decir, Allen
Bradley, Klcker-Moeller, Philips, para mencionar algunos. Otros fabricantes de
PLC como Siemens o Mitsubishi tambin ofrecen controles y sistemas de
programacin conformes con IEC1131.
Los sistemas de programacin iniciales ya estn disponibles en el mercado y otros
estn siendo desarrollados. Sin embargo, la norma tiene una buena oportunidad de
aceptacin y de xito. Esperamos que este libro de texto contribuir, en cierto
modo, al desarrollo de este estndar.

Captulo 2

Fundamentos

2.1 El sistema de
Numeracin
Decimal

La caracterstica del sistema de numeracin decimal, comnmente utilizado, es la


disposicin lineal de los dgitos y su emplazamiento significativo. El nmero 4344,
por ejemplo, puede representarse como sigue:

4344= 4 x 1000 + 3 x 100 + 4 x 10 + 4 x 1


El nmero 4 que se halla en el extremo izquierdo, tiene un significado diferente del
nmero 4 situado en el extremo derecho.
La base del sistema de numeracin decimal es la disponibilidad de 10 dgitos
diferentes (decimal: originario del latin 'decem' = 10). Estos 10 diferentes dgitos
permiten contar de 0 a 9. Si la cuenta sobrepasa el nmero 9, esto constituye un
arrastre para el dgito de la siguiente posicin a la izquierda. El significado de esta
posicin en 10, y el siguiente arrastre se realiza cuando se alcanza el valor 99.
Utilizaremos el nmero 71.718.711 como ejemplo:

Como puede verse arriba, el significado del "7" en el extremo izquierdo es


70 000 000 = 70 millones, mientras que el significado del "7" en la tercera posicin
desde la izquierda es de 700.
El dgito del extremo derecho se conoce como el 'dgito menos significativo' y el
dgito del extremo izquierdo como el 'dgito ms significativo'.
Cualquier sistema de numeracin puede ser configurado basndose en este
ejemplo, cuya estructura fundamental puede aplicarse a sistemas de numeracin
de cualquier cantidad de dgitos. Consecuentemente, cualquier operacin de
clculo y mtodo de computacin que utilice el sistema de numeracin decimal
puede ser utilizado con otros sistemas de numeracin.
2.2 El sistema de
Numeracin
Binario

Fue Leibnitz quien aplic por primera vez las estructuras del sistema de
numeracin decimal al clculo con dos dgitos. All por el ao 1679, esto cre las
premisas esenciales para el desarrollo de los actuales ordenadores, ya que la
tensin elctrica o la corriente elctrica slo permite un clculo utilizando dos
valores: es decir "circula corriente" o "no circula corriente". Estos dos valores se
representan en forma de dgitos "1" y "0".

Si en un nmero estuviramos limitados a exactamente 2 dgitos por posicin, el


sistema de numeracin quedara configurado como sigue:

Ejemplo
El principio es exactamente el mismo que el del mtodo utilizado para crear un
nmero decimal. Sin embargo, slo se dispone de dos dgitos, razn por la cual la
posicin significativa no se calcula con la base 10x, sino con la base 2x. As, el
nmero menos significativo en el extremo derecho es 20= 1, y para la siguiente
posicin 21 = 2, etc.
Dado el uso exclusivo de dos dgitos, este sistema de
numeracin se conoce como sistema binario o sistema dual.
Con ocho posiciones, pueden representarse un mximo de:
8

2 - 1 = 256 - 1 = 255
valores que alcanzaran hasta el nmero 1111 11112
Cada una de las posiciones de un sistema de numeracin binario puede adoptar
uno de los dos dgitos 0 o 1. La menor unidad posible del sistema binario es de 1
bit.
En el ejemplo citado arriba, se configurado un nmero consistente en 8 bits, es
decir, un byte (en un ordenador que utilice 8 seales elctricas representando
"tensin disponible" o "tensin no disponible"). El nmero considerado, 1011
00012 , corresponde al valor decimal 17710.

Ejemplo

2.3 El cdigo BCD

Tabla B2.1
Representacin
Decimal de un
Numero en cdigo BCD

Para las personas acostumbradas a tratar con el sistema decimal, los nmero
binarios son difciles de leer. Por esta razn, se introdujo una representacin
numrica de ms fcil lectura, es decir, una notacin decimal codificada de un
nmero binario: el denominado BCD (binary coded decimal). Con este cdigo BCD,
cada dgito del sistema de numeracin decimal representa a su correspondiente
nmero binario.

Por lo tanto, se necesitan 4 dgitos en la notacin binaria para representar el


sistema decimal. A pesar de que es una notacin binaria de 4 dgitos pueden
representarse los valores de 0 a 15, los valores correspondientes al 10, 11, 12, 13,
14 y 15 no se usan en BCD.
As el nmero decimal 7133 se representa como sigue en cdigo BCD:
0111 0001 0011 0011BCD
Por lo tanto, se necesitan 16 bits para representar un nmero decimal de cuatro
dgitos en cdigo BCD. La codificacin en BCD se utiliza a menudo para
visualizadores de siete segmentos y para interruptores rotativos de introduccin de
valores.

2.3 El sistema de
numeracin
hexadecimal

La utilizacin de nmeros binarios es difcil y la utilizacin del cdigo BCD ocupa


bastante espacio de memoria. Por esta razn se desarrollaron los sistemas octal y
hexadecimal. En el caso del sistema octal se utilizan grupos de tres dgitos. Esto
permite contar de 0 hasta 7, es decir, contar con "ochos".

Alternativamente, en el sistema de numeracin hexadecimal se combinan 4 bits.


Estos 4 bits permiten la representacin de los nmeros 0 al 15, es decir, contar en
"dieciseis". Para representar estos nmeros se utilizan los dgitos 0 al 9, seguidos
de las letras A, B, C, D, E y F, en donde A = 10, B = 11, C = 12, D = 13, E = 14 y F
= 15. La posicin significativa de cada dgito se evala con las potencias de 16.

Por lo tanto el nmero 87BC16 dado como ejemplo se lee como sigue:
8 x 163 + 7 x 162 + 11 x 161 + 12 x 160 = 34 748 10
Hasta ahora hemos tratado solamente con nmeros enteros y positivos, sin tener 2.5 Nmeros binarios en
cuenta los nmeros negativos. Para poder trabajar con estos nmeros, se decidi
con signo
que el bit ms significativo en el extremo izquierdo de un nmero binario se
utilizara para representar el signo: as "0" corresponde al "+" y "1" al "-".
As, 1111 11112 = -12710 y 0111 11112 = +12810
Cuando se utiliza el bit ms significativo para el signo, se dispone de un bit menos
para la representacin de un nmero con signo. Para la representacin de un
nmero binario de 16 dgitos, se obtiene el siguiente margen de valores:

Tabla B2.2
Rango de valores
Para nmeros binarios

Aunque ahora ya es posible representar con 0 y 1 nmeros enteros positivos con 2.6 Nmeros reales
signo, an hay la necesidad de poder representar los decimales o nmeros reales.
Para representar un nmero real en notacin binaria de ordenador, el nmero se
descompone en dos grupos, una potencia de 10 y un factor de multiplicacin. Esto
se conoce tambin como notacin cientfica de nmeros.

El nmero 27,334 se convierte as en 273 341 x10-4. Por lo tanto se necesitan dos
nmeros enteros con signo para representar un nmero real en un ordenador.
2.7 Generacin de
seales digitales
y binarias

Como ya parece haber quedado claro en la seccin anterior, todos los


ordenadores, y por lo tanto todos los PLCs, funcionan utilizando seales digitales o
binarias. Por binario, entendemos una seal que slo reconoce dos valores
definidos.

Figura B2.1
Seal binaria

Estos valores se les llama "0" o "1", aunque tambin se utilizan los trminos "bajo"
y "alto". Las seales pueden realizarse muy fcilmente con componentes de
contactos. Un contacto activado corresponde a una seal de lgica 1 y uno sin
activar a una de lgica 0. Cuando se trabaja con elementos sin contacto, esto
puede forzar unos ciertos mrgenes de tolerancia. Por esta razn, hay que definir
ciertos mrgenes de tensin para definirlos como lgica 0 lgica 1.

Fig. B2.2
Mrgenes de tensin

IEC 1131-2 define un margen de valores de -3 V a 5 V como seal de lgica 0, y de


11 V a 30 V como seal de lgica 1. Esto es de obligado cumplimiento para PLCs
cuya tecnologa deba seguir la norma IEC 1131-2. En la prctica existen tensiones
muy parecidas para lgica 0 y lgica 1: Ampliamente usadas son: -30V a +5V para
lgica 0 y +13V a +30V para lgica 1.
A diferencia de las seales binarias, las seales digitales pueden asumir cualquier
valor. Se les conoce tambin como etapas de valor. As, una seal digital se define
por cualquier cantidad de etapas de valor. El cambio entre estas etapas no es
secuencial. La siguiente ilustracin muestra tres posibles mtodos de convertir una
seal analgica en una seal digital.

Figura B2.3
Conversin de una
Seal anloga a digital

Las seales digitales pueden formarse a partir de seales analgicas. Este mtodo
se utiliza, por ejemplo, para el procesamiento analgico a travs de un PLC.
Consecuentemente, una seal de entrada analgica en el margen de 0 a 10V se
reduce a una serie de etapas de valores. Dependiendo de la calidad del PLC y de
la resolucin, la seal digital ser capaz de operar en etapas de valores de 0,1V,
0,01V 0,001V.
Naturalmente, en este caso se seleccionara el margen ms
pequeo para poder reproducir la seal analgica con la mayor precisin posible.

Un ejemplo simple de una seal analgica es la presin, que se mide y se visualiza


en un manmetro. La seal de presin puede asumir cualquier valor intermedio
entre sus valores mnimo y mximo. A diferencia de la seal digital, cambia
continuamente. En el caso del procesamiento de valores analgicos a travs de un
PLC, como se ha descrito, las seales analgicas de tensin se evalan y se
convierten.
Por otra parte, las seales digitales pueden formarse reuniendo un cierto nmero
de seales binarias. De esta forma, de nuevo como se ha descrito en el prrafo
anterior, con ocho seales binarias es posible generar una seal digital con 256
valores.

Ejemplo

Este proceso se utiliza, por ejemplo, para la realizacin de temporizadores o de


contadores.

Captulo 3

Operadores Booleanos

3.1 Funciones lgicas


bsicas

Como se ha descrito en el captulo anterior, cualquier ordenador e igualmente


cualquier PLC, funcionan utilizando el sistema de numeracin de base 2. Esto se
aplica tambin a los sistemas octal (23) y hexadecimal (24). Por ello, las variables
individuales pueden asumir slo dos valores, "0" o "1".
Se utilizan unas
matemticas especiales para poder enlazar las relaciones entre variables -la
denominada lgebra de Boole. Los enlaces entre variables tambin pueden
representarse claramente por medio de contactos elctricos.
Funcin NOT, negacin
El pulsador mostrado representa un contacto normalmente cerrado. Cuando no
estar fsicamente accionado, el piloto H1 luce, mientras que en estado accionado,
el piloto H1 se apaga.

Figura B3.1
esquema del circuito

El pulsador S1 acta como una seal de entrada, el piloto constituye la salida. El


estado actual puede ser registrado en una tabla de la verdad:

Por lo tanto, la Ecuacin Booleana es como sigue:


= O (Lase: No-I igual a O)

El smbolo lgico es:

Fig. B3.2: Funcin NOT

Dos negaciones consecutivas se cancelan entre s.

Fig. B3.3: Dos funciones lgicas NOT

Funcin AND, conjuncin


Si dos contactos abiertos se conectan en serie, el piloto conectado slo lucir si
ambos pulsadores estn fsicamente accionados.

Fig. B3.4: Esquema del circuito

Tabla de la verdad

La tabla de la verdad asigna la conjuncin. La salida asume el valor 1 slo si


ambas entradas 1 y 2 se hallan con seal 1. Esto se conoce como una operacin
AND (operacin Y), que se representa con la siguiente ecuacin:
I1 ^ I2 = O

Fig. B3.5: Funcin AND

Adems, valen las siguientes ecuaciones para la conjuncin


a^0 = 0
a^1 = a
_
a^a = 0
a^a = a

Funcin OR, disyuncin


Otra funcin lgica bsica es la funcin OR (O). Si dos contactos normalmente

abiertos se conectan en paralelo, el piloto luce siempre que por lo menos uno de
los pulsadores se halle fsicamente accionado.

Fig. B3.6: Esquema del circuito

Tabla de la verdad

Fig. B3.7 Funcin OR

La operacin lgica se escribe en forma de la siguiente ecuacin:


I1 I2 = O

Valen tambin las siguientes ecuaciones para la disyuncin:


b 0=b
b 1=1
_
b b=1
b b=b
3.2 Otras operaciones
lgicas

En la seccin B3.1 se ha descrito la realizacin elctrica de las operaciones NOT/AND-/OR. Naturalmente, cada una de estas funciones pueden tambin realizarse
con componentes neumticos y electrnicos. El lgebra de Boole reconoce
tambin las siguientes operaciones lgicas. La siguiente tabla proporciona un
resumen de ellas.

Tabla B3.1 : Conexiones lgicas

3.3 Establecimiento de
funciones de
conmutacin

Derivacin de ecuaciones booleanas de la tabla de la verdad


A menudo, las operaciones lgicas mostradas en la seccin anterior no son
suficientes para describir adecuadamente un estado en la tecnologa de control.
A menudo, hay combinaciones de diferentes operaciones lgicas. La conexin
lgica en forma de una ecuacin booleana puede establecerse fcilmente a partir
de la tabla de la verdad.
El ejemplo inferior clarificar esto:
Tarea en una estacin de clasificacin
Diversas piezas para cocinas prefabricadas son mecanizadas en un sistema de
produccin (mquina de taladrar y fresar). A los laterales y a las puertas de ciertos
tipos de cocina se les han hecho diferentes disposiciones de agujeros. Los
sensores B1 a B4 estn previstos para la deteccin de estos agujeros.

Fig. B3.8: Estacin de clasificacin

Las piezas con la siguiente distribucin de agujeros son para el tipo de cocina
'Estndar'. Estas piezas deben extraerse de la cinta transportadora por medio del
cilindro de doble efecto 1.0.

Fig. 3.9: Distribucin de los agujeros en las piezas

Asumiendo que un taladro realizado se lee como seal-1, se obtiene la siguiente


tabla de verdad:

Tabla de verdad

Para obtener la ecuacin lgica a partir de esta tabla existen dos opciones, que
conducen a dos expresiones diferentes.
Naturalmente ambas expresiones
producen el mismo resultado, ya que se describen las mismas circunstancias.
Forma estndar disyuntiva
En la forma estndar disyuntiva, se agrupan todas las conjunciones (operaciones
AND) de las variables de entrada que producen la seal de salida 1, en una
operacin disyuntiva (operacin OR). El estado 0 de la seal de entrada se toma
como valor negado, y el estado 1 de la seal de entrada, como no-negada
(directa).
Por lo tanto, en el caso del ejemplo dado, la operacin lgica es la siguiente:

Forma estndar conjuntiva


En la forma estndar conjuntiva, se agrupan todas las disyunciones (operaciones
OR) de las variables de entrada que producen la seal de salida 0, en una
operacin conjuntiva (operacin AND).
A diferencia de la forma estndar
disyuntiva, en este caso la variable de entrada es negada con el estado "1" y nonegada con el estado "0".

3.4 Simplificacin
de funciones
lgicas

Ambas ecuaciones para el ejemplo dado son bastante amplias, si bien ms larga
an es la que se ha dado como forma estndar conjuntiva. Esto define el criterio
para utilizar la forma estndar disyuntiva o conjuntiva: la decisin se hace a favor
de la forma ms corta de la ecuacin. En este caso la forma estndar disyuntiva.

Esta expresin puede simplificarse con la ayuda de las propiedades del lgebra de
Boole, de las cuales las ms importantes se muestran a continuacin:

Propiedad conmutativa

Propiedad asociativa

Propiedad distributiva

Ley de De Morgan

Aplicadas al ejemplo citado se obtiene el siguiente resultado:

Por razones de claridad, el smbolo de la operacin AND ha sido expresamente


omitido en las ecuaciones indicadas.
El principio bsico de la simplificacin es sacar el factor comn de las variables y
reducir las expresiones definidas. Sin embargo, este mtodo requiere un buen
conocimiento de las propiedades del lgebra de Boole y un cierto grado de
prctica. Otra opcin para la simplificacin se presenta en la siguiente seccin.

Diagrama de Karnaugh-Veitch
En el caso de los diagramas de Karnaugh-Veitch (KV) la tabla de verdad se
transforma en una tabla de valores.

Para el ejemplo se dispone de un total de 16 posiciones, con lo que la tabla de


valores debe tener tambin 16 cuadrados.

Fig. B3.1 : Tabla de valores

El resultado de la tabla de la verdad se transfiere al diagrama KV tal como se


indica en la figura. En principio, de nuevo es posible la representacin en la forma
estndar disyuntiva o conjuntiva. Sin embargo, en este ejemplo nos limitaremos a
la forma estndar disyuntiva.

Fig. B3.11: Tabla de valores

El siguiente paso consiste en la combinacin de los estados para los cuales se ha


introducido un "1" en la tabla de valores. Esto se hace en bloques, observando las
siguientes reglas:
La combinacin de estados en el diagrama KV debe ser en forma de rectngulo o
de cuadrado. La cantidad de estados combinados debe ser el resultado de una
funcin 2x.
De esto resulta lo siguiente:

Fig. B3.12: Tabla de valores

Los valores de las variables se seleccionan para el bloque establecido y estos a su


vez se combinan en forma disyuntiva.

Naturalmente, el diagrama KV no est limitado a 16 casillas. Con 5 variables, por


ejemplo, se produciran 32 casillas y con 6 variables 64 casillas.

Captulo 4

Diseo y modo de funcionamiento


de un PLC

4.2 Unidad de Control


Central de los PLCs

El hardware del PLC o, como es el caso de casi todos los sistemas


microordenadores actuales -est basado en un sistema de bus. Un sistema de bus
es un determinado nmero de lneas elctricas divididas en lneas de direcciones,
de datos y de control. La lnea de direcciones se utiliza para seleccionar la
direccin de un elemento conectado al bus y la lnea de datos para transmitir la
informacin requerida. Las lneas de control son necesarias para habilitar el
dispositivo conectado al bus como emisor o como receptor.
Los principales elementos conectados al sistema de bus son el microprocesador y
la memoria. La memoria puede dividirse en memoria para el firmware y memoria
para el programa y los datos del usuario.
Segn la estructura del PLC, los mdulos de entradas y salidas se conectan a un
simple bus comn o -con la ayuda de un interfase de bus- a un bus externo de E/S.
Especialmente en el caso de grandes sistemas modulares de PLC, es ms usual
un bus externo de E/S.
Finalmente, se necesita una conexin para el aparato programador o un PC,
actualmente y en la mayora de los casos en forma de un interfase serie.

Fig. B4.1: Diseo fundamental de un microordenador

La Fig. B4.1 ilustra el diseo fundamental de un microordenador.

En los ordenadores, generalmente se distingue entre hardware, firmware y software.


Lo mismo se aplica a los PLCs, ya que esencialmente tambin basados estn en
microprocesador.

4.2 Estructura de
un
un PLC.

El hardware a las partes fsicas del dispositivo, es decir, los circuitos impresos, los
circuitos integrados, el cableado, la batera, el chass, etc.
El firmware lo constituyen aquellos programas (software) que se hayan
permanentemente instalados en el hardware del ordenador y que son
suministrados por el fabricante del PLC. Esto incluye las rutinas fundamentales del
sistema, utilizadas para poner en marcha el procesador al aplicar la tensin.
Adicionalmente, existe el sistema operativo que, en el caso de los controles lgicos
programables, generalmente se halla almacenado en una memoria ROM de slo
lectura o en una EPROM.
Finalmente, existe el software, que es el programa escrito por el usuario del PLC.
Los programas de usuario se instalan generalmente en la memoria RAM, una
memoria de acceso aleatorio, en donde pueden ser fcilmente modificados.

La Fig. B4.2 ilustra el FPC 101 de Festo como ejemplo.

Fig. B4.2: Control Lgico Programable Festo FPC 101

4.2 Unidad Central


de un PLC

En esencia, la unidad central de un PLC consiste en un microordenador. El sistema


operativo del fabricante del PLC hace que el ordenador que hay en el PLC est
optimizado especficamente para tareas de tecnologa de control.
Diseo de la unidad central
La Fig.B4.3 muestra una versin simplificada de un microprocesador que
representa el corazn de un microordenador.

Fig. B4.3 Diseo de un microprocesador

Un microprocesador consiste principalmente en unidad aritmtica y lgica, una


unidad de control y un pequeo nmero de unidades de memoria internas,
denominadas registros.
La tarea de la unidad aritmtica y lgica -la ALU (arithmetic logic unit)- es ejecutar
las operaciones lgicas y aritmticas con los datos transmitidos.
El acumulador, AC para abreviar, es un registro especial asignado directamente a
la unidad ALU. Este almacena tanto los datos a procesar como los resultados de
una operacin.
El registro de instrucciones almacena cada orden o instruccin llamada desde la
memoria del programa hasta que es decodificada y ejecutada.
Una orden o instruccin (command) tiene una parte de ejecucin y una parte de
direccin. La parte de ejecucin indica que operacin debe realizarse. La parte de
direccin define la direccin de los operandos (seales de entrada, flags, etc.) con
los que hay que realizar la operacin indicada.

El contador de programa es un registro, que contiene la direccin de la siguiente


orden a procesar. La seccin siguiente tratar este apartado con ms detalle.
La unidad de control regula y controla toda la secuencia de operaciones
requeridas para la ejecucin de una orden.
Ciclo de instrucciones en la unidad central
Los sistemas microordenadores convencionales de hoy en da funcionan segn el
denominado "principio de von-Neumann". Segn este principio, el ordenador
procesa el programa lnea a lnea. En trminos sencillos, podramos decir que
cada lnea del programa de usuario del PLC es procesada secuencialmente.
Esto es vlido independientemente del lenguaje de programacin en el que haya
sido escrito el programa de PLC, sea en forma textual (lista de instrucciones) o en
forma grfica (diagramas de contactos, diagramas de funciones secuencial). Dado
que estas diversas formas de representacin siempre resultan en una serie de
lneas de programa dentro del ordenador, se procesan consecuentemente una tras
otra.
En principio, una lnea de programa, es decir, generalmente una orden se procesa
en dos etapas:
Recogida de la orden desde la memoria de programa
Ejecucin de la orden

Fig. B4.4: Secuencia de instrucciones

El contenido del contador de programa es transferido al bus de direcciones. A


continuacin,
la unidad de control hace que la instruccin en la direccin
especificada de la memoria del programa sea depositada en el bus de datos.
Desde aqu, se lee en el registro de instrucciones. Una vez ha sido decodificada,
la unidad de control genera una secuencia de seales de control para su ejecucin.
Durante la ejecucin de un programa, las instrucciones se van a buscar
secuencialmente.
Para ello se necesita un mecanismo que permita esta
secuencia. Esta tarea se realiza por un simple incrementador, es decir, un
elemento de habilitacin de pasos en el contador de programa.
Modo de funcionamiento de un PLC
Los programas para el procesamiento convencional de datos, generalmente se
procesan una sola vez, de arriba abajo y terminan. A diferencia de estos, el
programa de un PLC es procesado continua y cclicamente.

Fig. B4.5: Procesamiento cclico de un programa de PLC

Las caractersticas del procesamiento cclico son:


As que el programa ha sido ejecutado una vez, salta automticamente al principio
y se va repitiendo el proceso continuamente.
Antes de que se procese la primera lnea del programa, es decir, al inicio del ciclo,
el estado de las entradas es almacenado en la tabla de imagen de entradas. La
imagen del proceso es una zona de memoria aparte a la que se accede durante un
ciclo. As el estado lgico de una entrada permanece constante durante un ciclo,
incluso aunque en este intervalo haya cambiado fsicamente.
De forma similar a las entradas, las salidas no son inmediatamente activadas o
desactivadas durante un ciclo, sino que estado es almacenado temporalmente en
la tabla imagen de salidas. Solamente al final del ciclo se activan o desactivan
fsicamente las salidas segn el estado lgico almacenado en la memoria.
El procesamiento de una lnea de programa a travs de la unidad central de un
PLC ocupa un tiempo que, dependiendo del PLC y de la instruccin que contenga,
puede variar desde unos pocos microsegundos hasta unos pocos milisegundos.
El tiempo requerido por el PLC para una simple ejecucin de un programa,
incluyendo la actualizacin de las salidas y la imagen del proceso, se denomina
tiempo de ciclo o tiempo de scan. Cuanto ms largo sea el programa y cuanto ms
tiempo necesite el PLC respectivo para procesar cada lnea del programa, tanto
ms largo ser el tiempo del ciclo.
Los tiempos reales de ciclo varan
aproximadamente entre 1 y 100 milisegundos.
Las consecuencias del procesamiento cclico de un programa de PLC que utilice
una imagen del proceso son las siguientes:
Las seales de entrada de una duracin inferior al tiempo de ciclo posiblemente
no sern reconocidas.
En algunos casos, puede haber un retardo de dos ciclos entre la presencia de
una seal de entrada y la deseada reaccin de una salida ante esta seal.
Dado que las instrucciones se procesan secuencialmente, el comportamiento
especfico de la secuencia de un programa de PLC puede ser crucial.
En algunas aplicaciones, es esencial que pueda accederse directamente a
entradas y salidas durante un ciclo. Por ello, este tipo de procesamiento de
programa, saltndose la imagen del proceso, tambin es posible en algunos
sistemas PLC.

4.3 Memoria de
programas de
aplicacin

Los programas especficamente desarrollados para determinadas


aplicaciones requieren una memoria de programa, de la cual puedan ser ledos
por la unidad central. Los requerimientos para tal memoria de programa son
relativamente simples de formular:
Debera ser lo ms sencilla de modificar o de crear y almacenar nuevos
programas con la ayuda de un dispositivo programador o un PC.
Debe haber mecanismos que aseguren que el programa no pueda perderse incluso ante un fallo de tensin o por tensiones de interferencia
La memoria de programa debe ser econmica
La memoria de programa debera ser suficientemente rpida para no retardar el
funcionamiento de la unidad central.
Actualmente, se utilizan tres tipos de memoria en la prctica:
RAM
EPROM
EEPROM

RAM
La memoria RAM (random access memory/memoria de acceso aleatorio) es una
memoria muy rpida y econmica. Dado que la memoria principal de los
ordenadores (y tambin de los PLCs) consiste en memorias RAM, se producen en
grandes cantidades, lo que le permite disponer de tales memorias a costes
relativamente bajos.
Las RAMs son memorias de lectura/escritura y pueden programarse y modificarse
fcilmente.
La desventaja de una RAM es que es voltil, es decir,el programa almacenado en
la RAM se pierde en el caso de un fallo de tensin. Esta es la razn por la cual las
RAMs deben estar respaldadas por una batera, acumulador o pila. Dado que la
vida util y la capacidad de las modernas pilas les permiten durar varios aos, el
respaldo de una RAM por pila es relativamente simple. A pesar de que se utilizan
pilas o baterias de altas prestaciones, es esencial sustituirlas en las fechas
indicadas por el fabricante del PLC.

EPROM
La EPROM (erasable programmable read-only memory / memria de slo lectura,
programable y borrable) tambin es una memoria rpida y de bajo coste y, en
comparacin con la RAM tiene la ventaja aadida de que no es voltil, es decir, es
remanente. Por ello, el contenido de la memoria permanece inalterable incluso
ante un fallo de tensin.

Fig. B4.6: Ejemplo de una EPROM

Sin embargo, a efectos de modificar un programa, debe borrarse primero toda la


memoria y, tras un tiempo de enfriamiento, reprogramarse completamente. El
borrado requiere generalmente un dispositivo borrador y para su programacin se
utiliza un dispositivo especial (grabador de EPROMs).
A pesar de su relativamente complejo proceso de borrado, -enfriado-,
reprogramacin, las EPROMs se utilizan con bastante frecuencia en los PLCs ya
que poseen una gran fiabilidad y u bajo coste. En la prctica, a menudo se utiliza
una RAM durante la fase de programacin y puesta a punto de la mquina. Una
vez finalizada la puesta en marcha, el programa se transfiere a una EPROM.
EEPROM
La EEPROM (electrically erasable programmable ROM / ROM programable y
borrable elctricamente), EEROM (electrically erasable ROM / ROM alterable
elctricamente) o las flash-EPROM han sido utilizadas desde hace algn tiempo.
La EEPROM es especial, es ampliamente utilizada como memoria de aplicacin en
PLCs.
La EEPROM es una memoria borrable elctricamente, que puede
reescribirse.

4.5 Mdulo de entradas

El mdulo de entradas de un PLC es el mdulo al cual estn conectados los


sensores del proceso. Las seales de los sensores deben pasar a la unidad
central. Las funciones importantes de un mdulo de entradas (para la aplicacin)
es como sigue:
Deteccin fiable de la seal
Ajuste de la tensin, desde la tensin de control a la tensin lgica
Proteccin de la electrnica sensible de las tensiones externas
Filtrado de las entradas

Fig. B4.7: Diagrama de bloque de un mdulo de entradas

El principal componente de los actuales mdulos de entradas, que cumple con


estos requerimientos es el optoacoplador.
El optoacoplador transmite la informacin del sensor por medio de la luz, creando
as un aislamiento elctrico entre el control y los circuitos lgicos, protegiendo con
ello a la sensible electrnica de las tensiones espreas externas. Actualmente, los
optoacopladores avanzados garantizan proteccin a picos de aprximadamente 5
kV, lo que es adecuado para aplicaciones industriales.
El ajuste de la tensin de control y de lgica, en el caso corriente de una
tensin de mando de 24 V, puede realizarse con la ayuda de un circuito
diodo/resistencia. En el caso de 220 V AC, se conecta un rectificador en serie.
Dependiendo del fabricante del PLC, se asegura una deteccin fiable de la seal
por medio de un detector de umbral adicional o los correspondientes de diodos y
optoacopladores. Los datos precisos en relacin con las seales a detectar se
especifican en DIN 19240.

El filtrado de la seal emitida por el sensor es crtica en automatizacin industrial.


En la industria, las lneas elctricas estn generalmente muy cargadas debido a
tensiones de interferencia inductivas, que producen muchas interferencias en las
seales. Las lneas de las seales pueden protegerse con apantallamientos,
canaletas metlicas o, alternativamente, el mdulo de entrada del PLC realiza un
filtrado por medio de un retardo de la seal de entrada.
Esto necesita que la seal de entrada sea aplicada un periodo de tiempo
suficientemente largo, antes de que sea reconocida como una seal de entrada.
Dado que, debido a su naturaleza inductiva, los impulsos de interferencia son
principalmente seales transitorias, es suficiente un retardo de la seal de entrada
relativamente corto, del orden de milisegundos, para filtrar la mayor parte de los
impulsos parsitos.
El retardo de la seal de entrada se realiza principalmente por hardware, es decir,
a travs de un circuito RC en la entrada del PLC. Sin embargo, en casos aislados,
tambin es posible producir un retardo de la seal por software.
La duracin de un retardo de entrada es de aprximadamente entre 1 y 20
milisegundos -dependiendo del fabricante y del tipo. Muchos fabricantes ofrecen
entradas especialmente rpidas para aquellas tareas en las que el retardo de la
seal de entrada es demasiado largo para reconocer la seal requerida.
Cuando se conectan sensores a las entradas del PLC, debe distinguirse entre
conexiones de conmutacin positiva y de conmutacin negativa. En otras palabras,
hay que distinguir entre entradas que representan un consumo de corriente o una
fuente de corriente. En Alemania, por ejemplo, cumpliendo con VDI 2880, se
utilizan principalmente las conexiones de conmutacin positiva, ya que ello permite
la utilizacin de un tierra de proteccin. Conmutacin positiva significa que la
entrada del PLC representa un drenaje de corriente. El sensor suministra la tensin
de funcionamiento o tensin de control a la entrada en forma de seal-1.
Si se utiliza tierra de proteccin, la tensin de salida del sensor es cortocircuitada
hacia los 0 voltios o se funde el fusible en caso de cortocircuito en la lnea de
seal. Esto significa que se aplica una lgica 0 en la entrada del PLC.

En muchos pases, es comn utilizar sensores de conmutacin negativa, es decir,


las entrada del PLC funcionan como fuente de potencia. En estos casos, deben
utilizarse diferentes medidas de proteccin para evitar que se aplique una seal 1 a
la entrada del PLC en el caso de un cortocircuito en la lnea de la seal. Un
posible mtodo es la puesta a tierra de la tensin de control positiva o la
supervisin del aislamiento, es decir, tierra de proteccin como medida de
proteccin.

4.6 Mdulo de salida

Los mdulos de salida llevan las seales de la unidad central a los elementos
finales de control, que son activados segn la tarea. Principalmente, la funcin de
una salida -vista desde la aplicacin del PLC incluye lo siguiente:
Ajuste de la tensin desde la tensin lgica a la de control
Proteccin de la electrnica sensible de tensiones espreas hacia el control
Amplificacin de potencia suficiente para el accionamiento de elementos finales
de control
Proteccin de cortocircuito y sobrecarga de los mdulos de salida
En el caso de mdulos de salida, hay disponibles dos mtodos fundamentalmente
diferentes para conseguir lo indicado: El uso de rels o de electrnica de potencia.

Fig. B4.8: Diagrama de bloques de un mdulo de salida

Actualmente, la proteccin ante cortocircuito, proteccin ante sobrecargas y


amplificacin de potencia, se ofrecen a menudo como mdulos completamente
integrados.

Las medidas estndar de proteccin ante cortocircuito miden el flujo de corriente a


travs de una resistencia de potencia para desconectar en caso de cortocircuito; un
sensor de temperatura proporciona una proteccin ante sobrecargas; una etapa de
Darlington o una etapa de transistor de potencia proporcionan la potencia
necesaria.
La potencia admisible de salida se utiliza especficamente de forma que permita
una distincin entre la potencia admisible de una salida y la potencia acumulada
admisible de un mdulo de salidas. La potencia acumulada de un mdulo de
salidas es siempre considerablemente interior a la suma total de la potencia de
cada salida, ya que los transistores de potencia se transmiten el calor unos a otros.

Si se utilizan rels para las salidas, entonces el rel puede asumir prcticamente
todas las funciones de un mdulo de salida: El contacto del rel y la bobina del rel
estn elctricamente aislados uno de otra; el rel representa un excelente
amplificador de potencia y est especialmente protegido de sobrecargas, con lo
que solamente debe preverse una proteccin ante cortocircuito con un fusible. Sin
embargo, en la prctica se conectan optoacopladores en serie con el rel, ya que
ello facilita el accionamiento del rel y pueden utilizarse rels ms sencillos.

Las salidas por rel, tienen la ventaja de que pueden utilizarse para diferentes
tensiones de salida. En contraste, las salidas electrnicas tienen velocidades de
conmutacin considerablemente ms elevadas y una vida til ms larga que la de
los rels. En muchos casos, la potencia de rels muy pequeos utilizados en los
PLCs, corresponde a la de las etapas de potencia de las salidas electrnicas.
En Alemania, por ejemplo, las salidas tambin se conectan a conmutacin positiva,
segn VDI 2880, es decir, la salida representa una fuente de potencia y suministra
la tensin de funcionamiento para el dispositivo consumidor.
En el caso de un cortocircuito de la lnea de seal de salida a tierra, la salida se
cortocircuita si se utilizan medidas normales de puesta a tierra de proteccin. La
electrnica conmuta a proteccin de cortocircuito o se funde el fusible, es decir, el
dispositivo consumidor no puede drenar corriente por lo que se desconecta y
queda en estado seguro. (De acuerdo con DIN 0113, el estado de seguridad debe
ser siempre el estado sin energa.)

Si se utilizan salidas de conmutacin negativa, es decir, la salida repre


senta un drenaje de corriente, deben adoptarse medidas de proteccin del tal
forma que el dispositivo consumidor quede en un estado seguro en el caso de
cortocircuito en la lnea de seal. De nuevo, un tierra de proteccin con supervisin
del aislamiento o la neutralizacin de la ten
sin de control positiva son prcticas estndar en este caso.
4.7Dispositivo
programador /
Ordenador personal

Cada PLC tiene una herramienta de diagnosis y programacin para soportar la


aplicacin del PLC

Programacin
Verificacin
Puesta punto
Localizacin de averas
Documentacin del programa
Almacenamiento del programa

Estas herramientas de programacin y diagnosis son o bien dispositivos de


programacin especficos del fabricante u ordenadores personales con su software
correspondiente. Actualmente, estos ltimos son casi exclusivamente las variantes
preferidas, ya que la enorme capacidad de los modernos PCs, combinada con su
comparativamente bajo coste inicial y alta flexibilidad, representan ventajas
cruciales.
Tambin se han desarrollado los denominados programadores de mano para
pequeos sistemas de control y para tareas de mantenimiento. Con la creciente
utilizacin de ordenadores personales porttiles (LapTop), funcionando con
bateras, la importancia de los programadores de mano disminuye paulatinamente.

Las funciones esenciales del sistema de software forman parte de la


herramienta de programacin y diagnostico
Cualquier software de programacin segn IEC 1131-1 deben proporcionar al
usuario una serie de funciones. As, el software de programacin comprende
mdulos de software para:
Introduccin de programas
Creacin y modificacin de programas en uno de los lenguajes de programacin
del un PLC
Verificacin de la sintaxis
Comprobacin de la sintaxis del programa y los datos, minimizando as la
introduccin de programas defectuosos.
Traductor
Traduccin del programa introducido en un programa que puede ser ledo y
procesado por el PLC, es decir, la generacin del cdigo mquina del
correspondiente PC.
Conexin entre PLC y PC
A travs de este enlace se realiza la carga de los programas al PLC y la
ejecucin de funciones de verificacin
Funciones de verificacin
Ayuda al usuario durante la escritura y en la eliminacin de fallos y verificacin a
travs de:
- una verificacin del estado de las entradas, salidas temporizadores,
contadores, etc.
- verificacin de secuencias de programa por medio de operaciones de paso a
paso, rdenes de STOP, etc.
- simulacin por medio de activacin manual de entradas/salidas,
establecimiento de valores, etc.
Indicacin del estado de sistemas de control
Emisin de informacin relacionada con la mquina, proceso y esta
do del sistema PLC:
- Indicacin de. estado de seales de entrada y salida
- Registro/indicacin de cambios de estado en seales externas y datos internos
- Supervisin de los tiempos de ejecucin
- Formato en tiempo real de la ejecucin del programa

Documentacin
Creacin de una descripcin del sistema PLO y el programa del usuario. Esto
consiste en:
- Descripcin de la configuracin del hardware
- Impresin del programa de usuario con los correspondientes datos e
identificadores para las seales y comentarios
- Lista de referencias cruzadas para todos los datos procesados tales como
entradas, salidas, temporizadores, etc.
- Descripcin de las modificaciones
Archivado del programa de usuario
Proteccin del programa de usuario en memorias no voltiles tales como
EPROM, etc.

Captulo 5

Programacin de un PLC

5.1 Bsqueda de una


solucin sistemtica

Los programas de control representan un componente importante en un sistema de


automatizacin.
Los programas de control deben ser diseados sistemticamente,
estructurados y completamente documentados, para que sean:
libres de errores,
fciles de mantener y
econmicos

bien

Modelo de fases para la generacin de software para PLC


El procedimiento para el desarrollo de un programa de PLC que se muestra en la
fig. B5.1 ha sido probado y verificado. La divisin en secciones definidas conduce a
un funcionamiento sistemtico y objetivado, y proporciona una disposicin de
resultados clara, que puede verificarse en relacin con la tarea.
El modelo de fases consiste en las siguientes secciones:
Especificacin: Descripcin de la tarea
Diseo: Descripcin de la solucin
Realizacin: Puesta en prctica de la solucin
Integracin/puesta a punto; Incorporacin en el entorno y verificacin de la
solucin,
que bsicamente pueden aplicarse a todos los proyectos tcnicos. Se producen
diferencias en los mtodos y herramientas utilizados en las fases individuales.

Fig. B5.1:
Modelo de fases para la generacin de software de PLC

El modelo de fases puede aplicaras a programas de control de complejidad


diversa; para tareas de control complejas, es absolutamente esencial la utilizacin
de tales modelos.
Las fases individuales del modelo se describen abajo.
Fase 1: Especificacin (Formulacin del problema)
En esta fase, se formula una descripcin detallada y precisa de la tarea de control.
La descripcin especfica de la funcin del sistema de control, formalizada al
mximo, revela cualquier requerimiento conflictivo, especificaciones incompletas o
equivocadas.
Al final de esta fase se dispone de lo siguiente:
Descripcin escrita de la tarea de control
Estructura/distribucin
Macroestructuracin del sistema o proceso y con ello un esbozo de la estructura
de la solucin.
Fase 2: Diseo (Forma concreta del concepto de la solucin)
Un concepto de solucin se desarrolla basndose en las definiciones establecidas
en la fase 1. El mtodo utilizado para describir la solucin debe proporcionar un
grfico y una descripcin orientada al proceso, a la funcin y comportamiento del
sistema de control, y debe ser independiente de la realizacin tcnica.
Estos requerimientos se cumplen con el diagrama de funciones (FGH) segn
define DIN 40 719, Parte 6 o IEC 848. Empezando con una representacin de una
visin de conjunto del control (esbozo de la estructura de la solucin), la solucin
puede refinarse paso a paso hasta que se obtenga un nivel de descripcin que
contenga todos los detalles de la solucin (refinamiento de un esbozo de
estructura).
En el caso de tareas de control complejas, la solucin es estructurada, en paralelo
con esto, en mdulos de software individuales. Estos mdulos de software realizan
las etapas de trabajo del sistema de control. Estos pueden ser funciones
especiales como la realizacin de un interface para la visualizacin del proceso, o
sistemas de comunicacin, o incluso etapas de trabajo recurrentes
permanentemente.
El diagrama desplazamiento-fase, representa otra forma estndar para la
descripcin de sistemas de control aparte del diagrama de funciones segn DIN 40
719, Parte 6.

Fase 3: Realizacin (Programacin del concepto de la solucin)


La traduccin del concepto de la solucin en un programa de control se realiza a
travs de los lenguajes de programacin definidos en IEC 1131-3.
Estos son:
diagrama de funciones secuencial, diagrama de bloques de funcin, diagrama de
contactos, lista de instrucciones y texto estructurado.
Los sistemas de control que funcionan en un proceso tiempo/lgica y estn
disponibles en FCH segn DIN 40 719, P.6, pueden ser clara y fcilmente
programados en diagrama de funciones secuencial. Un diagrama de funciones
secuencial, en la medida de los posible, utiliza los mismos componentes para la
programacin que los utilizados para la descripcin en el diagrama de funciones
segn DIN 40 719, P.6.
Diagrama de contactos, diagrama de bloques de funcin y lista de instrucciones
son los lenguajes de programacin adecuados para la formulacin de operaciones
bsicas y para sistemas de control que pueden ser descritos por simples seales
lgicas combinadas por operaciones booleanas.
El lenguaje de alto nivel denominado 'texto estructurado' se utiliza principalmente
para crear mdulos de software de contenido matemtico, tales como mdulos
para la descripcin de algoritmos de regulacin.
En la medida en que los sistemas de programacin de PLCs lo permitan, los
programas de control o parte de los programas creados, deberan ser simulados
antes de la puesta a punto. Esto permite la deteccin y eliminacin de errores ya
en una etapa inicial.
Fase 4: Puesta a punto
(Construccin y verificacin de una tarea de control)
Esta fase verifica la interaccin del sistema de automatizacin y la planta
conectada. En casos de tareas complejas, es aconsejable poner a punto el
conjunto de forma sistemtica, paso a paso. Los tallos, tanto en el sistema como
en el programa de control, pueden hallarse y eliminarse fcilmente utilizando este
mtodo.

Documentacin
Un componente importante y crucial de un sistema es la documentacin, ya que es
un requerimiento esencial para el mantenimiento y ampliacin de un sistema. ~
documentacin, incluyendo los programas de control, deberla estar disponible tanto
en papel como en un soporte de almacenamiento de datos. La documentacin
consiste en la informacin sobre las fases individuales, listados del programa de
control y de cualquier informacin adicional posible concerniente al programa de
control. Individualmente estos son:

Descripcin del problema


Croquis de situacin
Esquema del circuito
Esquema tcnico
Listados del programa de control en SFC, PBD, etc.
Lista de asignaciones de entradas y salidas
(esto tambin forma parte de los listados del programa de control)
Documentacin adicional

IEC 1131-3 es un estndar para la programacin, no slo de un PLC individual,


sino tambin para sistemas de automatizacin complejos. Los programas de control
para grandes aplicaciones deben ser claramente estructurados para ser inteligibles,
fciles de mantener y si es posible tambin porttiles, es decir, transferibles a otros
sistema de PLC.

5.2

Las definiciones se necesitan no slo para las instrucciones de lenguaje elemental,


sino tambin para los elementos de lenguaje para estructuracin. Los recursos de
estructuracin (fig. B5.2) se refieren a programas de control y a la configuracin del
sistema de automatizacin.

Figura B5.2:
EC 1131-3

Recursos de
estructuracin
IEC 1131-3

Recursos de estructuracin del programa


Los recursos de estructuracin - programa, bloque de funciones y funcin contienen la verdadera lgica de Control (reglas> del programa de control. Estos
se conocen tambin como unidades de organizacin del programa. Estos recursos
de estructuracin estn disponibles para cualquier lenguaje de programacin. Se
utilizan para la modularizacin de programas de control y del programa de usuario esto concierne principalmente a programas y bloques de funcin - o tambin
suministrados por el fabricante - en lo que se refiere a programas y bloques de
funcin.
IEC 1131-3 define un amplio juego que funciones y bloques de funcin
estandarizados. Estos pueden ser ampliados por funciones propias del usuario,
para tareas especiales o de continua recurrencia.
Los mdulos de software, que pueden utilizarse de diversas maneras, se
introducen en libreras, de las que puede disponerse en cualquier momento.
Los programas representan la capa ms exterior de la organizacin del programa y
pueden diferenciarse del bloque de funcin principalmente por el hecho de que no
pueden ser invocados por ninguna otra unidad de organizacin del programa.
El diagrama de funciones secuencial representa otro recurso para la estructuracin
de un programa. Los contenidos de los programas reales y los bloques de funcin
pueden de nuevo representarse clara e inteligiblemente por medio de un diagrama
de funciones secuencial.

Recursos de estructuracin a nivel de configuracin


Los elementos de lenguaje para configuracin describen la incorporacin de
programas de control en el sistema de automatizacin y su control en relacin con
el tiempo.
El sistema de automatizacin representa una configuracin (elemento del lenguaje
CONFIGURACION). Dentro de la Configuracin hay las variables globales
(elemento de lenguaje VAR_GLOBAL).

Un recurso (elemento de lenguaje RECURSO) corresponde al procesador de un


sistema multiprocesador, al cual se asignan uno o varios programas. Adems,
comprende elementos de control, que incluyen el control de programas en relacin
con el tiempo. Este elemento de control es una tarea (elemento de lenguaje
TAREA). El elemento de control Tarea define si un programa debe procesarse
cclicamente o slo una vez, disparado por un evento especfico. Los programas
que no estn especficamente enlazados a una tarea son procesados cclicamente
en segundo plano y con la prioridad mas baja.

Figura 5.3:Ejemplo Grafico De un configuracin

Los recursos de estructuracin para la configuracin se muestran en un resumen


combinado en la fig. B5.3. A continuacin se explica el ejemplo que aplica este
concepto a una tarea de automatizacin.
La tarea planteada es la de disear y automatizar una lnea de produccin para el
montaje de vlvulas neumticas.
Se ha elegido un PLC multiprocesador con tres tarjetas de procesador para el
montaje de las vlvulas. Las tarjetas de procesador estn asignadas al montaje de
las vlvulas, el control del transportador y el control de calidad.

Los programas Estadsticas y Guarda_datos estn asociados con diferentes


tareas. Como tales, poseen diferentes caractersticas de ejecucin. El programa
Estadsticas evala y comprime los datos de calidad a intervalos regulares. La
prioridad de este programa es baja. Se pone en marcha regularmente, p.ej. cada
20 minutos, por la tarea Tarea_cclica. En el caso de un PARO DE EMERGENCIA,
el programa Guarda_datos transmite todos los datos disponibles a Un ordenador
de clula de nivel superior para prevenir cualquier posible prdida de datos. El
programa se pone en marcha activado por un evento de la ms alta prioridad con
la seal de PARO DE EMERGENCIA.
IEC 1131-3 proporciona interfaces definidos y por lo tanto estandarizados para el
intercambio de datos dentro de una configuracin. Si se requiere informacin
especfica, tal como la lectura de una variable, en diferentes unidades de
organizacin de programas, esta variable es designada como variable global.
Entonces los datos pueden ser intercambiados con una variable designada como
tal. A las variables globales slo se puede acceder desde programas y bloques de
funcin.
Lo que tiene inters para sistemas en red es la comunicacin ms all de una
configuracin. Para ello, estn a disposicin del usuario bloques de funciones de
comunicacin estandarizados. Estos se definen en IEC 1131-5 y se utilizan en lEC
1131-3. Otra posibilidad es la definicin de rutas de acceso (recurso de lenguaje
RUTA_ACCESO) para variables especficas. Estas tambin pueden ser ledas o
escritas desde otras posiciones.

5.3 Lenguajes de
5.4 programacin

IEC 1131-3 define cinco lenguajes de programacin. Aunque la funcionalidad y


estructura de estos lenguajes es muy diferente, son tratados como una sola familia
de lenguajes por IEC 1131-3, con elementos de estructura solapados (declaracin
de variables, partes de organizacin tales como funciones y bloques de funcin,
etc.) y elementos de configuracin.
Los lenguajes pueden mezclarse de cualquier forma dentro de un proyecto de PLC.
La unificacin y estandarizacin de estos cinco lenguajes representa un
compromiso de requerimientos histricos, regionales y especficos de cada sector.
Se ha previsto la futura expansin (tal como el principio de bloque de funcin o el
lenguaje de Texto Estructurado); adems, se ha incorporado la informacin
necesaria sobre detalles tecnolgicos (tipo de datos, etc.)

Los elementos del lenguaje son explicados con la ayuda de un proceso de


mecanizado involucrado en la producci6n de vlvulas. Se utilizan dos sensores
para establecer si una pieza con los talados correctamente realizados est
disponible en la posicin de mecanizado. Si la vlvula a mecanizar es del tipo A o
el tipo B - esto se establece con dos interruptores selectores - el cilindro avanza y
mete la funda en el taladro realizado.
El Diagrama de contactos o Diagrama en escalera (Ladder diagram) LD
El Diagrama de contactos es un lenguaje de programacin grfico derivado de los
esquemas de circuitos de los mandos por rels directamente cableados. El
diagrama de contactos contiene lneas de alimentacin a derecha e izquierda del
diagrama; a estas lneas estn conectados los reglones, que se componen de
contactos (normalmente abiertos y normalmente cerrados) y de elementos de
bobina.

Fig. B5.4 Ejemplo del lenguaje en diagrama de contactos

Diagrama de bloques de funcin (Function block diagram) FBD


En el diagrama de bloques de funcin, las funciones y los bloques de funcin estn
representados grficamente e interconectados en redes. El diagrama de bloques
de funcin tiene su origen en el diagrama lgico que se utiliza en el diseo de
circuitos electrnicos.

Fig. B5.5: Ejemplo del lenguaje en diagrama de contactos

Lista de Instrucciones (Statement list o Instruction List) IL


La lista de instrucciones es un lenguaje textual tipo assembler; caracterizado por
un modelo de mquina simple (procesador con un slo registro). La lista de
instrucciones se formula a partir de instrucciones de control consistentes en un
operador y un operando.

Fig. B5.6 Ejemplo de lenguaje en lista de instrucciones

En lo que se refiere a filosofa de lenguaje, el diagrama de contactos, el diagrama


de bloques de funcin y la lista de instrucciones han sido definidos en la forma en
que son utilizados en la actual tecnologa de PLC. Sin embargo, estn limitados a
las funciones bsicas en lo que concierne a sus elementos. Esto los aparta
esencialmente de los dialectos que las empresas utilizan en la actualidad. La
competitividad de estos lenguajes es mantenida debido al uso de bloques y
bloques de funcin.

Texto estructurado (Structured text) ST


El texto estructurado es un lenguaje de alto nivel basado en Pascal, que consiste
en expresiones e instrucciones. Las instrucciones pueden definirse principalmente
como: Instrucciones de seleccin, tales como IF...THEN...ELSE, etc, instrucciones
de repeticin tales como FOR, WHILE etc. y llamadas a bloques de funcin.

Fig. B5.7: Ejemplo de lenguaje en texto estructurado

El texto estructurado permite la formulacin de numerosas aplicaciones, m


s all de la pura tecnologa de funciones, tales como algoritmos (algoritmos de
regulacin de nivel superior, etc.) y manejo de datos (anlisis de datos,
procesamiento de estructuras de datos complejas, etc.)

Diagrama de funciones secuencial (Sequential function chart) SFC


El diagrama de funciones secuencial (casi idntico al GRAFCET francs) es un
recurso de lenguaje para la estructuracin de los programas de control orientados
a secuencias.
Los elementos del diagrama de funciones secuencial son las etapas, las
transiciones y las derivaciones alternativas y en paralelo.
Cada etapa representa un estado del proceso de un programa de control, que se
halla activo o inactivo. Una etapa consiste en acciones que, al igual que las
transiciones, estn formuladas en los lenguajes IEC 1131-3. Las propias acciones
pueden contener de nuevo estructuras secuenciales. Esta caracterstica permite la
estructura jerrquica de un programa de control. Por lo tanto el diagrama de
funciones secuencial es una herramienta excelente para el diseo y la
estructuracin de programas de control.

Captulo 6

Elementos
comunes
de
lenguajes de programacin

los

6.1 Recursos de
un PLC

Segn IEC 1131-3, s6lo las entradas, las salidas y los elementos de memoria
pueden ser direccionados directamente por un programa de control. En este caso,
el direccionamiento directo significa que en el programa, una entrada, salida o
elemento de memoria del control est afectado inmediatamente y no
indirectamente a travs de una variable simblica definida. Naturalmente, IEC
1131-3 reconoce muchos otros recursos, p. ej. temporizadores y contadores. Sin
embargo, estos estn integrados en funciones y bloques de funcin para asegurar
el ms alto grado posible de portabilidad del programa de control entre los
diferentes sistemas.
Entradas, salidas y la memoria
Los constituyentes ms importantes de un control incluyen las entra
das, salidas y la memoria. Slo a travs de estas entradas puede un control recibir
informacin de los procesos conectados. De forma similar, solo puede influir en
ellos a travs de sus salidas o almacenar informacin para la subsecuente
continuacin del proceso.
Las denominaciones para los recursos entradas, salidas y elementos de memoria,
estn definidos por IEC 1131-3 y son obligatorios..

Fig. B6.1: Designaciones para entradas, salidas y memoria

Sin posteriores referencias, estos designan slo entradas y salidas binarias y


elementos de memoria de un slo bit, designados como flags (tambin
denominado marcas).
El estndar habla generalmente de variables representadas directamente. Estas
son variables que estn referidas directamente a las entradas, salidas y elementos
de memoria del control disponibles, relacionadas con el hardware. La asignacin
de entradas, salidas y memorias (flags), y su posicin fsica o lgica en el sistema
de control es definido por el correspondiente fabricante del control.

Siempre que el control lo soporte, pueden direccionarse recursos que excedan de


un bit. IIEC 1311-3 emplea otra letra para describirlos, que sigue a la abreviacin I,
Q y M y, por ejemplo, designa bytes y words.
IEC 1131-3 designa los tipos de datos mostrados en la fig. B6.2 en relacin con las
entradas, salidas y flags.

Fig. B6.2: Tipos de datos

Los tamaos de 1 bit, tal como describe el tipo de datos BOOL (booleana)
solamente pueden asumir los valores O 1. Consecuentemente, el margen de
valores para un dato del tipo BOOL consiste en dos valores "0" y "1".
A diferencia de esto, hay que destacar que en el caso de los tipos de datos de
secuencia de bits, que consisten en ms de un bit, no hay un rango de valores
relacionado inmediatamente. Todos los tipos de datos de secuencias de bits, tales
como p. ej. BYTE y WORD son meramen
te una combinacin de varios bits. Cada uno de estos bits tiene el valor O 1, pero
su combinacin no tiene su propio valor.
Los mtodos de designacin obligatorios para entradas, salidas y flags de
diferentes longitudes de bits estn representados en la fig. B6.3.

Fig. B6.3 Designacin de entradas, salidas y memorias

Un bit individual de una entrada, salida o flag tambin puede ser direccionado sin la
abreviacin adicional X para el tipo de dato.
Como sea que los controles siempre tienen un nmero relativamente grande de
entradas, salidas y flags disponibles, estos deben ser especialmente identificados a
efectos de diferenciacin. Para ello se utiliza la numeracin indicada por IEC 11313, como en el siguiente ejemplo:

Ejemplo
IEC 1131-3 no especifica el margen de nmeros que se permite para esta
numeracin ni si deben empezar por 0 por 1. Esto lo especifica el fabricante del
control.
Tambin deben utilizarse una cantidad jerrquica de entradas, salidas y flags, si el
control utilizado ha sido adecuadamente configurado.
Se utiliza un punto para separar los niveles individuales de la jerarqua. El nmero
de niveles de jerarqua no ha sido definido.
En el caso de numeracin jerrquica, la posicin ms alta en el nmero de la
izquierda debe ser codificado, los nmeros que siguen a la derecha representan
consecutivamente las posiciones ms bajas.
Ejemplo I3.8.5
La entrada especificada 13.8.5 puede por lo tanto representar:

Fig. B6.4: Estructura de las designaciones jerrquicas

IEC 1131-4 no hace ningn comentario en relacin con la asignacin de bits


individuales en un BYTE o WORD. Los fabricantes de los controles a menudo
eligen mtodos de designacin jerrquica para asignar bits individuales como
partes de words. As, F6.2 podra representar, por ejemplo, el bit nmero 2 de la
flag word nmero 6. Sin embargo, esto no tiene que ser necesariamente as, ya
que el flag bit F6.2 y la flag word FWS no necesariamente tienen que estar
conectadas de alguna forma. Adems, no se ha hecho ninguna definicin sobre si
la numeracin de los bits individuales en una word deben empezar por la derecha o
por la izquierda (hasta ahora, el bit nmero O en el extremo derecho ha sido el ms
frecuentemente utilizado)
Variables directamente direccionadas.
Si los recursos en un programa de control deben ser direccionados directamente, a
la designacin del recurso debe anteponerse el recurso %.
Ejemplos de variables directamente direccionables:

El uso de variables directamente direccionadas solamente es permisible en


programas, configuraciones y recursos.
Las unidades de organizacin de programas Funcin y Bloque de Funcin deben
operar exclusivamente con variables simblicas, para mantener el programa lo ms
independiente posible del control y, con ello, lo ms ampliamente utilizable.

6.2Variables y
tipos de datos

La utilizacin de variables representadas exclusiva y directamente (recursos,


entradas, salidas y memoria) no es suficiente para crear programas de control.
Frecuentemente, se requieren datos, que contienen informacin especfica,
tambin de una naturaleza ms compleja. Estos datos pueden ser especificados
directamente, es decir, datos de tiempo o valores de recuento, o accesibles slo a
travs de variables -es decir, a travs de una representacin simblica Las
definiciones ms importantes para tratar con datos o variables se indica abajo.

Direccionamiento simblico
Un identificador simblico siempre consiste en una letra mayscula o minscula,
dgitos y un guin de subrayado. Un identificador debe empezar siempre con una
letra o un guin de subrayado. El guin de subrayado puede utilizarse para hacer
ms leble un identificador. Sin embargo, es un carcter significativo. Por ello, los
dos identificadores Marcha_motor y Marchamotor son diferentes. No se permiten
varios guiones de subrayado. Si el control permite letras maysculas y minsculas,
su utilizacin indistinta no debe tener significacin alguna. Los dos identificadores
MARCHAMOTOR y Marchamotor se interpretan idnticamente y designan el
mismo objeto.

Adems, los identificadores simblicos no deben ser idnticos que las palabras
clave. Como regla, las palabras clave son palabras reservadas para tareas
especficas.
Representacin de datos
En un programa de control, debe ser posible especificar valores de tiempo, de
recuento, etc.
Consecuentemente, IEC 1131-3 ha
representacin de los datos a especificar

Valores de recuento
Valores de tiempo
Cadenas

establecido

las

definiciones

para

la

Tabla B6.1: Representacin numrica de datos numricos

IEC 1131-3 prev diferentes tipos de datos de tiempo:


Duracin, es decir, para medicin de resultados
Fecha
Hora del da, o.ej. para sincronizacin desde el inicio o el final de un evento
(tambin juntamente con la fecha)

Tabla B6.2: Representacin de tiempo, fecha y hora

La especificacin de la duracin de un tiempo consiste en una parte introductoria,


la palabra clave T# o t#, y una secuencia de secciones relacionadas con el tiempo es decir, das, horas, minutos, segundos y milisegundos.

Abreviaciones para datos de tiempo:

Tambin pueden utilizarse maysculas en lugar de minsculas y guiones de


subrayado para mejorar la lectura del dato.
Tambin IEC 1131-3 ha especificado un formato fijo para la indicacin de una
fecha, hora del da o una combinacin de ambos. Cada especificacin empieza con
una palabra clave; la informacin real se representa como se muestra en la tabla
86.2.
Otro mtodo importante de representacin de lechas es el uso de una secuencia
de caracteres tambin conocida como cadena, que puede ser requerida para el
intercambio de informacin, es decir, entre diferentes controles, con otros
componentes de un sistema de automatizacin o tambin para la programacin de
textos para visualizacin en el control y en dispositivos de visualizacin.
Una cadena consiste en ninguno o varios caracteres, que empiezan y terminan con
una coma volada.

Ejemplo

Tabla B6.3: Representacin de cadenas

Tipos de datos
IEC 1131-3 define un gran nmero de tipos de datos para diferentes tareas. Uno de
estos tipos de datos, BOOL, ya ha sido mencionado. Una variable del tipo BOOL
asume el valor 0 bien el valor 1.

Tabla B6.4: Un nmero de tipos de datos elementales

Otros dos importantes tipos de datos, denominados INT e UINT definen nmeros
enteros. Las variables del tipo de datos INT (integer/entero) permiten valores
numricos de -32 768 hasta +32 767. El margen de valores del tipo de dato INT
cubre tanto valores negativos como positivos. Las variables del tipo UNIT
(unsigned integer/entero sin signo) slo permiten valores positivos. El margen de
valores para las UINT va desde O a 65 535. SINT (short integer/entero corto) y
DINT (double integer/entero doble) son tipos de datos adicionales que definen
nmeros enteros. Sin embargo, estos tienen un margen de valores inferior o
superior que el tipo de datos INT. El tipo de datos REAL contiene nmeros en
coma flotante. Estos son nmeros que pueden contener lugares tras la coma, tales
como el 3,24 -1,5. El tipo de datos TIME se utiliza para especificar el tiempo, y
puede contener una duracin de tiempo como por ejemplo: 2 minutos y 30
segundos.

Aparte de estos tipos de datos predefinidos elementales, el usuario tiene la


posibilidad de definir sus propios tipos de datos. Esto es til en casos en donde la
definicin del problema va ms all del mbito de la pura tecnologa de control.
Los tipos de datos derivados se declaran dentro de la construccin TYPE. .
.END_TYPE. La declaracin completa se indica abajo para la enumeracin del tipo
Color en la tabla B6.5:

El significado de los tipos de datos individuales en la tabla B6.5 se explica


brevemente abajo:
Un dato del tipo Color solamente puede asumir uno de los valores ROJO, VERDE,
AMARILLO o NEGRO.
Un dato del tipo Margen_referencia slo puede asumir valores entre 80 y 110,
incluyen los lmites inferior y superior 80 110.
Un dato del tipo Posicion, representa una lista con 10 entradas. Cada entrada tiene
el valor de un nmero REAL. Con este ndice pueden indexarse las entradas
individuales.
Un elemento del tipo de datos Coordenadas contiene dos nmeros REAL, a los
que puede accederse a travs de sus nombres X e Y.
No todos los controles necesitan reconocer todos estos tipos de datos. Cada
fabricante dispone un juego de tipos de datos, que pueden utili
zarse en el correspondiente control.

Declaracin de variables
Con el uso de datos, debe definirse claramente el derecho de acceso a estos
datos. Con este fin, IEC 1131-3 utiliza una declaracin de variables.
Para comprender la funcin de una declaracin de variables, es necesario
establecer antes que el programa del control est construido en unidades de
organizacin individuales.
Estas unidades son:

Configuracin
Recurso
Programas
Bloques de funcin
Funciones

Todas las variables tienen una posicin especfica. En el caso de lenguajes de


programacin en forma textual (IL y ST), las declaraciones de variables son
aproximadamente las mismas que las utilizadas en el lenguaje Pascal. Para las
formas grficas de representacin sera factible una forma tabular con el contenido
equivalente. Sin embargo, esto no est especificado en IEC 1131-3.
Todas las declaraciones de variables (fig. B6.5) siempre empiezan con una palabra
clave, que designa la posicin de la variable en la unidad de organizacin del
control, y termina con la palabra clave END_VAR.

Fig. B6.5: Declaracin de variables

Las variables y su asignacin a un tipo de datos, se introduce entre estas palabras


clave en las que se especifica un identificador o identificadores simblicos de las
variables, el tipo de dato se indica tras dos puntos y la declaracin se cierra con un
punto y coma. Si se declaran varias variables, se repiten correspondientemente.
Normalmente, cada declaracin se escribe en una lnea separada en este caso.

IEC 1131-3 distingue entre seis tipos diferentes de acceso a las variables. Cada
tipo tiene una palabra clave, que introduce la declaracin de la variable.

Tabla B6.6: Palabras clave para la declaracin de variables

Las variables de entrada son declaradas con las palabras clave VAR_INPUT y
END_VAR.

Fig. B6.6: Declaracin de una variable de entrada

Las variables especificadas de esta forma representan variables de entrada,


alimentadas externamente a una unidad de organizacin, p. ej, un bloque de
funcin. Estas slo pueden leerse dentro de la unidad de organizacin.
No es posible hacer modificaciones.
Anlogamente a esto, las variables de salida se definen con las pala
bras clave VAR_OUTPUT y END_VAR

Fig. B6.7 Declaracin de una variable de salida

El dato que calcula una unidad de organizacin y devuelve de nuevo el exterior se


declara arriba.
Todos los resultados de una unidad de organizacin deben ser transferidos ms
all de la unidad de organizacin a travs de variables de claradas de esta forma.
Dentro de las unidades de organizacin, estas pueden ser ledas y escritas.
Externamente, slo se permite el acceso de lectura.

En los casos en que se permitan variables conteniendo valores de entrada y salida,


estos deben crearse con las palabras clave VAR_IN_OUT y END_VAR.

Fig. B6.8: Declaracin de una variable de entrada/salida

Esta forma representa una tercera opcin y permite la declaracin de variables,


que pueden ser ledas y utilizadas dentro de una unidad de organizacin.
En el caso de una variable declarada como VAR_IN_OUT, se asume que ambos
valores sern suministrados hacia y desde la unidad de organizacin.
A menudo, se requieren variables para resultados intermedios, que deben
permanecer desconocidos externamente. La declaracin de tales variables,
denominadas locales, empieza con VAR y termina con END_VAR.

Fig. B6.9: Declaracin de una variable local

Las variables especificadas aqu son locales para una unidad de organizacin y
solamente pueden ser utilizadas en ella. Son desconocidas para otras unidades
organizacionales y por lo tanto inaccesibles.
Una aplicacin tpica son las posiciones de memoria para resultados intermedios,
que no son de inters en otras zonas del programa. En el caso de estas variables,
hay que observar que tambin pueden existir varias veces en diferentes unidades
de organizacin. De esta forma, es posible, por ejemplo, que varios bloques de
funcin declaren la variable local Z. Estas variables locales son completamente
independientes y difieren unas de otras.
Una variable tambin puede ser declarada globalmente, en cuyo caso puede ser
accedida universalmente. La necesaria declaracin se realiza de una forma similar,
utilizando las palabras clave VAR_GLOBAL y VAR_EXTERNAL.

Fig. B6.10: Declaracin de una variable global

As es como se declaran todos los datos globales para un programa de control. Los
datos globales son accesibles universalmente. Esta decla
racin s
lo puede hallarse en unidades de organizacin, configuracin y recurso.

Fig. B6.11: Declaracin de acceso a una variable global

Para facilitar el acceso de datos global a una unidad de organizacin, esta


declaracin debe ser registrada en la unidad de organizacin.
Sin la declaracin mostrada arriba, el acceso a los datos globales no sera
permisible.
Esta estricta unidad de declaracin para todas las variables define nicamente qu
variables son reconocidas por una unidad de organizacin y como pueden ser
usadas. Un bloque de funcin puede, por ejemplo, leer pero no cambiar sus
variables de salida.
Se utiliza la palabra clave AT para asignar variables a las entradas y salidas del
control.

Las declaraciones hechas de esta forma son el mejor medio para definir el
significado de todas las entradas y salidas del control. Si se produce un cambio en
el sistema y su conexin al controlador, slo debern ser cambiadas estas
declaraciones. Cualquier utilizacin p. ej. del Pulsador paro, o de la Temperatura
en un programa existente, no se ve afectada por el cambio.

Sin embargo, segn IEC 1131-3 siempre es posible utilizar variables direccionadas
directamente sin tener que asignaras a un identificador simblico. La declaracin
en este caso es como sigue:
VAR
AT %14.2
AT %MW1
END_VAR

:BOOL;
:WORD;

Inicializacin
A menudo es esencial que a una variable se le asigne un valor inicial. Este valor
puede cambiar varias veces durante el procesamiento del programa, incluso
aunque haya estado definida al principio.
Los estados iniciales como estos tambin son importantes para otros datos. Tales
valores iniciales se especifican conjuntamente con la de
claracin de las variables. Una variable global de este tipo denominada p. ej.
Docena se declara para que al principio del programa asuma el valor 12.
VAR_GLOBAL
Docena :INT := 12;
END_VAR

Como se ha mostrado en este ejemplo, el valor de inicializacin se inserta siempre


entre el tipo de dato - en este caso INT - y el punto y coma de cierre. La
especificacin del valor de inicializacin siempre requiere el signo :=.
De esta forma, a cada variable se le puede especificar un valor inicial.
Fundamentalmente, las variables siempre tienen un valor inicial defini
do al inicio del programa. Esto lo facilita la caracterstica definida en IEC 1131-3, en
donde los tipos de datos tienen un valor preestableci
do. Cada variable es preasignada al valor inicial correspondiente al tipo de dato - a
no ser que se especifique lo contrario en el programa. Una lista de los valores
iniciales de una seleccin de tipos de datos elemen
tales puede verse en la tabla B6.7.

Tabla B6.7: valores iniciales preestablecidos

6.3Programa

El programa para un control est dividido en unidades de organizacin individuales,


que son como sigue en el nivel de programacin:
Programas
Bloques de funcin
Funciones
Estas unidades de organizacin de programa estn disponibles en to
dos los lenguajes de programacin
IEC 1131-3 define una amplia gama de funciones estandarizadas y bloques de
funcin para tareas de control tpicas. Aparte de estas funciones especificadas y
bloques de funcin, IEC 1131-3 permite la definicin de sus propias funciones y
bloques de funcin. Los fabricantes o los usuarios pueden as crear mdulos de
software hechos a su medida para determinadas aplicaciones.
Funciones
Las funciones son mdulos de software que, cuando se les invoca, proporcionan
exactamente un resultado (elemento de datos). Esta es la razn por la que en un
lenguaje textual, la invocacin de una funcin puede ser utilizada como un
operando en una expresin.
Las funciones no pueden contener informacin de estado. Esto significa que la
invocacin de una funcin con los mismos argumentos (parmetros de entrada)
deben proporcionar el mismo resultado.
La suma de valores enteros INT o la funcin lgica OR con ejemplos de funciones.
Las funciones y su invocacin puede representarse grficamente o en forma de
texto.

Fig. B6.14: Representacin grfica de una funcin

Grficamente, una funcin se representa en forma de rectngulo. Todos los


parmetros de entrada se relacionan en el lado izquierdo, mientras que los
parmetros de salida se muestran en el lado derecho. En el interior del rectngulo
se indica el nombre de la funcin. Los parmetros formales de entrada pueden
especificarse a lo largo de los lados dentro del rectngulo. Esto es necesario con
algunos grupos de funciones, tales como las funciones de desplazamientos de bits,
por ejemplo (fig. BS.1 5b). Para funciones con entradas idnticas, como es el caso
de la funcin de suma ADD (fig. B6.15a) no se requieren nombres de los
parmetros formales.

Fig. B6.15: uso de parmetros formales con funciones

Las entradas o salidas booleanas de una funcin pueden ser negadas, es decir,
invertidas especificando un crculo directamente fuera del rectngulo (fig. B6.16).

Fig. B6.16: Representacin de negaciones Booleanas

Si se invoca una funcin, deben conectarse sus entradas y la salida de la funcin.


La funcin suma ADD ilustrada en la fig. B6.1 6 procesa valores enteros INT, por lo
cual, las variables direccionadas directamente tales como %QW4 etc. estn
declaradas como variables de tipo de dato INT. De la misma forma, la funcin ADD
podra aplicarse a valores del tipo SINT o REAL.
Las funciones como estas, que funcionan para entrar parmetros de tipos de datos
diferentes, se denominan en IEC 1131-3 como funcio
nes sobrecargadas, independientes del tipo. La Fig. B6.17 ilustra las caractersticas
de una funcin sobrecargada utilizando el ejemplo de una funcin ADD.

Fig. B6.17: Funcin sobrecargada de tipo independiente

Si una funcin sobrecargada est limitada a un determinado tipo de datos por el


control p. ej., el tipo de datos INT como se muestra en la fig B6.18 - esto se
conoce como una funcin con tipo. Las funciones con tipo son reconocibles por el
nombre de su funcin. El tipo se indica aadiendo un guin de subrayado, seguido
del tipo deseado.

Fig. B6.18: Una funcin con tipo

Funciones estndar
Las funciones estndar ms importantes para la realizacin de tareas bsicas de
tecnologa de control se relacionan a continuacin.
Dado que una gran variedad de funciones estndar pueden funcionar utilizando
parmetros de entrada de diferentes tipos de datos, los tipos de datos se han
combinado en grupos. A cada grupo se le ha dado un tipo de datos genrico. Los
tipos de datos genricos ms importantes se muestran en la tabla B6.8.

Tabla B6.8: Tipos de datos genricos

Tabla B6.9: Funciones booleanas Bit-a-bit

Tabla B6.10: Funciones de desplazamiento de bits

Tabla B6.11: Funciones de comparacin

Tabla B6.12: Funciones para conversin de tipo

Tabla B6.13: Funciones aritmticas

Bloques de funcin
Los bloques de funcin son mdulos de software que proporcionan uno o varios
parmetros resultantes.
Una caracterstica importante es la posibilidad de reutilizacin de los bloques de
funcin. Si debe utilizarse un bloque de control en un programa, debe crearse una
copia. Esto se realiza a travs de la asignacin de un nombre para cada caso.
Junto con este identificador hay una estructura de datos, que almacena los estados
de esa copia del bloque de funcin (valores de los parmetros de salida y variables
internas). La informacin del estado de la copia del bloque de funcin permanece
inalterable entre un procesamiento y el siguiente.
Esto puede demostrarse utilizando el ejemplo del bloque de funcin estndar para
operaciones de recuento. El valor actual del contador permanece de una operacin
de recuento a la siguiente y puede as ser interrogada en cualquier momento. Este
tipo de comportamiento no puede realizarse a travs del recurso lenguaje, como se
describe arriba.

Fig. B6.19: Representacin grfica de una copia de un bloque de funcin

Tambin se dispone de la representacin grfica de bloques de funcin (aparte de


la representacin en uno de los lenguajes textuales). Estos se representan por
rectngulo de la misma forma que las funciones (fig.B6.19). Los parmetros de
entrada se introducen por la izquierda y los parmetros de salida aparecen por la
derecha. El tipo de bloque de funcin se especifica dentro del rectngulo. A
continuacin se introducen los nombres de los parmetros formales junto a los
lados derecho e izquierdo dentro del rectngulo o caja. El identificador, bajo el cual
se direcciona el mdulo, se direcciona como se ha descrito para el bloque de
funcin.
Si se utiliza un bloque de funcin, se le debe dar un identificador. Si las entradas
estn asignadas - es decir, hay disponibles parmetros de transferencia actuales entonces se utilizan estos para el procesamiento. Si las entradas no estn
conectadas, entonces se accede de nuevo a los valores almacenados en
invocaciones anteriores o se utilizan los correspondientes valores iniciales.
La Fig. B6.20 muestra el uso (invocacin) del bloque de funcin estndar para un
contador.

Fig. B6.20: Uso (invocacin) del bloque de funcin CTU (contador incremental)

La copia utilizada del bloque de funcin CTU lleva el identificador Count_Pack. A


cada flanco positivo de la entrada %l1.3 el valor actual del contador se incrementa
en 1 unidad. Cuando se alcanza el valor preestablecido de 10, la salida Q del
Count_pack, y con ello la salida %Q2.5 asume una seal 1; en los dems casos se
asume una seal 0.
Tambin es posible crear varias copias de uno y del mismo bloque de funcin
dentro de un programa de control, como se muestra en la fig. B6.21.

Fig. 86.21: Uso de varias copias de un bloque de funcin

Bloques de funcin estndar


La Tabla B6.14 relaciona los bloques de funcin ms importantes estandarizados
por IEC 1131-3.

Tabla B6.14: Bloques de funcin estndar

Funciones definidas de usuario


Aparte de las funciones especificadas, IEC 1131-3 permite la definicin de
funciones propias.
Para la declaracin grfica se aplican las siguientes reglas:
Declaracin de la funcin dentro de la construccin FUNCTION...
END_FUNCTION.
Especificacin del nombre de la funcin y los nombres de los par
metros formales y tipos de datos de entradas y salidas de la funcin
Especificacin de los nombres y tipos de datos de variables internas utilizadas en
la funcin; para ello puede utilizarse una construccin VAR... ENO_VAR. No
pueden utilizarse copias de bloques de fun
cin como variables internas, ya que estas necesitaran el almace
namiento de informacin del estado.
Programacin del cuerpo de la funcin en uno de los lenguajes LD, FBD, IL, o
ST.

A la funcin ejemplo SPEC_MUL en la fig. B6.22 se le dan dos parmetros del tipo
INT. Los valores de parmetros son multiplicados y se le aade la cifra 15. El
valor as calculado es devuelto a la funcin como resultado.

Fig. B6.22: Ejemplo de una funcin SPEZ_MUL

El uso de la funcin podra ser como el que se ha mostrado en la fig.


B6.23.

Fig. B6.23: Uso de la funcin SPEZ_MUL

BIoques de funcin definidos por el usuario


La generacin de los propios bloques de funcin por el usuario es una
caracterstica importante de IEC 1131-3.
Se aplican las siguientes reglas para una declaracin grfica:
Declaracin de bloques de funcin en una construccin FUNCTION_BLOCK...
END_FUNCTION_BLOCK.
Especificacin del nombre del bloque de funcin y de los nombres de los
parmetros formales y tipos de datos de las entradas y salidas del bloque de
funcin.
Especificacin de los nombres y tipos de datos de variables internas; puede
emplearse una construccin VAR... END_VAR.
Programacin del cuerpo de la funcin en uno de los lenguajes LD FBD, IL, o ST.
Aqu no se ha tenido en cuenta el acceso de datos ampliado, tal como las variables
globales.

Fig. B6.24: Declaracin de un bloque de funcin

El bloque de funcin ilustrado en la fig. B6.24 representa un bloque de funcin para


la eliminacin de rebotes en las seales, consistentes en dos parmetros de
entrada, es decir, una entrada booleana para la seal y una entrad de tiempo para
el ajuste del tiempo de rebotes. El parmetros de salida S_OFF suministra la seal
de salida sin rebotes.
Programas
Un programa consiste en cualquier cantidad de elementos de lenguaje y
construcciones, necesarios para conseguir el comportamiento deseado de la
mquina o proceso a travs del PLC.
Por ello, los programas estn construidos principalmente por funciones, bloques de
funcin y los elementos del diagrama de funciones secuencial.
Por ello, las caractersticas de los programas son en gran parte idnti
cos a los de los bloques de funcin. Lo nico que nos interesa en esta etapa son
las diferencias:

Las palabras clave delimitadoras para las declaraciones de progra


ma son PROGRAM... END_PROGRAM.
La utilizacin de variables directamente direccionables solamente se permite
dentro de programas.

Un ejemplo de esto se muestra en la figura B6.25.

Fig. B6.25: Ejemplo de un programa

El nombre del programa es "Luz_escalera". Tres variables booleanas lnterruptor_F,


Interruptor_A y Luz, asignadas a dos entradas y una salida del PLC, han sido
declaradas como variables internas. A esto se aade la declaracin de una copia
del bloque de funcin del tipo Pulse Timer (TP).
El programa realiza la siguiente pequea tarea:
La luz de una escalera est encendida durante tres minutos, si se acciona uno de
los dos interruptores; el de la puerta o el del apartamento.

Captulo 7

Diagrama de bloques de funcin

7.1 Elementos del


diagrama de
bloques de funcin

El diagrama de bloques de funcin es un lenguaje de programacin grfico que es


consistente, en la medida de lo posible, con la documentacin estndar IEC 617,
P.12.

Fig. B7.1: Diagrama de bloques de funcin


Los elementos del diagrama de bloques de funcin son funciones representadas
grficamente y bloques de funcin. Estas estn interconectadas por lneas de flujo
de seal, los elementos directamente enlazados formando una red de trabajo
(Network)
La Fig. B7.1 ilustra dos simples ejemplos del diagrama de bloques de funcin. En
la Fig. B7.la, la variable Manual_desc y el resultado de una comparacin 'mayor
que' estn enlazados en OR. El resultado es asignado a la variable
puerta_cerrada. La Fig. B7.lb representa el uso de un bloque de funcin. El retardo
de la seal T_arranque se pone en marcha con la entrada %l1.3 con el tiempo
preestablecido de 7 segundos. El estado del retardo de la seal T_arranque.Q, se
asigna a la salida %QP.4.

La direccin del flujo de seales es una red de izquierda a derecha. Si una unidad
de organizacin del programa consta de varias redes, estas son procesadas en
secuencia de arriba a abajo.

7.2 Evaluacin de redes

La secuencia de procesamiento dentro de una unidad de programa de


organizacin puede ser influida por el uso de elementos para control de la
ejecucin. Este grupo de elementos incluye por ejemplo los saltos condicionales e
incondicionales. En la fig. B7.2 se utiliza un salto condicional para realizar una
derivacin en el programa.

Fig. B7.2: Uso de un salto en FBD

El salto condicional, representado por una doble flecha, se ejecuta si se cumple la


condicin para el salto. Por ello, si la entrada %l1.1 y el flag %M2.5 llevan ambos
seal 1, entonces se ejecutar un salto a la red con el identificador Variante_1 y el
proceso continuar en este punto.
Si hay que ejecutar un salto a una red, la red correspondiente debe prefijarse con
un nombre simblico, el flag del salto, terminando con dos puntos El flag de salto
debe identificarse segn las reglas para los nombres simblicos.

7.2 Estructuras en bucle

Cuando se programa en el lenguaje FBD, hay que observar que dentro de las
redes no se permiten estructuras de bucle. Las estructuras de este tipo slo deben
realizarse a travs del uso adicional de una ruta de realimentacin. La Fig. B7.3b
ilustra un ejemplo de esto.

Fig. B7.3: FBD con estructuras en bucle

Por medio de la utilizacin de rutas de realimentacin, la tercera entrada de la


funcin OR asume un valor definido durante su procesamiento.

Captulo 8

Diagrama de contactos

8.1 Elementos del


diagrama de
contactos

El lenguaje de diagrama de contactos (o diagrama en escalera), al igual que del


diagrama de bloques de funcin representa un lenguaje de programacin grfico.
Los elementos disponibles en un diagrama de contactos son los contactos y las
bobinas en diferentes formas. Estas estn dispuestas en renglones (rungs) entre
las dos lneas verticales de mando a derecha e izquierda.

Fig. B8.1: Estructura bsica de un rengln

La fig. B8.1 ilustra la estructura bsica de un rengln. En este ejemplo, el estado


del flag %M1.5 est directamente asignado a la salida %Q3.5. la tabla B8.1
contiene una lista de los elementos ms importantes asignados a un diagrama de
contactos.

Tabla B8.1: Elementos del diagrama de contactos

Un contacto normalmente abierto suministra el valor 1 cuando se activa el


accionamiento del correspondiente interruptor. Un contacto normalmente cerrado
reacciona correspondientemente con el valor 1, cuando no se activa el
correspondiente interruptor o pulsador.
Hay dos seales de flanco, que suministran seal 1 para la transicin de 0 a 1
(flanco positivo) y de 1 a 0 (flanco negativo).
Con una bobina normal, el resultado (resultado de la operacin lgica entre los
contactos) es copiado a la variable especfica; en el caso de una bobina negada,
se transfiere el inverso (negacin) del resultado.
La bobina de activacin remanente asume el valor 1, si el resultado es 1, y
permanece inalterable aunque el resultado pase a ser 0. De forma similar, la
bobina de desactivacin remanente asume el valor 0 si el resultado es 1. Se
mantiene el estado 0 de la bobina.
Los flancos de las bobinas se activan si el resultado cambia de 0 a 1 (flanco
positivo) o de 1 a 0 (flanco negativo).
Las funciones bsicas AND y OR pueden ser realizadas por medio de una
configuracin correspondiente de contactos en el rengln actual.

Fig. B8.2: Conexiones bsicas lgicas en diagrama de contactos

La funcin AND es representada por medio de la conexin en serie de dos


contactos (fig. B8.2a). La salida %Q2.1 slo se activa si ambas entradas %l1.3 y el
flag %M3.2 se hallan activados. En todos los dems casos, la salida %Q2.1 es
desactivada.

La funcin OR se obtiene a travs de la conexin en paralelo de contactos (fig.


B8.2b). La salida %Q2.3 asume el valor 1, si la entrada %I1.5 o el flag %F3.3
asumen el valor 1, o si ambas condiciones se cumplen simultneamente.

8.2 Funciones y
bloques de funcin

Aparte de los elementos de contacto y bobina, LD proporciona el uso ilimitado de


funciones y bloques de funcin siempre que esta funcin est soportada por el
control utilizado.
Un requisito previo para la incorporacin de las denominadas unidades de
organizacin, es la disponibilidad de por lo menos una entrada booleana y una
salida booleana del bloque en cuestin. Si no es este el caso, la entrada booleana
con el parmetro formal EN (enable/habilitacin) se aada a las correspondientes
funciones o mdulos de funcin as como una salida booleana ENO (enable Ok
/habilitacin correcta). Las entradas/salidas booleanas son necesarias para permitir
que la potencia fluya a travs del bloque.

Fig. B8.3: Funciones y bloques de funcin en diagrama de contactos

La adicin mostrada en la Fig. B8.3a solamente se realiza si se aplica una seal 1


a la entrada EN. Si es este el caso, las variables Cantidad_1 y Cantidad_2 se
suman y el resultado de estas variables se asigna a la variable Nivel_llenado. Al
mismo tiempo, el valor de la salida ENO indica si la adicin ha sido ejecutada,
activada y correcta (ENO=1). Si el bloque no ha sido procesado correctamente, la
salida ENO asume el valor 0.

Los mdulos de funcin, tales como por ejemplo el retardo de seal mostrado en la
fig. B8.3 pueden incorporarse al diagrama de contactos sin una entrada EN
adicional ni una salida ENO. El bloque de funcin es conectado con los elementos
del rengln actual en la forma usual con la entrada booleana IN y la salida
booleana Q. Si la entrada %l1 .3 en la fig. B8.3b asume el valor 1, la copia del
bloque de funcin T_Marcha es procesada con la duracin de tiempo
preestablecida de 7 segundos. El valor de la salida Q de T_Marcha se asigna a la
salida %Q2.4.
De forma similar al lenguaje de programacin grfico FBD, el flujo de potencia, y
como tal el procesamiento de una unidad de organizacin del programa, es de
izquierda a derecha y de arriba a abajo. De forma similar la secuencia de actuales
procesamiento tambin puede cambiar en LD utilizando elemento para el control
de la ejecucin.

8.3 Evaluacin
de los renglones

Fig. B8.4: Salto condicional en LD

Si la condicin del salto, en este caso la operacin AND de la entrada %l1.1 y el


flag %M2.5 se cumple, se ejecuta un salto al rengln actual con el identificador
Variante_1. El procesamiento continua entonces a partir de este rengln.

Captulo 9

Lista de instrucciones

9.1 Lista de
instrucciones

La lista de instrucciones es un lenguaje de programacin textual, tipo ensamblador


(assembler). Sus instrucciones son ms cercanas a las rdenes procesadas en un
PLC.
Un programa de control formulado en lenguaje de Lista de Instrucciones consiste
en una serie de instrucciones, en las que cada instruccin se empieza en una
nueva lnea.
En la formulacin de una instruccin, se especifica un formato fijo. Una instruccin
(fig. B9.1) empieza con un operador con modificador opcional y, si es necesario
para la operacin en cuestin, uno o varios operandos, separados por comas. Las
instrucciones pueden ser precedidas por una etiqueta seguida de dos puntos. La
etiqueta acta como una direccin de salto. Las etiquetas son identificadas de la
misma forma que los smbolos. Si se utiliza un comentario, este debe representar
el ltimo elemento de la lnea. Un comentario se inicia con la cadena (*, y termina
con la cadena *).

Fig. B9.1: Estructura de una instruccin

El valor de la entrada %l1 .2 se carga en el acumulador y se enlaza en AND con el


valor del flag %M3.7. El resultado es asignado a la salida %Q2.4.

Operadores

Tabla B9.1: Operadores en lista de instrucciones

IEC 1131-3 define los operadores para la lista de instrucciones relacionadas en la


tabla BS.1
Los operadores no estn enlazados con ninguna prioridad. Consecuentemente, las
operaciones se procesan en la secuencia en la cual se introducen en la lista de
instrucciones. Si se desea una secuencia diferente, esta puede conseguirse con el
uso de parntesis - los denominados modificadores. La Fig. B9.2 explica el uso de
algunos modificadores.

Fig. B9.2: Uso y significado de los modificadores

9.3 Funciones y
bloques de funcin

En lista de instrucciones, tambin el uso de funciones y bloques de funcin es


ilimitado. Las funciones para tareas tpicas de tecnologa de control, tales como la
lgica booleana u operaciones aritmticas (vase fig. B9.3.a) se realizan
directamente a travs de los operandos especificados en la tabla BQ. 1.

Fig. B9.3: Invocacin de funciones

Las funciones ms complejas tales como las funciones de desplaza


miento de bits se invocan con el nombre de la funcin situado en el campo del
operador. El resultado actual (en el acumulador) debe ser utilizado como el primer
argumento de la funcin. Si se requieren otros argumentos, estos deben
especificarse en el campo de operando separados por comas. El valor devuelto por
la funcin, representa el nuevo resultado actual.
Los bloques de funcin pueden ser invocados segn diferentes mecanismos (fig.
B9.4).

Fig. B9.4: Invocacin de bloques de funcin

Un requisito es que la variable T_arranque sea declarada como una seal de


retardo. La invocacin de un bloque de funcin puede establecerse claramente a
travs del operador CAL con una lista de parmetros de entrada asociados.
La variable T_arranque de la Fig. B9.4a, declarada en todas partes como una seal
de retardo, representa por ello un bloque del tipo seal de retardo. Siendo un
argumento actual, este se asigna al valor de la entrada %l1.3 para la entrada de
activacin IN y una duracin de tiempo de t#7s para la entrada PT. Como
resultado, el bloque de funcin T_arranque se invoca siguiendo la actualizacin de
parmetros.
La transferencia de parmetros para un bloque de funcin tambin puede
realizarse por separado a partir de la invocacin del bloque de funcin actual.
Como se muestra en la fig. B9.4b, los valores del parmetro actuales se cargan a
travs de operaciones elementales IL y se asignan a las entradas del bloque de
funcin Solamente despus de esto es invoca
do el bloque de funcin T_arranque y procesado a travs de una instruccin CAL.
La ventaja de este mtodo reside en el hecho que el tiempo de actualizacin de los
argumentos y la invocacin real del mdulo de funcin pueden hacerse por
separado.

Captulo 10

Texto estructurado

10.1 Expresiones

El lenguaje Texto Estructurado (ST = Structured Text) es un lenguaje de alto nivel


tipo Pascal, que incorpora los conceptos fundamentales de un lenguaje moderno
de alto nivel, en particular los principios ms importantes para la estructuracin de
datos e instrucciones. La estructuracin de datos representa un constituyente
comn de los cinco lenguajes de programacin; la estructuracin de instrucciones,
sin embargo, es tan slo una caracterstica importante del ST.
Una expresin es un constituyente elemental para la formulacin de instrucciones.
Una expresin consiste en operadores y operandos. Los operandos que aparecen
con ms frecuencia son datos, variables o invocaciones a funciones. Sin embargo,
un operando tambin puede ser una expresin en s mismo. La evaluacin de una
expresin suministra un valor que corresponde a uno de los tipos de datos
estndar o a un dato de un tipo definido por el usuario. Por ejemplo, si X es un
nmero REAL, entonces la expresin SIN(X) proporciona tambin un nmero del
tipo REAL. La tabla B1O.1 contiene un resumen de los operadores.

Tabla B10.1: Operadores del lenguaje Texto Estructurado

Lo que sigue son ejemplos de expresiones:


SIN(X)
4*COS(Y)
A<=B
A+B+C
La evaluacin de una expresin consiste en aplicar los operadores a OS
operandos, en donde los operadores se evalan en una secuencia definida por su
prioridad en la tabla B10.1. Un operador con una prioridad mayor es evaluado
antes que un operador con una prioridad inferior.

A, B, y C son variables del tipo de dato INT; A sume el valor 1, B el valor 2 y C el


valor 3. La evaluacin de la expresin A+B*C proporciona el valor 7. Si se desea
una secuencia diferente que la especificada por la prioridad, ello es posible
utilizando los parntesis. Utilizando los valores numricos descritos antes, la
expresin (A+B)*C proporciona el valor 9.
Si un operador tiene dos operandos, el operando de ms a la izquierda debe
evaluarse primero. La expresin SIN(X)*COS(Y) se evala por lo tanto en la
secuencia: clculo de la expresin SIN(X), clculo de la expresin COS(Y), seguida
por el clculo del producto SIN(X) y COS(Y).
Como se ha demostrado en el prrafo anterior, una funcin slo puede ser
invocada dentro de una expresin. La invocacin es formulada especificando el
nombre de la funcin y la lista de argumentos entre parntesis.

Ejemplo

10.2 Instrucciones

La tabla B10.2 contiene una lista de posibles instrucciones en el lenguaje de Texto


Estructurado. Una instruccin puede sobrepasar la longitud de una lnea, con lo
que el salto de lnea ser tratado de la misma forma que un espacio en blanco.

Tabla B10.2: Instrucciones del lenguaje Texto Estructurado

Asignaciones
Una asignacin es la forma ms simple de una instruccin. Esta reemplaza el valor
actual de la variable a la izquierda de := con el valor de la expresin a la derecha
de :=. Cada asignacin termina con un punto y coma. Una posible asignacin
(tabla B1O.2) es A := B en donde el valor de la variable B es asignado a la variable
A. Como resultado de la asignacin CV:=CV + 1, la variable CV es incrementada
en 1 como resultado de la expresin CV+1.
Bloques de funcin y funciones
En lEC 1131-3 se establece un mecanismo definido para la invocacin y tambin
para la salida anticipada de una funcin o de un bloque de funcin.
Como se ha descrito, una funcin es invocada slo como parte de la evaluacin de
una expresin. La propia invocacin consiste en la especificacin del nombre de la
funcin, seguida por los parmetros de entrada entre parntesis.
La invocacin de un bloque de funcin es anloga a la especificacin del nombre
de instancia (copia) del bloque de funcin. Esta es seguida de una lista entre
parntesis consistente en la asignacin de valores a los parmetros de entrada. La
especificacin del nombre del parmetro de entrada es obligatorio, los parmetros
individuales de entrada pueden indicarse en cualquier secuencia.

Adems, no es esencial para todos los parmetros de entrada que se les asigne un
valor en cada invocacin. Si a un determinado parmetro de entrada no se le
asigna un valor en la invocacin, se aplica el valor del parmetro previamente
asignado o el valor inicial.
La tabla B1O.2 contiene un ejemplo de una invocacin a un bloque de funcin.
Debe sonar un zumbador si una broca est defectuosa. El estado del zumbador se
almacena por medio de un bloque de funcin RS.
La instruccin RETURN sirve para permitir una salida anticipada de una funcin o
bloque de funcin. Lo que sigue es un ejemplo de la utilizacin de la instruccin
RETURN:

IF X< 0 THEN
Valor := -1;
Error := 1;
RETURN;
END_IF
Y := LOG(X);
Si el valor de X es menor de 0, el bloque conteniendo la secuencia de instrucciones
termina inmediatamente.
10.3 Instrucciones de
seleccin

Las instrucciones de seleccin - conocidas tambin como instrucciones de


derivacin del programa - estn disponibles en la forma de instrucciones IF y
CASE. Pueden seleccionarse diferentes grupos de instrucciones y ejecutarse en
relacin con una condicin definida. La unidad del programa de organizacin
puede ramificarse de diferentes formas.
Instruccin IF
La forma general de una instruccin IF es:
IF expresin booleana1 THEN instruccin(es)1;
[ELSIF expresin booleana2 THEN instruccin(es)2;]
[ELSE instruccion(es);]
END_lF;

Las partes entre parntesis rectangulares son opcionales, es decir, pueden


producirse en una instruccin IF, pero no necesariamente.
La instruccin IF ms sencilla consiste en una construccin IF-THEN (derivacin
simple).
Esto se demuestra por el siguiente ejemplo
IF X <0 THENX :=-X;
END_IF;
Y := SORT(X);
Si la condicin que sigue a la palabra clave IF es cierta, se ejecutan las
instrucciones que siguen a la palabra clave THEN. Si la condicin no se cumple,
las instrucciones en la parte THEN no se ejecutan.
En el caso de un ejemplo concreto esto significa: Si la variable X es menor de 0, es
decir, es negativa, se le aade un signo menos, con lo que representa un valor
positivo; si no es este el caso, se ejecuta inmediatamente la funcin raz cuadrada.
Una derivacin simple puede conseguirse por medio de una construccin IF-THENELSE
Error := 0;
IF Pieza_Ok THEN Numero := Numero + 1;
ELSE Error:=- 1,
END_IF
Las instrucciones que siguen a la palabra clave THEN se ejecutan, si la condicin
que sigue a la palabra clave IF se cumple; si la condicin no se cumple, se
ejecutan las instrucciones formuladas tras la palabra clave ELSE.
El ejemplo dado, trata con piezas de produccin. Si la pieza es buena (Pieza_ok =
1) se ejecuta la parte THEN, en este caso, la cantidad (Numero) de piezas
producidas correctamente se incrementa en 1; de lo contrario se activa un bit para
la deteccin del error.

Si debe programarse una derivacin para ms de dos ramificaciones, puede


emplearse una construccin IF-THEN-ELSIF. La tabla B1Q.2 ilustra esto por medio
de un ejemplo, en donde se establecen las soluciones de la ecuacin de segundo
grado AX2 + BX + C = 0. Si el discriminante - en este caso la variable B - es menor
de O, se ejecuta la subsiguiente parte THEN: no hay solucin, es decir, Num_sol :=
0.
Si no se cumple la primera condicin, es decir, D es mayor o igual a 0, ser
evaluada la condicin que sigue a ELSIF: Si se cumple, es decir, D igual a 0, se
ejecutarn las instrucciones que siguen a la palabra clave THEN: La nica solucin
existente es especificada como X1.
De lo contrario (siendo D mayor de 0), se ejecutan las lneas que si
guen a la instruccin ELSE: Se especifican las dos soluciones X1 y X2.
Instruccin CASE
Si debe hacerse una seleccin entre varios grupos de instrucciones posibles,
puede utilizarse la instruccin CASE.
La forma estndar de una seleccin mltiple con CASE es:
CASE Selector OF
Valor1: instruccion(es)1;
Valor2: instruccion(es)2;
...
ValorN: instruccion(es)n;
[ELSE
instruccion(es); 1]
END_CASE:
La instruccin CASE consiste en un selector, que suministra una variable del tipo
INT durante su ejecucin y una lista de grupos de instrucciones. A cada grupo se le
asigna un valor (etiqueta). Los valores estn separados por comas si un grupo de
instrucciones depende de varios valores. Los valores tambin pueden representar
variables del tipo INT.

Con la evaluacin de la instruccin CASE, primero se determina el valor del


selector, seguido por la ejecucin del primer grupo de instrucciones a los cuales se
aplica el valor del selector calculado. Sin el valor del selector no est contenido en
ninguno de los grupos de instrucciones, se ejecutan las instrucciones que siguen a
la palabra clave ELSE. Si no hay ELSE, no se ejecuta ninguna instruccin.
En el ejemplo dado en la tabla B10.2, el texto para una instruccin se selecciona
en relacin con el valor medido disponible. Los valores para la seleccin de la
instruccin son el tipo INT.

A menudo es necesario ejecutar instrucciones repetidas veces (bucles de


programa). Si el nmero de repeticiones ha sido previamente definido, se utiliza el
bucle FOR, de lo contrario se utiliza en bucle REPEAT o
el WHILE.
Bucle FOR
La representacin estndar para el bucle FOR es:
FOR Variable:= Expresin TO expresion [expresion BY] DO instruccion(es);
END_FOR;
La denominada variable de control se establece a un valor inicial especfico y se
incrementa a cada bucle que se ejecuta hasta que la variable de control alcanza el
valor de la variable final. Por lo tanto, un simple bucle FOR se ejecuta de acuerdo
con el siguiente mecanismo:
FOR variable de recuento:= valor inicial TO valor final DO
Instruccion (es);
END_FOR
Si no se especifican incrementos, como se ha formulado arriba, la variable de
control aumenta automticamente en 1 a cada bucle completo. Si se necesita un
incremento diferente, esto puede especificarse por la palabra clave BY, seguida
por el valor deseado. Sin embargo, la variable de control no puede ser cambiada
dentro del bucle - es decir, las instrucciones se ejecutan repetidamente. Adems, la
variable de control, el valor inicial y el valor final deben ser expresiones del mismo
tipo de dato entero (INT, SINT, DINT>.

10.4 Instrucciones
de iteracin

La prueba para la terminacin de la condicin se hace al inicio de cada iteracin,


de forma que las instrucciones no son ejecutadas si el valor inicial excede del valor
final. Una caracterstica adicional de los bucles FOR es que estos pueden anidarse
en cualquier momento.
Un ejemplo de la aplicacin de un bucle FOR se da en la tabla B1O.2. En este
ejemplo, se realiza una suma de los nmeros 1 al 5 a travs de un bucle. Cuando
el bucle es ejecutado por primera ver, 1 tiene el valor inicial 1, el valor de la
variable Total es tambin 1. A la segunda ejecucin del bucle, 1 tiene el valor 2, la
variable Total alcanza el valor 1+2 = 3 etc. Tras el quinto y ltimo bucle, el valor de
Total es isla variable de recuento ha alcanzado el valor final 5, y con ello se
completa el procesamiento del bucle.
Bucle REPEAT
A diferencia del bucle FOR, en el bucle REPEAT el nmero de iteraciones no est
previamente definido por medio de un valor final especificado. En su lugar, se
utiliza una condicin, denominada la condicin de terminacin.
La forma del bucle REPEAT es como sigue
REPEAT
instruccion(es);
UNTIL Expresin Booleana
END_REPEAT;
La terminacin del bucle REPEAT se verifica tras la ejecucin de las instrucciones
de bucle. Por lo tanto el bucle se ejecuta por lo menos una vez. La condicin de
terminacin debe ser cambiada en el bucle, ya que de lo contrario el bucle se
ejecutara indefinidamente. Por lo tanto, es importante asegurar que el bucle puede
realmente completarse. Debe comprobarse lo siguiente:

Incluye realmente la condicin de terminacin una variable, de forma que la


condicin pueda suministrar el valor 1 (cierto)?
Se alcanza alguna vez la condicin de terminacin?

Un ejemplo de utilizacin del bucle REPEAT se demuestra en la tabla B1O.2. Aqu


tambin, se suman los primeros cinco nmeros enteros no negativos.
En la primera ejecucin del bucle, 1 tiene el valor 1, el valor de Total es tambin 1.
Una comprobacin de la condicin de terminacin muestra que esto no se cumple,
por lo que el bucle se ejecuta de nuevo. El bucle se ejecuta repetidamente hasta
que la condicin de terminacin es cierta. Este ser el caso hasta la quinta
ejecucin del bucle en la que termina. Aqu tambin, el valor de la variable Total es
15.

Bucle WHILE
El bucle WHILE representa una segunda opcin para la formulacin de iteraciones
especificando una condicin de terminacin. La representacin estndar de un
bucle WHILE es:

WHILE Expresin Booleana DO


instruccion <es>;
END_WHILE;

Si la expresin Booleana de la palabra clave WHILE se cumple, se ejecutan las


instrucciones que siguen a la palabra clave DO. La terminacin del bucle WHILE
es por lo tanto verificada antes de la ejecucin de las instrucciones del bucle. Por lo
tanto, las instrucciones del bucle puede ser que no se ejecuten. La condicin de
terminacin debe cambiar en las instrucciones que se repiten.
Es importante que las condiciones del bucle se cumplan realmente para que el
procesamiento del bucle pueda terminarse.

La tarea de sumar los nmeros 1 al 5 tambin puede realizarse utilizando un bucle


WHILE (tabla B1O.2). A diferencia del bucle REPEAT, el bucle WHILE se ejecuta
repetidamente hasta que la condicin de terminacin es cierta. En realidad esto
significa que el bucle se ejecutan mientas 1 sea menor que 5. Si es igual o mayor
que 5, el bucle deja de procesarse.
En principio, un bucle REPEAT puede reemplazarse por un bucle WHILE y
viceversa.
Instruccin EXIT para terminar un bucle
La instruccin EXIT debe utilizarse para terminar iteraciones antes del final o de
que se cumpla la condicin de terminacin.
El siguiente programa ilustra el ejemplo de una instruccin EXIT:

S := 0;
FOR l := 1 TO 2 DO
FOR J := 1 TO 3 DO
IF error THEN EXIT;
END_IF
S := S + J;
END_FOR;
(* Si se ejecuta la instruccin EXIT se realiza un salto a este punto*')
S := S + 1;
END_FOR;
Si la instruccin EXIT se halla dentro de un bucle anidado, la salida ser desde el
bucle ms profundamente anidado en el que se halla la instruccin EXIT. La
siguiente instruccin a ejecutar es la instruccin inmediatamente despus del fin de
bucle (END_FOR, END_WHILE END_REPEAT). En el ejemplo dado en la fig,
B10.1, esta es la instruccin "S := S + I;".
En el caso del ejemplo citado se aplica lo siguiente: Si el valor de la variable
booleana Error es igual a 0, el algoritmo para la variable S proporciona el valor 15.
Si la variable Error tiene el valor 1, el valor calculado por S es 3.

También podría gustarte