INTRODUCCIÓN A LA PROGRAMACIÓN DE PLC'S
Jorge M. Tirabasso.
jmtira@bigfoot.com




                 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         ¦      ¦