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.