USO DE CONTADORES
La siguiente figura nos da una idea del modo de
operación de los contadores:
El valor del acumulador debe mantenerse dentro del
rango de valores permitido (-32768 a 32767). Si el valor del acumulador supera
el valor de 32767, el bit de sobreflujo (OV) del contador es colocado en 1 y el valor de nuestro acumulador sería en ese momento -32768 lo cuál podria causar errores en nuestra lógica de control. Si
por el contrario el valor del acumulador pasa por un valor inferior a -32768 el
bit de estado bajoflujo (UN) tomara el valor de 1 y ahora el acumulador valdría 32767. La instrucción RES es
empleada también para resetear el valor acumulado en el contador.
INSTRUCCIONES CTU Y CTD
Las instrucciones son direccionadas dentro de los
archivos “counter”. Cada contador usa 3 palabras para el manejo de datos y bits
de estado. La palabra 0 contiene los valores de los bits de estado y control,
la palabra 1 contiene el valor del preset y la palabra 2 el valor del
acumulador.
CU = Count Up Enable Bit
CD
= Count Down Enable Bit
DN
= Count Done Bit
OV
= Count Overflow Bit
UN
= Count Underflow Bit
Cuando el valor del acumulado alcanza el valor del
preset el bit de estado DN toma el valor de 1.
El valor del acumulador es incrementado con una
instrucción CTU y disminuye con una instrucción CTD en cada cambio de estado de
falso a verdadero en su condición de entrada.
El valor del acumulador se mantiene sin importar cambios de
verdadero a falso o pérdidas de energía, solo puede ser resetado con el uso de
una instrucción RES.
BITS DE ESTADO Y CONTROL DE CTU Y CTD
Al igual que el valor del acumulado, el valor de los
bits de estado y control se mantienen hasta el uso de un reset (RES).
CTU
COUNT UP/ CTD COUNT DOWN
Las instrucciones CTD y CTU son
usadas para decrementar o incrementar el valor de un contador en cada cambio de
estado de falso a verdadero de un renglón. Cuando el renglón que contiene la
instrucción CTU cambia de falso a verdadero
el valor del acumulado se incrementa en una unidad. La instrucción CTD
opera de la misma manera solo que esta realiza un decremento. Por su funcionalidad este tipo de instrucciones generalmente son usadas en pareja (direccionadas al mismo contador).
EJEMPLO:
- Ya con nuestro conteo iniciado la señal de entrada "ascendente" se encuentra desenergizada, con esto los bits de control CU, DN y OV permanecen sin cambios, nuestro valor acumulado al momento es 9 y nuestro objetivo (preset) es 10, en caso de un nuevo pulso ascendente alcanzaremos este valor y nuestro conteo habrá terminado.
- En el siguiente conteo ascendente nuestro contador alcanza el preset establecido, en este instante 2 de nuestros bits de control se encuentran energizados; el bit CU tiene un valor de 1 ya que nuestro contador esta energizado, y nuestro bit DN también tiene un valor de 1 debido a que nuestro objetivo ha sido igualado por el acumulador. Es necesario recalcar que si un nuevo pulso ascendente es registrado después de alcanzar el preset el contador sigue incrementando su valor de acumulador, es decir, el acumulador tomaría un valor de "11" y seguiria aumentando conforme se registren pulsos a la entrada de nuestro contador ascendente: el bit de estado DN no se modifica hasta que el valor de acumulador caiga por debajo de nuestro preset, pero puede llegar a ocurrir el ya mencionado sobreflujo.
- En el caso de un conteo descendente el bit de estado activo en este caso sería el CD, solo cuando el contador descendente (CTD) este activado, esto resetea al bit de estado DN.
- Un punto a recordar es el hecho que ambas instrucciones tienen direccionado el mismo contador, por tanto y de manera automática los valores de preset y acumulador serán los mismos al momento de programar.
- Como último caso se muestra la situación de sobreflujo: cuando nuestro valor de acumulador tiene un valor de 32767 y recibe un conteo ascendente, el contador pasa a el valor más bajo de la escala(-32768) y el bit de OV es activado. Poner atención en el hecho de que el bit DN se mantiene energizado aún cuando su valor real del acumulador sea menor que el del preset.
RES RESET
La instrucción RES resetea
contadores, timers y elementos de control. Cuando la instrucción es ejecutada,
resetea los valores del elemento direccionado en la instrucción. La instrucción
no produce ningún efecto mientras el estado del renglón sea falso. La siguiente
tabla muestra los elementos que pueden ser modificados:
- Del ejemplo final de contadores se desprende el uso de la instrucción RESET, ya que ésta es direccionada a dicho contador y cuando el bit de "RESET" es energizado el contador regresa su valor de acumulador a 0 borrando de esta manera también el bit de estado OV o UV según sea el caso.