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:
PROGRAM MyProgram
VAR
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 *)
Reset AT %MX100.0 : BOOL;
Seg AT %MX100.1 : BOOL; (* segnalazione max numero avvii raggiunto*)
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.