F_TRIG

Instrucciones  Índex 

Detecta un cambio entre el estado anterior del acumulador y el reciente de la instrucción anterior. Cuando hay transición el acumulador sale en 1, caso contrario en 0.

Detecta transición 1 a 0 (entre ejecución actual y la anterior).

La 1ª vez que se ejecuta el acumulador sale en cero, pues se limita a memorizar el estado.

    LD 0             ;Estado anterior Acc = desconectado

    LD i0.0          ;Nuevo estado Acc = i0.0

    F_TRIG           ;Detecto el cambio 0 -> 1

    SET q0.6         ;Dejo salida activada su hubo transición

 

    LD 0             ;Estado anterior Acc = desconectado

    LD i0.1          ;Nuevo estado Acc = i0.1

    R_TRIG           ;Detecto el cambio 1 -> 0

    RESET q0.6       ;Dejo salida desactivada su hubo transición

 

1° ejecución: sin cambio (memoriza el estado).

|                      +--------+     q0.6  |
+-----------||---------+ F_TRIG +-----(S)---+
|                      +--------+      0    |

2° ejecución: antes y ahora son distintos (0 -> 1), pero no es el tipo que puede detectar.

|            ↑         +--------+     q0.6  |
+-----------||---------+ F_TRIG +-----(S)---+
|                      +--------+      0    |

3° ejecución: antes y ahora son distintos (1 -> 0) desde la vez anterior.

|            ↓         +--------+     q0.6  |
+-----------||---------+ F_TRIG +-----(S)---+
|                      +--------+      1   |

4° ejecución: antes y ahora son iguales. q0.6 premanece sin cambio porque se usó SET.

|                      +--------+     q0.6  |
+-----------||---------+ F_TRIG +-----(S)---+
|                      +--------+      1    |