lib/timer.txt
changeset 885 b2604fc6d25c
parent 392 9b88b8b6bccd
equal deleted inserted replaced
880:599e88d12f9a 885:b2604fc6d25c
    88     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
    88     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
    89     PREV_IN : BOOL := FALSE;
    89     PREV_IN : BOOL := FALSE;
    90     CURRENT_TIME, START_TIME : TIME;
    90     CURRENT_TIME, START_TIME : TIME;
    91   END_VAR
    91   END_VAR
    92 
    92 
    93   {__SET_VAR(data__->,CURRENT_TIME,__CURRENT_TIME)}
    93   {__SET_VAR(data__->,CURRENT_TIME,,__CURRENT_TIME)}
    94 
    94 
    95   IF ((STATE = 0) AND NOT(PREV_IN) AND IN)   (* found rising edge on IN *)
    95   IF ((STATE = 0) AND NOT(PREV_IN) AND IN)   (* found rising edge on IN *)
    96   THEN
    96   THEN
    97     (* start timer... *)
    97     (* start timer... *)
    98     STATE := 1;
    98     STATE := 1;
   169     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
   169     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
   170     PREV_IN : BOOL := FALSE;
   170     PREV_IN : BOOL := FALSE;
   171     CURRENT_TIME, START_TIME : TIME;
   171     CURRENT_TIME, START_TIME : TIME;
   172   END_VAR
   172   END_VAR
   173 
   173 
   174   {__SET_VAR(data__->,CURRENT_TIME,__CURRENT_TIME)}
   174   {__SET_VAR(data__->,CURRENT_TIME,,__CURRENT_TIME)}
   175 
   175 
   176   IF ((STATE = 0) AND NOT(PREV_IN) AND IN)   (* found rising edge on IN *)
   176   IF ((STATE = 0) AND NOT(PREV_IN) AND IN)   (* found rising edge on IN *)
   177   THEN
   177   THEN
   178     (* start timer... *)
   178     (* start timer... *)
   179     STATE := 1;
   179     STATE := 1;
   253     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
   253     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
   254     PREV_IN : BOOL := FALSE;
   254     PREV_IN : BOOL := FALSE;
   255     CURRENT_TIME, START_TIME : TIME;
   255     CURRENT_TIME, START_TIME : TIME;
   256   END_VAR
   256   END_VAR
   257 
   257 
   258   {__SET_VAR(data__->,CURRENT_TIME,__CURRENT_TIME)}
   258   {__SET_VAR(data__->,CURRENT_TIME,,__CURRENT_TIME)}
   259 
   259 
   260   IF ((STATE = 0) AND PREV_IN AND NOT(IN))   (* found falling edge on IN *)
   260   IF ((STATE = 0) AND PREV_IN AND NOT(IN))   (* found falling edge on IN *)
   261   THEN
   261   THEN
   262     (* start timer... *)
   262     (* start timer... *)
   263     STATE := 1;
   263     STATE := 1;