DUTs

GVLs

POUs

Main

PROGRAM Main
VAR
    //declare motion stage objects to connect with io
    {attribute 'pytmc' := 'pv: HXX:HXSS:ROV:MMS:ALL_H'}
    {attribute 'TcLinkTo' := '.bLimitForwardEnable  := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E2 (EL1088)^Channel 1^Input;
                              .bLimitBackwardEnable := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E2 (EL1088)^Channel 3^Input
    '}
    M1 : DUT_MotionStage;
    {attribute 'pytmc' := 'pv: HXX:HXSS:ROV:MMS:ALL_V'}
    {attribute 'TcLinkTo' := '.bLimitForwardEnable  := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E2 (EL1088)^Channel 2^Input;
                              .bLimitBackwardEnable := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E2 (EL1088)^Channel 4^Input
    '}
    M2 : DUT_MotionStage;
    {attribute 'pytmc' := 'pv: HXX:HXSS:ROV:MMS:XTAL_TH'}
    {attribute 'TcLinkTo' := '.bLimitForwardEnable  := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E5 (EL1088)^Channel 1^Input;
                              .bLimitBackwardEnable := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E5 (EL1088)^Channel 3^Input
    '}
    M3 : DUT_MotionStage;
    {attribute 'pytmc' := 'pv: HXX:HXSS:ROV:MMS:XTAL_TTH'}
    {attribute 'TcLinkTo' := '.bLimitForwardEnable  := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E5 (EL1088)^Channel 2^Input;
                              .bLimitBackwardEnable := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E5 (EL1088)^Channel 4^Input
    '}
    M4 : DUT_MotionStage;
    {attribute 'pytmc' := 'pv: HXX:HXSS:ROV:MMS:XTAL_H'}
    {attribute 'TcLinkTo' := '.bLimitForwardEnable  := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E8 (EL1088)^Channel 1^Input;
                              .bLimitBackwardEnable := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E8 (EL1088)^Channel 3^Input
    '}
    M5 : DUT_MotionStage;
    {attribute 'pytmc' := 'pv: HXX:HXSS:ROV:MMS:XTAL_V'}
    {attribute 'TcLinkTo' := '.bLimitForwardEnable  := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E8 (EL1088)^Channel 2^Input;
                              .bLimitBackwardEnable := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E8 (EL1088)^Channel 4^Input
    '}
    M6 : DUT_MotionStage;
    {attribute 'pytmc' := 'pv: HXX:HXSS:ROV:MMS:DET_H'}
    {attribute 'TcLinkTo' := '.bLimitForwardEnable  := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E11 (EL1088)^Channel 1^Input;
                              .bLimitBackwardEnable := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E11 (EL1088)^Channel 3^Input
    '}
    M7 : DUT_MotionStage;
    {attribute 'pytmc' := 'pv: HXX:HXSS:ROV:MMS:DET_V'}
    {attribute 'TcLinkTo' := '.bLimitForwardEnable  := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E11 (EL1088)^Channel 2^Input;
                              .bLimitBackwardEnable := TIID^Device 1 (EtherCAT)^Term 1 (EK1200)^E11 (EL1088)^Channel 4^Input
    '}
    M8 : DUT_MotionStage;
    //declare axes
    fbMotion1 : FB_MotionStage;
    fbMotion2 : FB_MotionStage;
    fbMotion3 : FB_MotionStage;
    fbMotion4 : FB_MotionStage;
    fbMotion5 : FB_MotionStage;
    fbMotion6 : FB_MotionStage;
    fbMotion7 : FB_MotionStage;
    fbMotion8 : FB_MotionStage;
END_VAR
//invoke axes
fbMotion1(stMotionStage:=M1);
fbMotion2(stMotionStage:=M2);
fbMotion3(stMotionStage:=M3);
fbMotion4(stMotionStage:=M4);
fbMotion5(stMotionStage:=M5);
fbMotion6(stMotionStage:=M6);
fbMotion7(stMotionStage:=M7);
fbMotion8(stMotionStage:=M8);

//.bHardwareEnable
M1.bHardwareEnable:=TRUE;
M2.bHardwareEnable:=TRUE;
M3.bHardwareEnable:=TRUE;
M4.bHardwareEnable:=TRUE;
M5.bHardwareEnable:=TRUE;
M6.bHardwareEnable:=TRUE;
M7.bHardwareEnable:=TRUE;
M8.bHardwareEnable:=TRUE;

//.bPowerSelf
M1.bPowerSelf:=TRUE;
M2.bPowerSelf:=TRUE;
M3.bPowerSelf:=TRUE;
M4.bPowerSelf:=TRUE;
M5.bPowerSelf:=TRUE;
M6.bPowerSelf:=TRUE;
M7.bPowerSelf:=TRUE;
M8.bPowerSelf:=TRUE;

//Limit switches
M3.bLimitBackwardEnable:=TRUE;
M3.bLimitForwardEnable:=TRUE;
M4.bLimitBackwardEnable:=TRUE;
M4.bLimitForwardEnable:=TRUE;

END_PROGRAM