Untitled
unknown
plain_text
2 years ago
884 B
5
Indexable
FUNCTION_BLOCK Regulator VAR_INPUT Setpoint:INT; Calibrate:BOOL; switch:BOOL; END_VAR VAR_OUTPUT CalcPos:INT; Calibrating:BOOL; Step:BOOL; Direction:BOOL; END_VAR VAR stepPos:INT; END_VAR IF Calibrate THEN IF switch THEN Calibrating:=FALSE; CalcPos:=0; Step:=FALSE; ELSE calibrating:=TRUE; Step:=TRUE; Direction:=TRUE; END_IF END_IF IF Calibrating:=FALSE THEN switch:=FALSE; END_IF // Back to normal mode IF Calibrate = FALSE THEN IF Setpoint>CalcPos AND NOT Direction THEN Direction:=TRUE; ELSE IF Setpoint<CalcPos AND Direction THEN Direction:=FALSE; END_IF END_IF IF NOT (CalcPos=Setpoint) THEN Step:=NOT Step; IF Step AND Direction THEN CalcPos:=CalcPos+1; END_IF IF Step AND NOT Direction THEN CalcPos:=CalcPos-1; END_IF ELSE Step:=Step; END_IF END_IF
Editor is loading...
Leave a Comment