jueves, 16 de noviembre de 2017

Funciones de Lógica Escalera parte 1



Cuando un proceso es controlado por un PLC, se usan entradas de sensores para tomar decisiones al procesar la lógica, después se actualizan las salidas, que controlan diferentes actuadores, al cambiar el estado de los actuadores (por ejemplo un cilindro que estaba contraído y ahora está extendido), cambian o debería de cambiar las entradas, lo cual al ser procesadas por el programa, podrían o no volver a cambiar las salidas. Entonces, las decisiones tomadas por el PLC están limitadas por los sensores disponibles, ya que, siguiendo el ejemplo del cilindro, si no se cuenta con un sensor que detecte que el cilindro ya se extendió, el PLC no sabrá nunca que esta condición ya ocurrió.

Algo a tener en cuenta:



Como hemos dicho, la lógica escalera o lenguaje escalera, se diseñó de tal manera que no se tuviera que volver a reentrenar a los ingenieros eléctricos, entonces, tenemos que suponer o imaginar, que la barra vertical que va en el lado izquierdo vendría a simbolizar el voltaje positivo y la barra del lado derecho vendría a ser la referencia de cero volts, y los elementos en medio (contactos, bobinas, timers, contadores, etc...) vendrían a ser el circuito y para que el programa funcione, tiene que haber flujo de la barra positiva a la barra negativa.

Básicos


Contacto Normal Abierto, Contacto Normal Cerrado y Entradas Inmediatas


Las entradas en la lógica escalera son por lo general representadas por contactos normal abierto, contactos normal cerrados y entradas inmediatas. Los contactos normal abiertos y cerrados los hemos estado viendo en posts anteriores. Las entradas inmediatas (IIT), nos permiten leer entradas fuera del ciclo de scan, esto quiere decir, que estas pueden ser leídas mientras se está ejecutando el programa, después de haber leído las entradas y de haber creado la imagen de entradas. Este tipo de entradas, ya no están disponibles en los procesadores ControlLogix, pero en los modelos más viejos de AB, aún siguen existiendo.



En una contacto normalmente abierto (Entrada_A en la figura) una entrada activa cerrara el contacto y permitirá el flujo de energía.

En una contacto normalmente cerrado (Entrada_B en la figura) una entrada activa abrirá el contacto y no permitirá el flujo de energía.

Los contactos son funciones de entrada solamente, por lo que nunca podrán ser el elemento final pegado a la barra derecha.

Bobinas


Existen una multitud de salidas en la lógica escalera, empecemos por el elemento más básico: la bobina



La salida más básica es la bobina normal (“Salida” en la figura anterior) esta se energiza cuando las condiciones del renglón son satisfechas y se apaga en el momento en que no se cumplen. Después tenemos las bobinas Latch (enclave) y Unlatch (desenclave), notemos que en esta ocasión tenemos repetido el nombre de la bobina (“Salida_C”) y no es un error de doble salida, todo lo contrario, cuando utilizamos bobinas latch siempre debemos de utilizar por lo menos una bobina unlatch. Lo que pasa, es que, como su nombre lo indica, una vez que se cumplen las condiciones del renglón de la bobina latch, este permanecerá encendida aun y cuando las condiciones del renglón ya no se cumplan, es por eso que en otro renglón se deben de construir las condiciones para que esta bobina se apague, y es cuando utilizamos la bobina unlatch. Este tipo de bobinas si que podemos repetirlas a lo largo del programa, y podríamos llegar a tener varias bobinas latch y unlatch con el mismo nombre, lo único que debemos de cuidar es que la condiciones no provoquen que la bobina siempre permanezca encendida o siempre apagadas.

Otra cosa que debemos notar es que las salidas, también pueden actuar como entradas:



En la figura observamos el típico arranque/paro de un motor. Asumamos que:

• PB_ArranqueMotor está conectado a un botón.

• OL_OK está conectado a un relevador magneto-térmico (térmico de ahora en adelante), el cual es un dispositivo que protegerá el circuito de una sobre corriente en el motor.

• PB_ParoMotor está conectado a un botón.

• Motor está conectado a un contactor que arrancara el motor.

Entonces, si el térmico esta OK, y presionamos el “PB_ArranqueMotor”, el motor arrancara, y mediante el contacto NO de “Motor” se “enclavara” el circuito y aunque soltemos el botón, el motor permanecerá encendido, hasta que se “abra” el térmico lo que ocasionara que se desenergize “OL_OK” y con ello desenergizando todo el renglón, lo mismo sucedería si presionáramos el botón conectado con “PB_ParoMotor”. Este ejemplo también se puede realizar con bobinas Latch/Unlatch:




En la figura las condiciones para parar el motor, fueron “negadas” y puestas en “OR” ya que, en esta ocasión requerimos que el renglón de la bobina unlatch se energice para que pueda “desenclavar” la bobina.

Timer, Counter


