Documentos de Académico
Documentos de Profesional
Documentos de Cultura
plc0006 PDF
plc0006 PDF
Lenguajes de Programacin
Lenguaje de Escalera
Los controladores programables fueron desarrollados para ser fcilmente programados
utilizando expresiones y smbolos de los diagramas de rels, para representar la lgica de
programacin necesaria para el control de mquinas y procesos. El lenguaje de programacin
resultante, que usa los smbolos bsicos de la lgica de rels se llama lenguaje de escalera.
Controladores
Programables
Ramn
Medina
Pgina 2
de 89
Lenguajes de Programacin
La evolucin del lenguaje de escalera original ha ido aadiendo instrucciones cada vez ms
poderosas. Estas nuevas funciones han sido agregadas a las operaciones bsicas de rel,
temporizado y conteo. El trmino funcin es utilizado para describir instrucciones, que como
su nombre implica, llevan a cabo funciones de transferencia de datos dentro de los
controladores programables. Estas instrucciones siguen basadas en los principios de la lgica
bsica de rels, aunque permiten la implementacin de operaciones complejas. Las adiciones
a la lgica bsica de rels incluyen bloques de funcin que usan un conjunto de instrucciones
para operar sobre un bloque de informacin. El uso de los bloques de funcin incrementa la
potencia del lenguaje de escalera bsico, conformando lo que se conoce como lenguaje de
escalera mejorado.
Formato de bloques de
funcin mejorados
Ramn
Medina
Pgina 3
de 89
Lenguajes de Programacin
Clasificacin de las
instrucciones
Rel
Temporizado
Conteo
Control de programa y flujo
Aritmtica
Manipulacin de datos
Transferencia de datos
Funciones especiales (secuenciadores)
Comunicacin a travs de la red
Aunque las categoras estn claramente definidas, la clasificacin es subjetiva. Sin embargo,
no obstante la clasificacin, el hecho es que mientras ms categoras de instrucciones un
controlador soporta, ms poderosas son las estrategias de control que se pueden
implementar con l.
Lo usual es que controladores pequeos tengan slo instrucciones bsicas con tal vez algunas
instrucciones mejoradas. Los controladores ms potentes, incorporan conjuntos de
instrucciones avanzadas. Sin embargo, la tendencia es hacia que los controladores pequeos
incorporen instrucciones avanzadas.
Controladores
Programables
Ramn
Medina
Pgina 4
de 89
Lenguajes de Programacin
Grafcet
Grafcet (Graphe Fonctionnel de Commande tape Transition) es un lenguaje grfico
simblico que fue originado en Francia, que representa el programa de control como pasos o
etapas de la mquina o proceso. Grafcet es el fundamento del estndar IEC 1131 para
Diagramas de Funciones Secuenciales (SFC) que permite que varios lenguajes de
programacin de controladores puedan ser utilizados en un nico programa de control.
Lgica cableada y su
representacin
correspondiente en Grafcet
Traduccin Grafcet
Controladores
Programables
Ramn
Medina
Pgina 5
de 89
Lenguajes de Programacin
Booleano
Algunos fabricantes de controladores programables utilizan lista de instrucciones (a veces
llamado lenguaje booleano) para programar sus equipos. La lista de instrucciones utiliza
sintaxis del lgebra booleana para ingresar y explicar la lgica de control; usan funciones
lgicas AND, OR y NOT para implementar programas de control.
Lgica cableada y su
correspondiente
representacin booleana
Controladores
Programables
Ramn
Medina
Pgina 6
de 89
Lenguajes de Programacin
Controladores
Programables
Ramn
Medina
Pgina 7
de 89
Lenguajes de Programacin
Monitoreo de un dispositivo
mostrando (a) continuidad en
el peldao y (b) continuidad
en una entrada
Cuando un diagrama de escalera contiene un bloque funcional, las instrucciones de contacto
se usan para representar las condiciones de entrada que habilitan la lgica del bloque. Un
bloque funcional puede tener una o varias entradas de habilitacin que controlan su
operacin. Adicionalmente, puede tener una o varias salidas, que representan el estado de la
funcin que se ejecuta.
Controladores
Programables
Ramn
Medina
Pgina 8
de 89
Lenguajes de Programacin
Matriz de condiciones de
entrada en un diagrama de
escalera en formato de
bloque
Matriz de condiciones de
entrada en un diagrama de
escalera en formato de
instrucciones de escalera
mejoradas
La matriz de escalera representa todas las posibles posiciones donde se pueden colocar
smbolos de contacto. Los dispositivos de programacin normalmente despliegan todas esas
posibles posiciones en la pantalla, permitiendo que los usuarios coloquen los contactos
donde deseen. Sin embargo, segn el fabricante, algunas reglas para la colocacin de
contactos pueden aplicar. La mayora de los controladores no permiten contactos que
provoquen un flujo de potencia de derecha a izquierda. Por lo tanto, estrategias de control
Controladores
Programables
Ramn
Medina
Pgina 9
de 89
Lenguajes de Programacin
que hagan uso de este recurso, deben ser reescritas de tal manera que slo incluyan lgicas
donde el flujo sea de izquierda a derecha.
Ejemplo 1
Se pide resolver la lgica de escalera representada en la siguiente figura, de tal manera que
no exista la condicin de flujo reverso. Dicha condicin no es parte de la lgica requerida
para que la salida sea energizada.
Solucin
La lgica del flujo directo determina a salida Y. La implementacin utilizando conceptos
lgicos es como se muestra:
Controladores
Programables
Ramn
Medina
Pgina 10
de 89
Lenguajes de Programacin
Dicha ecuacin puede ser simplificada utilizando lgebra de Boole para obtener la siguiente
ecuacin:
Ejemplo 2
Se pide resolver el siguiente caso de tal manera que no exista flujo reverso, considerando
que dicho flujo es necesario para la lgica de control.
Controladores
Programables
Ramn
Medina
Pgina 11
de 89
Lenguajes de Programacin
Solucin
La lgica requerida para la salida Y queda reflejada en la siguiente ecuacin lgica:
Instrucciones de Rels
Las instrucciones de rel son las instrucciones ms bsicas del lenguaje de escalera. Estas
instrucciones representan estados ENCENDIDO/APAGADO de las entras y salidas conectadas.
Las instrucciones de rels usan dos tipos de smbolos: contactos y bobinas. Los contactos
representan las condiciones de entrada que deben ser evaluadas en un peldao especfico,
para determinar el control de la salida. Las bobinas representan las salidas de los peldaos.
Controladores
Programables
Ramn
Medina
Pgina 12
de 89
Lenguajes de Programacin
Instrucciones de rel
En un programa, cada contacto y bobina est referenciado con una direccin, la cual
identifica que est siendo evaluado o controlado. La direccin referencia la tabla de entradas
y salidas de la entrada o salida conectada, o del bit de almacenamiento interno.
El formato de los contactos depende de la lgica de control deseada. Los contactos pueden
ser colocados en serie, paralelo o serie-paralelo, segn lo requiera la estrategia de control de
una salida en particular. Cuando la continuidad lgica existe, la condicin del peldao es
VERDADERA; esto significa, que el peldao controlar la salida especificada. Si la condicin
del peldao es FALSA, no existe continuidad.
Las instrucciones de rels proporcionan la misma funcionalidad que la lgica de rel
cableada, pero con mayor flexibilidad. Estas instrucciones proporcionan la capacidad de
examinar el estado ENCENDIDO/APAGADO de bits especficos en memoria y controlar el
estado de salidas internas y externas.
Ramn
Medina
Pgina 13
de 89
Lenguajes de Programacin
Instruccin examinar
ENCENDIDO con lgica 0 y
con lgica 1
Controladores
Programables
Ramn
Medina
Pgina 14
de 89
Lenguajes de Programacin
Instruccin examinar
APAGADO con lgica 0 y con
lgica 1
Bobina de Salida
Una instruccin de bobina de salida controla bien sea una salida real (conectada al
controlador a travs de una interface de salida) o un estado interno (rel de control). Esta
instruccin utiliza una direccin de salida en su rea de almacenamiento interna.
Durante la ejecucin de una instruccin de bobina de salida, el procesador evala todas las
condiciones de entrada en el peldao. Si no existe continuidad, el procesador coloca un cero
en el bit de la direccin de la bobina de salida, indicando una condicin APAGADA. Si por el
contrario el procesador detecta continuidad, el procesador coloca un uno lgico en la
direccin referenciada por la instruccin de bobina de salida. Este estado lgico uno indica
una condicin ENCENDIDA para la instruccin de bobina de salida. Por lo tanto, si la
instruccin de bobina est referenciando un bit en la tabla de salidas, el procesador
encender la salida correspondiente. Esto a su vez encender el dispositivo de campo
conectado al terminar referenciado por la direccin de la bobina de salida. El procesador
encender el dispositivo slo despus de haber resuelto completamente el programa y
actualizado las salidas al final del ciclo de ejecucin.
Controladores
Programables
Ramn
Medina
Pgina 15
de 89
Lenguajes de Programacin
Instruccin de bobina de
salida con lgica 0 y con
lgica 1
Cuando una bobina de salida se usa como estado interno, la direccin hace referencia a un
bit en la tabla de estados internos. En este caso, cuando la bobina de salida es ENCENDIDA, el
bit correspondiente se coloca en estado uno. Estas salidas internas son utilizadas cuando el
programa requiere de secuencias de bloqueo cruzado o cuando una salida real no es
necesaria. Los contactos normalmente abiertos y cerrados de una bobina de salida se abrirn
o cerrarn de acuerdo con el estado de la bobina.
Contactos normalmente
abiertos y cerrados
manejando bobinas internas
y reales
Ramn
Medina
Pgina 16
de 89
Lenguajes de Programacin
salida negada est APAGADA, sus contactos auxiliares permanecen en sus estados por
defecto.
Una instruccin de bobina negada puede ser complicada de implementar. Por esta razn, es
frecuentemente ms fcil obtener dicha funcionalidad aplicando reglas Booleanas a la
expresin lgica que maneja el peldao.
Ejemplo 3
Implementar una lgica de escalera equivalente a la que se muestra, utilizando una salida de
bobina negada.
Solucin
La expresin lgica asociada a Y se describe con la siguiente ecuacin:
Utilizando las Leyes de Morgan, la funcin Y negada puede ser expresada como:
Ramn
Medina
Pgina 17
de 89
Lenguajes de Programacin
Ejemplo 4
Implementar una lgica Y negada sin utilizar bobina de salida negada
Solucin
La forma ms sencilla es utilizar el diagrama anterior, agregando un peldao adicional como
se indica en la figura
Ramn
Medina
Pgina 18
de 89
Lenguajes de Programacin
Instrucciones de enganche y
desenganche en formato de
rel
Bloques funcionales de
enganche y desenganche
Salida de Pulso
Una instruccin de salida de pulso opera de manera parecida a como lo hace la bobina de
salida. Si el peldao tiene continuidad lgica, la salida de pulso es ENCENDIDA. Sin embargo,
la duracin del estado ENCENDIDO es de un ciclo de ejecucin o menos, dependiendo de
dnde est localizado en el programa de control. Las salidas de pulso son normalmente
utilizadas para reinicializar condiciones en un ciclo de ejecucin.
Controladores
Programables
Ramn
Medina
Pgina 19
de 89
Lenguajes de Programacin
Dependiendo del tipo de controlador que se use, la salida de pulso puede ser disparada por
un flanco de bajada o de un flanco de subida.
Contacto de Transicin
La instruccin de contacto de transicin proporciona un pulso cuando la seal que la dispara
hace una transicin de ENCENDIDO a APAGADO o de APAGADO a ENCENDIDO. En una
instruccin de flanco de subida, los contactos cerrarn por exactamente un ciclo de ejecucin
cada vez que la seal de disparo pasa de APAGADO a ENCENDIDO. El contacto permitir la
continuidad lgica durante el ciclo de ejecucin luego de lo cual, se abrir nuevamente,
aunque la seal de disparo contine en su estado de asercin. La seal de disparo debe hacer
nuevamente la transicin de APAGADO a ENCENDIDO para que el contacto se pueda cerrar
nuevamente. De manera similar, en una instruccin de flanco de bajada, la seal de disparo
debe ir de ENCENDIDO a APAGADO para cerrar el contacto por un ciclo de ejecucin. La seal
de disparo puede ser una entrada o salida externa as como una salida interna.
Controladores
Programables
Ramn
Medina
Pgina 20
de 89
Lenguajes de Programacin
La siguiente figura ilustra la misma lgica de escalera, pero con los peldaos ubicados en
orden inverso. Asumiendo que la entrada 10 es presionada en el primer barrido, el
procesador debe hacer cuatro ciclos de ejecucin antes de energizar la salida 103. La lgica
que el procesador usa en el primer barrido es la que se describe a continuacin. Cuando la
entrada 10 es activada, el procesador examina la referencia 102 y encuentra que est
APAGADA; por lo tanto, la salida 103 permanece APAGADA. En el segundo peldao el
contacto 101 est APAGADO; por lo tanto, la salida 102 permanece APAGADA. En el tercer
Controladores
Programables
Ramn
Medina
Pgina 21
de 89
Lenguajes de Programacin
peldao, el contacto 100 est apagado, de tal manera que la salida 101 permanece
APAGADA. En el cuarto peldao, el contacto 10 est ENCENDIDO, porque el pulsador fue
presionado, de tal manera que la salida 100 se enciende. El siguiente ciclo de ejecucin
(segundo), si el pulsador permanece ENCENDIDO, la salida 101 se encender porque al final
del primer barrido, la direccin de referencia 100 fue puesta a uno lgico. Esta lgica
continuar hasta el cuarto barrido, cuando las cuatro salidas estarn ENCENDIDAS. Las
salidas se apagarn de la misma manera, cuando el pulsador sea liberado.
Controladores
Programables
Ramn
Medina
Pgina 22
de 89
Lenguajes de Programacin
Ni la salida de pulso ni el
contacto transicional sern
capaces de desenganchar la
bobina 100
Lgica cableada
Implementar la misma lgica significa que la lmpara piloto PL1 en el controlador debe
comportarse de la misma manera que el circuito cableado. Si PB1 no es presionado, PL1
estar ENCENDIDA; al presionar PB1, PL1 se apaga. Las figuras muestran dos mtodos
posibles para programar PB1 e implementar la lgica. A primera vista podra pensarse que la
primera figura contiene la solucin; sin embargo, esto no es verdad. La solucin correcta es la
que se muestra en la segunda figura.
Implementacin lgica con
PB1 programado como
contacto normalmente
cerrado
Controladores
Programables
Ramn
Medina
Pgina 23
de 89
Lenguajes de Programacin
Controladores
Programables
Ramn
Medina
Pgina 24
de 89
Lenguajes de Programacin
Ejemplo 6
Muestre la implementacin en un controlador de la lgica cableada que se presenta en la
siguiente figura, considerando que un contacto normalmente abierto est conectado a la
entrada del mdulo. Describa la operacin de cada implementacin. Use la direccin de
entrada 10 para el pulsador y las direcciones 30 y 31 para las lmparas piloto PL1 y PL2
respectivamente.
Controladores
Programables
Ramn
Medina
Pgina 25
de 89
Lenguajes de Programacin
Solucin
Al examinar el circuito se tiene que si PB1 no es presionado, la lmpara PL1 debe estar
apagada. PL2 debe estar encendida por que el otro contacto de PB1 (el normalmente
cerrado) proporciona potencia a PL2. Es posible cablear cualquiera de las dos conexiones (A o
B) de PB1 al mdulo de entrada para satisfacer la lgica requerida. Recuerde que es posible
hacer que cualquier contacto funcione como lo requiere el programa de control.
La siguiente figura muestra la solucin para la conexin del contacto normalmente abierto.
Una instruccin examinar ENCENDIDO maneja a PL1 y una examinar APAGADO a PL2. Cuando
el contacto A de PB1 no est presionado, PL1 est apagado y PL2 encendido. El primer
peldao implementa un pulsador cableado como un contacto normalmente abierto para que
acte como tal, mientras que el segundo implementa un pulsador cableado como
normalmente abierto, para que se comporte como uno normalmente cerrado.
Ejemplo 7
Muestre la implementacin en un controlador de la lgica cableada que se presenta en la
siguiente figura, considerando que un contacto normalmente cerrado est conectado a la
entrada del mdulo. Describa la operacin de cada implementacin. Use la direccin de
entrada 10 para el pulsador y las direcciones 30 y 31 para las lmparas piloto PL1 y PL2
respectivamente.
Controladores
Programables
Ramn
Medina
Pgina 26
de 89
Lenguajes de Programacin
Solucin
La siguiente figura muestra la solucin cuando se conecta el contacto normalmente cerrado.
En este caso, una instruccin examinar APAGADO es la que maneja a PL1. Durante la
operacin, el contacto B de PB1 proporciona potencia al mdulo si el pulsador no es
presionado y por lo tanto, su direccin de referencia (10) es en estado uno lgico. El contacto
normalmente cerrado de la direccin 10 permanece abierto mientras que PB1 no sea
presionando manteniendo a PL1 apagado. En el segundo peldao, la instruccin examinar
ENCENDIDO maneja la salida para PL2 (31), que permanece cerrada mientras PB1 no sea
presionado. El primer peldao implementa un pulsador cableado como normalmente
cerrado, para que se comporte como uno normalmente abierto, mientras que el segundo
implementa un pulsador cableado como normalmente cerrado, para que se comporte como
tal.
Como se ilustra en el ejemplo anterior, una entrada normalmente abierta puede ser
programada para que se comporte con una normalmente cerrada y viceversa. Sin embargo,
por razones de seguridad, los dispositivos normalmente cerrados deben ser cableados al
mdulo de entrada como tal, utilizando instrucciones examinar ENCENDIDO, de tal manera
que se comporten de la manera en que han sido diseados. Un dispositivo cableado como
normalmente abierto no debe ser programado para que se comporte como uno
normalmente cerrado, especialmente si est siendo usado para interrumpir la continuidad
cuando un dispositivo est presionado o cerrado.
La siguiente figura muestra un ejemplo de un botn de parada normalmente cerrado,
utilizado para interrumpir la alimentacin de un motor. Durante la operacin, cuando el
pulsador de arranque ha sido presionado y enganchado por los contactos internos del motor
(100), el motor enciende. El pulsador (normalmente cerrado) de parada interrumpe la
continuidad lgica de la bobina de salida del motor. Pulsando este pulsador de parada, es la
nica manera en la que el motor puede ser detenido. Sin embargo, si el cableado del
pulsador se corta por accidente, el circuito del motor se desacopla.
Controladores
Programables
Ramn
Medina
Pgina 27
de 89
Lenguajes de Programacin
El pulsador de parada
(normalmente cerrado) es
programado como
normalmente abierto. El
contacto 100 es usado como
enganche con el botn de
arranque luego de ser
presionado
Luego de que el pulsador de
arranque es presionado y
liberado, el motor
permanece encendido
Si el pulsador de parada es
presionado cuando el motor
est encendido, ste se
apagar
Si el cableado del pulsador de
parada se rompe
accidentalmente cuando el
motor est encendido, ste
se apaga
Es posible conseguir la misma lgica de control colocando un pulsador de parada
normalmente abierto en lugar de uno normalmente cerrado, implementndolo como un
circuito normalmente cerrado en el programa del controlador. Cuando el botn de arranque
es presionado, el motor se enciende; si el botn de parada es presionado, el motor se apaga.
Sin embargo, no habr manera de detener el motor si el cableado del pulsador normalmente
abierto se rompe. La instruccin examinar APAGADO correspondiente al pulsador de parada
no interrumpir nunca la continuidad lgica. La nica manera de detener el motor ser
apagando el controlador. Este tipo de configuracin del controlador es peligrosa y debe ser
evitada.
Controladores
Programables
Ramn
Medina
Pgina 28
de 89
Lenguajes de Programacin
El pulsador de parada
(normalmente abierto) es
programado como
normalmente cerrado. Al
presionar el botn de
arranque, se enciende el
motor
Luego de que el pulsador de
arranque es presionado y
liberado, el motor
permanece encendido
Si el pulsador de parada es
presionado cuando el motor
est encendido, ste se
apagar
Si el cable del botn de
parada se rompe mientras
est encendido el motor, no
habr forma de detenerlo
Temporizadores y Contadores
Los temporizadores y contadores son instrucciones internas que proveen las mismas
funciones que sus contrapartes de hardware. Ellos activan o desactivan un dispositivo luego
de que transcurre un determinado lapso de tiempo o de que se ha alcanzado un conteo
especfico. Los temporizadores y contadores son tpicamente considerados como salidas
internas. Al igual que las instrucciones de rel, los temporizadores y contadores son
fundamentales para la programacin en diagrama de escalera.
Las instrucciones de temporizador pueden tener un o ms bases de tiempo que son usadas
para cronometrar un evento. La base de tiempo es la resolucin o precisin del
temporizador. Si se desea que un temporizador cronometre un evento de 10 segundos, el
usuario debe configurarlo especificando el nmero de veces que la base de tiempo se debe
repetir para llegar a los 10 segundos. Por lo tanto, si la base de tiempo es de un segundo,
entonces el temporizador debe contar diez veces antes de activar su salida. A este nmero
de cuentas se le llama comnmente tick. Las bases de tiempo ms comunes son 0,01
segundos, 0,1 segundos y 1 segundo.
Controladores
Programables
Ramn
Medina
Pgina 29
de 89
Lenguajes de Programacin
Bases de tiempo
Los temporizadores son usados para aadir un determinado lapso de tiempo a una salida del
programa. Las aplicaciones de los temporizadores en un controlador son innumerables, ya
que han reemplazado casi completamente a sus contrapartes de hardware. Como ejemplo,
un temporizador puede ser utilizado para introducir un retardo de 0,01 segundos en un
programa de control. El programa requiere el retardo, porque de otra forma el controlador
encender sus salidas demasiado rpido en comparacin con el sistema cableado de rels
que est reemplazando. Este pequeo retardo disminuye la velocidad de repuesta de otros
componentes, de tal manera que la operacin del sistema sea la correcta.
Las instrucciones de conteo, son utilizadas para contar eventos tales como partes que
transitan por una banda transportadora y el nmero de veces que una vlvula solenoide se
enciende, entre otros. Los contadores, junto con los temporizadores, deben tener dos
valores, el valor final y el valor acumulado. Estos valores son almacenados en la tabla de
datos. El valor final es el nmero de ticks o cuentas que debe ser alcanzado antes de que el
temporizador o contador encienda su salida. El valor acumulado es el nmero actual de ticks
o cuentas que han transcurrido desde que el temporizador o contador inici su operacin.
Ambos registros son definidos al momento de programar la instruccin.
Ejemplo 8
Durante la ejecucin de un proyecto de modernizacin, se encontr que una parte del
circuito de escalera al ser configurado en el controlador, no funcionaba correctamente. Este
malfuncionamiento se deba al hecho de que en el circuito cableado, el rel CR5, que era
energizado a travs del dispositivo LS4, tena un tiempo de retardo suficientemente grande
como para sincronizarse con el resto del circuito permitiendo que la actuacin del solenoide
fuera la correcta. Ahora que ha sido implementado en el controlador, el rel CR5 no tiene el
retardo. El retardo requerido se estima en 3 ciclos AC (60 Hz) y las bases de tiempo
disponibles en el controlador son 0,01, 0,1 y 1 segundo. Cul base de tiempo debe ser usada
para crear el retardo y cuntos ticks debe demorar?
Solucin
El retardo estimado de 3 ciclos AC se calcula de la siguiente manera:
Controladores
Programables
Ramn
Medina
Pgina 30
de 89
Lenguajes de Programacin
1
= 16,66 milisegundos
60
3
= 50,00 milisegundos
3 ciclos =
60
1 ciclo =
Instrucciones de Temporizado
Los controladores proveen varios tipos de instrucciones de temporizado. Sin embargo, los
distintos fabricantes dan diferentes definiciones para las funciones de temporizado que
ofrecen.
Instrucciones de temporizado
Instruccin de temporizado
en formato de bloque y de
diagrama de escalera
Controladores
Programables
Ramn
Medina
Pgina 31
de 89
Lenguajes de Programacin
Controladores
Programables
Ramn
Medina
Pgina 32
de 89
Lenguajes de Programacin
Energizado en ENCENDIDO
El temporizador con retardo para encender (TON) proporciona una accin retardada o mide
la duracin de un evento. Una vez que el peldao tiene continuidad, el temporizador
contina contando los intervalos de tiempo (ticks) y lo hace hasta que el tiempo acumulado
iguala al tiempo prefijado. Cuando los dos valores son iguales, el temporizador energiza su
salida y cierra los contactos demorados asociados con la salida. El contacto demorado puede
ser usado en el programa tanto normalmente abierto como normalmente cerrado. Si la
continuidad lgica se pierde antes de que el temporizador finalice su conteo, este reinicializa
su registro acumulador a cero.
Desenergizado en ENCENDIDO
La instruccin de desenergizado en encendido (TON) opera de manera similar a como lo hace
la de energizado en encendido, con la diferencia de que la salida del temporizador inicia
ENCENDIDA. La instruccin desenergiza la salida una vez que el peldao tienen continuidad
lgica y que el lapso de tiempo ha transcurrido (valor del registro acumulador igual al del
registro preestablecido). Los fabricantes de controladores normalmente proporcionan slo
Controladores
Programables
Ramn
Medina
Pgina 33
de 89
Lenguajes de Programacin
Energizado en APAGADO
Una instruccin de temporizador energizado en APAGADO proporciona una accin
demorada. Si el peldao no tiene continuidad, el temporizador comienza el conteo de los
intervalos de tiempo hasta que el valor acumulado iguala al valor prefijado. Cuando los
valores son iguales, el temporizador energiza su salida y cierra el contacto demorado
asociado. El contacto demorado puede ser usado en el programa normalmente abierto o
normalmente cerrado. Si la continuidad lgica ocurre antes de que el temporizador finalice
su conteo, el valor acumulado retorna a cero.
Temporizador de energizado
en apagado
Controladores
Programables
Ramn
Medina
Pgina 34
de 89
Lenguajes de Programacin
Desenergizado en APAGADO
La instruccin de desenergizado en APAGADO (TOF) opera de manera similar a como lo hace
la de desenergizado en encendido; sin embargo, la salida del temporizador est ENCENDIDA
y ser apagada cuando el peldao pierda continuidad lgica y el lapso de tiempo establecido
haya transcurrido. Algunos fabricantes de controladores proporcionan slo uno de los
temporizadores de desenergizado, ya que es muy sencillo implementar uno a partir del otro.
La figura a continuacin, muestra los diagramas de tiempo correspondientes.
Diagrama de tiempo para (a)
una instruccin de
energizado en apagado y (b)
desenergizado en apagado
Retentivo en ENCENDIDO
Un temporizador retentivo con retardo en ENCENDIDO (RTO) es utilizado en los casos en que
el valor acumulado deba ser mantenido an cuando la continuidad lgica o la energa del
sistema. Si el peldao tiene continuidad lgica, el temporizador comienza el conteo de los
intervalos de tiempo hasta que el valor acumulado iguala al preestablecido. El acumulador
mantiene su valor, an si la energa o la continuidad lgica se pierden antes de que el
temporizador haya finalizado su conteo. Cuando el tiempo acumulado igual al
preestablecido, el temporizador energiza su salida y cierra los contactos asociados. Los
contactos pueden ser usados normalmente abiertos o cerrados. La instruccin de
reinicializacin del temporizador retentivo regresa el valor acumulado a cero.
Reinicializacin de Retentivo
La instruccin de reinicializacin del temporizador retentivo es la nica manera para
reinicializar automticamente el valor acumulado. Si el peldao tiene continuidad lgica, esta
instruccin reinicializa el valor acumulado a cero. La direccin de la instruccin de
reinicializacin debe ser igual a la del temporizador retentivo.
Controladores
Programables
Ramn
Medina
Pgina 35
de 89
Lenguajes de Programacin
Instrucciones de Conteo
Existen dos tipos bsicos de contadores: los que cuentan hacia arriba y los que lo hacen hacia
abajo. El formato puede variar segn el controlador. En algunos controladores se usa un
formato de escalera, mientras que en otros se usa de bloque. La figura a continuacin
muestra ambos formatos.
Tipos de contadores
Contador Ascendente
El contador ascendente (CTU) aade una cuenta, cada vez que el evento referido ocurre. En
una aplicacin de control, este contador enciende o apaga un dispositivo luego de alcanza un
cierto conteo. Adems, este contador puede llevar registro del nmero de partes (botellas,
piezas, etc.) que pasan por un cierto punto. Un contador ascendente incrementa su valor
Controladores
Programables
Ramn
Medina
Pgina 36
de 89
Lenguajes de Programacin
acumulado cada vez que el evento hace una transicin de APAGADO a ENCENDIDO. Cuando
el valor acumulado alcanza el valor prefijado, el contador enciende su salida, finaliza el
conteo y cierra el contacto asociado. Luego de que el contador alcanza su valor prefijado,
inicializa el valor de su acumulador o simplemente continua contando cada evento que
suceda.
Contador Descendente
Un contador descendente (CTD) decrementa el valor de conteo cada vez que ocurre un
evento determinado. En muchas ocasiones es utilizado en conjunto con un contador
ascendente para formar un contador ascendente/descendente, sobre la base de que ambos
contadores tengan los mismos registros. En un contador bidireccional, el contador
descendente proporciona una manera de corregir informacin introducida por el
ascendente. Por ejemplo, mientras que un contador ascendente totaliza el nmero de
botellas llenas que pasan por un cierto punto, un contador descendente con el mismo
registro puede restar una del valor acumulado, cada vez que detecta que est
incorrectamente llena. Dependiendo del tipo de controlador, el contador descendente puede
detenerse al llegar a cero o continuar hasta un nmero negativo mximo. En el formato de
bloque, el conteo descendente ocurre cada vez que la entrada correspondiente pasa de
APAGADO a ENCENDIDO.
Inicializacin de Contador
La instruccin de inicializacin del contador (CTR) coloca un valor cero en el registro
acumulador. Al programarlo, esta instruccin tendr la misma direccin que la del contador
al que inicializa. Si el peldao donde est esta instruccin de inicializacin tiene continuidad
lgica, entonces inicializa el contador. La lnea de inicializacin en el formato de bloque
almacena un cero en el registro acumulador. La figura a continuacin muestra un ejemplo
tpico de un contador en formato de bloque con instrucciones de conteo ascendente,
descendente y de inicializacin. El contador incrementar su valor acumulado hasta que el
contacto 10 se cierre, lo decrementar hasta que cierre el contacto 11 y se reinicializar a
cero cuando cierre el contacto 12. Si el conteo es igual a 15, la salida 100 se encender. Si el
contenido del registro 1003 es mayor que 15, la salida 101 se encender. La salida 102 se
encender cuando el valor acumulado sea menor que 15.
Controladores
Programables
Ramn
Medina
Pgina 37
de 89
Lenguajes de Programacin
Ejemplo 9
La figura a continuacin muestra un bloque contador empleado para totalizar las partes que
son detectadas por un sensor fotoelctrico (PE). El valor predefinido de conteo es de 500. Se
pide modificar el circuito de tal manera que el contador se inicialice automticamente cada
vez que llegue a 500. Adicionalmente, se pide aadir las instrucciones necesarias para
implementar una salida que indique cuando el conteo haya llegado a 500.
Solucin
La siguiente figura muestra el circuito que inicializar el contador automticamente. Cuando
el valor prefijado y el acumulado se igualan, la salida 100 del contador se ENCIENDE,
enganchando la salida 101 para indicar que se alcanz el conteo. La misma salida del
contador lo inicializa. Recuerda que el controlador ha evaluado todas las entradas, de tal
manera que el contador estar inicializado para el prximo ciclo de ejecucin. La entrada 11
es utilizada para desenganchar manualmente la salida 101.
Controladores
Programables
Ramn
Medina
Pgina 38
de 89
Lenguajes de Programacin
Ejemplo 10
Resuelva el caso del ejemplo 9 utilizando permisivos en lugar de bobinas con memoria.
Solucin
La siguiente figura ilustra el circuito de permisivos que engancha la salida del contador,
indicando que est alcanz el valor predeterminado. El pulsador de inicializacin (entrada 11)
es programado como normalmente cerrado a partir de un dispositivo normalmente abierto.
Si la entrada es de importancia para efectos de seguridad, entonces el circuito debe
incorporar un pulsador normalmente cerrado que sea programado con una instruccin
examinar APAGADO.
Controladores
Programables
Ramn
Medina
Pgina 39
de 89
Lenguajes de Programacin
Controladores
Programables
Ramn
Medina
Pgina 40
de 89
Lenguajes de Programacin
Instrucciones de control de
flujo
Controladores
Programables
Ramn
Medina
Pgina 41
de 89
Lenguajes de Programacin
Fin
La instruccin fin (END) establece el final de una zona controlada por un rel de control
maestro (MCR) o por una instruccin de control de ltimo estado de la zona (ZCL). Esta
instruccin tpicamente es incondicional. Esta instruccin puede o no referenciar a una
instruccin MCR o ZCL. Si lo hace, la instruccin termina ese MCR o ZCL especfico. Si no es
as, terminar la ltima instruccin MCR o ZCL.
Ir a
La instruccin ir a (JMP) permite que la secuencia de ejecucin del programa sea alterada
bajo ciertas condiciones. Si existe continuidad lgica en el peldao, la instruccin JMP le
indica al procesador que vaya directamente a ejecutar el peldao indicado. Al usar esta
instruccin, el controlador puede alterar el orden de ejecucin del programa de control
ejecutando los peldaos que requieren atencin inmediata. La figura a continuacin ilustra
un ejemplo de uso de la instruccin JMP. Es necesario tener especial cuidado cuando se
'salte' sobre contadores y temporizadores ya que esto evita que dichas instrucciones realicen
su trabajo.
Controladores
Programables
Ramn
Medina
Pgina 42
de 89
Lenguajes de Programacin
Ejecutar Subrutina
Similar a la instruccin JMP, ejecutar subrutina (GOSUB) permite que sea alterada la
ejecucin secuencial de un programa dada una condicin. Al usar esta instruccin, si la
condicin lgica es VERDAD, la salida GOSUB le indica al procesador que transfiera la
ejecucin del programa de control a la etiqueta (LBL) especificada.
El procesador contina la ejecucin hasta que encuentra una instruccin de retorno. Cada
subrutina en el programa debe comenzar con un peldao etiquetado y terminar con una
instruccin de retorno incondicional.
La instruccin GOSUB es muy til cuando una porcin del programa es referenciada por
varias secciones del programa de control principal o es utilizada cada vez que transcurre un
determinado lapso de tiempo. Normalmente las subrutinas estn localizadas al final del
programa o en un rea especificada por el fabricante del controlador. Si el controlador no
tiene un rea reservada para subrutinas, es posible crearla programando un peldao falso
con control directo a otro peldao falso al final de las subrutinas programadas.
Controladores
Programables
Ramn
Medina
Pgina 43
de 89
Lenguajes de Programacin
Controladores
Programables
Ramn
Medina
Pgina 44
de 89
Lenguajes de Programacin
Etiqueta
Una etiqueta (LBL) identifica un peldao destino de una instruccin GOSUB. La direccin de
referencia de la instruccin LBL debe ser igual a la de la instruccin GOSUB con la cual
funciona. La instruccin LBL no contribuye a la continuidad lgica del peldao, y para efectos
prcticos, siempre es VERDAD.
Esta instruccin debe ser siempre la primera condicin en el peldao. Una etiqueta que haya
sido referenciada por una direccin nica, slo puede ser usada una vez en un programa.
Retorno
La instruccin de retorno (RET) termina una subrutina y es programada sin entradas
condicionales. Cuando el programa de control se encuentra con la instruccin, retorna al
programa principal, a partir del peldao inmediato siguiente a la instruccin GOSUB que
inici la ejecucin de la subrutina. A partir de ese momento, continua la ejecucin normal.
Cada subrutina debe tener una instruccin de retorno.
Controladores
Programables
Ramn
Medina
Pgina 45
de 89
Lenguajes de Programacin
Instrucciones Aritmticas
Las instrucciones aritmticas en un controlador incluyen las cuatro operaciones bsicas de
suma, resta, multiplicacin y divisin. En adicin a dichas operaciones bsicas, algunos
controladores incluyen el clculo de raz cuadrada.
Instrucciones aritmticas
Como otras instrucciones, las aritmticas puede estar en formato bsico o de bloque; sin
embargo, la operacin es bsicamente la misma. La figura a continuacin ilustra los
diferentes formatos.
Controladores
Programables
Ramn
Medina
Pgina 46
de 89
Lenguajes de Programacin
Bobina, contacto e
instruccin aritmtica en
formato de bloque
La mayora de las instrucciones aritmticas requieren de tres registros, dos para los
operandos y uno para el resultado. Lagunas instrucciones, como la multiplicacin y la
divisin, pueden usar cuatro registros. La mayora de las operaciones aritmticas en un
controlador requieren aritmtica de simple precisin, lo cual implica que los resultados
pueden ser almacenados en un registro cada uno. Para operaciones que requieran manejar
nmeros grandes, algunos controladores ofrecen aritmtica de doble precisin. En trminos
prcticos esto significa que los resultados requieren el doble de registros para ser
almacenados. Por ejemplo, una operacin de suma en doble precisin requiere seis registros.
Un registro puede almacenar como valor mximo el nmero 65.535 en 16 bits si no se
considera signo. Si el bit ms significativo es utilizado para el signo, entonces el rango de
representacin ser desde -37.678 hasta -37.677. Si el resultado de la operacin es mayor
que el mximo soportado, se presenta una condicin de desbordamiento y se encender un
bit o salida asociado a esta condicin. El formato numrico empleado en las operaciones
matemticas vara de acuerdo al controlador, pero normalmente es de tres, cuatro o cinco
dgitos binarios (BCD o binario)- En simple precisin BCD, el valor mximo es 9.999 (sin signo)
y +/-999 (con signo).
La figura a continuacin presenta instrucciones aritmticas en formato tanto de escalera
como de bloque. El formato de escalera requiere de instrucciones de transferencia de datos
para obtener los operandos. En el formato de bloque funcional, algunos fabricantes
proporcionan la habilidad de colocarlos en cascada.
Configuracin en cascada
que permite la ejecucin de
varias funciones aritmticas
en secuencia
Controladores
Programables
Ramn
Medina
Pgina 47
de 89
Lenguajes de Programacin
La posibilidad de colocarlos en cascada es muy til cuando se tiene que trabajar con
mltiples operaciones aritmticas, ya que una instruccin activa la siguiente una vez que ha
finalizado. Otros fabricantes permiten que las operaciones aritmticas se ejecutadas usando
bloques de varios registros contiguos como operandos para almacenar los resultados en otro
bloque de registros.
Operacin aritmtica en
forma de bloque funcional
En este caso, el contenido de los registros 1000, 1001, 1002 y 1003 van a ser sumados a los
registros 1200, 1201, 1202 y 1203 y el resultado almacenado en 1400, 1401, 1402 y 1403.
Suma
Escalera
La instruccin de suma en formato de escalera suma los valores almacenados en dos
posiciones de memoria referenciadas por la instruccin. Cada controlador accede a dichos
valores de manera distinta. Algunos usan la instruccin de transferencia de datos obtener
(GET) para acceder a los registros de los operandos.
Ramn
Medina
Pgina 48
de 89
Lenguajes de Programacin
entonces dichas condiciones han de ser programadas antes del peldao con la operacin de
suma. La condicin de desbordamiento es tpicamente sealada por un bit en registro de
resultado.
Bloque
La instruccin de suma en formato de bloque, suma dos valores almacenados dentro del
controlador y coloca el resultado en el registro especificado. Los operandos pueden ser
constantes, valores provenientes de las tablas de entradas y salidas o variables almacenadas
en la memoria.
Una lnea de control habilita la operacin de suma. Cuando la condicin del peldao es
VERDAD, el procesador lleva a cabo la operacin de suma. En la figura anterior, los registros
1000 y 1001 pueden tener valores preestablecidos, registros de almacenamiento o registros
de entradas y salidas. Cada vez que una transicin de APAGADO a ENCENDIDO habilita la
lnea de control, la instruccin suma los valores de los dos registros y coloca el resultado en la
direccin 2000. La salida de terminado indica que la instruccin fue completada. Esta salida
permanece ENCENDIDA en tanto la lnea de control sea VERDAD. Si se produce un
desbordamiento como resultado de la operacin, se enciende la salida correspondiente.
Cuando esto sucede, el controlador almacena como resultado, el mximo valor que l pueda
manejar.
Controladores
Programables
Ramn
Medina
Pgina 49
de 89
Lenguajes de Programacin
Algunos controladores usan aritmtica de doble precisin cuando trabajan con formato de
bloque. Esta operacin es idntica en esencia y slo difiere en que se emplean dos registros
por operando y dos para el resultado.
Ejemplo 11
En la figura siguiente, dos ingredientes son aadidos al tanque de un reactor para su
mezclado. Los mdulos de entrada analgicas, que proporcionan informacin de 12 bits en
formato BCD, envan datos de los flujos de los dos ingredientes al controlador. Los valores
son almacenados en los registros 1000 y 1001. Se pide implementar instrucciones que lleven
el control del monto total de los ingredientes combinados, de tal manera que dicha
informacin puede ser desplegada en el monitor del operador.
Controladores
Programables
Ramn
Medina
Pgina 50
de 89
Lenguajes de Programacin
Solucin
Un registro puede mantener el total de ambos ingredientes luego de aadir los dos flujos. La
siguiente figura muestra cmo usar la instruccin sumar para almacenar el resultado BCD en
el registro 2000.Ntese que dicho bloque est siempre activo.
Resta
Escalera
La instruccin de substraccin resta los valores almacenados en dos registros. Como en la
instruccin de suma, si el peldao est habilitado, la operacin se ejecuta. Una instruccin de
transferencia de datos GET es la que usualmente accede a los registros donde se encuentran
los operandos. El resultado de la resta normalmente tiene un bit que indica un resultado
negativo.
Instruccin de resta en
formato de escalera
Bloque
La instruccin de resta determina la diferencia entre dos valores y almacena el resultado en
un registro.
Controladores
Programables
Ramn
Medina
Pgina 51
de 89
Lenguajes de Programacin
Cuando la entrada de control est en estado lgico uno, el procesador ejecuta la operacin.
Tres registros mantienen la informacin durante la operacin. Los valores contenidos en los
registros pueden variar en formato e incluir o no el bit de signo. En la figura anterior, el
registro 1000 puede contener el nmero 9.009 y el registro 1001 -10.020. El resultado de esa
operacin sera 19.029, que sera almacenado en el registro 2000.
El algunos casos, el formato del registro de salida no incluye el signo y el controlador sealiza
este dato utilizando salidas independientes que sealan si el resultado fue positivo, negativo
o cero.
Ramn
Medina
Pgina 52
de 89
Lenguajes de Programacin
Multiplicacin
Escalera
La multiplicacin en formato de escalera trabaja sobre dos operandos y usa dos registros
para depositar el resultado, esto porque en la mayor parte de los casos, el producto de dos
nmeros de cuadro dgitos produce un valor de ms de 4 dgitos. Algunos controladores
proporcionan registros adyacentes para almacenar el resultado.
Instruccin de multiplicacin
en formato de escalera
Dependiendo del controlador, una o dos bobinas referencian a los registros que contienen el
resultado de la multiplicacin. Las instrucciones GET permiten acceder a los registros
operandos. Si se requiere que una condicin habilite la operacin, esta debe ser programada
antes de que el peldao de multiplicacin acceda a los operandos. En la figura anterior, el
contenido de los registros 1000 y 1001 sern multiplicados y el resultado almacenado en los
registros 2000 y 2001.
Bloque
El bloque de multiplicacin (MUL) usa dos registros para almacenar el resultado y un registro
para cada operando. La siguiente figura ilustra el bloque de multiplicacin, con una lnea de
control que habilita la operacin.
Controladores
Programables
Ramn
Medina
Pgina 53
de 89
Lenguajes de Programacin
Bloque funcional de
multiplicacin
El controlador puede utilizar doble precisin para el bloque de multiplicacin, por lo cual
utilizara el doble de registros para operandos y resultado. Esto permitira que un nmero de
8 dgitos BCD pudiera ser multiplicado por otro nmero de 8 dgitos BCD produciendo un
resultado de hasta 16 dgitos BCD, almacenado en 4 registros. Algunos controladores usan
escalamiento, en los cuales el resultado de la multiplicacin es mantenido temporalmente en
dos registros y luego multiplicado por un valor de escalamiento (ver siguiente figura). Por
ejemplo, supongamos que el controlador maneja formato de 4 dgitos BCD y que los registros
1000 y 1001 contienen los valores 9.001 y 8.172 respectivamente, con un factor de
escalamiento de -5 (o 10 elevado a la -5). Si el controlador usa escalamiento, almacenar el
resultado (73.556.172) en dos registros temporales (7355 en uno y 6172 en el otro) y luego lo
multiplicar por el valor de escalamiento resultando 735,56173. Este resultado es
redondeado a 736 y almacenado en un nico registro. Conociendo que el resultado ha sido
escalado, el usuario puede determinar el valor actual.
Controladores
Programables
Ramn
Medina
Pgina 54
de 89
Lenguajes de Programacin
Divisin
Escalera
La instruccin DIV encuentra el cociente de dos nmeros. Este cociente es almacenado en
dos registros y referenciado por una bobina de salida. El primer registro contiene la parte
entera del cociente y el segundo la fraccin decimal. Los operandos son recolectados
utilizando una instruccin GET.
Instruccin de divisin en
formato de escalera
Bloque
El bloque funcional DIV calcula el cociente de dos nmeros, almacenando el resultado en uno
o ms registros. El clculo de la divisin se inicia cuando el peldao de la lnea de control
tiene continuidad lgica. El registro 1000 (dividendo) es dividido por el contenido del registro
1001 (divisor) y el resultado es almacenado en dos registros contiguos.
En este caso, los registros destino son el 2000, que almacena la parte entera del resultado y
el 2001, que almacena la fraccin decimal. Dependiendo del controlador, el segundo registro
puede contener el residuo en lugar de la fraccin decimal. Algunos controladores permiten la
utilizacin de un factor de escalamiento especificado en el bloque de divisin. Este factor
permite la obtencin de fracciones como resultado.
Dependiendo del controlador que sea usado, un bloque de divisin puede tener tres posibles
salidas. Cuando est energizado, la salida del tope indica si la operacin fue exitosa, el
segundo refleja un desbordamiento o error (divisin por cero) y la de abajo seala si el
resultado tiene o no un residuo.
Controladores
Programables
Ramn
Medina
Pgina 55
de 89
Lenguajes de Programacin
Raz Cuadrada
El bloque de raz cuadrada (SQR) tiene generalmente dos o tres registros, uno que mantiene
el operando y uno (o dos) que contiene el resultado. Uno de los registros para el resultado
puede contener la parte entera y el otro la fraccin decimal. El procesador puede tambin
proporcionar la posibilidad de usar un factor de escalamiento. Cuando el peldao tiene
continuidad lgica, se ejecuta la operacin. La primera salida seala si la operacin fue o no
exitosa y la segunda, si existe una condicin de desbordamiento.
Bloque funcional de raz
cuadrada
La operacin de raz cuadrada es til en aplicaciones como el clculo del flujo a partir de la
presin diferencial en una placa orificio. En esta aplicacin, la rata de flujo (Q) es igual a una
constante (K) multiplicada por la raz cuadrada de la presin diferencial (Pa= Pout - Pin). Es
necesario calcular la raz cuadrada del valor analgico proveniente de la placa orificio y el
resultado, multiplicado por la constante K. El valor final proporciona el volumen por unidad
de tiempo.
Controladores
Programables
Ramn
Medina
Pgina 56
de 89
Lenguajes de Programacin
Instrucciones de
manipulacin de datos
Comparacin de Datos
Las instrucciones de comparacin de datos (CMP) como lo implica su nombre, comparan
valores almacenados en dos registros. Estas instrucciones son tiles cuando se verifica el
rango de datos de una variable. En algunos controladores, las instrucciones de comparacin
de datos son expresadas en formato bsico de escalera, mientras que en otros, son bloques
funcionales. En ambos formatos, proporcionan tres comparaciones bsicas: igual a, menor
que y mayor que. Con base en el resultado de la comparacin, el procesador puede encender
o apagar salidas y llevar a cabo otras operaciones.
Las instrucciones de comparacin que usan el formato bsico de escalera operan de manera
similar a como lo hacen las instrucciones aritmticas. Si el peldao tiene continuidad, la
Controladores
Programables
Ramn
Medina
Pgina 57
de 89
Lenguajes de Programacin
Comparaciones en formato
de escalera
Las instrucciones de comparacin tpicas son mayor que (>), menor que (<) e igual a (=),
adems de las combinaciones entre ellas. La instruccin GET accede al primer registro a ser
comparado. Las condiciones de la escalera son programadas antes de las instrucciones GET y
CMP.
En la figura anterior, si el contacto 10 cierra, el contenido del registro 600 es comparado con
el del registro 501; si son iguales, se enciende la bobina 100. Si se cierra el contacto 11, el
contenido del registro 601 es comparado con el contenido del registro 502; si es mayor o
igual, se enciende la salida 101.
El bloque funcional de comparacin (mostrado en la siguiente figura), compara el contenido
de dos registros, el 2000 y el 2001, para determinar en este caso si son iguales. El bloque
energiza la salida 100 cuando se ejecuta la comparacin y la 101, si la comparacin es
satisfecha. Algunos controladores pueden tener un bloque de comparacin con varias
salidas, que llevan a cabo mltiples comparaciones a la vez. Este tipo de bloques de
comparacin enciende la salida que corresponde al resultado obtenido.
Algunos controladores ofrecen otra opcin de comparacin que usa un registro para
implementar un lmite (LIM). Esta instruccin compara el valor en tres registros para
determinar si el dato en el registro del medio, entra comprendido entre los valores
almacenados en los otros registros. Por ejemplo, el bloque funcional de lmite que se
muestra en la siguiente figura, compara los contenidos de los registros 1100, 1200 y 1300
para determinar si el valor en 1200 es menor o igual que el contenido en 1100 y si es mayor o
Controladores
Programables
Ramn
Medina
Pgina 58
de 89
Lenguajes de Programacin
Ejemplo 11
La figura a continuacin muestra una seccin del programa de un ejemplo anterior en el que
una instruccin de suma (ADD) fue usada para llevar registro de los dos ingredientes que
estaban siendo aadidos al tanque reactor. Los dos primeros peldaos abren las vlvulas de
los ingredientes A y B, permitiendo que sean aadidos al tanque una vez que el comando
correspondiente se ha encendido (entrada 10). Se pide implementar un bloque de
instruccin que asegure que la vlvula se cierre cuando el ingrediente A alcance 500 galones
y el B alcance 750 galones.
Solucin
La siguiente figura ilustra el uso de instrucciones de comparacin que detectan cuando la
cantidad de cada ingrediente llega a su mximo. Las salidas de las instrucciones de
comparacin son utilizadas como permisivos para romper la continuidad de los circuitos de
Controladores
Programables
Ramn
Medina
Pgina 59
de 89
Lenguajes de Programacin
cada vlvula. Los valores de los flujos de cada ingrediente (registros 1000 y 1001) son
comparados con dos constantes (K).
Matriz Lgica
Un bloque funcional de matriz lgica implementa operaciones lgicas AND, OR, OR exclusivo,
NAND, NOR y NOT sobre dos o ms registros. La siguiente figura muestra una funcin tpica
de matriz lgica.
Una operacin de matriz lgica entre dos registros puede ser usada para enmascarar cierto
bit del dato original y pasar slo el estado de esos bits al registro de salida. La entrada de
control de habilitacin dispara la ejecucin del bloque de funcin de matriz lgica. El bloque
especifica el tipo de funcin lgica que ser ejecutada, mientras que el usuario especifica los
registros dentro del bloque. En la figura anterior, los registros 1000 y 1100 contienen los
operandos, mientras que el registro 2000 contiene el resultado. La longitud de la operacin
indica el nmero de palabras o registros adyacentes a cada registro.
Controladores
Programables
Ramn
Medina
Pgina 60
de 89
Lenguajes de Programacin
El bloque de funcin de matriz lgica tiene tres posibles salidas. Este energiza la salida
superior cuando la lnea de control est activa, energiza la salida del medio una vez que la
operacin ha sido completada y energiza la salida inferior si ocurri algn error. Como
ejemplo, examinemos la siguiente figura, que tiene una longitud de 8 y una funcin lgica
AND. Cuando la entrada de control habilita el bloque, la funcin lgica ejecutar la operacin
AND entre el contenido de los registros 1000 al 1007 con los de los registros 1100 al 1107.
Cada registro tpicamente puede almacenar 16 bits de datos. En este caso, el bloque de
funcin ejecutar una operacin AND de 128 bits, almacenando el resultado en los registros
2000 al 2007.
Algunos controladores tienen slo dos operandos (por ejemplo, R1000 y R1001). En ese caso,
ellos almacenan el resultado en uno de los registros que contiene uno de los operandos,
borrando el dato previamente almacenado. Se puede prevenir la prdida de la informacin
contenida en el registro sobrescrito, transfiriendo previamente su contenido a otro registro.
Controladores
Programables
Ramn
Medina
Pgina 61
de 89
Lenguajes de Programacin
Ejemplo de bloque de
funcin de matriz lgica
Conversin de Datos
La instruccin de conversin de datos cambia el contenido de un registro dado de un formato
a otro. Las instrucciones de conversin de datos tpicamente incluyen BCD a binario, binario a
BCD, absoluto, complemento e inversin.
Una instruccin de conversin de BCD a binario (BCD-BIN) convierte un dato de entrada en
formato BCD a formato binario. Esta conversin permite que el dato de entrada pueda ser
utilizado en operaciones matemticas. De manera similar, una instruccin binaria a BCD
convierte datos en formato binario a formato BCD, permitiendo su uso por dispositivos de
campo que operen en BCD.
La operacin del bloque de conversin de datos es bsicamente la misma, no importa cual
sea la direccin de la conversin. Cuando est habilitada la lnea de control, el bloque
convierte el contenido del primer registro (BCD o binario) a binario o BCD segn el tipo de
instruccin. Hecha la conversin, coloca el resultado en el segundo registro y energiza el
bloque de salida, una vez que la instruccin ha finalizado. Algunos controladores permiten
que varios registros sean convertidos al mismo tiempo, indicando la longitud de la
instruccin.
Controladores
Programables
Ramn
Medina
Pgina 62
de 89
Lenguajes de Programacin
Conversin de binario a
formato BCD
Conversin de binario a
formato BCD en mltiples
registros
Ramn
Medina
Pgina 63
de 89
Lenguajes de Programacin
Un bloque funcional de valor absoluto (ABS) calcula el valor absoluto del valor de entrada. Si
el operando es -5876, el resultado ser 5876. Un bloque funcional de complemento (COMPL)
cambia el signo del valor original. Si el valor de entrada es 5876, el resultado ser -5876.
La funcin de inversin (INV) invierte el estado de los bits del operando de entrada. Si el valor
en el registro de entrada es 0000 1111 0000 1111, el resultado ser 1111 0000 1111 0000 y
se encender el bloque de salida cuando la instruccin se haya completado.
Incremento
La instruccin INCR incrementa el contenido de un registro en uno. La instruccin es til, por
ejemplo, cuando se lleva registro de un nmero de eventos o de veces que se ejecuta una
rutina. El bloque de incremento puede ser usado con un contador que tenga un valor
Controladores
Programables
Ramn
Medina
Pgina 64
de 89
Lenguajes de Programacin
prefijado grande para llevar el conteo de cuntas veces se ha alcanzado el valor mximo del
contador.
Rotacin y Desplazamiento
Una instruccin de desplazamiento (SHIFT) mueve los bits de un registro de derecha a
izquierda o de izquierda a derecha segn el tipo utilizado. El bloque de desplazamiento utiliza
variables bit-in y bit-out para especificar la ubicacin del bit cuyo valor ser desplazado. La
variable bit-in es el valor que ser aadido al registro, mientras que la variable bit-out es el
valor que est siendo eliminado del registro. Estos bits pueden estar localizados en E/S reales
que pueden ser usados como salida o entrada de datos de una operacin de desplazamiento.
Ejecucin de un
desplazamiento a la derecha
Controladores
Programables
Ramn
Medina
Pgina 65
de 89
Lenguajes de Programacin
Ejecucin de rotacin a la
derecha
Controladores
Programables
Ramn
Medina
Pgina 66
de 89
Lenguajes de Programacin
Examinar Bit
El bloque funcional examinar bit (XB) verifica el estado (ENCENDIDO o APAGADO) de un
punto, bit o localidad de memoria. Este tipo de instruccin es usada cuando se emplean
'banderas' en un programa de control. Una bandera es un bit que es marcado para su
posterior evaluacin. En una instruccin examinar ENCENDIDO (XBON), el bloque verifica que
el bit especificado est ENCENDIDO. Si es as, el bloque energiza la salida. De manera similar,
la instruccin examinar APAGADO, verifica que el bit especificado est APAGADO.
Bloque funcional de
evaluacin de bit
Ejemplo 12
Una aplicacin de control est a cargo del manejo de un proceso por lotes donde la lectura
de una entrada de temperatura es crtica para este. El transductor de temperatura del
proceso est conectado a un mdulo de entradas analgicas de 4 canales de 0 a 10VDC con
12 bits de resolucin. Los 4 bits restantes de cada canal son usados como indicador de estado
del mdulo. Ilustre cmo verificar la presencia de una falla en una entrada analgica que
mida este crtico valor de temperatura.
Solucin
Verificando el bit 17 del registro 1000 por una condicin de APAGADO, es posible determinar
si el canal ha fallado. La siguiente figura muestra cmo una instruccin XBOFF consigue hacer
esta prueba. Cuando el bit 17 est APAGADO, se sabe que ha ocurrido una falla; si est
ENCENDIDO, el canal est bien.
Controladores
Programables
Ramn
Medina
Pgina 67
de 89
Lenguajes de Programacin
La instruccin que maneja la lgica de control es un contacto que se cierra cuando se lee la
seal analgica. Para que la instruccin est siempre operativa, an cuando no se est
leyendo valor alguno, la lnea de habilitacin debe estar programada sin condicionales.
Ramn
Medina
Pgina 68
de 89
Lenguajes de Programacin
usadas para transferir informacin son GET y PUT, las cuales son utilizadas para implementar
funciones aritmticas y de comparacin de datos. Una instruccin GET accede a la
informacin que se encuentra en un registro en particular, mientras que PUT sirve para
almacenar valores.
Instrucciones de
transferencia de datos
Mover
Esta instruccin (MOV) transfiere informacin de una localidad a otra, siendo el destino un
registro de un bit. La figura a continuacin muestra la funcin mover bit (MOVB) y mover
registro (MOVR). Algunos controladores ofrecen instrucciones para mover bytes.
Controladores
Programables
Ramn
Medina
Pgina 69
de 89
Lenguajes de Programacin
El bloque mover mscara transfiere informacin en el registro 1000 al 1100, con la excepcin
de los bits especificados como 0 en la mscara del registro 2000.
Otra instruccin de transferencia disponible en algunos controladores es mover estado. Esta
funcin transfiere el estado de los mdulos de E/S a registros de almacenamiento. Luego
puede ser enmascarada, comparada o evaluada para determinar el estado de fallas en el
sistema o en mdulos de E/S. Con esta informacin, el controlador puede tomar acciones
correctivas a travs del programa de control.
Mover Bloque
La instruccin mover bloque (MOVBK) copia un grupo de registros de un lugar a otro. La
longitud de los bloques es generalmente especificada por el usuario. La siguiente figura
muestra un ejemplo de esta instruccin.
Controladores
Programables
Ramn
Medina
Pgina 70
de 89
Lenguajes de Programacin
Cuando se energiza, la entrada de control dispara la ejecucin del bloque. Este entonces
transfiere informacin desde las localidades 1000 a la 1023 hasta 2000 a la 2003
respectivamente. Los datos en los registros 1000 al 1023 quedan inalterados. En algunos
controladores, el usuario puede especificar cuantas localidades pueden ser transferidas
durante un ciclo de ejecucin.
Mover Tabla
La instruccin mover tabla transfiere informacin desde un bloque o tabla hasta un registro o
palabra en la memoria. Existen dos tipos de instrucciones de movimiento de tabla: tabla a
registro (TABLE-REG) y registro a tabla (REG- TABLE). La caractersticas principal de esta
instruccin es el uso de un registro apuntador, que especifica la posicin dentro de la tabla
donde el registro ser almacenado. La siguiente figura muestra un ejemplo de esta
instruccin.
Controladores
Programables
Ramn
Medina
Pgina 71
de 89
Lenguajes de Programacin
Controladores
Programables
Ramn
Medina
Pgina 72
de 89
Lenguajes de Programacin
Ejemplo 12
Un proceso por lotes opera en turnos de 8 horas cada, donde son procesados lotes de
diferentes tamaos que son procesados a una velocidad aproximada de un lote por hora. Se
pide implementar instrucciones para almacenar la informacin del lote, incluyendo el
tamao del lote en galones y la hora del da en que el lote fue finalizado. El registro 1000
mantiene el valor de lotes totales mientras que el 1500 almacena la hora del da (en horas y
minutos) en formato BCD (HHMM).
Solucin
La siguiente figura ilustra una instruccin de transferencia registro a tabla que mover las
salidas de los registros 1000 y 1500, usando el mismo registro apuntador para almacenar la
informacin en dos tablas simultneamente. Esto asegura que el registro apuntador seale a
una cantidad de lote que corresponde a la hora en que este finalizar. La seal lote finalizado
(Batch Done), que tal vez venga de la apertura de la vlvula de descarga, dispara la ejecucin
de la instruccin de transferencia. Una vez que el registro es almacenado en la tabla, la
instruccin incrementa el apuntador. El apuntador es incrementado en slo uno de los
bloques para evitar doble incremento. El incremento ocurre luego de que ambos bloques
funcionales han sido ejecutados para asegurar que la informacin sea almacenado en la
misma posicin relativa dentro de cada tabla. En este caso la seal Batch Done es un
contacto transicional, de tal manera que la instruccin registro a tabla slo transfiera el
registro una vez a la posicin apropiada dentro de la tabla.
Controladores
Programables
Ramn
Medina
Pgina 73
de 89
Lenguajes de Programacin
Instruccin para
transferencia de bloques
Controladores
Programables
Ramn
Medina
Pgina 74
de 89
Lenguajes de Programacin
Instruccin para
transferencia de bloques
Transferencia ASCII
Las instrucciones de transferencia ASCII (ASCII XFER) transmiten informacin en formato
ASCII entre el controlador y un dispositivo perifrico. El bloque funcional opera en conjunto
con el mdulo de comunicacin ASCII. La comunicacin ASCII puede ocurrir de dos maneras:
leer informacin desde un perifrico o escribir datos en l. Este bloque funcional es usado
ampliamente en aplicaciones donde se requiere generacin de reportes. La siguiente figura
muestra un bloque funcional ASCII.
Controladores
Programables
Ramn
Medina
Pgina 75
de 89
Lenguajes de Programacin
Controladores
Programables
Ramn
Medina
Pgina 76
de 89
Lenguajes de Programacin
Una operacin FIFO consta de dos partes: una instruccin de entrada FIFO (FIFO IN) y otra de
salida (FIFO OUT). La instruccin FIFO IN carga la cola mientras que FIFO OUT la descarga. Las
instrucciones FIFO son tiles para almacenar informacin (recuperndola luego) de
naturaleza temporal, en la medida en que vaya estando disponible. Una aplicacin tpica es el
almacenamiento de recuperacin de datos que estn sincronizados con el movimiento
externo de partes en una banda transportadora.
Una transicin APAGADO-ENCENDIDO en la lnea de control se usa para iniciar el bloque
FIFO. Algunos bloques puede disponer de una lnea de inicializar para borrar la cola. En una
instruccin FIFO, el registro de entrada contiene el valor que va a ser ingresado en la cola. La
informacin es colocada en la cola cuando se ENCIENDE la lnea de control. La informacin de
la ltima posicin de la cola es colocada en el registro de salida. La longitud del FIFO
especifica el tamao de la cola.
La instruccin FIFO es muy til cuando se trata de mantener valores obtenidos de un proceso
en una 'ventana de tiempo en movimiento'. Por ejemplo, en la siguiente figura se muestra un
perfil de temperatura en funcin del tiempo. Si se desea mantener una ventana de tiempo
desde t0 hasta t1, los valores pueden ser almacenados en una cola. De esta manera, la cola
mantendr siempre los ltimos valores (desde t0 hasta t1).
Controladores
Programables
Ramn
Medina
Pgina 77
de 89
Lenguajes de Programacin
Perfil de temperatura
Ordenamiento
El bloque de funcin de ordenamiento (SORT) permite ordenar un bloque de registros, en
orden ascendente o descendente, de acuerdo a su contenido. La siguiente figura muestra un
bloque de ordenamiento en el cual el cierre del contacto 10, habilita la funcin. El bloque
ordena el contenido de los registros 1000 al 1017 en orden ascendente y almacena el
resultado en los registros 2000 al 2017. Este tipo de funcin es muy til cuando se calculan
estadsticos descriptivos tales como la mediana, operaciones stas que requieren que la
muestra est ordenada.
Bloque funcional para
ordenamiento ascendente
Controladores
Programables
Ramn
Medina
Pgina 78
de 89
Lenguajes de Programacin
Funciones especiales
Secuenciadores
Un bloque secuenciador (SEQ) es una potente instruccin que proporciona un mecanismo
para manipular un grupo de datos (secuencialmente) con base a una tabla de datos
predefinida.
Tabla secuenciadora
Controladores
Programables
Ramn
Medina
Pgina 79
de 89
Lenguajes de Programacin
Bloque funcional
secuenciador
Ejemplo 13
Una aplicacin exigen la implementacin de 10 pasos que deben ser ejecutados
secuencialmente. Con el propsito de detectar fallas en la secuencia, el cdigo del paso que
est siendo ejecutado, debe ser mostrado en una pantalla de visualizacin. Se pide
implementar un bloque de instruccin que satisfaga esta aplicacin.
Solucin
La siguiente figura muestra una manera de mostrar el cdigo del paso utilizando un registro
salida de 16 bits, conectado a un panel de visualizacin de 4 dgitos. El secuenciador
transfiere los cdigos de la tabla al registro de salida. El registro de salida es configurada de
tal manera que haga referencia al interface de salida (por ejemplo chasis 0, ranura 7, palabra
7). Cada vez que la seal Start of Process Step va de APAGADO a ENCENDIDO, la salida del
secuenciador enva la informacin al indicador.
Controladores
Programables
Ramn
Medina
Pgina 80
de 89
Lenguajes de Programacin
Diagnstico
El bloque de diagnstico (DIAG) compara dos bloques de memoria, uno que contiene las
condiciones de entrada actuales y que contiene los valores de referencia. La instruccin
compara esos bloques bit por bit para determinar si son idnticos. Si se presenta alguna
diferencia, la instruccin almacena el nmero y el estado del bit en un registro de
almacenamiento. Las instrucciones de diagnstico son tiles para identificar
malfuncionamiento de las mquinas.
La siguiente figura ilustra un bloque de diagnstico. La lnea de control, al estar energizada,
inicia el bloque de funcin. El bloque luego compara el contenido de los registros 1000 al
1007 con el contenido de los ubicados del 200 al 2007.
Controladores
Programables
Ramn
Medina
Pgina 81
de 89
Lenguajes de Programacin
Si encuentra alguna diferencia, almacena la informacin en el registro 3000 sin alterar otras
posiciones. Cuando finaliza la instruccin, se energiza la salida superior. La instruccin
energiza la segunda salida, slo cuando encuentra alguna diferencia.
PID
Los controladores capaces de ejecutar estrategias de control analgicos, sern los que
dispongan de bloques funcionales PID. El usuario especifica los parmetros asociados al
algoritmo, para el proceso de manera apropiada. La siguiente figura muestra un ejemplo de
este tipo de instruccin.
La entrada de control, al estar energizada, inicia la operacin automtica del bloque PID. La
entrada inferior, al estar energizada, determina si las variables del PID son monitoreadas
pero no procesadas. Si el bloque no est activado (por ejemplo en modo manual), el
controlador puede monitorear las variables si la lnea correspondiente est habilitada. El
Controladores
Programables
Ramn
Medina
Pgina 82
de 89
Lenguajes de Programacin
Controladores
Programables
Ramn
Medina
Pgina 83
de 89
Lenguajes de Programacin
Instrucciones para
comunicacin a travs de la
red
Cuando el controlador ejecuta una instruccin de comunicacin a travs de la red, este enva
la informacin al dispositivo correspondiente para procesar la transmisin. El formato de la
instruccin puede variar dependiendo del controlador. En algunos casos el controlador usa
instrucciones de transferencia de datos para acceder a la red mientras que en otros, emplea
instrucciones especficas. Por lo tanto, las instrucciones que se presentan aqu representan
una gua de referencia para ilustrar la implementacin.
La organizacin de una red depende de cmo sta est configurada. En algunos
controladores, la interface de red est incluida en el procesador principal, mientras que en
otros es un mdulo independiente. Sin importar el formato, ambos interfaces llevan a cabo la
misma funcin: comunicarse con la red. En los casos en que la interface de red est instalada
en las ranuras de E/S, el controlador provee uno de varios mecanismos para configurar la
red. Una solucin es especificar el mdulo de comunicaciones durante el proceso de
configuracin del sistema. Algunos controladores reconocen automticamente la presencia y
ubicacin del mdulo de comunicaciones. En otros casos, una instruccin de acceso a la red
permite identificar la localizacin del mdulo de red.
Los contactos y bobinas de salida en una red pueden ser referenciados como salidas y
contactos de red. Las salidas de red son salidas internas que estn tpicamente ubicadas en
posiciones especiales dentro de la tabla de datos, junto con otros registros asociados a la red.
Esos elementos pueden ser parte del rea de almacenamiento interno, pero con capacidades
adicionales relacionadas con la red. Por ejemplo (como se ilustra en la siguiente figura), si un
controlador tiene 512 posibles salidas internas, 64 de ellas pudieran ser usadas como salidas
de red. Asimismo, si dispone de 128 registros de almacenamiento, 32 de ellos podran ser
usados como registros de red. Esas direcciones asociadas a la red sern enviadas
automticamente si la red est activa.
Controladores
Programables
Ramn
Medina
Pgina 84
de 89
Lenguajes de Programacin
Mapa de direcciones
compatibles con red con
todos los nmeros en
notacin octal
Salida de Red
Una instruccin de salida de red, como se muestra en la siguiente figura, es usada en
conjunto con un contacto de red para transferir la informacin de un bit de estado del
controlador a la red.
Ramn
Medina
Pgina 85
de 89
Lenguajes de Programacin
Contacto de Red
Un contacto de red es una instruccin que captura la informacin de estado de una salida de
red. La direccin de referencia del contacto de red debe ser el mismo que de la salida de red
activa; de lo contrario, el contacto nunca ser evaluado. La referencia debe ser una direccin
vlida.
La figura anterior ilustra la operacin de una instruccin de contacto de red usada en
conjunto con una instruccin de salida de red. En esta instruccin, el procesador obtiene
informacin de la red a medida que lee el buffer de estado del mdulo de red, como si fuera
una pequea tabla de datos. Si la salida de red referenciada tiene estado lgico 1, el
controlador ejecutar la evaluacin de contactos abiertos o cerrados para proporcionar o
remover continuidad. Esta evaluacin depender de cmo fue configurado el contacto de red
(normalmente abierto o cerrado).
Enviar a la Red
La instruccin enviar a la red (NET SEND) enva la informacin de un registro a la red local.
Esta instruccin es habilitada a travs de la lnea de control. Puede incluir dos salidas para
indicar que la operacin fue ejecutada y que no se detect ningn error.
La siguiente figura ilustra una tpica instruccin de envo a la red. Si se especifica una longitud
de ms de uno, la red puede recibir ms de un registro (transmitido). Los registros a ser
transmitidos deben ser consecutivos. La instruccin de envo a la red operan normalmente
en conjunto con un de recepcin de la red.
Controladores
Programables
Ramn
Medina
Pgina 86
de 89
Lenguajes de Programacin
Recibir de la Red
La instruccin recibir de la red (NET RCV) captura informacin de registros disponible en la
red y la almacena en la tabla de datos del controlador. El usuario debe asegurarse que la
direccin de los registros solicitados est correctamente referenciada en la instruccin. Por
ejemplo, si una instruccin NET SEND usa los registros 400 al 403, el controlador que recibe
los datos debe hacer referencia a los mismos registros en la instruccin NET RCV.
La figura anterior ilustra el uso de instrucciones de recepcin de la red. Una vez que la
informacin de la red es capturada, esta es almacenada en los registros destino. Las salidas
disponibles sealan la completacin de la operacin y la presencia o no de errores.
Enviar Nodo
La instruccin enviar nodo (SEND NODE) opera de una manera ms directa que lo que lo hace
la instruccin NET SEND. En este caso, la informacin es transmitida a un nodo (controlador)
especfico en la red. Esencialmente, la instruccin SEND NODE implementa una funcin
copiar, donde varios registros del nodo fuente, son copiados en el nodo destino.
La siguiente figura ilustra la instruccin SEND NODE. La presencia de continuidad lgica en la
lnea de control, habilita la operacin del bloque, que enva el contenido de los registros al
nodo especificado como destino. El bloque almacena la informacin en los registros destino.
Al finalizar enciende la primera salida, y en caso de error, enciende la segunda.
Operacin de un bloque
funcional SEND NODE
Controladores
Programables
Ramn
Medina
Pgina 87
de 89
Lenguajes de Programacin
Obtener Nodo
La instruccin GET NODE recupera informacin de registros a partir de la informacin vertida
en la red por otro controlador. Esta instruccin esencialmente copia la informacin del nodo
origen al nodo destino.
La siguiente figura ilustra el uso de una instruccin GET NODE. Cuando el bloque est
habilitado, solicita el contenido de los registros especificados y almacena la informacin de
los registros destino del controlador que ejecuta la funcin. La primera salida se energiza
como seal de que la instruccin fue completada. La segunda se energiza si ocurre algn
problema de comunicacin durante la transmisin de los datos.
Operacin de un bloque
funcional GET NODE
Nemotcnicos Booleanos
Los nemotcnicos booleanos constituyen un lenguaje de programacin de controladores
basado en operadores booleanos tales como AND, OR y NOT. Una instruccin nemotcnica
escrita en una forma abreviada que incluye de 3 a 4 letras del nombre de la correspondiente
operacin. La siguiente tabla muestra un conjunto de instrucciones booleanas tpicas y sus
smbolos en diagrama de escalera equivalentes. El lenguaje booleano es usado para ingresar
lgica en la memoria del controlador. Sin embargo, muchos controladores muestran la
instruccin ingresada como diagrama de escalera.
Controladores
Programables
Ramn
Medina
Pgina 88
de 89
Lenguajes de Programacin
Instrucciones booleanas y su
equivalente en diagrama de
escalera
Los operadores booleanos de salida mejorados, que llevan a cabo funciones de control
adicionales, son el resultado de actualizaciones del conjunto de instrucciones. La siguiente
figura muestra un programa en lenguaje booleano con su diagrama de escalera equivalente.
Programa en lenguaje
booleano y su representacin
en diagrama de escalera
Controladores
Programables
Ramn
Medina
Pgina 89
de 89