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.