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