10 Sample Programming
10-26
NJ/NX-series CPU Unit Motion Control Userās Manual (W507)
// If the input parameters for absolute linear interpolation and stopping the axes group are not set, the target values
and other parameters are set.
IF InitFlag=FALSE THEN
// The input parameters for the MC_MoveLinearAbsolute (Absolute Linear Interpolation) instruction are set.
Mv_Lin_Abs_Pos[0] := LREAL#3000.0;
Mv_Lin_Abs_Pos[1] := LREAL#3000.0;
Mv_Lin_Abs_Vel := LREAL#1000.0;
Mv_Lin_Abs_Acc := LREAL#1000.0;
Mv_Lin_Abs_Dec := LREAL#1000.0;
Mv_Lin_Abs_Jrk := LREAL#1000.0;
// The input parameters for the MC_GroupStop instruction are set.
Grp_Stp_Dec := LREAL#1000.0;
Grp_Stp_Jrk := LREAL#1000.0;
// The Input Parameter Initialization Completed Flag is changed to TRUE.
InitFlag := TRUE;
END_IF;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 0.
// If the Servo Drive is not ready, turn OFF the Servo for axis 0.
IF (StartPg =TRUE)
AND (MC_Axis000.DrvStatus.Ready=TRUE) THEN
Pwr1_En:=TRUE ; // Turn ON the Servo for axis 0.
ELSE
Pwr1_En:=FALSE; // Turn OFF the Servo for axis 0.
END_IF;
// If the Servo Drive is ready when StartPg is TRUE, turn ON the Servo for axis 1.
// If the Servo Drive is not ready, turn OFF the Servo for axis 1.
IF (StartPg =TRUE)
AND (MC_Axis001.DrvStatus.Ready=TRUE) THEN
Pwr2_En:=TRUE; // Turn ON the Servo for axis 1.
ELSE
Pwr2_En:=FALSE; // Turn OFF the Servo for axis 1.
END_IF;
// If a minor fault level error occurs, the error handler for the device (FaultHandler) is executed.
// Program the FaultHandler according to the device.
IF (MC_Axis000.MFaultLvl.Active=TRUE)
OR (MC_Axis001.MFaultLvl.Active=TRUE)
OR (MC_Group000.MFaultLvl.Active=TRUE) THEN
FaultHandler();
END_IF;
// If the Servo is ON for axis 0 and home is not defined, the MC_Home instruction is executed for axis 0.
IF (Pwr1_Status=TRUE)
AND (MC_Axis000.Details.Homed=FALSE) THEN
Hm1_Ex:=TRUE;
END_IF;
// If the Servo is ON for axis 1 and home is not defined, the MC_Home instruction is executed for axis 1.
IF (Pwr2_Status=TRUE)
AND (MC_Axis001.Details.Homed=FALSE) THEN
Hm2_Ex:=TRUE;
END_IF;
ST Programming