#info=SFCCHART
step GS1
step GS7
step GS2
step GS8
step GS3
step GS9
step GS10
step GS11
step GS12
step GS13
step GS5
step GS6
trans GT0
trans GT1
trans GT8
trans GT2
trans GT9
trans GT13
trans GT14
trans GT15
trans GT10
trans GT16
trans GT17
trans GT18
trans GT4
trans GT6
trans GT11
trans GT12
#endinfo

#info=TRANS,GT1
#info=ST
(*#GT1:*)
#endinfo
#info=ST
GT1 :=
(*#line=1*)
start;
;
#endinfo
#endinfo

#info=TRANS,GT8
#info=ST
(*#GT8:*)
#endinfo
#info=ST
GT8 :=
(*#line=1*)
start;
;
#endinfo
#endinfo

#info=TRANS,GT2
#info=ST
(*#GT2:*)
#endinfo
#info=ST
GT2 :=
(*#line=1*)
sampla;
;
#endinfo
#endinfo

#info=TRANS,GT9
#info=ST
(*#GT9:*)
#endinfo
#info=ST
GT9 :=
(*#line=1*)
GS8.T>=t#500ms;
;
#endinfo
#endinfo

#info=TRANS,GT10
#info=ST
(*#GT10:*)
#endinfo
#info=ST
GT10 :=
(*#line=1*)
GS9.T>=t#500ms;
;
#endinfo
#endinfo

#info=TRANS,GT13
#info=ST
(*#GT13:*)
#endinfo
#info=ST
GT13 :=
(*#line=1*)
e > -2000.0 and e < 2000.0;
;
#endinfo
#endinfo

#info=TRANS,GT14
#info=ST
(*#GT14:*)
#endinfo
#info=ST
GT14 :=
(*#line=1*)
e >= 2000.0;
;
#endinfo
#endinfo

#info=TRANS,GT15
#info=ST
(*#GT15:*)
#endinfo
#info=ST
GT15 :=
(*#line=1*)
e <= -2000.0;
;
#endinfo
#endinfo

#info=TRANS,GT4
#info=ST
(*#GT4:*)
#endinfo
#info=ST
GT4 :=
(*#line=1*)
u >= 0.0;
;
#endinfo
#endinfo

#info=TRANS,GT6
#info=ST
(*#GT6:*)
#endinfo
#info=ST
GT6 :=
(*#line=1*)
u < 0.0;
;
#endinfo
#endinfo

#info=TRANS,GT11
#info=ST
(*#GT11:*)
#endinfo
#info=ST
GT11 :=
(*#line=1*)
not sampla;
;
#endinfo
#endinfo

#info=TRANS,GT12
#info=ST
(*#GT12:*)
#endinfo
#info=ST
GT12 :=
(*#line=1*)
not sampla;
;
#endinfo
#endinfo

#info=STEP,GS1,P
#info=ST
(*#GS1:*)
#endinfo
#info=ST
(*#line=2*)
 h := 1.0;
 u := 0.0;
 i := 0.0;
 e := 0.0;
 filter := 0.0;

#endinfo

#endinfo

#info=STEP,GS2,P
#info=ST
(*#GS2:*)
#endinfo
#info=ST
(*#line=2*)
 iOld := i;
 eOld := e;
 filterOld := filter;

#endinfo

#endinfo

#info=STEP,GS8,P
#info=ST
(*#GS8:*)
#endinfo
#info=ST
(*#line=2*)
 sampla := false;

#endinfo

#endinfo

#info=STEP,GS3,P
#info=ST
(*#GS3:*)
#endinfo
#info=ST
(*#line=2*)
 e := real(bor) - real(y);

#endinfo

#endinfo

#info=STEP,GS9,P
#info=ST
(*#GS9:*)
#endinfo
#info=ST
(*#line=2*)
 sampla := true;

#endinfo

#endinfo

#info=STEP,GS10,P
#info=ST
(*#GS10:*)
#endinfo
#info=ST
(*#line=2*)
 i := iOld + h * e;
 filter := 0.0 * filterOld + 1.0 * e;
 d := (filter - filterOld) / h;
 u := KP * (e + i / TI + d * TD);

#endinfo

#endinfo

#info=STEP,GS11,P
#info=ST
(*#GS11:*)
#endinfo
#info=ST
(*#line=2*)
 u := 32000.0;

#endinfo

#endinfo

#info=STEP,GS12,P
#info=ST
(*#GS12:*)
#endinfo
#info=ST
(*#line=2*)
 u := 0.0;

#endinfo

#endinfo

#info=STEP,GS5,P
#info=ST
(*#GS5:*)
#endinfo
#info=ST
(*#line=2*)
 uAna := ana(u);

#endinfo

#endinfo

#info=STEP,GS6,P
#info=ST
(*#GS6:*)
#endinfo
#info=ST
(*#line=2*)
 uAna := 0;

#endinfo

#endinfo