A medida que los sistemas a controlar se vuelven más complejos, vamos necesitando de mas instrucciones para resolver la lógica de nuestro programa, ya que no siempre tendremos sensores para detectar todas las condiciones que suceden en el sistema, muchas veces por que se vuelve imposible agregar un dispositivo para detectar algún evento y otras porque en realidad no lo requerimos. Por ejemplo en el control de un semáforo, solo requerimos saber el tiempo que durara encendido cada uno de los colores. O por ejemplo en un transportador de piezas que requerimos saber cuántas piezas han pasado por dicho transportador, el sensor para detectar las piezas realmente lo tenemos, pero el sensor por sí mismo no podría contar las piezas, eso lo resolveríamos en nuestra lógica.

Timer

Generalmente tenemos tres tipos de timers en todos los PLC:


Retardo al encendido (On-Delay)
Retardo al apagado (Off-Delay)
Retentivos
RTO (Retentive Timer ON)

No retentivos
TON (Timer ON)
TOF (Timer Off)

Un TON esperara un tiempo especificado, después de que su renglón se haga verdadero, para encender, pero se apagara inmediatamente y reiniciara el conteo.



Un TOF encenderá en cuanto su renglón se haga verdadero, pero esperara un tiempo especificado para apagarse cuando el renglón se haga falso y reiniciara el conteo.



Por ejemplo, en una línea de producción, al arrancar el ciclo automático, lo primero que hará será encender los avisos sonoros durante cierto tiempo y después arrancara la línea, aquí utilizaríamos un TON.

En otro caso, tenemos una sierra encerrada en un cuarto con sus puertas con dispositivos de seguridad, entonces para permitir la apertura de las puertas tenemos que asegurar que la sierra ya no se está moviendo y no representa un peligro para el personal. Aquí utilizaríamos un TOF, al apagar la sierra, esperaría un tiempo para apagar las seguridades y permitir la apertura de las puertas.

Un RTO empieza a contar tiempo cada que se vuelve verdadero, pero no reinicia el conteo al hacerse falso, aun y que no haya llegado a su preset. Este tipo de timer lo podríamos utilizar para contar el tiempo real que la maquina a estado funcionando en modo automático.



Todos los timer tienen los siguientes parámetros:

  • Timer: Tag asignado al timer.
  • Preset: Tiempo que queremos que transcurra antes de activar o desactivar el timer (en ms).
  • Accum: Tiempo que ha transcurrido desde que se cumplieron las condiciones de ese timer (en ms).
  • EN: Enable o habilitado, este bit se cumple inmediatamente cuando las condiciones para el timer se cumplen
  • DN: Done o Terminado, este bit se cumple una vez que se ha alcanzado la cuenta del timer.

Existe también una función especial, utilizada sobre todo con los RTO, pero también se puede utilizar con los otros tipos de timer, además de que también se usa con los contadores:


En el ejemplo estaríamos reiniciando la cuenta (Accum) del timer “RetentiveON”

Counter

Existen dos tipos de contadores en los PLC:

  • CTU o Count Up: Un contador que en cada iteración suma un uno a su cuenta.
  • CTD o Count Down: Un contador que en cada iteración resta un uno a su cuenta


En ambos contadores, cada que el renglón se haga verdadero se ejecutara su función, no importa el tiempo que dure en verdadero el renglón, siempre se hará una iteración por 1. Al igual que con todos los elementos los nombres o TAGS de los contadores utilizados no deberían de repetirse, pero no quiere decir que no se pueda hacer, incluso existirán aplicaciones en las que  una mismo locación de memoria (TAG) la asignaremos a un CTU y a un CTD de tal manera que con ciertas condiciones cuente “hacia arriba” y con otras condiciones cuente “hacia abajo”.
Los parámetros para los counters son:

  • Counter: TAG o nombre del contador.
  • Preset: Valor al que queremos llegar.
  • Accum: Acumulado o cantidad de veces que se ha ejecutado la función.
  • CU o CD: Bits que indican que el contador en cuestión está activo o habilitado.
  • DN: Done o Terminado, indica que se ha llegado a la cuenta prevista (PRESET)

Los contadores pueden seguir contando aunque se haya llegado a la cuenta establecida en el preset, es decir, en el ejemplo el preset está en 10, una vez que se llega a 10 en el Accum se activara el bit DN, y permanecerá activo mientras el Accum sea igual o mayor al Preset, y en cada iteración seguirá contando, a menos que se utilice una función reset como la que vimos en los timers.



Un ejemplo del uso de un counter seria por ejemplo para contar las piezas que pasan por un transportador, tendríamos un sensor que detectaría las piezas y cada que se active produciría una iteración en el renglón, una vez alcanzado el preset podríamos activar una alarma sonora para indicar que se alcanzó la producción programada




Funciones de Lógica Escalera parte 1

Cuando un proceso es controlado por un PLC, se usan entradas de sensores para tomar decisiones al procesar la lógica, después se actualiza...