Grazie dell’informazione, in effetti mi era sorto questo dubbio, ora ho modificato il codice secondo il tuo ultimo esempio, ecco il programma di test:
VAR
Reset AT %MX100.0 : BOOL;
Seg AT %MX100.1 : BOOL; (* segnalazione max numero avvii raggiunto*)
Start AT %IX255.0 : BOOL; (* Pulsante di marcia motore *)
Stop AT %IX255.1 : BOOL; (* Pulsante di stop motore *)
Km AT %QX255.0 : BOOL; (* Comando di avvio e stop motore *)
N_AVVII AT %MW100.2048 : INT; (* Numero di avvi motore *)
TP_Trig : R_TRIG;
END_VAR
Km:= (Start OR Km) AND NOT Stop;
TP_Trig(CLK := Km);
IF (TP_Trig.Q) THEN
N_AVVII := N_AVVII+1;
END_IF;
IF (N_AVVII >= 15) THEN
Seg:=TRUE;
END_IF;
IF (Reset= TRUE) THEN
N_AVVII:=0;
Seg:= FALSE;
END_IF;
Cosi ho tutte le variabili sotto controllo.