viernes, 14 de junio de 2013

LECCION 9 PARTE 3: CONTADORES

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.