Fix bug in SFC generated code. Action state was declared in the list of variables to debug, but wasn't stored using structure with flags. This error had side effects that makes Beremiz debug crash.
FUNCTION_BLOCK DIFFEQ
VAR_INPUT
RUN : BOOL ; (* 1 = run, 0 = reset *)
XIN : REAL ;
A : ARRAY[1..] OF REAL ; (* Input coefficients *)
M : INT ; (* Length of input history *)
B : ARRAY[0..] OF REAL ; (* Output coefficients *)
N : INT ; (* Length of output history *)
END_VAR
VAR_OUTPUT XOUT : REAL := 0.0 ; END_VAR
VAR (* NOTE : Manufacturer may specify other array sizes *)
XI : ARRAY [0..128] OF REAL ; (* Input history *)
XO : ARRAY [0..128] OF REAL ; (* Output history *)
I : INT ;
END_VAR
XO[0] := XOUT ; XI[0] := XIN ;
XOUT := B[0] * XIN ;
IF RUN THEN
FOR I := M TO 1 BY -1 DO
XOUT := XOUT + A[I] * XO[I] ; XO[I] := XO[I-1];
END_FOR;
FOR I := N TO 1 BY -1 DO
XOUT := XOUT + B[I] * XI[I] ; XI[I] := XI[I-1];
END_FOR;
ELSE
FOR I := 1 TO M DO XO[I] := 0.0; END_FOR;
FOR I := 1 TO N DO XI[I] := 0.0; END_FOR;
END_IF ;
END_FUNCTION_BLOCK