Sunteți pe pagina 1din 17

43

6 Lenguajes de Programacin

Introduccin

Cuando se habla de los lenguajes de programacin se hace referencia a diferentes


formas de poder escribir el programa usuario.
Los softwares actuales permiten traducir el programa usuario de un lenguaje a otro,
pudiendo as escribir el programa en el lenguaje que ms convenga.
La creciente complejidad en la programacin de los autmatas programables requie-
re ms que nunca de la estandarizacin de la misma. Bajo la direccin del IEC el
estndar IEC 1131-3 (IEC 65) para la programacin de PLC ha sido definida.
Alcanz el estado de estndar internacional en agosto de 1992. Con la idea de hacer
el modelo adecuado para un gran abanico de aplicaciones, cinco lenguajes han sido
definidos en total:

Grfico secuencial de funciones (Grafcet)


Lista de instrucciones.
Texto estructurado.
Diagrama de flujo.
Diagrama de contactos o Lgica de Escalera o Ladder Logic.

No obstante, los lenguajes de programacin ms empleados en la actualidad son: el


listado de instrucciones y el esquema de contactos o Ladder Logic.

6.1 Diagrama de Contactos o Lgica de Escalera

Tradicionalmente los diagramas de lgica de escalera estn compuestos por dos lne-
as verticales que representan las lneas de alimentacin, mientras que los renglones
contienen los cableados, los arreglos de contactos y las bobinas de rels.
En los PLC, los diagramas de Lgica de Escalera o Ladder Logic son una manera
fcil de dibujar los programas.
Una ventaja importante es que los smbolos bsicos estn normalizados segn NEMA
y son empleados por todos los fabricantes.
En la tabla que sigue se puede ver una comparacin entre lo que significa los dibu-
jos para la antigua lgica de escalera y para la moderna programacin de un PLC.

Comparacin de los diagramas Ladder

Simbologa Conexin Fsica de Rel Programacin por PC

Lneas Verticales Bus Principal Comienzo y Fin del rengln

Renglones o Peldaos Ramas del Circuito Conjunto de Instrucciones

Direccin de dispositivos
Contactos
de entradas y salida

Bobinas de Rels Direccin en registros de salida

Conexin de cables Entrada de smbolos con el


Implementacin
siguiendo el esquema. dispositivo de programacin
<
44 MICRO

Cada contacto y cada bobina de rel representan una localizacin en el registro de


entradas o salidas. Debe quedar claro que los dibujos slo representan rels que no
existen fsicamente. El smbolo de una bobina de rel representa un bit del registro
de las salidas, que podr estar encendido (puesto en 1) o apagado (puesto en 0)
durante la ejecucin del programa.
Cada rengln o peldao del diagrama de lgica de escalera del PLC corresponde a
un conjunto de instrucciones para el PLC, ese conjunto de instrucciones le dir al
PLC que hacer en respuesta al estado de las entradas (contactos)

La figura que se muestra a continuacin grafica esta situacin.

Algunos smbolos usados

Como se sabe, existen dos smbolos para la programacin de PLC: uno para repre-
sentar contactos normalmente abiertos y otro para representar contactos normalmen-
te cerrados.
Estos contactos pueden representar entradas, salidas o variables internas, es decir,
un bit del registro de entradas, o bits del registro de salida, o de los bits internos o
auxiliares, tambin llamados rels internos o auxiliares.
Una forma conveniente de ver estos contactos en un programa es pensarlos como una
instruccin que examina si esa entrada est encendida o si est apagada, o dicho de
otra forma examina si el bit que representa esa entrada est encendido o apagado.
Un contacto normalmente abierto representa una interrogacin por si un bit est
encendido y un contacto normalmente cerrado representa una interrogacin por si
un bit est apagado. Una condicin de verdadero o falso es otorgada al contacto si el
PLC encuentra la requerida condicin de bit.
Si el PLC encuentra una condicin de verdadero para todos los contactos del rengln,
el bit de salida es encendido o apagado segn lo indique el smbolo de esa salida.

En la tabla de abajo se muestra un resumen de lo dicho anteriormente.

El PLC establece continuidad


Tipo de contacto Smbolo Instruccin dada al PLC
si el bit es buscado.

NO / NA Examina si est encendido 1 (ON)

NO / NA Examina si est apagado 0 (OFF)

Un contacto de entrada (salida, variable interna) NA (normalmente abierto) hace que


