DUTs

GVLs

POUs

MAIN

PROGRAM MAIN
VAR
    M1: DUT_MotionStage:=(nCommand:=3);
    M2: DUT_MotionStage:=(nCommand:=3);
    M3: DUT_MotionStage:=(nCommand:=3);
    M4: DUT_MotionStage:=(nCommand:=3);
    M5: DUT_MotionStage:=(nCommand:=3);
    M6: DUT_MotionStage:=(nCommand:=3);
    fbMotion1: FB_MotionStage;
    fbMotion2: FB_MotionStage;
    fbMotion3: FB_MotionStage;
    fbMotion4: FB_MotionStage;
    fbMotion5: FB_MotionStage;
    fbMotion6: FB_MotionStage;
    bM1CWLimit      AT      %I*     :       BOOL;
    bM1CCWLimit     AT      %I*     :       BOOL;
    bM2CWLimit      AT      %I*     :       BOOL;
    bM2CCWLimit     AT      %I*     :       BOOL;
    bM3CWLimit      AT      %I*     :       BOOL;
    bM3CCWLimit     AT      %I*     :       BOOL;
    bM4CWLimit      AT      %I*     :       BOOL;
    bM4CCWLimit     AT      %I*     :       BOOL;
    bM5CWLimit      AT      %I*     :       BOOL;
    bM5CCWLimit     AT      %I*     :       BOOL;
    bM6CWLimit      AT      %I*     :       BOOL;
    bM6CCWLimit     AT      %I*     :       BOOL;
    iM2Encoder      AT      %I*     :       INT;
    iM3Encoder      AT      %I*     :       INT;
    iM4Encoder      AT      %I*     :       INT;
    iM5Encoder      AT      %I*     :       INT;
    iM6Encoder      AT      %I*     :       INT;
END_VAR
// Motor 1 XTAL ANGLE X (SP1L0-KMONO-MMS-01)
M1.bLimitForwardEnable      := bM1CWLimit;  //TRUE
M1.bLimitBackwardEnable := bM1CWLimit;      //TRUE
M1.nEnableMode                      := Enum_StageEnableMode.STAGE_ENABLE_ALWAYS;
M1.bHardwareEnable          := TRUE;
M1.bPowerSelf                       := TRUE;
fbMotion1(stMotionStage:=M1);

// Motor 2 XTAL VERT Y (SP1L0-KMONO-MMS-02)
M2.bLimitForwardEnable      := bM2CCWLimit; //(+Y)
M2.bLimitBackwardEnable := bM2CWLimit;      //(-Y)
M2.nEnableMode                      := Enum_StageEnableMode.STAGE_ENABLE_ALWAYS;
M2.bHardwareEnable          := TRUE;
M2.bPowerSelf                       := TRUE;
fbMotion2(stMotionStage:=M2);

// Motor 3 RETICLE HORIZ X (SP1L0-KMONO-MMS-03)
M3.bLimitForwardEnable      := bM3CCWLimit; //(+X)
M3.bLimitBackwardEnable := bM3CWLimit;      //(-X)
M3.nEnableMode                      := Enum_StageEnableMode.STAGE_ENABLE_ALWAYS;
M3.bHardwareEnable          := TRUE;
M3.bPowerSelf                       := TRUE;
fbMotion3(stMotionStage:=M3);

// Motor 4 RETICLE VERT Y (SP1L0-KMONO-MMS-04)
M4.bLimitForwardEnable      := bM4CWLimit;  //(+Y)
M4.bLimitBackwardEnable := bM4CCWLimit;     //(-Y)
M4.nEnableMode                      := Enum_StageEnableMode.STAGE_ENABLE_ALWAYS;
M4.bHardwareEnable          := TRUE;
M4.bPowerSelf                       := TRUE;
fbMotion4(stMotionStage:=M4);

// Motor 5 DIODE HORIZ X (SP1L0-KMONO-MMS-05)
M5.bLimitForwardEnable      := bM5CCWLimit; //(+X)
M5.bLimitBackwardEnable := bM5CWLimit;      //(-X)
M5.nEnableMode                      := Enum_StageEnableMode.STAGE_ENABLE_ALWAYS;
M5.bHardwareEnable          := TRUE;
M5.bPowerSelf                       := TRUE;
fbMotion5(stMotionStage:=M5);

// Motor 6 DIODE VERT Y (SP1L0-KMONO-MMS-06)
M6.bLimitForwardEnable      := bM6CWLimit;  //(+Y)
M6.bLimitBackwardEnable := bM6CCWLimit;     //(-Y)
M6.nEnableMode                      := Enum_StageEnableMode.STAGE_ENABLE_ALWAYS;
M6.bHardwareEnable          := TRUE;
M6.bPowerSelf                       := TRUE;
fbMotion6(stMotionStage:=M6);

END_PROGRAM