Untitled

 avatar
unknown
plain_text
a year ago
1.3 kB
7
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