el PLC revise en el registro de las entradas (salidas o variables internas) si esa entra-
da en particular se encuentra activa o encendida. Si el PLC encuentra la entrada acti-
va permitir la continuidad a travs de ese contacto, en particular en el programa lgi-
co realizado por el usuario.
De forma similar un contacto de entrada (salida o variable interna) NC hace que el
PLC revise en el registro de las entradas (salidas o variables internas) si esa en par-
ticular se encuentra inactiva o desactivada. Esto es, que el PLC revisa a esa localiza-
cin en el registro de las entradas para ver si est desactivada. De ser cierto, el PLC
permite la continuidad a travs de ese contacto en el programa del usuario.
<

<
CAPITULO 6 LENGUAJES DE PROGRAMACIN 45

Cuando el smbolo del contacto NA representa una localizacin en el registro de las


salidas, nos provee un reporte del estado del dispositivo de salida. Un contacto de
salida NA hace que el PLC revise esa direccin de salida en particular. El contacto de
salida tendr continuidad si la salida est encendida, pero mostrar discontinuidad si
la salida est apagada.

Un contacto de salida NC hace que el PLC revise esa direccin de salida en particu-
lar. El contacto de salida tendr continuidad si la salida est apagada, pero mostrar
discontinuidad si la salida est encendida.
El smbolo ms usado para representar las salidas es el de la bobina de un rel. Estos
smbolos no son bobinas reales, sino que son dibujos utilizados para graficar la loca-
lizacin de una salida en el registro de las salidas.
Para las lneas de funciones ms complejas como temporizadores, registros de des-
plazamiento, etc., se emplea el formato de bloques. stos no estn estandarizados,
aunque guardan una gran similitud entre s para distintos fabricantes y resultan
mucho ms expresivos que si se utiliza para el mismo fin el lenguaje en lista de ins-
trucciones o mnemnico.

6.2 Listado de instrucciones (mnemnico)

Utiliza instrucciones derivadas de las operaciones del lgebra de Boole, combinadas


con otras que permiten representar funciones como temporizadores, contadores,
movimientos de datos en la memoria y clculos (suma, resta, multiplicacin, divisin,
raz cuadrada, clculo de porcentaje, cambios en el sistema de numeracin, etc.)
Cada instruccin est formada por un mnemnico o cdigo, (abreviatura que repre-
senta una funcin), y uno o varios argumentos (variables que indican la direccin de
memoria sobre la que se va a trabajar)
Como puede imaginarse existe una equivalencia o correspondencia entre la lgica de
escalera y el listado de instrucciones. En muchos PLC esta equivalencia se puede ver
en forma inmediata slo con activar un icono de la pantalla de programacin.

6.3 Diagramas de funciones

El diagrama de funciones (function block diagram o FBD) es un lenguaje grfico que


permite programar elementos que aparecen como bloques para ser cableados entre
si de forma anloga al esquema de un circuito. El uso de FBD es adecuado para
muchas aplicaciones que involucren el flujo de informacin o datos entre componen-
tes de control.
<
46 MICRO

6.4 Texto estructurado

El texto estructurado (structured text o ST) es un lenguaje de alto nivel estructurado


por bloques que posee una sintaxis parecida al PASCAL. El ST puede ser empleado
para realizar rpidamente sentencias complejas que manejen variables con un amplio
rango de diferentes tipos de datos, incluyendo valores analgicos y digitales. Tambin
se especifica tipos de datos para el manejo de horas, fechas y temporizaciones, algo
importante en procesos industriales. El lenguaje posee soporte para bucles como
REPEAR UNTIL, ejecuciones condicionales empleando sentencias IF-THEN-ELSE y
funciones como SQRT() y SIN()

6.5 Grafcet

El grfico secuencial de funciones (SFC o Grafcet) es un lenguaje grfico que pro-


porciona una representacin en forma de diagrama de las secuencias del programa.
Soporta selecciones alternativas de secuencia y secuencias paralelas. Los elementos
bsicos son pasos y transiciones. Los pasos consisten en piezas de programas que
son inhibidas hasta que una condicin especificada por las transiciones es conocida.
Como consecuencia de que las aplicaciones industriales funcionan en forma de
pasos, el SFC es la forma lgica de especificar y programar el ms alto nivel de un
programa para PLC.
47

7 Instrucciones Tipo

Introduccin

George Boole (1815- 1864) naci el 2 de Noviembre de 1815 en Lincoln,


