Contenido
=========
Necesidad y usos del PLC
Arquitectura Básica
CPU
Memoria
Entradas (diferentes tipos)
Salidas (diferentes tipos)
Arquitectura básica de un sistema de control
Concepto de Programa
Diferentes sistemas de Programación
Programación por Lógica de contactos
Tiempo de Scan
Nociones de Montaje e interconexión
Módulos Especiales.
NECESIDAD Y USOS
DEL PLC
========================
Comencemos caracterizando un proceso industrial como una operación
o
secuencia de operaciones en las que las variables del
proceso (sean
éstas temperaturas, desplazamientos, tiempos, etc)
están debidamente
acotadas para obtener resultados repetibles.
La gran mayoría de los procesos industriales requieren algún
tipo de
coordinación, supervisión o control. La necesaria
automatización de
estas funciones puede ser llevada a cabo de muy
diferentes formas,
pero hasta hace algunos años, la
práctica común consistía en el
control de secuencias de
operación en base a cuadros de
relés y la utilización de módulos especiales para control de variables
continuas como la temperatura y tableros de indicadores
(luminosos,
por ejemplo) para proveer la interfaz con un operador supervisor.
Lamentablemente, cuando debía
cambiarse el proceso, debían
realizarse modificaciones substanciales en el sistema de
control del
proceso y esto podría implicar grandes costos
y demoras. Cuando el
proceso era tal que eran previsibles modificaciones
periódicas del
mismo, este sistema de supervisión
y control estaba fuera de
consideración y se requería algún tipo de reconfigurabilidad
en el
mismo diseño inicial. Así, una secuencia que en un
sistema en el que
no se requería facilidad de modificación, estaba
gobernada por un
cuadro de relés, podía ser gobernada por un secuenciador
a levas en
un sistema más flexible.
Para llevar más allá la idea
de la flexibilidad, se concibió la
posibilidad de utilizar una computadora especializada en
el tipo de
tareas que normalmente se requería
de un control de un proceso
industrial: sensado de contactos, actuación de relés
y contactores,
conteo, temporización, procesamiento
de señales continuas (por
contraposición a las señales discretas o lógicas), etc.
El hecho de utilizar una computadora permite,
en la mayoría de los
casos cambiar la funcionalidad del control del proceso
sin más que
cambiar el programa, ya que en
general todos los "componentes"
necesarios como relés auxiliares, temporizadores, etc. se
encuentran
ya implementados en el
software interno de esta computadora
especializada que es ahora el control del proceso industrial.
En los
casos en que las modificaciones sean
tantas que la capacidad de
sistema inicial quede superada, por lo común será posible
expandirlo
con hardware adicional para cumplir con las nuevas exigencias.
La "especialización" de la computadora a la que
nos referimos es
básicamente de dos tipos: por un lado, y para
facilitar su uso como
control de proceso, debe ser programable con facilidad
por técnicos
habituados al funcionamiento de los
controles más tradicionales y
disponer de manera simple de todos los "componentes" de un sistema
de
control, a los que hacíamos referencia, listos
para ser utilizados.
Por otra parte, el tipo de construcción y su tolerancia a
condiciones
ambientales y eléctricas extremas, debe permitirle
desempeñarse con
confiabilidad en todo tipo de montaje industrial.
Esta computadora fácilmente programable para tareas
de control, y
concebida para ser utilizada en un ambiente industrial,
es lo que se
conoce como PLC, acrónimo de Programmable Logic
Controller, o sea
controlador lógico programable.
ARQUITECTURA BASICA DE UN PLC
=============================
Como toda computadora, el PLC posee una CPU, Memoria,
periféricos,
etc. Analizaremos las funciones de cada elemento.
La CPU, también llamada unidad central de proceso es la encargada
de
ejecutar el programa almacenado en
la memoria por el usuario.
Podemos considerar que la CPU toma, una a
una, las instrucciones
programadas por el usuario y las va ejecutando.
Cuando llega al
final de la secuencia de instrucciones programadas,
la CPU vuelve al
principio y sigue ejecutándolas de manera cíclica.
Como se dijo, la memoria almacena
el programa de aplicación o del
usuario, pero además guarda el estado de
variables internas del
programa como por ejemplo número
de piezas procesadas o máxima
temperatura medida. Los periféricos constituyen la interfaz
entre el
PLC y el sistema controlado.
Son como mínimo entradas y salidas
lógicas (o sea capaces de tomar solo dos valores: 1 ó
0, abierto o
cerrado, presente o ausente) y pueden
también, dependiendo de la
sofisticación de cada PLC, incluirse entradas y salidas analógicas
(o
sea, capaces de tomar cualquier valor
entre determinados máximo y
mínimo) o entradas especiales para pulsos de alta frecuencia como
los
producidos por encoders, o salidas para lazos de 4 a 20 mA.
El tipo más común de entrada lógica o binaria es la optoacoplada,
en
la que la corriente de entrada
actúa sobre un LED, que a su vez
ilumina un fototransistor que es quien en definitiva informa a
la CPU
el estado de la entrada en cuestión. No existiendo conexión
eléctrica
entre la entrada en sí y la CPU (ya que la información es
transmitida
por la luz) se logra alta aislación, de alrededor de
1.5 kV entre
entradas y masa.
El tipo de salida más común es el relé, que suma
a la aislación que
provee, la robustez y capacidad de manejo de
moderadas corrientes
tanto continuas como alternas. Su principal desventaja
es el tiempo
de respuesta, que puede resultar alto para
algunas aplicaciones.
Cuando esto sea un inconveniente, puede elegirse
en muchos casos el
tipo de salida a transistor, mucho más rápido, pero limitado al
manejo
de corriente continua y considerablemente menos robusto.
Otro tipo de salida, también de estado sólido es la
de tipo TRIAC.
El triac es una llave de estado
sólido para manejo de tensiones
alternas. Al igual que el transistor es rápido y menos
robusto que
el relé, pero a diferencia de aquél, puede manejar corriente alterna.
Todas las salidas del PLC deben protejerse contra las
sobretensiones
que aparecen sobre ellas, principalmente en el momento
del apagado
de las cargas a las que están conectadas.
En la sección dedicada a
instalación de sistemas daremos más detalles acerca de este tema.
Existen dos formas constructivas básicas para los PLC: el tipo fijo
y
el tipo modular. El primero consiste en un solo gabinete
en el que se
integran la CPU, la fuente de alimentación (para el
propio PLC y con
capacidad de reserva que le permite
también alimentar algunos
sensores), y una determinada cantidad
de entradas y salidas. La
posibilidad de expandir este tipo de PLC es baja o
nula. Por otra
parte están los PLC modulares, en
los que la CPU, la fuente de
alimentación, las entradas, las salidas, etc., son cada una un
módulo
que se elige en función de la aplicación
y se monta en riel o rack
para conseguir la capacidad de cálculo, entradas, salidas,
etc. que
la aplicación requiera. La capacidad
de expansión en este caso es
altísima ya que fácilmente se alcanzan miles de puntos de
entrada y
salida, conexión a redes
locales, dispositivos especiales de
vsualización, etc.
ARQUITECTURA BASICA DE UN SISTEMA DE CONTROL.
=============================================
Un sistema de control que emplea un PLC puede esquematizarse
como se
muestra a continuación:
+-----------------------------------------------+
¦
+-------+
+-------+ ¦
¦
¦ A ¦
¦ ¦ ¦
¦
¦ C ¦
¦ S ¦ ¦
¦
¦ T ¦
¦ E ¦ ¦
¦
¦ U ¦
PROCESO A ¦
N ¦ ¦
¦
¦ A ¦
¦ S ¦ ¦
+-------¦ ¦ D ¦
CONTROLAR ¦
O ¦ +------+
¦ ¦ ¦
O ¦
¦ R ¦ ¦ ¦
¦ ¦ ¦
R ¦
¦ E ¦ ¦ ¦
¦ ¦ ¦
E ¦ (X1; X2; .....; Xn) ¦
S ¦ ¦ ¦
¦ ¦ ¦
S ¦
¦ ¦ ¦
¦
¦ ¦ +-------+
+-------+ ¦ ¦
¦ +-----------------------------------------------+
¦
¦
¦
¦
+-------------------------------+
¦
¦
¦
¦
¦
+---------------¦
P L C
+--------------+
S Salidas ¦
¦ T Entradas
+-------------------------------+
¦
+---------------------------+
¦ VISUALIZACION
¦
+---------------------------+
Vemos aquí un esquema de un
proceso controlado por un PLC. El
proceso esta caracterizado por N variables X1
..... Xn. Existen
también T entradas al PLC, correspondiendo
cada una a un sensor de
alguna de las variables del proceso y S salidas del PLC que
llegan a
cada uno de los actuadores.
Estos actuadores son dispositivos de
diferente tipo que permiten modificar el estado del sistema
tal como
lo define el conjunto de sus variables cararterísticas.
Por ejemplo:
si el sistema fuera un reactor químico y consideramos
la variable
temperatura, el actuador podría ser
un calefactor y el sensor
correspondiente un termostato de tipo bimetálico
si estuvierámos
limitados a entradas lógicas, o una termocupla o una termoresistencia
si dispusiéramos de entradas adecuadas a alguno de estos dispositivos.
Con la estructura mostrada en el esquema,
la operación de nuestro
control de temperatura con PLC sería
la siguiente: el PLC lee
permanentemente la entrada correspondiente al sensor
se temperatura,
cuando encuentra que la temperatura es menor a la
deseada, conecta
el calefactor y lo desconecta cuando
es mayor que la deseada.
Podría, además utilizarse otra salida para activar una alarma
cuando
la temperatura está fuera de tolerancia
más de determinado tiempo.
Si tuviéramos la posibilidad de trabajar con un PLC
con entradas y
salidas analógicas, podríamos implementar
estrategias de control
mucho más elaboradas, como por ejemplo
control PID, control
adaptativo, etc.
El bloque indicado como VISUALIZACION en el diagrama
anterior puede
no estar presente en todos los sistemas.
Por la sencillez del ejemplo previo, quizá no puedan apreciarse
todas
las ventajas que la incorporación de un PLC al control
de un proceso
industrial pueda brindar, sin embargo si se considera
que el mismo
PLC pude controlar simultáneamente varios
lazos como el descripto,
además de funciones de secuenciamiento,
coordinación con otros
procesos, visualización de
estados, alarmas, etc.,
todo
integrado en un solo gabinete, y
que además es reprogramable para
adaptarse a posibles cambios en el diseño con facilidad, se
comprende
la importancia que tienen hoy en
día los PLC en la automatización
industrial.
Hasta este momento, hemos realizado
una descripción más o menos
simplificada de la estructura y operación
de un PLC típico.
Volveremos sobre algunos de estos
puntos más adelante, cuando
estudiemos 2 tipos específicos de PLC.
CONCEPTO DE PROGRAMA
====================
¿ Cuál es la principal diferencia entre
la implementación de un
sistema de control de la forma
tradicional (cuadro de relés,
hardware especial, etc.) y la implementación con PLC ?.
La diferencia es la misma que
cuando una tarea relativamente
compleja es realizada por varias personas trabajando
a la vez, pasa
a ser realizada por una sola persona. Si cada persona
se encargaba
de una parte pequeña de la
tarea total (digamos: "Encienda el
quemador si la temperatura baja de 60ºC
y apáguelo si sube de
65ºC" ) podemos considerar que no
será necesario entrenamiento ni
instrucciones especiales para ejecutar esta parte del trabajo.
Por el
contrario, cuando una sola persona
se encarga de todo el trabajo
casi sin ninguna duda requerirá una lista de todas las actividades
a
realizar, como hacerlas, y que hacer
en caso que sea imposible
cumplir con el trabajo. En el primer caso
tenemos un equipo de
personas trabajando simultáneamente o "en
paralelo", en el segundo
caso, tenemos una sola persona atendiendo
secuencialmente las
distintas subtareas que forman la tarea
total. Esta única persona
representa al PLC, y la lista
de instrucciones que usa como
recordatorio es el PROGRAMA del PLC.
De esta analogía, se pueden
extraer algunas conclusiones adicionales.
Primero: si la dinámica del proceso fuera tan rápida
que cada una de
las personas que lo atienden apenas alcanza a controlarlo, entonces
no
hay posibilidad de que una sola persona pueda hacer
el trabajo de
todas. Dicho de otra forma, el pasar
de operación "en paralelo" o
simultánea a operación serie o secuencial, impone condiciones
a la
velocidad de procesamiento del PLC. Segundo, el PLC
no podrá atender
situaciones en que se dependa de hacer dos o más cosas a la vez.
DIFERENTES SISTEMAS DE PROGRAMACION
===================================
Con el fin de simplificar la
tarea de programación, y de hacerla
accesible a quienes no han
tenido experiencia previa con
computadoras, se han concebido
distintos métodos más o menos
standard de programación de PLC.
Uno de estos métodos, es la utilización de códigos de
operación en
la forma de listado que le
indica al PLC la secuencia exacta de
operaciones a realizar. Habitualmente estas
operaciones son del
tipo: "examine el estado de la
entrada n", "active la salida m";
codificadas con siglas conocidas con el nombre
de MNEMONICOS, del
tipo LOD N, OUT M, etc.
Otro método consiste en la utilización
de símbolos gráficos que
representan determinadas operaciones básicas del PLC.
La principal
ventaja de este sistema es que está
standarizado y que no depende
de la marca de PLC que se
esta programando. Además, existen
programas para computadora personal
que permiten contruir los
programas de PLC de forma gráfica, por manipulación de estos símbolos.
Finalmente, el método de programación LADDER, que dada
su sencillez
y similaridad con un diagrama eléctrico es el más difundido.
.pg
SISTEMA DE PROGRAMACION LADDER
------------------------------
El nombre de este método de programación (que
significa escalera en
inglés) proviene de su semejanza con el diagrama del mismo
nombre que
se utiliza para la documentación de circuitos eléctricos de
máquinas,
etc. Veamos uno de estos diagramas.
1
|-----------------------------------( )-----|
|
|
| 10
2 |
|-----] [---------------------------( )-----|
|
|
| 30
3 |
|-----]/[-----------------------+---( )-----|
|
| 5 |
|
+---( )-----|
|
|
| 10
20
4 |
|-----] [----] [--------------------( )-----|
|
|
| 20
60
6 |
|-----] [----+------]/[-------------( )-----|
| 40
|
|
|-----] [----+
|
Consideremos primero el diagrama como circuito
eléctrico. Aquí la
línea vertical a la izquierda representa un conductor con
tensión, y
la línea vertical a la derecha
representa tierra o masa. Los
corchetes --] [-- representan contactos normalmente
abiertos y los
símbolos --]/[-- representan contactos
normalmente cerrados. Los
paréntesis --( )-- representan cargas,
por lo general bobinas de
relés, lámparas indicadoras, etc.
Nótese que debido a que la carga puede ser la bobina de un relé
cuyos
contactos se encuentran en otros
rungs, puede hacerse depender la
conexión o activación de determindas cargas del estado no solo
de los
contactos utilizados en el rung en el que se encuentra esa carga,
sinó
también de otros rungs.
Con esta simbología, la salida 1, en el primer renglón o
RUNG, está
permanentemente conectada, ya que esta alimentada entre tensión
y masa
independientemente de cualquier contacto.
En el segundo rung, la
carga 2 se activará solo cuando el contacto 10 esté cerrado
(lo que
para un contacto normalmente abierto
como 10 significa que debe
estar actuado), ya que solo así podrá circular
corriente. En el
tercer rung, las cargas 3 y 5 (conectadas en
paralelo) se activarán
cuando el contacto 30 no esté actuado (30 es un contacto
normalmente
cerrado, no debe estar actuado si
queremos que por él circule
corriente). El cuarto rung muestra la conexión
en serie de dos
contactos (los llamados 10 y 20) para que
solo se conecte la carga
cuando AMBOS se encuentren cerrados. En el último rung, la
carga 6 se
activará si el contacto 60 no está actuado y si ADEMAS están
cerrados
los contactos 20 ó 40 (o ambos). Cuando las cargas
son bobinas de
relés, sus contactos reciben el nombre
de la carga. Veamos un
ejemplo.
30 40
1
|----] [----+-----]/[------(
)------|
|
1 |
|
|----] [----+
|
La carga 1 se activará cuando estén actuados los contactos
30 y/o 1,
y cuando el contacto 40 esté sin actuar.
Supongamos que la carga no se
encuentra activada, por lo que el
contacto 1 está abierto y el contacto 40 esta
cerrado. En estas
condiciones se actúa momentáneamente el
contacto 30, por lo que la
carga 1 queda energizada y el contacto auxiliar 1 cerrado.
Ahora, si
se libera el contacto 30, sigue
existiendo un camino para la
corriente, por lo que una vez conectada la carga solo
se la puede
desconectar actuando el contacto 40. Este es el esquema
eléctrico de
un sistema de encendido y apagado con un pulsador de arranque
y otro
de parada.
Los montajes de este
tipo pueden presentar comportamientos
inesperados. Obsérvese el diagrama siguiente:
201
200
|------]/[--------------( )------|
|
|
| 200
201 |
|------] [--------------( )------|
|
|
Si suponemos que incialmente ninguna de
las salidas está activada,
ya que acabamos de alimentar al sistema, el contacto 201
permite el
paso de corriente y se activa 200.
Esto permite que se active la
salida 201, el segundo rung. Al suceder
esto, se interrumpe la
alimentación de la bobina 200, con la consecuente
liberación de su
contacto auxiliar y la desconexión de la bobina 201.
A partir de
este momento el ciclo se repite indefinidamente. Hemos
construido un
oscilador a relés.
Con este tipo de diagramas se
describe normalmente la operación
eléctrica de distinto tipo de máquinas,
y puede utilizarse para
sintetizar un sistema de control y, con las herramientas
de software
adecuadas, realizar la programación del PLC. Esto es
particularmente
útil para quienes están
habituados a realizar proyecto o
mantenimiento eléctrico de máquinas.
No son muchas las diferencias entre un diagrama como
los anteriores
y un programa de PLC. Solo debemos recordar
que mientras que en el
diagrama eléctrico todas las acciones ocurren simultáneamente,
en el
programa se realizan en forma secuencial,
siguiendo el orden en
el que los rungs fueron escritos, y que a diferencia de los
relés y
contactos reales (cuyo número está determinado por
la implementación
física de estos elementos), en el PLC podemos considerar
que existen
infinitos contactos auxiliares para
cada entrada, salida, relé
auxiliar o interno, etc.
Además, todo PLC cumple con un determinado ciclo
de operaciones que
consiste en leer las entradas, ejecutar todo el programa
una vez, y
actualizar las salidas tal como hayan resultado
de la ejecución del
programa. Como consecuencia, si una determinada
salida toma dos
valores diferentes durante una pasada por el programa, solo
aparecerá
a la salida el último de los valores calculados. Por ejemplo,
en el
programa siguiente, en donde el contacto 1 se
encuentra abierto, la
salida 200 aparece como permanentemente desactivada. Internamente
el
PLC puede hacer que 200 oscile, pero por actualizar la salida solo
una
vez por pasada de programa, este efecto no es visible.
200
|-----------------------( )------|
|
|
| 1
200 |
|------] [--------------( )------|
|
|
TIEMPO DE SCAN
--------------
Ya dijimos que el procesamiento de entradas y
salidas del PLC no es
"en paralelo" como en un sistema no programado. Hemos
dicho también
que el tiempo empleado por el
PLC en ejecutar el programa es un
parámetro importante para su aplicabilidad a
determinado tipo de
problemas.
El tiempo empleado por el PLC para ejecutar determinado programa
es lo
que se conoce como TIEMPO DE SCAN (scan
= barrido en inglés). Los
fabricantes de PLC especifica este tiempo de diversas formas,
siendo
las más comunes indicar el tiempo necesario
para ejecutar una sola
instrucción y el tiempo para ejecutar un
programa de la máxima
longitud posible. Debemos tener en
cuenta que cuando se habla del
tiempo de ejecución de una sola instrucción, este
NO es el mismo
tiempo que el necesario para ejecutar
un programa de una sola
instrucción. Esta aparente incoherencia, se aclara
recordando que
una "vuelta" de programa incluye
la lectura de las entradas, la
actualización de las salidas y una serie de procesos internos que
son
invisibles al usuario.
ELEMENTOS Y SINTAXIS DE LA PROGRAMACION
LADDER
==============================================
ENTRADAS, SALIDAS, TIMERS, CONTADORES Y REGISTROS DE DESPLAZAMIENTO
Como ya hemos visto, el sistema de programación ladder tiene
una gran
similitud con un circuito eléctrico. Por supuesto, esto no
es casual,
ya que simplifica muchísimo el aprendizaje por parte de personas
que
tengan una mínima
familiaridad con sistemas eléctricos,
particularmente de relés.
Todos los lenguajes sean naturales como el castellano
o el inglés o
artificiales como lo son todos los lenguajes de programación,
tienen
un vocabulario y un conjunto de reglas para combinar
las palabras en
sentencias comprensibles.
El primer paso para comenzar
la programación, es conocer el
vocabulario (elementos disponibles por el programador para expresar
lo
que la máquina debe hacer) y la sintaxis del
lenguaje que ha de
utilizar (o sea, las formas permitidas de conectar los elementos
para
poder expresar acciones no ambiguas). Cada rung del programa
ladder,
tiene en el margen izquierdo un conjunto
de condiciones que deben
cumplirse para activar las salidas que se encuentran
en el margen
derecho.
Hemos visto también, que los elementos
a evaluar para decidir si
activar o no las salidas en determinado rung, son variables
lógicas
o binarias, que pueden tomar solo dos estados:
presente o ausente,
abierto o cerrado, 1 ó 0, y
que provienen de entradas al PLC o
relés internos del mismo. En la programación ladder, estas
variables
se representan por contactos, que
justamente pueden estar en solo
dos estados: abierto o cerrado.
La combinación de las variables de entrada se realiza
a través de
las llamadas "Funciones Lógicas", que
suelen reparesentarse por
cuadros conocidos como "Tablas de Verdad". Existe
una equivalencia
entre las tablas de verdad, la lógica de contactos
y la forma en que
expresamos verbalmente la operación de una
función lógica. Esta
equivalencia se muestra en los cuadros siguientes.
F U N C I O N E S L O G I C A S
---------------------------------
TABLA DE VERDAD
LOGICA DE CONTACTOS
---------------
-------------------
---------------------------------------------------------------------
NOT (NO o NEGACION)
+----------------------+
¦ X ¦ Z = NOT X
¦
+---+------------------¦
| X
Z |
¦ F ¦
V ¦
|----]/[------------( )---|
+---+------------------¦
|
|
¦ V ¦
F ¦
Carga Z alimentada si X no
+----------------------+
está actuada.
---------------------------------------------------------------------
AND (Y)
+--------------------------+
¦ X ¦ Y ¦ Z = X AND Y
¦
+---+---+------------------¦
¦ F ¦ F ¦
F ¦
| X Y
Z |
+---+---+------------------¦
|----] [----] [-----( )---|
¦ F ¦ V ¦
F ¦
|
|
+---+---+------------------¦
|
|
¦ V ¦ F ¦
F ¦
+---+---+------------------¦
Carga Z alimentada si tanto
¦ V ¦ V ¦
V ¦
X como Y están cerradas.
+--------------------------+
----------------------------------------------------------------------
.pg
OR (O)
+--------------------------+
¦ X ¦ Y ¦ Z = X OR Y
¦
+---+---+------------------¦
| X
Z |
¦ F ¦ F ¦
F ¦
|----] [---+--------( )---|
+---+---+------------------¦
| Y |
|
¦ F ¦ V ¦
V ¦
|----] [---+
|
+---+---+------------------¦
|
|
¦ V ¦ F ¦
V ¦
+---+---+------------------¦
Carga Z alimentada si X ó Y
¦ V ¦ V ¦
V ¦
(ó ambas) están cerradas.
+--------------------------+
---------------------------------------------------------------------
V = Verdadero.
F = Falso.
---------------------------------------------------------------------
Ejemplo de una función lógica más compleja
XOR (O Exclusiva)
+--------------------------+
¦ X ¦ Y ¦ Z = X XOR Y
¦
+---+---+------------------¦
| X Y
Z |
¦ F ¦ F ¦
F ¦
|--]/[---] [--+-------( )---|
+---+---+------------------¦
| X Y |
|
¦ F ¦ V ¦
V ¦
|--] [---]/[--+
|
+---+---+------------------¦
|
|
¦ V ¦ F ¦
V ¦
+---+---+------------------¦
Carga Z alimentada si solo
¦ V ¦ V ¦
F ¦
una de las entradas está
+--------------------------+
cerrada.
Para construir el diagrama de lógica de contactos puede
razonarse de
la siguiente forma: Nos fijamos en los renglones de la tabla de
verdad
en los que la salida debe estar activada. Resultan ser el
segundo y
el tercero.
Como existe mas de una situación en la que la salida debe
activarse,
vemos que la salida se activará cuando
se cumpla la condición del
segundo renglón O (OR) la condición del tercer renglón.
Comparando esto con la tabla de verdad de
la función OR, vemos que
tendremos que poner circuitos en paralelo. Cada una de las
ramas de
este circuito paralelo, representará el cumplimiento
de uno solo de
los renglones. Remitiéndonos nuevamente a nuestra
tabla de verdad
vemos que las condiciones del segundo renglón son: entrada
X en FALSO
(o no actuada) Y (AND) entrada Y en VERDADERO (o actuada).
Al decir
AND, notamos que tendremos una conexión
serie de dos contactos uno
normal cerrado (el correspondiente a X) y uno
normal abierto (el
correspondiente a Y). Razonando de la misma forma
para el tercer
renglón de la tabla construimos la segunda rama del circuito paralelo.
Aún cuando es posible combinar más
de dos variables en funciones
lógicas más complejas, es suficiente
comprender las funciones
mostradas hasta aquí para poder
realizar o entender cualquier
programa.
Consideremos ahora las salidas. Las salidas de
un programa ladder
son equivalentes a las cargas (bobinas de relés,
lámparas, etc.) en
un circuito eléctrico. Como indica esta analogía,
dos o más salidas
pueden programarse en paralelo siempre que querramos
activarlas y
desactivarlas a la vez. Como salidas en el programa
del PLC tomamos
no solo a las salidas que el equipo provee
físicamente hacia el
exterior, sino también las que se conocen como "Relés Internos".
Los
relés internos son simplemente variables lógicas que
podemos usar,
por ejemplo, para memorizar
estados o como acumuladores de
resultados que utilizaremos posteriormente en el programa.
Existen dos formas básicas de activar o desactivar
las salidas: con
retención y sin retención. La forma más común es
la de salida no
retenida, lo que significa que la salida es activada si se cumplen
las
condiciones del rung en el que
está programada y se desactiva
inmediatamente cuando las condiciones dejan
de cumplirse.
Las salidas retenidas, por el contrario, se activan y
desactivan en
rungs diferentes y por instrucciones diferentes. Cuando
se cumple el
rung en el que la salida debe activarse, ésta lo hace y permanece
así,
aún cuando la condición de activación deje de cumplirse.
El único
modo de apagar o desactivar la salida retenida
es programar un rung
con la correspondiente instrucción de
apagado de la salida en
cuestión. Las instrucciones de retención y liberación
de salidas se
usan siempre por pares. Veamos algunos ejemplos sencillos.
| 0
200 |
|-----] [-----------( )-----|
|
|
Aquí, la parte de "condiciones" del rung es un
solo contacto, la
entrada 0. La salida 200 se activa solo
mientras la entrada 0 está
cerrada.
| 0
200 |
|-----] [-----------(S)-----|
|
|
| 1
200 |
|-----] [-----------(R)-----|
|
|
Nótese que ahora las salidas se programan como -(S)-
y -(R)- para
indicar que son retenidas y por pares:
un rung para activar y otro
para desactivar. El funcionamiento es el siguiente:
si se cierra,
aunque sea momentáneamente, el contacto 0 la
salida 200 se activa y
permanece así hasta que se active el contacto 1.
Pregunta: ¿Qué sucede si se mantienen cerrados ambos contactos?
Pregunta: ¿Tiene sentido programar un rung en el
que solo existan
entradas? ¿Idem pero sólo salidas?
TIMERS
------
Otro elemento de los programas ladder
tomado de los sistemas
eléctricos es el timer. El timer más común tanto
en la programación
de PLC como en los cuadros de relés, es el de retardo a la
conexión y
desconexión instantánea. Cuando se
activa la entrada el timer
comienza su operación llevando la cuenta
del tiempo que la entrada
está cerrada. Cuando este tiempo supera al programado
(por ejemplo
con una perilla, en el caso de un timer
electromecánico o un valor
escrito en el programa, en el caso de un PLC) entonces el timer
activa
su salida. Si la entrada se
abre, la salida se desactiva
instantáneamente.
Ejemplo de programación de Timer:
--------------------------------
|
+-----+
|
| 0 1
¦TIM 0¦ 200 |
+---] [---] [------¦ 10 ¦-----( )-----+
|
+-----+
|
|
|
Ejemplo de Aplicación:
---------------------
+-----+
| 0
¦TIM 0¦ 200 |
+-----] [----------¦ 10 ¦-----( )-----+
|
+-----+
|
|
+-----+
|
| T 0
¦TIM 1¦ 201 |
+-----] [----------¦ 5 ¦-----( )-----+
|
+-----+
|
Cuando la entrada 0 se active,
el timer T 0 comienza a contar.
Cuando hayan pasado 10 segundos con
la entrada 0 activada, la
salida de T 0 se activa, energizando
la salida 200. A la vez, un
contacto auxiliar de T 0 habilita la entrada de T 1, que
comienza a
contar el tiempo. Cuando hayan pasado 5 segundos
desde el inicio de
la habilitación, T 1 activa su salida
y energiza 201. Si en
cualquier momento se abre la entrada
0, T 0 cae, 200 se apaga, el
contacto auxiliar de T 0 inhabilita a T 1 con lo que 201 también
cae.
La operación de este tipo de sistemas suele describirse con
la ayuda
de un diagrama de tiempos, que
no es más que una gráfica de el
estado de entrada y salidas a lo largo del tiempo. En estos
gráficos
puede indicarse a veces las relaciones causa-efecto
entre dos o más
de las variables representadas, dibujando
flechas que parten de la
transición que dispara una modificación del estado del sistema
hacia
la variable modificada. El diagrama
de tiempos del sistema que
acabamos de describir es el siguiente:
.pg
+--------------------------------------------+
CERRADA
0 ¦
¦
------+
+---- ABIERTA
|
T 0 cuenta |
|
10 seg. |
+------------------------+ ACTIVADA
200
¦
¦
--------------------------+
+---- DESACTIVADA
|T 1 cuenta|
| 5 seg |
+-------------+ ACTIVADA
201
¦
¦
-------------------------------------+
+---- DESACTIVADA
--------+---------+---------+----------+---------+---------+--->
0 seg. 5
10 15
20 25
CONTADORES
----------
Todos los PLCs incorporan funciones que
reemplazan a la aplicación
de contadores en el sistema de control. Además
del obvio uso de
estos contadores para contar, por
ejemplo, piezas o ciclos de
trabajo, la combinación de varios
de ellos, quizás con el uso
de algunas funciones de tipo
aritmético, permite reemplazar
programadores a leva y realizar
funciones que de otra forma
resultarían complicadas.
Todos los contadores tienen una entrada
de pulsos a contar, una
entrada de RESET, que cuando es activada lleva
al contador a su
estado inicial y una salida que se activa
cuando la cuenta llega a
su valor final. El tipo más común de contador es el
ascendente, en
el que el estado inicial es: cuenta cero con
la salida desactivada.
Al ir recibiendo pulsos en la entrada de conteo, la
cuenta aumenta
siempre manteniendo la salida desactivada,
hasta el momento en que
la cuenta llega al valor preseteado en el programa
y el contador
deja de contar. Podemos
encontrarnos también con contadores
descendentes, en los que se programa un valor
inicial distinto de
cero y la salida se activa
cuando luego de realizar un conteo
descendente la cuenta llega a cero. Existe otro tipo de contador,
el
llamado ascendente-descendente, que posee una entrada
adicional para
gobernar el sentido del conteo.
Asociadas a los contadores, se encuentran
por lo general funciones
que permiten la lectura del estado de estos, y
su comparación con
valores predeterminados por el programador.
.pg
Ejemplo de programación de Contador:
-----------------------------------
1
+-------------+
|----] [-----¦ CNT
¦ |
| 0
¦ 1 ¦-------|
|----] [-----¦ 200
¦ |
|
+-------------+ |
|
|
| +----------+
202 |
|----¦ CNT1=100 ¦-----------( )----|
| +----------+
|
Aquí vemos también el uso de una
función para comparación del
contador con un valor determinado,
100 en este caso, para activar
una salida.
Preguntas: ¿Cuándo se enciende la salida 202?,
¿Por cuánto tiempo?,
¿Qué sucede si comparo el valor del contador contra 200 en
lugar de
100? ¿Cómo se puede simplificar el programa para este último
caso?.
REGISTROS DE DESPLAZAMIENTO
---------------------------
Un registro de desplazamiento consiste en
una cantidad variable de
elementos de memoria conectados de tal modo que la
salida de cada
uno de ellos alimenta la entrada
del siguiente. La entrada del
registro es la entrada del primer
elemento. Los registros de
desplazamiento disponen de una entrada
de pulsos cuya misión es
indicar el instante en que cada elemento copia en su salida
el valor
lógico presente en su entrada, pasando a partir
de ese momento a
retener este estado hasta el próximo pulso.
Sea, por ejemplo, un registro de 5 etapas. Veamos
que sucede con él
al aplicarle pulsos y una entrada. En su estado inicial,
el registro
contiene todos ceros.
ESTADO INICIAL
0 0 0 0 0
APLICO ENTRADA
1--> 0 0 0 0 0
APLICO PULSO
1--> 1 0 0 0 0
APLICO PULSO
0--> 0 1 0 0 0
APLICO PULSO
0--> 0 0 1 0 0
APLICO PULSO
0--> 0 0 0 1 0
APLICO ENTRADA
1--> 0 0 0 1 0
APLICO PULSO
1--> 1 0 0 0 1
APLICO PULSO
0--> 0 1 0 0 0
Etc., etc.
Los registros de desplazamiento disponen,
por lo general, de una
entrada de reset que fuerza al estado inicial.
INSTRUCCIONES PARA CONTROL DE FLUJO DEL PROGRAMA
------------------------------------------------
Como hemos visto hasta ahora, el "Flujo" del programa,
es decir la
secuencia en la que todas
las instruciones del programa son
ejecutadas es simple: se comienza por la
primera instrucción del
programa y se continua con la segunda, tercera, etc.
hasta la última
instrucción y se retoma la ejecución
de la primera otra vez,
repitiéndose el ciclo indefinidamente.
Existen casos en los que esto no es lo más deseable.
Por ejemplo: si
queremos que determinada parte del programa no se ejecute
salvo que
el usuario asi lo pida; o nos encontramos
con que dos actividades
son mutuamente excluyentes, o simplemente
queremos controlar el
mismo sistema con dos programas diferentes.
También podemos desear
que no se haga nada hasta que no se
reciba confirmación de una
acción que acabamos de tomar (con un fin de carrera, por ejemplo).
Todos estos casos nos muestran que
puede ser conveniente tener la
posiblidad de modificar el flujo
de ejecución tan rígido que
normalmente sigue el PLC. Las formas más comunes de
hacer esto son
dos: con saltos controlados y relés de control maestro.
El salto controlado consiste en hacer que la próxima
instrucción en
ejecutarse no sea necesariamente la siguiente en el programa.
| 3
+----------+ |
|-----] [---------¦ JUMP ¦-----|
|
+----------+ |
|
|
|-----] [---] [-----------( )------|
|
|
~
~
~
~
|----] [---+--------------( )------|
|
|
|
|----] [---+
|
|
+----------+ |
|-----------------¦ JEND ¦-----|
|
+----------+ |
|
|
|-----] [------------------( )-----|
Cuando se active la entrada 3, la ejecución del
programa "saltará"
hasta la instrucción JEND y siguientes.
Algo similar sucede con el relé de control
maestro, que desconecta
las entradas al programa forzando a
éste a no activar ninguna
salida, lo que resulta equivalente a no ejecutarlo.
.pg
EJEMPLOS DE PROGRAMACION
========================
EJEMPLO 1: ARRANQUE DIRECTO
DE UN MOTOR
----------------------------------------
Los motores de baja potencia pueden arrancarse por conexión
directa a
la línea. Se dispone de una llave de arranque
y parada y de un
contactor de marcha. El funcionamiento
será el siguiente: con la
llave cerrada, el motor marcha. Con la llave
abierta el motor se
detiene.
Se cableará la llave a la entrada 0 y el contactor a la salida 200.
El diagrama ladder para este ejemplo es:
| 0
200 |
|-----] [-----------( )-----|
|
|
Aquí, simplemente, la salida 200 copia el estado de la entrada 0.
Al utilizar una llave para iniciar la marcha no es necesario
retener
de ninguna forma el estado de ésta, por
lo que en este caso el uso
de un PLC es absolutamente superfluo.
Pero supongamos que se
requiera que el motor marche cuando la
llave se encuentre abierta.
Si debemos solucionar esto de forma eléctrica deberíamos
agregar al
sistema un relé. Para hacerlo
con el PLC solo debemos cambiar el
programa.
| 0
200 |
|-----]/[-----------( )-----|
|
|
El simple cambio de el contacto normal abierto por
normal cerrado,
nos resuelve el problema.
Supongamos ahora que en lugar de una
llave tenemos un pulsador de
marcha (conectado a la entrada 0)
y otro de parada (conectado
a la entrada 1). Ahora sí debemos retener el estado del motor,
ya que
al trabajar con pulsadores solo se
actúa sobre éstos de forma
momentánea.
Partiendo del primer diagrama, intentaremos modificarlo
para cumplir
con lo solicitado. Vemos que el problema consiste en que
al liberar
el pulsador de marcha, después de
haberlo apretado, la salida se
desactiva inmediatemente. Para remediar esto, recordemos
que todos
los relés del PLC, sean
salidas o internos tienen contactos
auxiliares. Entonces podemos poner en paralelo con
el pulsador de
arranque un contacto auxiliar de la salida 200
| 0
200 |
|-----] [-----+-----( )-----|
| 200
|
|
|-----] [-----+
|
Mientras esté actuado el pulsador de arranque,
la salida 200 queda
activada y su contacto auxiliar cerrado, por lo que si se
libera el
pulsador sigue existiendo un camino para retener
activada la salida
a través de dicho contacto auxiliar. Nuestro único
problema es que
ahora no podemos detener el motor. Para esto ponemos
en serie con la
salida el pulsador de parada.
| 0
1 200 |
|-----] [-----+--]/[---( )-----|
| 200
|
|
|-----] [-----+
|
Pregunta: Tienen los dos pulsadores la misma "prioridad"?
Problema: Modificar el sistema
para incluir una parada por
sobretemperatura.
EJEMPLO 2: SISTEMA DE AVANCE Y RETROCESO NEUMATICO.
---------------------------------------------------
Sea un cilindro neumático comandado por una electroválvula
con dos
fines de carrera en los extremos de su recorrido.
Se quiere que al
cerrar una llave, el cilindro se mueva entre uno y otro extremo.
El sensor de cilindro retraido se conecta a la
entrada 0, el de
cilindro extendido a la 1, la llave
de arranque a la 2 y la
electroválvula a la salida 200. La electroválvula energizada
impulsa
el cilindro hacia afuera. Lo primero que podemos notar es
que si el
cilindro esta retraido debemos activar
la salida para extenderlo.
Lamentablemente, al extender el cilindro deja de actuar el sensor
que
permitía el movimiento, por lo que
como en el ejemplo anterior,
debemos retener el contacto, utilizando para ello un contacto auxiliar
de la salida 200. Para invertir el movimiento, ponemos
en serie el
sensor de cilindro extendido, y para
habilitar todo el movimiento
también en serie la llave de arranque.
| 0
1 2 200
|
|-----] [-----+---]/[----] [---( )-----|
| 200
|
|
|-----] [-----+
|
Pregunta: Qué sucede si en el momento de arranque el cilindro
está a
mitad de recorrido (no toca ningún fin de carrera)?
Problema: Modificar el sistema para que
trabaje con un pulsador de
arranque y otro de parada en lugar de la llave.
EJEMPLO 3: ARRANQUE DIRECTO E INVERSION DE MARCHA DE MOTOR TRIFASICO.
---------------------------------------------------------------------
Para invertir la marcha de un
motor trifásico es suficiente
intercambiar dos de las fases que lo alimentan.
Deberá implementarse un sistema que con dos pulsadores
permita el
arranque y giro en los dos sentidos. Al
cambiar de sentido de giro
debe quitarse la alimentación del motor
durante 1 s. y luego
realizar la inversión. Un tercer pulsador se
utilizará para detener
el motor.
Deberemos disponer de dos contactores, uno
para cada sentido de
giro, que cablearemos a las salidas 200 y 201. Los tres pulsadores
se
conectan a las entradas 0 a 2.
Para resolver el problema, notemos primero
que los contactores de
marcha directa e inversa tomar los tres estados
correspondientes a
las tres situaciones en que el motor puede encontrarse:
AMBOS CONTACTORES ABIERTOS --------
MOTOR DETENIDO
SOLO CONTACTOR DIRECTA
-------- MARCHA DIRECTA
SOLO CONTACTOR INVERSA
-------- MARCHA INVERSA
AMBOS CONTACTORES CERRADOS --------
ESTADO PROHIBIDO
Así vemos que cada uno de los contactores debe manejarse
de forma de
permitirles tomar los estados admisibles e
impedir que ambos se
cierren a la vez.
Como además tenemos pulsadores para el comando, deberemos
retener el
estado como en los ejemplos anteriores.
| 0
1 2 400
| solicitud
|-----] [-----+---]/[----]/[---( )-----|
marcha
| 400
|
| directa
|-----] [-----+
|
| 1
0 2 401
| solicitud
|-----] [-----+---]/[----]/[---( )-----|
marcha
| 401
|
| inversa
|-----] [-----+
|
|
+-----+
|
| 400
¦TIM 0¦ 200 |
|-----] [----------¦ 10 ¦-----( )-----|
marcha
|
+-----+
| directa
|
+-----+
|
| 401
¦TIM 1¦ 201 |
|-----] [----------¦ 10 ¦-----( )-----|
marcha
+-----+
inversa
Los relés internos 400 y 401 sirven para retener el
comando dado por
el usuario. La retención se produce mientras no se pida un
cambio de
dirección de giro o se pulse la parada.
Examinemos la operación del programa: si
suponemos que el motor se
encuentra detenido, al pulsar solo la marcha directa el relé
interno
400 se alimenta y autoretiene.
Al actuar sobre el pulsador 0 se
impide la conexión del relé interno 401
o se lo desconecta si
hubiera estado actuado. Si con
el relé 400 actuado pulsaramos 1,
inmediatamente lo desconectaríamos, y se permitiría la
conexión del
401. De esta forma impedimos
que ambos relés internos (y como
veremos, los contactores) estén activos en forma simultánea.
Para implementar los retardos de inversión de
marcha, usamos los
relés internos como habilitación de dos TIMERS.
Recordemos aquí que
los timers de un PLC son equivalentes a los timers
electromecánicos
que proveen un retardo a la conexión y desconexión
instantánea. Al
recibir como entrada los contactos de los relés internos,
los timers
esperan el tiempo prefijado en el
programa y si expirado este la
entrada está aún activada entonces activa la salida.
Como ya nos
aseguarmos en los dos primeros rungs que
400 y 401 no pueden estar
activos a la vez, el problema queda resuelto.
Pregunta: ¿Qué sucede si se activan los dos pulsadores de
marcha a la
vez? ¿ Y qué sucede si se pulsan los tres a la vez?
¿Es instantáneo
el arranque de motor luego de estar detenido?
Problema: Dibujar el circuito eléctrico
del sistema propuesto.
Modificar el programa para
hacer que el motor arranque
instantáneamente en la dirección solicitada cuando está detenido,
pero
conservando el retardo durante la inversión.
EJEMPLO 4: ARRANQUE ESTRELLA-TRIANGULO.
---------------------------------------
Los motores de gran potencia no
pueden arrancarse por conexión
directa a la línea. El método más común de arranque
es la conexión
estrella-triángulo, que consiste en aplicar
la tensión al motor
estando éste conectado en estrella
y al alcanzar la velocidad
nominal pasar a la conexión triángulo.
De esta forma se reduce la
corriente de arranque a aproximadamente la tercera
parte de la de
conexión directa. Se dispone de
un pulsador de arranque, uno de
parada, un contactor de línea, uno de estrella y otro
de triángulo.
Hay además un protector térmico.
ENTRADAS SALIDAS
0 Pulsador Arranque
200 Contactor de Línea
1 Pulsador Parada
201 Contactor de Estrella
2 Sensado de Falla
202 Contactor de Triángulo
203 Señalización de Falla
.pg
|
0 1
2 200 | Retención
1 |-----] [-----+---]/[----]/[---(
)-----| de Marcha
|
200 |
|
|-----]
[-----+
|
|
200 T 1
201 | Contactor
2 |-----] [---------]/[----------(
)-----| Estrella
|
|
|
201 T 1 T 2
202 | Contactor
3 |-----]/[---] [---]
[----------( )-----| Triángulo
|
+-----+
|
|
200 ¦TIM 1¦
| Tiempo de
4 |-----] [----------¦
50 ¦-------------| Estrella
|
+-----+
|
|
+-----+
|
|
201 ¦TIM 2¦
| Demora de
5 |-----]/[----------¦
10 ¦-------------| Cambio
|
2 +-----+
203 |
6 |-----] [----------------------(
)-----| Alarma
El primer rung retiene el pedido
de arranque, que se libera por
pedido de parada o por falla.
Conecta el contactor de línea
directamente.
Cuando haya entrado el contactor de línea,
el segundo rung conecta
el contactor de estrella hasta que expire el tiempo
programado para
el timer T 1 (5 s).
Cuando cae (se desenergiza) el contactor
de estrella, el timer
T 2 en rung 5, comienza a contar el tiempo programado (1
s). Cuando
este tiempo ha pasado, el rung 3 activa el contactor
de triángulo ya
que ambos timers ya han actuado.
Finalmente el rung 6 copia el estado del sensor de falla.
Pregunta: ¿Qué sucede si se quita el contacto T 1 del rung 3?
Problema: Dibujar un diagrama de tiempos para
el sistema incluyendo
todas las entradas.
EJEMPLO 5: CAMBIO DE ESTADO CON UN SOLO PULSADOR
------------------------------------------------
Se busca alternar el estado de una salida entre encendida
y apagada
con un solo pulsador. Si la
salida está apagada, el pulsador la
enciende y vicerversa.
Se trata de un problema engañosamente sencillo, si hemos de resolverlo
sin usar contadores, como se mostrará
en el próximo ejemplo. Se
recomienda al lector intentar hacerlo antes de
proseguir. Quienes
hayan fracasado o no sean aficionados a los acertijos pueden continuar
leyendo.
La raíz de la complicación reside en que las mismas transiciones
de la
entrada deben producir acciones completamente
distintas según el
estado de la salida.
Para ilustrar la operación del sistema,
utilizaremos un gráfico
conocido como "Diagrama de Estados". Definiremos
ESTADO como el
conjunto de todas las entradas y salidas relevantes en un
determinado
momento. Representaremos un estado
con un círculo en el que
anotaremos el nombre o número que le atribuimos al
estado y el valor
de las salidas del sistema para este caso. Los diversos
estados en
que podemos encontrar a nuestro sistema
se conectan a través de
flechas que nos indican la secuencia en que los estados son alcanzados
cuando el sistema evoluciona en el tiempo. En estas flechas
indicamos
el valor que debe tomar la entrada cuya transición dispara
el cambio
de estado que ella representa.
Volviendo a nuestro problema, intentemos determinar
el número de
estados por los que el sistema atraviesa.
Un estado es el inicial: Entrada abierta, Salida apagada.
Otro estado es
: Entrada abierta, Salida encendida.
¿Serán estos dos estados suficientes?. Evidentemente
no, ya que no
hemos considerado los dos estados
en los que la entrada está
cerrada, aunque sea momentáneamente.
Tratemos de aclarar esto con el diagrama de estados.
+----------------------+
¦ESTADO¦ENTRADA¦PROXIMO¦
¦ACTUAL¦
¦ESTADO ¦
+------+-------+-------¦
¦
0 ¦ 0 ¦ 0 ¦
¦
0 ¦ 1 ¦ 1 ¦
¦
1 ¦ 0 ¦ 2 ¦
¦
1 ¦ 1 ¦ 1 ¦
¦
2 ¦ 0 ¦ 2 ¦
¦
2 ¦ 1 ¦ 3 ¦
¦
3 ¦ 0 ¦ 0 ¦
¦
3 ¦ 1 ¦ 3 ¦
+----------------------+
Los cuatro estados corresponden a las cuatro combinaciones
posibles
de valores de entrada y salida.
Junto al diagrama de estados tenemos un
cuadro que nos dá la misma
información en forma tabular. Se indica
el estado actual y el
próximo estado para cada transición de la entrada.
Por ejemplo, si
nos encontramos en el estado 0 y la entrada es
0, el próximo estado
es el 0 (o sea, no hay cambio de estado). Si en
cambio la entrada
es 1, entonces el sistema cambia al estado 1. Si la
entrada se sigue
manteniendo en 1 luego del cambio de estado vemos que
estado 1 con
entrada 1 mantiene al sistema en estado 1 (nuevamente
deja de haber
cambios en el sistema).
Para implementar el programa haremos corresponder
cada estado a la
activación de un relé interno distinto. Así el relé
400 representa
al sistema en estado 0, el 401 al estado 1, etc.
Tomemos del cuadro un estado cualquiera, por ejemplo el 3.
Vemos que
para pasar al estado 3 (ver columna de próximo estado)
debemos estar
en el estado 2 ó en el 3 y la entrada debe ser 1 (activada)
en ambos
casos. Esto es lo que ha sido plasmado en el primer rung.
Repitiendo el análisis para todos los otros próximos estados se
puede
construir el programa.
402
1 403
|-----] [-----+--] [---( )-----|
| 403
|
|
|-----] [-----+
|
|
|
| 401
1 402 |
|-----] [-----+--]/[---( )-----|
| 402
|
|
|-----] [-----+
|
|
|
| 400
1 401 |
|-----] [-----+--] [---( )-----|
| 401
|
|
|-----] [-----+
|
|
|
| 401 402
403 400 |
|-----]/[---]/[--]/[---( )-----|
|
|
| 400
200 |
|-----] [-----+--------( )-----|
| 401
|
|-----] [-----+
Los dos últimos rungs se explican
notando que si el sistema no se
encuentra en los estados 1, 2 ó 3; debe encontrarse en
el estado 0
por lo que se activa el relé 400. Finalmente la salida
200 solo debe
activarse si el sistema se encuentra en los estados 1 ó 2.
EJEMPLO 6: IDEM ANTERIOR USANDO
CONTADORES
------------------------------------------
Luego del esfuerzo que acabamos
de realizar para resolver el
problema anterior, veremos como puede simplificarse
si utilizamos un
contador.
Recordemos que los contadores, a diferencia del
ejemplo anterior,
realizan por nosotros el trabajo de cambiar
el estado de su salida
por cada ciclo completo de la entrada.
Dicho de otra forma, el
contador es insensible a la transición
CERRADA --> ABIERTA de su
entrada. El diagrama ladder es el siguiente:
.pg
CNT1
+-------------+
|----] [-----¦ CNT
¦ |
| 1
¦ 1 ¦-------|
|----] [-----¦ 2
¦ |
|
+-------------+ |
|
|
| +----------+
200 |
|----¦ CNT1 = 1 ¦-----------( )----|
| +----------+
|
Notemos que la salida del contador
CNT1 se utiliza como RESET del
mismo, por lo que al alcanzar el valor de PRESET (2,
en este caso)
el contador se resetea (vuelve al
estado 0) inmediatamente. El
contador permanece en el estado 2 solo el tiempo de un SCAN.
La salida se activa solo cuando el contador se encuentra en el
estado
1.
EJEMPLO 7: SEPARACION DE PIEZAS DEFECTUOSAS DE CINTA TRANSPORTADORA
-------------------------------------------------------------------
Supongamos que debemos expulsar de una cinta transportadora
una pieza
que hemos detectado como defectuosa. Digamos que
la separación se
efectúa gracias a un deflector que
desvía la pieza defectuosa del
camino normal de la cinta. El proceso de medición
es tal que se
realiza antes de que la pieza
llegue a la zona donde actuará el
deflector.
Para resolver este problema debemos "seguir" la pieza
defectuosa en
su camino a lo largo de la cinta. Para esto resulta ideal
un registro
de desplazamiento.
Utilizaremos un detector de presencia de
pieza como entrada de
pulsos al registro de desplazamiento,
que conectaremos a la
entrada 0, y como bit de entrada al registro en sí usaremos
la salida
del detector de defectos, conectada a la entrada
1 del PLC. La
salida 200 actuará el deflector
RESET +-------------+
|----] [-----¦ SFR
¦ |
| 0
¦
¦ |
|----] [-----¦ 0
¦-------|
| 1
¦
¦ |
|----] [-----¦ 6
¦ |
|
+-------------+ |
|
|
| R5
200 |
|------] [-----------------( )-----|
|
|
El funcionamiento del programa es el siguiente:
Cada vez que aparece una pieza
y es detectada por el sensor de
presencia, la salida del sensor de
defectos es copiada en el
registro de desplazamiento. Cada
una de las siguientes piezas
que pasan por el sensor de presencia desplazan
el bit que indica el
defecto. Cuando este bit alcanza la sexta
posición (R5), se activa
el deflector.
Para aclarar el funcionamiento podemos hacer un diagrama de tiempos.
Primero graficamos las entradas del sensor de
presencia y el de
fallas.
0 1
2 3 4
5 6 7
8
+--+ +--+ +--+
+--+ +--+ +--+ +--+ +--+
+--+ +--+
¦ ¦ ¦ ¦ ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦
¦
---+ +---+ +---+ +---+ +---+ +---+
+---+ +---+ +---+ +---+ +
+--+
+--+
¦
¦
¦ ¦
----------+ +------------------------+ +----------------------------
A continuación tenemos una representación del estado
del registro de
desplazamiento con los sucesivos pulsos del sensor de presencia.
| |
| | |
| |
| R0 | R1 | R2
| R3 | R4 | R5 |
| |
| | |
| |
+------+
0 ¦
¦
----------+ +----------------------------------------------------
+------+
1
¦ ¦
-----------------+ +---------------------------------------------
+------+
2
¦ ¦
------------------------+ +--------------------------------------
+------+
3
¦ ¦
-------------------------------+
+-------------------------------
+------+
+------+
4 ¦
¦