mapeados, respectivamente, pelas instruções LCE
| 1. conta ... reset_quando ... em ... referência ...;
|
| 2. conta_decrescente ... quando ... faz ...;
|
| 3. conta_crescente ... conta_decrescente ... reset_quando ... em ... referência ...;
|
1. CTU:
LD I0.0
LD I0.1
CTU C0, 3
No exemplo acima, a variável doubleword C0 (variável de contagem) conta as vezes em que a variável bit I0.0 passou de falso (desligado ou não acionado) para verdadeiro (ligado ou acionado), em contagem crescente ou progressiva. Quando C0 atinge o valor de referência 3 (valor preset), a variável bit C0, inicialmente desligada, torna-se ligada; e a contagem continua.
Quando I0.1 torna-se verdadeiro (ligado ou acionado), a variável doubleword C0 é zerada e a variável bit C0, desligada.
Para que o ciclo se repita, I0.1 deve ser ligada e desligada.
Diagrama de Funcionamento
Obs.: a forma com que se usa a variável C0 definirá se se trata da doubleword C0 (comparações, atribuições ou operações matemáticas) ou do bit C0 (operações lógicas de bit), conforme exemplificado no diagrama abaixo:
2. CTD:
LD I0.0
LD I0.1
CTD C0, 3
No exemplo acima, quando I0.1 torna-se ligada - ou acionada, a variável doubleword C0 recebe o valor 3 (valor preset), e a variável bit C0 é desligada. Então, para que a contagem regressiva possa acontecer, I0.1 deve ser desligada. A partir daí, cada vez que I0.0 passa de desligada para ligada, a doubleword C0 é decrementada (subtraída de um, em contagem decrescente ou regressiva).
Se I0.1 for ligada, volta-se ao início da contagem regressiva (valor preset). Quando a variável doubleword C0 atinge o valor zero, a variável bit C0 torna-se ligada; e a contagem regressiva pára em zero.
Para que o ciclo se repita, I0.1 deve ser ligada e desligada.
Diagrama de Funcionamento
3. CTUD:
LD I0.0
LD I0.1
LD I0.2
CTUD C0, 3
No exemplo acima, quando I0.2 torna-se ligada ou acionada, a variável doubleword C0 é zerada, e a variável bit C0 é desligada. Então, para que a contagem progressiva e/ou regressiva possam acontecer, I0.2 deve ser desligada. A partir daí, cada vez que I0.0 passa de desligada para ligada, a variável doubleword C0 é incrementada, em contagem progressiva, e cada vez que I0.1 passa de desligada para ligada, a variável doubleword C0 é decrementada, em contagem regressiva.
Se I0.2 for ligada, volta-se ao início da contagem, com a variável doubleword C0 sendo zerada, e a variável bit C0, desligada.
Quando C0 atinge o valor de referência (preset) 3, a variável bit C0 é ligada; e a contagem continua. A contagem, tanto a regressiva quanto a progressiva, não pára nunca, podendo alcançar inclusive valores negativos. (Obs.: se atingido o limite numérico da variável doubleword, a contagem passa do máximo positivo para o mínimo negativo e vice-versa.)
Para que o ciclo se repita, I0.2 deve ser ligada e desligada.
Diagrama de Funcionamento
Obs. 1: a resposta à atuação das entradas pode demorar até um ciclo de scan, embora tal demora não esteja representada nos diagramas acima.
Obs.: a variável de contagem deve ter, necessariamente, a forma Cn, onde n pode variar de 0 a 511.