Lincolnshire (Inglaterra) En el 1854 public Las leyes del pensamiento sobre las cua-
les son basadas las teoras matemticas de Lgica y Probabilidad.
Boole aproxim la lgica en una nueva direccin reducindola a un lgebra simple,
incorporando lgica en las matemticas. Agudiz la analoga entre los smbolos alge-
braicos y aquellos que representan formas lgicas. Su lgebra consiste en un mto-
do para resolver problemas de lgica que recurre solamente a los valores binarios 1
y 0 y a tres operadores: AND (y), OR (o) y NOT (no). Comenzaba el lgebra de la lgi-
ca llamada lgebra Booleana, la cual ahora encuentra aplicacin en la construccin
de computadores, circuitos elctricos, etc.

7. 1 Tratamiento Booleano

Definicin de los principales objetos de bits

Bits de entradas/salidas: estos bits son las imgenes lgicas de los estados elc-
tricos de las entradas/salidas. Estn almacenados en la memoria de datos y se actua-
lizan en cada explotacin del programa.

El direccionamiento de estos bits es el siguiente:

Referencias:
Smbolo: IEC61131
Tipo de objeto: %I: para las Entradas y %Q: para las Salidas.

X. Posicin del controlador: 0 Controlador master, 1 a 7 controlador remoto.


Y. Mdulo: 0 unidad de E/S local, 1 a 7 mdulos de ampliacin.
Z. Va, nmero de la entrada o salida.

Bits internos: los bits internos (%Mi) memorizan los estados intermedios durante la
ejecucin del programa.

Bits de sistema: los bits de sistema (%Si) controlan el buen funcionamiento del
autmata, as como el desarrollo del programa de aplicacin.

Existen otros bits que pueden usarse en el tratamiento booleano, como son los bits
de los bloques de funcin y los bits extrados de palabras.
<
48 MICRO

Sntesis de los bits utilizados por el Twido

Tipo Direccin Cantidad mxima Escritura

Bits entrada %IX.Y.Z Depende Twido No

Salida %QX.Y.Z Depende Twido S

Bits internos %Mi 128 256 segn modelo S

Bits Sistema %Si 128 Segn i

7. 2 Introduccin a los diagramas Ladder Logic

Los diagramas Ladder Logic son similares a los diagramas de lgica de rel. Las prin-
cipales diferencias entre los dos son las Funciones de la Programacin de Ladder
Logic que no aparecen en los diagramas de lgica de rel.

Caractersticas:

Todas las entradas estn representadas por smbolos de contactos


Todas las salidas estn representadas por smbolos de bobinas
Las operaciones numricas estn incluidas en el conjunto de instrucciones de
Ladder Logic grfico

7. 2 . 1 Equivalentes Ladder Logic a los circuitos de rel

La siguiente ilustracin muestra un diagrama simplificado del cableado de un circui-


to de lgica de rel y el diagrama Ladder Logic equivalente.

Si observamos la ilustracin anterior, podemos percatarnos de que todas las entradas


asociadas al dispositivo de conmutacin, en el diagrama de lgica de rel, aparecen
como contactos en el diagrama Ladder Logic.
La bobina de salida M1 del diagrama de lgica de rel se representa con un smbo-
lo de bobina de salida en el diagrama Ladder Logic.
Los nmeros de direccin que aparecen sobre cada uno de los smbolos de contac-
tos o bobinas en el diagrama Ladder Logic hacen referencia a la posicin que ocu-
pan las conexiones de entrada/salida con el controlador.
<

<
7 INSTRUCCIONES TIPO 49

7. 2 . 2 Escalones Ladder Logic

Un programa escrito en lenguaje Ladder Logic est compuesto por escalones, que
son conjuntos de instrucciones grficas dibujadas entre dos barras verticales de
potencia. El controlador ejecuta los escalones secuencialmente.
El conjunto de instrucciones grficas representa las siguientes funciones:

Entradas/salidas del controlador (sensores, rels, luces de pilotos, etc.)


Funciones del controlador (temporizadores, contadores etc.)
Operaciones lgicas y matemticas (adicin, divisin, AND, y XOR entre otras)
Operadores de comparacin y otras operaciones numricas (A<B, A=B,
desplazamiento, rotacin, etc.)
Variables internas del controlador (bits, palabras, etc.)

Estas instrucciones grficas se organizan con conexiones horizontales y verticales


que eventualmente llevan a una o varias salidas o acciones. Una red no puede admi-
tir ms de un grupo de instrucciones vinculadas.

