Contadores


Tal como o temporizador, o contador é programado como uma saída, e deve também ser identificado por um endereço e carregado com um valor definido pelo programador.

Sempre que o contador é alimentado, é registada uma contagem. Normalmente é colocado em série com as entradas que condicionam a contagem, um contacto a impulso com o objectivo de evitar contagens errôneas.

Quando a condição de contagem se verifica, o valor associado ao contador é decrementado de uma unidade. Imendiatamente a seguir é verificado se o valor do contador chegou a zero. Se assim for, a contagem está completa e a saída do contador passa a ON. Simultaneamente, os contactos que possuem a mesma identificação do contador são abertos ou fechados.

A contagem pode ser interrompida e o valor inicial carregado novamente em qualquer altura, por intermédio de uma condição de reset. Os contadores apresentam assim normalmente, duas linhas de entrada.

Alguns autómatos disponibilizam contadores apenas descendentes; outros disponibilizam contadores reversíveis ou seja, ascendentes e descendentes. Estes últimos apresentam 3 linhas de entrada: uma para incrementar, outra para decrementar e a linha de reset.

Exemplo:



Figura 8.10

No diagrama da figura 8.10, o contador 2 vai efectuar 10 contagens. A linha de reset é condicionada pelo estado dos contactos X1 e R5. Caso um ou outro seja fechado, é feito o reset ao contador, ou seja, este é carregado com o valor inicial, neste caso 10. Assumindo que foi feito o reset e que os contactos X1 e R7 estão abertos, é o estado de X1 e R3 que condiciona a contagem. Se ambos estiverem fechados, é registada uma contagem e o valor do contador é decrementado. Para assegurar que não ocorrem contagens erradas, R3 é um contacto a impulso. O diagrama temporal da figura 8.11 ilustra bem a ideia.


Figura 8.11 - Diagrama temporal.

De cada vez que R3 e X0 estão novamente fechados, é registada uma nova contagem. Neste caso, atingidas as 10 contagens e, assumindo que a linha de reset não foi nenhuma vez habilitada, a saída do contador vai passar a ON. O contacto normalmente aberto CNT2 vai fechar e a saída Y1 vai passar a ON. Enquanto Y1 permanecer a ON, nenhuma contagem é reconhecida.

Se em qualquer altura for feito o reset do contador por intermédio de X1 ou R5, o contador toma o valor 10 e a saída do mesmo passa a OFF. Isto implica que Y1 também se desligue.

Para finalizar, há que referir que normalmente, quando a entrada de reset está habilitada, não são reconhecidas contagens.
Contadores expansíveis

Tal como com os temporizadores, também se pode jogar com os contadores com vista a atingir valores de contagem superiores ao máximo conseguido por um só contador. Para isso, pode-se recorrer a um contador para efectuar a contagem do número de vezes, que outro contador contou, do seu valor máximo a zero.

Exemplo:

Figura 8.12 - Contador expansível.

No exemplo da figura 8.12, o contador 01, quando X0 está activa, faz a contagem decrescente do número de passagens de OFF para ON da entrada X1. Este contador é reinicializado pelo contacto CNT01, isto é, reinicia uma nova contagem decrescente quando atinge o valor zero.

O contador 02 conta o número de vezes que o contador 01 atinge o valor zero isto é, regista uma contagem de cada vez que o contacto CNT01 passa de OFF para ON. A entrada X2 é utilizada como entrada de reinicialização para todo o contador expandido, reinicializando os contadores 01 e 02 quando está desligada. O contacto CNT02 também é utilizado para reinicialização do contador 01, de modo a inibir a operação do mesmo, quando o contador 02 finaliza a sua acção de contagem, até que, por intermédio de X2, o contador global seja reinicializado.

Visto neste exemplo o valor do contador 01 ser 100 e do contador 02 ser 200, o contacto CNT02 é activado quando se detectam 100*200 mudanças de OFF para ON na entrada X1. Resultará então a activação da saída Y1.