This chapter explains the steps to operate a Lexium SCARA Robot in the program.
The required libraries are:
SchneiderElectricRobotics
SchneiderElectricRobotics Parameters
Robotic or RoboticModule
Every Lexium SCARA Robot requires its own instance of SER.FB_RobotSCARA. (for example fbRSP503: SER.FB_RoboticSCARA) and its instance of ROB.FB_Robot (for example fbRobot: ROB.FB_Robot) or an instance of the RM.FB_RoboticModule.
Initialize the Lexium SCARA Robot by calling the method fbRSP503.InitializeRobot().
Connect the FB_RobotSCARA to the FB_Robot by configuring the FB_Robot. Call fbRobot.ifConfiguration.SchneiderElectricRobot() for the RoboticModule and accordingly stRobotInterface.iq_ifConfiguration.SchneiderElectricRobot(). At the input i_ifRobot, assign fbRSP503.ifSchneiderElectricRobot.
The configuration is completed by calling the methods SetEmergencyParameter() and ConfigDone().
Call the program SER.SR_SlowCyclicExecution in a task with a task interval of 10 ms.
The program must be called only once, even if several robots of SchneiderElectricRobotics are used.
VAR
ifConfiguration : ROB.IF_RobotConfiguration;
//ifConfiguration : RM.IF_Configuration;
fbSCARA : SER.FB_RobotSCARA;
etDiag : GD.ET_Diag;
etDiagExt : ROB.ET_DiagExt;
//etDiagExtRm : RM.ET_DiagExt;
etDiagExtSer : SER.ET_DiagExt;
etDiagExtSerp : SERP.ET_DiagExt;
sMsg : STRING[80];
END_VAR
// Get interface instance
ifConfiguration := fbRobot.ifConfiguration;
// ifConfiguration := stRobotInterface.iq_ifConfiguration;
// Initialize SCARA
fb.SCARA.InitializeRobot(i_etRobotType := SERP.ET_RobotSCARA.LXMRSP0,
i_ifDriveA := DRV_RobotDriveA,
i_ifDriveB := DRV_RobotDriveB,
i_ifDriveC := DRV_RobotDriveC,
i_ifDriveD := DRV_RobotDriveD,
q_etDiag => etDiag,
q_etDiagExt => etDiagExt,
q_sMsg => sMsg);
// Configure SCARA
ifConfiguration.SchneiderElectricRobot( i_ifRobot := fbSCARA.ifSchneiderElectricRobot,
q_etDiag => etDiag,
q_etDiagExt => etDiagExtSer,
q_sMsg => sMsg);
// Call configuration method for the emergency parameter
ifConfiguration.SetEmergencyParameter( i_lrMaxDeceleration := 10000.0,
i_lrRamp := 25.0,
q_etDiag => etDiag,
q_etDiagExt => etDiagExt,
q_sMsg => sMsg);
// Sign config done
ifConfiguration.ConfigDone(q_etDiag => etDiag,
q_etDiagExt => etDiagExt,
q_sMsg => sMsg);