7. 2 . 3 Bloque de diagramas Ladder Logic

Los diagramas Ladder Logic estn compuestos por bloques que representan el flujo
de programas y las funciones, por ejemplo:

Contactos
Bobinas
Instrucciones de flujo de programas
Bloques de funcin
Bloques de comparacin
Bloques de operacin

Las instrucciones de los diagramas Ladder Logic se componen de elementos grficos.


Esta seccin enumera y describe los elementos grficos utilizados en las instruccio-
nes Ladder de Twido.

Contactos
Los elementos grficos de los contactos se programan en el rea de prueba y ocu-
pan una celda (el alto de una fila por el ancho de una columna)
<
50 MICRO

Elementos de conexin
Los elementos grficos de conexin se utilizan para conectar los elementos grficos
de accin y de prueba.

Bobinas
Los elementos grficos de bobina se programan en el rea de accin y ocupan una
celda (el alto de una fila por el ancho de una columna)

Bloques de funcin
Los elementos grficos de los bloques de funcin se programan en la misma rea de
prueba y requieren cuatro filas y dos columnas de celdas (excepto para contadores
muy rpidos que requieren cinco filas y dos columnas)
<

<
7 INSTRUCCIONES TIPO 51

Bloques de operacin y comparacin


Los bloques de comparacin se programan en el rea de prueba, mientras que los de
operacin lo hacen en el rea de accin.

Programas de Listado de Instrucciones


7. 3
Un programa escrito en lenguaje de lista est formado por una serie de instrucciones
que el controlador ejecuta de forma secuencial. Cada instruccin de lista est repre-
sentada por una lnea de programa y tiene tres componentes:

Nmero de lnea
Cdigo de instruccin
Operando(s)

A continuacin se muestra un ejemplo de un programa de lista.

Nmero de lnea: los nmeros de lneas se generan automticamente al introducir una


instruccin. Las lneas vacas y las lneas de comentario no tienen nmeros de lnea.

Cdigo de instruccin: el cdigo de instruccin es un smbolo para un operador, que


identifica la operacin que se va a realizar utilizando los operantes. Los operadores
tpicos especifican operaciones numricas y boolearias.

Ejemplo
En el programa de ejemplo anterior, LD es la abreviatura del cdigo de instruccin
para una instruccin LOAD. La instruccin LOAD coloca (carga) el valor del ope-
rando %I0.1 en un registro interno llamado el acumulador.
Hay dos tipos de instrucciones bsicas:

Instrucciones de prueba. Estas instrucciones configuran o comprueban


las condiciones necesarias para realizar una accin. Por ejemplo, LOAD
(LD) y AND.
Instrucciones de accin. Estas instrucciones realizan acciones como resultado
de las condiciones configuradas. Por ejemplo, instrucciones de asignacin
como STORE (ST) y RESET (R)
<
52 MICRO

Operando: un operando es un nmero, direccin o smbolo que representa un valor


que puede manipular un programa en una instruccin.

Ejemplo
En el programa del ejemplo expuesto anteriormente, el operando %I0.1 es una direc-
cin que tiene asignado el valor de una entrada del controlador. Una instruccin puede
tener de cero a tres operandos dependiendo del tipo de cdigo de instruccin.
Los operandos pueden representar los siguientes elementos:

Entradas y salidas del controlador, como sensores, botones y rels.


Funciones de sistema predefinidas, como temporizadores y contadores.
Operaciones aritmticas, numricas y de comparacin.
Variables internas del controlador, como bits y palabras.

7. 3 . 1 Instrucciones del lenguaje de lista

Un lenguaje de lista se compone de los siguientes tipos de instrucciones:

1. Instrucciones de prueba
2. Instrucciones de accin
3. Instrucciones sobre bloques de funcin

Esta seccin identifica y describe las instrucciones Twido para la programacin de listas.

1. Instrucciones de prueba
<

<
7 INSTRUCCIONES TIPO 53

La siguiente tabla describe las instrucciones de prueba en lenguaje de listas.

2. Instrucciones de accin

La siguiente tabla describe las instrucciones de accin en lenguaje de listas.


<
54 MICRO

3. Instrucciones sobre bloques de funcin

La siguiente tabla describe los bloques de funcin en lenguaje de listas.

Instrucciones de carga (LD, LDN, LDR, LDF)

Las instrucciones de carga LD, LDN, LDR y LDF corresponden respectivamente a los
contactos abierto, cerrado, flanco ascendente y flanco descendente (LDR y LDF slo
se utilizan con entradas del controlador)

