DUTs

GVLs

Global_Version

{attribute 'TcGenerated'}
// This function has been automatically generated from the project information.
VAR_GLOBAL CONSTANT
    {attribute 'const_non_replaced'}
    {attribute 'linkalways'}
    stLibVersion_lcls_plc_xpp_jjslit_motion : ST_LibVersion := (iMajor := 1, iMinor := 0, iBuild := 0, iRevision := 0, sVersion := '1.0.0');
END_VAR

POUs

Main

PROGRAM Main
VAR
    // Motors
    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_1_V_Gap_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_1_V_Gap_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv: XPP:USR:JJ1:JAWS:YWIDTH
    '}
    M1 : DUT_MotionStage := (bPowerSelf:=True,
//    nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_1_Vertical_Gap

    fbMotionStageM1 : FB_MotionStage;



    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_1_V_Offset_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_1_V_Offset_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv: XPP:USR:JJ1:JAWS:YCENTER
    '}
    M2 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_1_Vertical_Offset

    fbMotionStageM2 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_1_H_Gap_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_1_H_Gap_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ1:JAWS:XWIDTH
    '}
    M3 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_1_Horizontal_Gap

    fbMotionStageM3 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_1_H_Offset_EL7031]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_1_H_Offset_EL7031]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ1:JAWS:XCENTER
    '}
    M4 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_1_Horizontal_Offset

    fbMotionStageM4 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_2_V_Gap_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_2_V_Gap_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ2:JAWS:YWIDTH
    '}
    M5 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_2_Vertical_Gap

    fbMotionStageM5 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_2_V_Offset_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_2_V_Offset_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ2:JAWS:YCENTER
    '}
    M6 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_2_Vertical_Offset
    fbMotionStageM6 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_2_H_Gap_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_2_H_Gap_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ2:JAWS:XWIDTH
    '}
    M7 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_2_Horizontal_Gap

    fbMotionStageM7 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_2_H_Offset_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_2_H_Offset_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ2:JAWS:XCENTER
    '}
    M8 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_2_Horizontal_Offset

    fbMotionStageM8 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_3_V_Gap_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_3_V_Gap_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv: XPP:USR:JJ3:JAWS:YWIDTH
    '}
    M9 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_3_Vertical_Gap

    fbMotionStageM9 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_3_V_Offset_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_3_V_Offset_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ3:JAWS:YCENTER
    '}
    M10 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_3_Vertical_Offset

    fbMotionStageM10 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_3_H_Gap_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_3_H_Gap_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ3:JAWS:XWIDTH
    '}
    M11 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_3_Horizontal_Gap

    fbMotionStageM11 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_3_H_Offset_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_3_H_Offset_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ3:JAWS:XCENTER
    '}
    M12 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_3_Horizontal_Offset

    fbMotionStageM12 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_4_V_Gap_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_4_V_Gap_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ4:JAWS:YWIDTH
    '}
    M13 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_4_Vertical_Gap

    fbMotionStageM13 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_4_V_Offset_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_4_V_Offset_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ4:JAWS:YCENTER
    '}
    M14 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_4_Vertical_Offset

    fbMotionStageM14 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_4_H_Gap_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_4_H_Gap_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ4:JAWS:XWIDTH
    '}
    M15 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_4_Horizontal_Gap

    fbMotionStageM15 : FB_MotionStage;

    {attribute 'TcLinkTo' := '.bLimitForwardEnable  :=TIIB[JJ_4_H_Offset_EL7037]^STM Status^Status^Digital input 1;
                              .bLimitBackwardEnable :=TIIB[JJ_4_H_Offset_EL7037]^STM Status^Status^Digital input 2'}
    {attribute 'pytmc' := '
        pv:  XPP:USR:JJ4:JAWS:XCENTER
    '}
    M16 : DUT_MotionStage := (bPowerSelf:=True,
//  nEnableMode:=ENUM_StageEnableMode.ALWAYS,
    nEnableMode:=ENUM_StageEnableMode.DURING_MOTION,
    nBrakeMode:= ENUM_StageBrakeMode.NO_BRAKE,
    nHomingMode := ENUM_EpicsHomeCmd.LOW_LIMIT); // JJ_4_Horizontal_Offset

    fbMotionStageM16 : FB_MotionStage;
END_VAR
// Hardware Enable
M1.bHardwareEnable := TRUE;
fbMotionStageM1(stMotionStage:=M1);

M2.bHardwareEnable := TRUE;
fbMotionStageM2(stMotionStage:=M2);

M3.bHardwareEnable := TRUE;
fbMotionStageM3(stMotionStage:=M3);

M4.bHardwareEnable := TRUE;
fbMotionStageM4(stMotionStage:=M4);

M5.bHardwareEnable := TRUE;
fbMotionStageM5(stMotionStage:=M5);

M6.bHardwareEnable := TRUE;
fbMotionStageM6(stMotionStage:=M6);

M7.bHardwareEnable := TRUE;
fbMotionStageM7(stMotionStage:=M7);

M8.bHardwareEnable := TRUE;
fbMotionStageM8(stMotionStage:=M8);

M9.bHardwareEnable := TRUE;
fbMotionStageM9(stMotionStage:=M9);

M10.bHardwareEnable := TRUE;
fbMotionStageM10(stMotionStage:=M10);

M11.bHardwareEnable := TRUE;
fbMotionStageM11(stMotionStage:=M11);

M12.bHardwareEnable := TRUE;
fbMotionStageM12(stMotionStage:=M12);

M13.bHardwareEnable := TRUE;
fbMotionStageM13(stMotionStage:=M13);

M14.bHardwareEnable := TRUE;
fbMotionStageM14(stMotionStage:=M14);

M15.bHardwareEnable := TRUE;
fbMotionStageM15(stMotionStage:=M15);

M16.bHardwareEnable := TRUE;
fbMotionStageM16(stMotionStage:=M16);

END_PROGRAM