Untitled
unknown
plain_text
2 years ago
1.3 kB
6
Indexable
PROGRAM PLC_PRG
VAR
Aplus:BOOL;
Bplus:BOOL;
Aminus:BOOL;
Bminus:BOOL;;
stepPos:INT;
switch:BOOL; //limit
Angle:REAL;
control:StepMotorControl;
END_VAR
//current position A+
IF control.stepPos <> control.prevPos THEN
IF control.stepPos=0 AND control.prevPos=3 THEN
stepPos:=stepPos+1;
ELSE IF control.stepPos=0 AND control.prevPos=1 THEN
stepPos:=stepPos-1;
END_IF
END_IF
END_IF
//Current position Bplus
IF control.stepPos <> control.prevPos THEN
IF control.stepPos=1 AND control.prevPos=0 THEN
stepPos:=stepPos+1;
ELSE IF control.stepPos=1 AND control.prevPos=2 THEN
stepPos:=stepPos-1;
END_IF
END_IF
END_IF
//Current position Aminus
IF control.stepPos <> control.prevPos THEN
IF control.stepPos=2 AND control.prevPos=1 THEN
stepPos:=stepPos+1;
ELSE IF control.stepPos=2 AND control.prevPos=3 THEN
stepPos:=stepPos-1;
END_IF
END_IF
END_IF
//current position Bminus
IF control.stepPos <> control.prevPos THEN
IF control.stepPos=3 AND control.prevPos=2 THEN
stepPos:=stepPos+1;
ELSE IF control.stepPos=3 AND control.prevPos=0 THEN
stepPos:=stepPos-1;
END_IF
END_IF
END_IF
IF stepPos <= 0 THEN
switch := TRUE;
ELSE
switch := FALSE;
END_IF
Angle:=0.36*stepPos;
Editor is loading...
Leave a Comment