Contactos normales abiertos

Contactos normales cerrados

Contacto flanco ascendente

El tiempo que permanece activa la salida equivale a un ciclo del autmata.

Contacto flanco descendente

El tiempo que permanece activa la salida equivale a un ciclo del autmata.


<

<
7 INSTRUCCIONES TIPO 55

Ejemplos
Los siguientes diagramas son ejemplos de instrucciones de carga.
Operandos permitidos.

La siguiente tabla enumera los tipos de instrucciones de carga con operandos


equivalentes y permitidos de Ladder Logic.

Instrucciones de almacenamiento (ST, STN, R, S)

Las instrucciones de almacenamiento ST, STN, S y R corresponden respectivamente


a las bobinas directas e inversas, establecida y restablecida.

Los siguientes diagramas son ejemplos de instrucciones de almacenamiento:

Bobina Directa

Bobina Inversa

Bobina de Set y Reset


<
56 MICRO

Operandos permitidos
La siguiente tabla enumera los tipos de instrucciones de almacenamiento con ope-
randos equivalentes y permitidos de Ladder Logic.

Instrucciones AND lgicas (AND, ANDN, ANDR, ANDF)

Las instrucciones AND realizan una operacin lgica AND entre el operando (o su
inverso, o su flanco ascendente, o descendente) y el resultado booleario de la instruc-
cin precedente.

Producto Lgico

Producto Lgico Negado

Producto Lgico Flanco Ascendente

El tiempo que permanece activa la salida equivale a un ciclo de programa.

Producto Lgico Flanco Descendente

El tiempo que permanece activa la salida equivale a un ciclo de programa.


<

<
7 INSTRUCCIONES TIPO 57

La siguiente tabla enumera los tipos de instrucciones AND con operandos equivalen-
tes y permitidos de Ladder Logic.

Instrucciones OR lgicas (OR, ORN, ORR, ORF)

Las instrucciones OR realizan una operacin lgica OR entre el operando (o su inver-


so; o su flanco ascendente o descendente) y el resultado booleario de la instruccin
precedente.

Suma Lgica

Suma Lgica Negada

Suma Lgica con Flanco Ascendente

El tiempo que permanece activa la salida equivale a un ciclo del autmata.

Suma lgica con Flanco Descendente

El tiempo que permanece activa la salida equivale a un ciclo del autmata.

Operandos permitidos

La siguiente tabla enumera los tipos de instrucciones OR con operandos equivalen-


tes y permitidos de Ladder Logic.
<
58 MICRO

Instrucciones de OR exclusivo (XOR, XORN, XORR, XORF)


Estas instrucciones realizan un O exclusivo entre el operando (o su inverso, o flanco
ascendente o descendente) y el resultado booleano de la instruccin anterior. Esta
operacin es conocida tambin como comparador de desigualdad, puesto que el
resultado es 1 (ON), cuando los operandos involucrados son distintos.

Suma Lgica Exclusiva

Las instrucciones O exclusiva pueden realizarse tambin con contactos e instruccio-


nes comunes. A continuacin detallamos la forma de realizarlo para ilustrar la lgica
de la instruccin.

Suma Lgica Exclusiva Negada

Suma lgica Exclusiva Flanco Ascendente

Suma lgica Exclusiva Flanco Descendente


<

<
7 INSTRUCCIONES TIPO 59

Operandos permitidos
La siguiente tabla enumera los tipos de instrucciones XOR y operandos permitidos.

Casos especiales
Precauciones especiales para utilizar instrucciones XOR en programas de Ladder Logic:

No inserte contactos XOR en la primera posicin de un escaln.


No inserte contactos XOR de forma paralela con otros elementos de Ladder
Logic (consulte el siguiente ejemplo)

Como se muestra en el siguiente ejemplo, la insercin de un elemento de forma para-


lela con el contacto XOR generar un error de validacin.

Instruccin NOT (N)


La instruccin NOT (N) niega el resultado booleario de la instruccin anterior.

Ejemplo
A continuacin se muestra un ejemplo de uso de la instruccin NOT.

Operandos permitidos
No aplicable.
Cronograma.
El siguiente diagrama muestra la temporizacin de la instruccin NOT.

Bloque de funcin del temporizador (%TMi)


Cada uno de los temporizadores puede configurarse de una de las tres formas pro-
puestas por la normativa IEC61131.

S-ar putea să vă placă și