2.3. Contadores
Los contadores o counters nos permiten realizar funciones de contar y descontar elemento, unidades, procesos etc. En el microPLC se han implementado los temporizadores típicos que se encuentran en cualquier PLC industrial. Una de las ventajas es que podemos declarar tantos temporizadores como se necesiten, ya que la única limitación es la cantidad de memoria disponible en el micro-computador industrial.
Diagrama
En la siguiente figura se muestra el diagrama Ladder equivalente a los contadores con las correspondientes patillas de control. En este caso se trata del contador más completo el incremental y decremental.
Contador ascendente y descendente
Funciones comunes
counterX.Inc(bit) Incrementa el contador en una unidad.
- Función por Flanco ascendente
- Al llegar al valor final el contador se queda parado
counterX.Dec(bit) Decrementa el contador en una unidad.
- Función por Flanco ascendente
- Al llegar a cero el contador queda parado
counterX.Set(bit) Carga el valor de la entrada N() en el contador como valor actual.
counterX.N(int) Establece el valor actual del contador al valor de la constante o variable N.
Solo se utiliza si es necesario, este valor se aplica cuando la entrada Set() se activa. Se puede establecer en la declaración del contador como primer valor de este.
counterX.Q(bit) Estado de la salida del contador, retorna
- 0 si el valor del contador está a cero
- 1 cualquier otro valor distinto a cero
counterX.D(bit) Desbordamiento o fin del contador, retorna
- 0 si el valor del contador es inferior al valor final
- 1 cuando el contador alcanza el valor final
counterX.Con(bit) Entrega el valor actual del contador
Declaración
La declaración de los contadores se realiza como cualquier variable, se indica el tipo de contador seguido del nombre que le queremos asignar, opcionalmente se puede establecer el valor inical del contador N.
{tipo Contador} nombre; // Con valor de inicio a Cero
{tipo Contador} nombre( N, F ); // Con valor de inicio N y fin F
Funcionamiento
Para utilizar los contadores se ha de seguir los siguientes pasos:
1.- Declaración de un contador como variable global
CI ci1(5, 1000); // Contador ci1 del tipo CI (Contador Incremental) con valor inicial de 5 y final 1000
2.- En el cuerpo del programa realizar las conexiones según del diagrama de contactos Ladder
// Contador ci1
ci1.Inc(s._1); // El contador se incrementa según loa impulsos que se producen en la entrada S1
k._1=ci1.Q(); // La salida del contador actúa sobre K1
Tipos de contadores
- CI - Contador ascendente de incremento
- CD - Contador descendente decremento
- CID - Contador doble, incremental y decremental
Los tres contadores tienen el mismo comportamiento, y comparten las mismas funciones, se diferencian en la acción que realizan, incrementa, decrementa y ambas.