lib/timer.txt
changeset 217 f5dfadf5de54
parent 113 ea3f099f5b5f
child 276 1679f514f38a
equal deleted inserted replaced
216:136d6ae70745 217:f5dfadf5de54
    78     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
    78     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
    79     PREV_IN : BOOL := FALSE;
    79     PREV_IN : BOOL := FALSE;
    80     CURRENT_TIME, START_TIME : TIME;
    80     CURRENT_TIME, START_TIME : TIME;
    81   END_VAR
    81   END_VAR
    82 
    82 
    83   {data__->CURRENT_TIME = __CURRENT_TIME;}
    83   {__SET_VAR(data__->CURRENT_TIME,__CURRENT_TIME)}
    84 
    84 
    85   IF ((STATE = 0) AND NOT(PREV_IN) AND IN)   (* found rising edge on IN *)
    85   IF ((STATE = 0) AND NOT(PREV_IN) AND IN)   (* found rising edge on IN *)
    86   THEN
    86   THEN
    87     (* start timer... *)
    87     (* start timer... *)
    88     STATE := 1;
    88     STATE := 1;
   159     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
   159     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
   160     PREV_IN : BOOL := FALSE;
   160     PREV_IN : BOOL := FALSE;
   161     CURRENT_TIME, START_TIME : TIME;
   161     CURRENT_TIME, START_TIME : TIME;
   162   END_VAR
   162   END_VAR
   163 
   163 
   164   {data__->CURRENT_TIME = __CURRENT_TIME;}
   164   {__SET_VAR(data__->CURRENT_TIME,__CURRENT_TIME)}
   165 
   165 
   166   IF ((STATE = 0) AND NOT(PREV_IN) AND IN)   (* found rising edge on IN *)
   166   IF ((STATE = 0) AND NOT(PREV_IN) AND IN)   (* found rising edge on IN *)
   167   THEN
   167   THEN
   168     (* start timer... *)
   168     (* start timer... *)
   169     STATE := 1;
   169     STATE := 1;
   243     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
   243     STATE : SINT := 0;  (* internal state: 0-reset, 1-counting, 2-set *)
   244     PREV_IN : BOOL := FALSE;
   244     PREV_IN : BOOL := FALSE;
   245     CURRENT_TIME, START_TIME : TIME;
   245     CURRENT_TIME, START_TIME : TIME;
   246   END_VAR
   246   END_VAR
   247 
   247 
   248   {data__->CURRENT_TIME = __CURRENT_TIME;}
   248   {__SET_VAR(data__->CURRENT_TIME,__CURRENT_TIME)}
   249 
   249 
   250   IF ((STATE = 0) AND PREV_IN AND NOT(IN))   (* found falling edge on IN *)
   250   IF ((STATE = 0) AND PREV_IN AND NOT(IN))   (* found falling edge on IN *)
   251   THEN
   251   THEN
   252     (* start timer... *)
   252     (* start timer... *)
   253     STATE := 1;
   253     STATE := 1;