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_LFE_VAC : ST_LibVersion := (iMajor := 2, iMinor := 1, iBuild := 0, iRevision := 0, sVersion := '2.1.0');
END_VAR

GVL_Devices

//{attribute 'qualified_only'}
VAR_GLOBAL



(*TRANSPORT VACUUM 1 HXR 0 LINE*) //HXR INSTALLATION SECTION 1
    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[EBD_E1_EL1004]^Channel 1^Input;
                                 .i_xClsLS  :=      TIIB[EBD_E1_EL1004]^Channel 2^Input;
                                 .q_xOPN_DO :=      TIIB[EBD_E2_EL2004]^Channel 1^Output;
                                 .q_xOPN_DO :=      TIIB[EBD_E2_EL2004]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: TV1L0:VGC:01
        io: io
    '}
    TV1L0_VGC_01 : FB_VGC;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E2_EL3064]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: TV1L0:GPI:01
        io: io
    '}
    TV1L0_GPI_01 : FB_MKS317;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E1_EL3064]^AI Standard Channel 1^Value;
                                 .q_xHV_DIS         :=      TIIB[MKS_E3_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: TV1L0:GCC:01
        io: io
    '}
    TV1L0_GCC_01 : FB_MKS422;

(*RAPID TRANSIT DIAGNOSTIC STAND HXR 0 LINE*)
    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E1_EL3064]^AI Standard Channel 1^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E2_EL1004]^Channel 1^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E3_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: RTDSL0:PIP:01
        io: io
    '}
    RTDSL0_PIP_01 : FB_PIP_Gamma;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E1_EL3064]^AI Standard Channel 2^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E2_EL1004]^Channel 2^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E3_EL2794]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: RTDSL0:PIP:02
        io: io
    '}
    RTDSL0_PIP_02 : FB_PIP_Gamma;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E1_EL3064]^AI Standard Channel 3^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E2_EL1004]^Channel 3^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E3_EL2794]^Channel 3^Output
    '}
    {attribute 'pytmc' := '
        pv: RTDSL0:PIP:03
        io: io
    '}
    RTDSL0_PIP_03 : FB_PIP_Gamma;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E1_EL3064]^AI Standard Channel 4^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E2_EL1004]^Channel 4^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E3_EL2794]^Channel 4^Output
    '}
    {attribute 'pytmc' := '
        pv: RTDSL0:PIP:04
        io: io
    '}
    RTDSL0_PIP_04 : FB_PIP_Gamma;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E4_EL3064]^AI Standard Channel 1^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E5_EL1004]^Channel 1^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E6_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: RTDSL0:PIP:05
        io: io
    '}
    RTDSL0_PIP_05 : FB_PIP_Gamma;

(* IM1L0-XTES*) //HXR INSTALLATION SECTION 2
    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[EBD_E1_EL1004]^Channel 3^Input;
                                 .i_xClsLS  :=      TIIB[EBD_E1_EL1004]^Channel 4^Input;
                                 .q_xOPN_DO :=      TIIB[EBD_E2_EL2004]^Channel 3^Output;
                                 .q_xOPN_DO :=      TIIB[EBD_E2_EL2004]^Channel 4^Output
    '}
    {attribute 'pytmc' := '
        pv: IM1L0:XTES:VGC:01
        io: io
    '}
    IM1L0_XTES_VGC_01 : FB_VGC;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E4_EL3064]^AI Standard Channel 2^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E5_EL1004]^Channel 2^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E6_EL2794]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: IM1L0:XTES:PIP:01
        io: io
    '}
    IM1L0_XTES_PIP_01 : FB_PIP_Gamma;

(*TV2L0*)
    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E7_EL3064]^AI Standard Channel 1^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E8_EL1004]^Channel 1^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E9_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: TV2L0:PIP:01
        io: io
    '}
    TV2L0_PIP_01 : FB_PIP_Gamma;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E2_EL3064]^AI Standard Channel 2^Value
    '}
    {attribute 'pytmc' := '
        pv: TV2L0:GPI:01
        io: io
    '}
    TV2L0_GPI_01 : FB_MKS317;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E1_EL3064]^AI Standard Channel 3^Value;
                                 .q_xHV_DIS         :=      TIIB[MKS_E3_EL2794]^Channel 3^Output
    '}
    {attribute 'pytmc' := '
        pv: TV2L0:GCC:01
        io: io
    '}
    TV2L0_GCC_01 : FB_MKS422;
    //HXR INSTALLATION SECTION 3
    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[EBD_E3_EL1004]^Channel 1^Input;
                                 .i_xClsLS  :=      TIIB[EBD_E3_EL1004]^Channel 2^Input;
                                 .q_xOPN_DO :=      TIIB[EBD_E4_EL2004]^Channel 1^Output;
                                 .q_xOPN_DO :=      TIIB[EBD_E4_EL2004]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: TV2L0:VGC:01
        io: io
    '}
    TV2L0_VGC_01 : FB_VGC;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E7_EL3064]^AI Standard Channel 2^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E8_EL1004]^Channel 2^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E9_EL2794]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: TV2L0:PIP:02
        io: io
    '}
    TV2L0_PIP_02 : FB_PIP_Gamma;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E18_EL3064]^AI Standard Channel 1^Value;
                                 .q_xHV_DIS         :=      TIIB[MKS_E20_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: TV2L0:GFS:01
        io: io
    '}
    TV2L0_GFS_01    :       FB_MKS422;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E5_EL3064]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: TV2L0:GPI:02
        io: io
    '}
    TV2L0_GPI_02 : FB_MKS317;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E4_EL3064]^AI Standard Channel 1^Value;
                                 .q_xHV_DIS         :=      TIIB[MKS_E6_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: TV2L0:GCC:02
        io: io
    '}
    TV2L0_GCC_02 : FB_MKS422;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E7_EL3064]^AI Standard Channel 3^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E8_EL1004]^Channel 3^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E9_EL2794]^Channel 3^Output
    '}
    {attribute 'pytmc' := '
        pv: TV2L0:PIP:03
        io: io
    '}
    TV2L0_PIP_03 : FB_PIP_Gamma;

    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[FEE_L0S2_EP1_EP2338-0002]^Channel 1^Input;
                                 .i_xClsLS  :=      TIIB[FEE_L0S2_EP1_EP2338-0002]^Channel 2^Input;
                                 .q_xOPN_DO :=      TIIB[FEE_L0S2_EP1_EP2338-0002]^Channel 11^Output
    '}
    {attribute 'pytmc' := '
        pv: TV2L0:VGC:02
        io: io
    '}
    TV2L0_VGC_02 : FB_VGC;

(*SL1L0-POWER*) //HXR INSTALLATION SECTION 4
    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E9_EL3064]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: SL1L0:POWER:GPI:01
        io: io
    '}
    SL1L0_POWER_GPI_01 : FB_MKS317;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E8_EL3064]^AI Standard Channel 1^Value;
                                 .q_xHV_DIS         :=      TIIB[MKS_E10_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: SL1L0:POWER:GCC:01
        io: io
    '}
    SL1L0_POWER_GCC_01 : FB_MKS422;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E21_EL3064]^AI Standard Channel 1^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E22_EL1004]^Channel 1^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E23_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: SL1L0:POWER:PIN:01
        io: io
    '}
    SL1L0_POWER_PIN_01 : FB_PIP_Gamma;

(*AT2L0-SOLID*) //HXR INSTALLATION SECTION 6
    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E9_EL3064]^AI Standard Channel 2^Value
    '}
    {attribute 'pytmc' := '
        pv: AT2L0:SOLID:GPI:01
        io: io
    '}
    AT2L0_SOLID_GPI_01 : FB_MKS317;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E8_EL3064]^AI Standard Channel 3^Value;
                                 .q_xHV_DIS         :=      TIIB[MKS_E10_EL2794]^Channel 3^Output
    '}
    {attribute 'pytmc' := '
        pv: AT2L0:SOLID:GCC:01
        io: io
    '}
    AT2L0_SOLID_GCC_01 : FB_MKS422;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E21_EL3064]^AI Standard Channel 2^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E22_EL1004]^Channel 2^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E23_EL2794]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: AT2L0:SOLID:PIN:01
        io: io
    '}
    AT2L0_SOLID_PIN_01 : FB_PIP_Gamma;

(*PC1L0-XTES*) //HXR INSTALLATION SECTION 7
    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[FEE_L0S8_EP1_EP2338-0002]^Channel 1^Input;
                                 .i_xClsLS  :=      TIIB[FEE_L0S8_EP1_EP2338-0002]^Channel 2^Input;
                                 .q_xOPN_DO :=      TIIB[FEE_L0S8_EP1_EP2338-0002]^Channel 11^Output
    '}
    {attribute 'pytmc' := '
        pv: PC1L0:XTES:VGC:01
        io: io
    '}
    PC1L0_XTES_VGC_01 : FB_VGC;

(*SP1L0-KMONO*)
    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E12_EL3064]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: SP1L0:KMONO:GPI:01
        io: io
    '}
    SP1L0_KMONO_GPI_01 : FB_MKS317;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E11_EL3064]^AI Standard Channel 1^Value;
                                 .q_xHV_DIS         :=      TIIB[MKS_E13_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: SP1L0:KMONO:GCC:01
        io: io
    '}
    SP1L0_KMONO_GCC_01 : FB_MKS422;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E11_EL3064]^AI Standard Channel 1^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E12_EL1004]^Channel 1^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E13_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: SP1L0:KMONO:PIP:01
        io: io
    '}
    SP1L0_KMONO_PIP_01 : FB_PIP_Gamma;

(*PA1L0*)
    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E21_EL3064]^AI Standard Channel 3^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E22_EL1004]^Channel 3^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E23_EL2794]^Channel 3^Output
    '}
    {attribute 'pytmc' := '
        pv: PA1L0:PIN:01
        io: io
    '}
    PA1L0_PIN_01 : FB_PIP_Gamma; //PIN???
(*
    {attribute 'TcLinkTo' :=        '.???
    '}
    {attribute 'pytmc' := '
        pv: PA1L0:VFS:01
        io: io
    '}
    PA1L0_VFS_01    :       FB_VFS_Interface;
*)
    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E15_EL3064]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: PA1L0:GPI:01
        io: io
    '}
    PA1L0_GPI_01 : FB_MKS317;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E14_EL3064]^AI Standard Channel 1^Value;
                                 .q_xHV_DIS         :=      TIIB[MKS_E16_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: PA1L0:GCC:01
        io: io
    '}
    PA1L0_GCC_01 : FB_MKS422;

(*MR1L0-HOMS*) //HXR INSTALLATION SECTION 8
    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[FEE_L0S10_EP1_EP2338-0002]^Channel 1^Input;
                                 .i_xClsLS  :=      TIIB[FEE_L0S10_EP1_EP2338-0002]^Channel 2^Input;
                                 .q_xOPN_DO :=      TIIB[FEE_L0S10_EP1_EP2338-0002]^Channel 11^Output
    '}
    {attribute 'pytmc' := '
        pv: MR1L0:HOMS:VGC:01
        io: io
    '}
    MR1L0_HOMS_VGC_01 : FB_VGC;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E15_EL3064]^AI Standard Channel 2^Value
    '}
    {attribute 'pytmc' := '
        pv: MR1L0:HOMS:GPI:01
        io: io
    '}
    MR1L0_HOMS_GPI_01 : FB_MKS317;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E14_EL3064]^AI Standard Channel 3^Value;
                                 .q_xHV_DIS         :=      TIIB[MKS_E16_EL2794]^Channel 3^Output
    '}
    {attribute 'pytmc' := '
        pv: MR1L0:HOMS:GCC:01
        io: io
    '}
    MR1L0_HOMS_GCC_01 : FB_MKS422;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E11_EL3064]^AI Standard Channel 2^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E12_EL1004]^Channel 2^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E13_EL2794]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: MR1L0:HOMS:PIP:01
        io: io
    '}
    MR1L0_HOMS_PIP_01 : FB_PIP_Gamma;

(*MR1L1-TXI*)
    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[FEE_L0S14_EP2_EP3174-0002]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: MR1L1:TXI:GPI:01
        io: io
    '}
    MR1L1_TXI_GPI_01 : FB_MKS275;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[FEE_L0S14_EP2_EP3174-0002]^AI Standard Channel 2^Value;
                                 .q_xHV_DIS         :=      TIIB[FEE_L0S14_EP3_EP2624-0002]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: MR1L1:TXI:GCC:01
        io: io
    '}
    MR1L1_TXI_GCC_01 : FB_MKS500;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E14_EL3064]^AI Standard Channel 4^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E15_EL1004]^Channel 4^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E16_EL2794]^Channel 4^Output
    '}
    {attribute 'pytmc' := '
        pv: MR1L1:TXI:PIP:01
        io: io
    '}
    MR1L1_TXI_PIP_01 : FB_PIP_Gamma;

(*BT2L0-PLEG*) //HXR INSTALLATION SECTION 9
    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[FEE_L0S14_EP1_EP2338-0002]^Channel 1^Input;
                                 .i_xClsLS  :=      TIIB[FEE_L0S14_EP1_EP2338-0002]^Channel 2^Input;
                                 .q_xOPN_DO :=      TIIB[FEE_L0S14_EP1_EP2338-0002]^Channel 11^Output
    '}
    {attribute 'pytmc' := '
        pv: BT2L0:PLEG:VGC:01
        io: io
    '}
    BT2L0_PLEG_VGC_01 : FB_VGC;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[FEE_L0S14_EP2_EP3174-0002]^AI Standard Channel 3^Value
    '}
    {attribute 'pytmc' := '
        pv: BT2L0:PLEG:GPI:01
        io: io
    '}
    BT2L0_PLEG_GPI_01 : FB_MKS275;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[FEE_L0S14_EP2_EP3174-0002]^AI Standard Channel 4^Value;
                                 .q_xHV_DIS         :=      TIIB[FEE_L0S14_EP3_EP2624-0002]^Channel 4^Output
    '}
    {attribute 'pytmc' := '
        pv: BT2L0:PLEG:GCC:01
        io: io
    '}
    BT2L0_PLEG_GCC_01 : FB_MKS500;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E11_EL3064]^AI Standard Channel 3^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E12_EL1004]^Channel 3^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E13_EL2794]^Channel 3^Output
    '}
    {attribute 'pytmc' := '
        pv: BT2L0:PLEG:PIP:01
        io: io
    '}
    BT2L0_PLEG_PIP_01 : FB_PIP_Gamma;

(*MR2L0-HOMS*) //HXR INSTALLATION SECTION 10
    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[FEE_L0S18_EP1_EP2338-0002]^Channel 1^Input;
                                 .i_xClsLS  :=      TIIB[FEE_L0S18_EP1_EP2338-0002]^Channel 2^Input;
                                 .q_xOPN_DO :=      TIIB[FEE_L0S18_EP1_EP2338-0002]^Channel 11^Output
    '}
    {attribute 'pytmc' := '
        pv: MR2L0:HOMS:VGC:01
        io: io
    '}
    MR2L0_HOMS_VGC_01 : FB_VGC;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[FEE_L0S18_EP2_EP3174-0002]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: MR2L0:HOMS:GPI:01
        io: io
    '}
    MR2L0_HOMS_GPI_01 : FB_MKS275;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[FEE_L0S18_EP2_EP3174-0002]^AI Standard Channel 2^Value;
                                 .q_xHV_DIS         :=      TIIB[FEE_L0S18_EP3_EP2624-0002]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: MR2L0:HOMS:GCC:01
        io: io
    '}
    MR2L0_HOMS_GCC_01 : FB_MKS500;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E11_EL3064]^AI Standard Channel 4^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E12_EL1004]^Channel 4^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E13_EL2794]^Channel 4^Output
    '}
    {attribute 'pytmc' := '
        pv: MR2L0:HOMS:PIP:01
        io: io
    '}
    MR2L0_HOMS_PIP_01 : FB_PIP_Gamma;

    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[FEE_L0S19_EP1_EP2338-0002]^Channel 1^Input;
                                 .i_xClsLS  :=      TIIB[FEE_L0S19_EP1_EP2338-0002]^Channel 2^Input;
                                 .q_xOPN_DO :=      TIIB[FEE_L0S19_EP1_EP2338-0002]^Channel 11^Output
    '}
    {attribute 'pytmc' := '
        pv: MR2L0:HOMS:VGC:02
        io: io
    '}
    MR2L0_HOMS_VGC_02 : FB_VGC;


    {attribute 'TcLinkTo' :=        '.q_xPress_OK           :=      TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Inputs^GVL_FS_Devices.TV3L0_VFS_01.i_xPress_OK;
                                 .q_xOPN_SW                 :=  TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Inputs^GVL_FS_Devices.TV3L0_VFS_01.i_xOPN_SW;
                                 .q_xCLS_SW                 :=  TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Inputs^GVL_FS_Devices.TV3L0_VFS_01.i_xCLS_SW;
                                 .q_xVAC_FAULT_Reset:=      TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Inputs^GVL_FS_Devices.TV3L0_VFS_01.i_xVAC_FAULT_Reset;
                                 .q_xOverrideMode   :=      TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Inputs^GVL_FS_Devices.TV3L0_VFS_01.i_xOverrideMode;
                                 .q_xOverrideOpen   :=      TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Inputs^GVL_FS_Devices.TV3L0_VFS_01.i_xOverrideOpen;
                                 .i_xTrigger                :=      TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Outputs^GVL_FS_Devices.TV3L0_VFS_01.q_xTrigger;
                                 .i_xVFS_Open               :=      TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Outputs^GVL_FS_Devices.TV3L0_VFS_01.q_xVFS_Open;
                                 .i_xVFS_Closed             :=      TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Outputs^GVL_FS_Devices.TV3L0_VFS_01.q_xVFS_Closed;
                                 .i_xVAC_FAULT_OK   :=      TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Outputs^GVL_FS_Devices.TV3L0_VFS_01.q_xVAC_FAULT_OK;
                                 .i_xMPS_OK                 :=  TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Outputs^GVL_FS_Devices.TV3L0_VFS_01.q_xMPS_OK;
                                 .i_eVFS_State              :=      TIPC^plc_lfe_vac^plc_lfe_vac Instance^FSV_Task Outputs^GVL_FS_Devices.TV3L0_VFS_01.q_eVFS_State
    '}
    {attribute 'pytmc' := '
        pv: TV3L0:VFS:01
        io: io
    '}
    TV3L0_VFS_01_Interface  :       FB_VFS_Interface;

(*TV1L1*)
    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[FEE_L0S18_EP1_EP2338-0002]^Channel 5^Input;
                                 .i_xClsLS  :=      TIIB[FEE_L0S18_EP1_EP2338-0002]^Channel 6^Input;
                                 .q_xOPN_DO :=      TIIB[FEE_L0S18_EP1_EP2338-0002]^Channel 15^Output
    '}
    {attribute 'pytmc' := '
        pv: TV1L1:VGC:01
        io: io
    '}
    TV1L1_VGC_01 : FB_VGC;

(*TV3L0*) //HXR INSTALLATION SECTION 11
    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E14_EL3064]^AI Standard Channel 1^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E15_EL1004]^Channel 1^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E16_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: TV3L0:PIP:01
        io: io
    '}
    TV3L0_PIP_01 : FB_PIP_Gamma;

(*ST1L0-XTES*)
    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[FEE_L0S21-2_EP1_EP3174-0002]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: ST1L0:XTES:GPI:01
        io: io
    '}
    ST1L0_XTES_GPI_01 : FB_MKS275;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[FEE_L0S21-2_EP1_EP3174-0002]^AI Standard Channel 2^Value;
                                 .q_xHV_DIS         :=      TIIB[FEE_L0S21-2_EP2_EP2624-0002]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: ST1L0:XTES:GCC:01
        io: io
    '}
    ST1L0_XTES_GCC_01 : FB_MKS500;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E14_EL3064]^AI Standard Channel 2^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E15_EL1004]^Channel 2^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E16_EL2794]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: ST1L0:XTES:PIP:01
        io: io
    '}
    ST1L0_XTES_PIP_01 : FB_PIP_Gamma;

(*PC2L1-L2SI*)
    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[FEE_L0S19_EP1_EP2338-0002]^Channel 5^Input;
                                 .i_xClsLS  :=      TIIB[FEE_L0S19_EP1_EP2338-0002]^Channel 6^Input;
                                 .q_xOPN_DO :=      TIIB[FEE_L0S19_EP1_EP2338-0002]^Channel 15^Output
    '}
    {attribute 'pytmc' := '
        pv: PC2L1:L2SI:VGC:01
        io: io
    '}
    PC2L1_L2SI_VGC_01 : FB_VGC;

(*TV4L0*) // Hutch 1.1

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[H11_L0S2_EP2_EP3174-0002]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: TV4L0:GPI:01
        io: io
    '}
    TV4L0_GPI_01 : FB_MKS275;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[H11_L0S2_EP2_EP3174-0002]^AI Standard Channel 2^Value;
                                 .q_xHV_DIS         :=      TIIB[H11_L0S2_EP3_EP2624-0002]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: TV4L0:GCC:01
        io: io
    '}
    TV4L0_GCC_01 : FB_MKS500;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E17_EL3064]^AI Standard Channel 1^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E18_EL1004]^Channel 1^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E19_EL2794]^Channel 1^Output
    '}
    {attribute 'pytmc' := '
        pv: TV4L0:PIP:01
        io: io
    '}
    TV4L0_PIP_01 : FB_PIP_Gamma;

    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[H11_L0S2_EP1_EP2338-0002]^Channel 1^Input;
                                 .i_xClsLS  :=      TIIB[H11_L0S2_EP1_EP2338-0002]^Channel 2^Input;
                                 .q_xOPN_DO :=      TIIB[H11_L0S2_EP1_EP2338-0002]^Channel 11^Output
    '}
    {attribute 'pytmc' := '
        pv: TV4L0:VGC:01
        io: io
    '}
    TV4L0_VGC_01 : FB_VGC;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[H11_L0S9_EP1_EP3174-0002]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: TV4L0:GPI:02
        io: io
    '}
    TV4L0_GPI_02 : FB_MKS275;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[H11_L0S9_EP1_EP3174-0002]^AI Standard Channel 2^Value;
                                 .q_xHV_DIS         :=      TIIB[H11_L0S9_EP2_EP2624-0002]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: TV4L0:GCC:02
        io: io
    '}
    TV4L0_GCC_02 : FB_MKS500;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E17_EL3064]^AI Standard Channel 2^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E18_EL1004]^Channel 2^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E19_EL2794]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: TV4L0:PIP:02
        io: io
    '}
    TV4L0_PIP_02 : FB_PIP_Gamma;

(*PA2L0*)
    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E21_EL3064]^AI Standard Channel 4^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E22_EL1004]^Channel 4^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E23_EL2794]^Channel 4^Output
    '}
    {attribute 'pytmc' := '
        pv: PA2L0:PIN:01
        io: io
    '}
    PA2L0_PIN_01 : FB_PIP_Gamma;


//Hutch 1.2
(*TV5L0*)

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[H12_L0S1_EP1_EP3174-0002]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: TV5L0:GPI:01
        io: io
    '}
    TV5L0_GPI_01 : FB_MKS275;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[H12_L0S1_EP1_EP3174-0002]^AI Standard Channel 2^Value;
                                 .q_xHV_DIS         :=      TIIB[H12_L0S1_EP2_EP2624-0002]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: TV5L0:GCC:01
        io: io
    '}
    TV5L0_GCC_01 : FB_MKS500;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E17_EL3064]^AI Standard Channel 3^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E18_EL1004]^Channel 3^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E19_EL2794]^Channel 3^Output
    '}
    {attribute 'pytmc' := '
        pv: TV5L0:PIP:01
        io: io
    '}
    TV5L0_PIP_01 : FB_PIP_Gamma;

    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[H12_L0S3_EP1_EP2338-0002]^Channel 1^Input;
                                 .i_xClsLS  :=      TIIB[H12_L0S3_EP1_EP2338-0002]^Channel 2^Input;
                                 .q_xOPN_DO :=      TIIB[H12_L0S3_EP1_EP2338-0002]^Channel 11^Output
    '}
    {attribute 'pytmc' := '
        pv: TV5L0:VGC:01
        io: io
    '}
    TV5L0_VGC_01 : FB_VGC;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[H12_L0S3_EP2_EP3174-0002]^AI Standard Channel 1^Value
    '}
    {attribute 'pytmc' := '
        pv: TV5L0:GPI:02
        io: io
    '}
    TV5L0_GPI_02 : FB_MKS275;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[H12_L0S3_EP2_EP3174-0002]^AI Standard Channel 2^Value;
                                 .q_xHV_DIS         :=      TIIB[H12_L0S3_EP3_EP2624-0002]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: TV5L0:GCC:02
        io: io
    '}
    TV5L0_GCC_02 : FB_MKS500;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E17_EL3064]^AI Standard Channel 4^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E18_EL1004]^Channel 4^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E19_EL2794]^Channel 4^Output
    '}
    {attribute 'pytmc' := '
        pv: TV5L0:PIP:02
        io: io
    '}
    TV5L0_PIP_02 : FB_PIP_Gamma;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[MKS_E18_EL3064]^AI Standard Channel 3^Value;
                                 .q_xHV_DIS         :=      TIIB[MKS_E20_EL2794]^Channel 2^Output
    '}
    {attribute 'pytmc' := '
        pv: TV5L0:GFS:01
        io: io
    '}
    TV5L0_GFS_01 : FB_MKS422;

    {attribute 'TcLinkTo' :=        '.i_iPRESS_R    :=      TIIB[H12_L0S3_EP2_EP3174-0002]^AI Standard Channel 4^Value;
                                 .q_xHV_DIS         :=      TIIB[H12_L0S3_EP3_EP2624-0002]^Channel 4^Output
    '}
    {attribute 'pytmc' := '
        pv: TV5L0:GCC:03
        io: io
    '}
    TV5L0_GCC_03 : FB_MKS500;

    {attribute 'TcLinkTo' :=        '.i_iPRESS              :=      TIIB[QPC_E4_EL3064]^AI Standard Channel 3^Value;
                                 .i_xSP_DI          :=      TIIB[QPC_E5_EL1004]^Channel 3^Input;
                                 .q_xHVEna_DO       :=      TIIB[QPC_E6_EL2794]^Channel 3^Output
    '}
    {attribute 'pytmc' := '
        pv: TV5L0:PIP:03
        io: io
    '}
    TV5L0_PIP_03 : FB_PIP_Gamma;

(*TV6L0*)
    {attribute 'TcLinkTo' :=        '.i_xOpnLS      :=      TIIB[H12_L0S6_EP1_EP2338-0002]^Channel 1^Input;
                                 .i_xClsLS  :=      TIIB[H12_L0S6_EP1_EP2338-0002]^Channel 2^Input;
                                 .q_xOPN_DO :=      TIIB[H12_L0S6_EP1_EP2338-0002]^Channel 11^Output
    '}
    {attribute 'pytmc' := '
        pv: TV6L0:VGC:01
        io: io
    '}
    TV6L0_VGC_01 : FB_VGC;


END_VAR
Related:

GVL_FS_Devices

//{attribute 'qualified_only'}
VAR_GLOBAL

(*
    {attribute 'TcLinkTo' :=        '.i_xOPNLS      :=      TIIB[FSV1_E1_EL1004]^Channel 2^Input;
                                 .i_xClsLS  :=      TIIB[FSV1_E1_EL1004]^Channel 1^Input;
                                 .q_xClose_A        :=      TIIB[FSV1_E3_EL2202]^Channel 1^Output;
                                 .q_xClose_B        :=      TIIB[FSV1_E3_EL2202]^Channel 2^Output;
                                 .q_xClose_C        :=      TIIB[FSV1_E4_EL2202]^Channel 1^Output;
                                 .q_xOPN_DO         :=      TIIB[FSV1_E4_EL2202]^Channel 2^Output;
                                 .i_xTrigger        := TIIB[MKS_E22_EL1124]^Channel 1^Input

    '}
    PA1L0_VFS_01 : FB_VFS;
*)
    {attribute 'TcLinkTo' :=        '.i_xOPNLS      :=      TIIB[FSV2_E1_EL1004]^Channel 2^Input;
                                 .i_xClsLS  :=      TIIB[FSV2_E1_EL1004]^Channel 1^Input;
                                 .q_xClose_A        :=      TIIB[FSV2_E3_EL2202]^Channel 1^Output;
                                 .q_xClose_B        :=      TIIB[FSV2_E3_EL2202]^Channel 2^Output;
                                 .q_xClose_C        :=      TIIB[FSV2_E4_EL2202]^Channel 1^Output;
                                 .q_xOPN_DO         :=      TIIB[FSV2_E4_EL2202]^Channel 2^Output;
                                 .i_xTrigger        := TIIB[MKS_E22_EL1124]^Channel 2^Input
    '}
    {attribute 'pytmc' := '
        pv: TV3L0:VFS:01
        io: io
    '}
    TV3L0_VFS_01 : FB_VFS;


END_VAR

GVL_LFE_VAC_FSV_PMPS

//{attribute 'qualified_only'}
VAR_GLOBAL

//Example implementation of the FFO
    {attribute 'pytmc' := '
    pv: PLC:LFE:VAC:FFO:03
    '}
    {attribute 'TcLinkTo' := '.q_xFastFaultOut:=TIIB[PLC_E2_EL2202]^Channel 1^Output'}
    g_FastFaultOutput3  :   FB_HardwareFFOutput :=(i_sNetID:='172.21.88.66.1.1');   //FFO for Fast Shutter Valves upstream of ST1L0_XTES

    {attribute 'pytmc' := '
    pv: PLC:LFE:VAC:RESET:FF3
    '}
    xReset_PMPS_FFO3        :       BOOL    :=      FALSE;          //FFO RESET for Fast Shutter Valves upstream of ST1L0_XTES

    xFEE_FSV_MPS_OK: BOOL := TRUE;


END_VAR

GVL_LFE_VAC_PMPS

//{attribute 'qualified_only'}
VAR_GLOBAL

//Example implementation of the FFO
    {attribute 'pytmc' := '
    pv: PLC:LFE:VAC:FFO:01
    '}
    {attribute 'TcLinkTo' := '.q_xFastFaultOut:=TIIB[PLC_E1_EL2202]^Channel 1^Output'}
    g_FastFaultOutput1  :   FB_HardwareFFOutput :=(i_sNetID:='172.21.88.66.1.1');   //FFO for ST1L0_XTES's Upstream Components

    {attribute 'pytmc' := '
    pv: PLC:LFE:VAC:FFO:02
    '}
    {attribute 'TcLinkTo' := '.q_xFastFaultOut:=TIIB[PLC_E1_EL2202]^Channel 2^Output'}
    g_FastFaultOutput2  :   FB_HardwareFFOutput :=(i_sNetID:='172.21.88.66.1.1');   //FFO for ST1L0_XTES's Downstream Components

    {attribute 'pytmc' := '
    pv: PLC:LFE:VAC:RESET:FF1
    '}
    xReset_PMPS_FFO1        :       BOOL    :=      FALSE;          //FFO RESET for ST1L0_XTES's Upstream Components
    {attribute 'pytmc' := '
    pv: PLC:LFE:VAC:RESET:FF2
    '}
    xReset_PMPS_FFO2        :       BOOL    :=      FALSE;          //FFO RESET for ST1L0_XTES's Downstream Components


    xEBD_FEE_MPS_OK: BOOL := TRUE;
    xH1_1_H1_2_MPS_OK: BOOL;

//Preemptive Arbiter Content
    (*LFE Arbiter Interface*)

    g_fbArbiter1    :   FB_Arbiter(1);
END_VAR

GVL_PLC_Interfaces

//{attribute 'qualified_only'}
VAR_GLOBAL

    (*HXR Accelerator side PLC Interface*)
    Accelerator_Upstream_Gauge      :       ST_VG;

    {attribute 'TcLinkTo' :=        'TIIB[EBD_E5_EL1008]^Channel 1^Input
    '}
    i_xUpstreamTreaty_PressOK       AT      %I*     :       BOOL;
//  {attribute 'TcLinkTo' :=        'TIIB[EBD_E8_EL2794]^Channel 1^Output
//  '}
//  q_xUpstreamTreaty_PressOK       AT      %Q*     :       BOOL;


    (*HXR Gas Attenuator PLC Interface*)

    fb_ADS_WATCHDOG_VAC_LFE_GEM:FB_ADS_WATCHDOG;

    (*TXI PLC Interface*)

    (*XPP PLC Interface*)
    {attribute 'pytmc' := '
            pv: PLC:LFE:VAC:XPP:DS:GCC_EPICS
    '}
    XPP_Downstream_Gauge            :       ST_VG;
    XPP_Modbus_Gauge                :       FB_GaugeModbus; //ST_VG;
    XPP_DS_Gauge            :       ST_VG;


    {attribute 'pytmc' := '
            pv: PLC:LFE:VAC:XPP:Downstream:PMON
            link: HX3:MON:GCC:01:PMON
    '}
    XPP_PressureLinkHelper : FB_LREALFromEPICS;

END_VAR

GVL_Variables

//{attribute 'qualified_only'}
VAR_GLOBAL

    r_Accelerator_Setpoint  : REAL := 1E-12; (*unrealistic setpoint currently*)
    {attribute 'pytmc' := '
        pv: PLC:LFE:VAC:EBD:OVRDON
        io: io
    '}
    xSystemOverrideMode_EBD : BOOL := FALSE; (* Global system override for the HXR Vacuum System EBD*)
    {attribute 'pytmc' := '
        pv: PLC:LFE:VAC:FEE:OVRDON
        io: io
    '}
    xSystemOverrideMode_FEE : BOOL := FALSE; (* Global system override for the HXR Vacuum System FEE*)
    {attribute 'pytmc' := '
        pv: PLC:LFE:VAC:H1_1H1_2:OVRDON
        io: io
    '}
    xSystemOverrideMode_H1_1_H1_2   : BOOL := FALSE; (* Global system override for the HXR Vacuum System Hutch1.1 and Hutch1.2*)
END_VAR

POUs

DIAGNOSTICS

PROGRAM DIAGNOSTICS
VAR
    //Change the PLC String Name to the actual PLC NAME
    sPLCName :STRING := 'PLC-LFE-VAC';
    //Link the sAMSNetID to the Etherat Master netID
    i_sAMSNetID AT %I*: AMSNETID;
    // DO NOT CHANGE
    sAMSNetID : STRING; //used for EPICS PV
    sLibVersion_LCLS_General : STRING;(* := stLibVersion_LCLS_General.sVersion*) ;
    fbEcatDiag:FB_EcatDiag;
    bAllSlaveStateGood : BOOL;
    bMasterStateGood :BOOL;
    iMasterState: WORD;
    sMasterState:STRING;
    nSlaveNumber : UINT;
    aiSlaveStates: ARRAY[1..256] OF BYTE;
    aEcSlaveInfo :  ARRAY[1..256] OF ST_EcDevice;
END_VAR
// Instaniating a call to the fbEcatDiag
fbEcatDiag(
    I_AMSNetId:=i_sAMSNetID ,
    i_xFirstPass:= _TaskInfo[1].FirstCycle,
    q_xAllSlaveStatesGood=> bAllSlaveStateGood ,
    q_anTermStates=> aiSlaveStates,
    q_xMasterStateGood=>bMasterStateGood ,
    q_nMasterState=> iMasterState,
    q_sMasterState=> sMasterState ,
    q_astEcConfSlaveInfo=> aEcSlaveInfo ,
    q_nSlaves=> nSlaveNumber);

END_PROGRAM

MAIN

PROGRAM MAIN
VAR

    fbLogHandler : FB_LogHandler;

    ctuTest : CTU;
    tof_bValid_PV   : TOF;
    tTimeout                        : TIME := T#2S;
    fbLogger: FB_LogMessage := (eSubsystem:=E_SubSystem.VACUUM);
    rt_bValid: R_TRIG;
    ft_bValid: F_TRIG;

END_VAR
fbLogHandler();
PRG_PMPS ();

//Writes watchdog bit to remote vac_lfe_gem reading the ion pumps around the gass attenuator
fb_ADS_WATCHDOG_VAC_LFE_GEM(
    sNetId:= '172.21.88.32.1.1',
    nPort:= 851,
    sVarName:= 'MAIN.iWatchdog',
    bError=> );

// Run the Diagnostics PRG
DIAGNOSTICS();

(*HXR Accelerator side PLC Interface*)
//Update Accelerator Gauge Pressure Reading
//Accelerator_Upstream_Gauge.xPRESS_OK      :=      i_xUpstreamTreaty_PressOK;

IF(i_xUpstreamTreaty_PressOK) THEN
    Accelerator_Upstream_Gauge.xPRESS_OK    := TRUE;
    //Accelerator_Upstream_Gauge.eState     := gc_GaugeValidState;
    Accelerator_Upstream_Gauge.rPRESS               := 5e-6; //torr
ELSE
    Accelerator_Upstream_Gauge.xPRESS_OK    := FALSE;
    //Accelerator_Upstream_Gauge.eState     := 1;
    Accelerator_Upstream_Gauge.rPRESS               := 760; //torr
END_IF

(*HXR Gas Attenuator PLC Interface*)

(*TXI PLC Interface*)

(*XPP PLC Interface*)
XPP_PressureLinkHelper();
XPP_Downstream_Gauge.rPRESS := LREAL_TO_REAL(XPP_PressureLinkHelper.fValue);
//Add a 2 second buffer if the PV's Severity is not 0. This protects the PV from network blips
tof_bValid_PV(IN:=XPP_PressureLinkHelper.bValid, PT:=tTimeout);
XPP_Downstream_Gauge.xPRESS_OK := tof_bValid_PV.Q;
rt_bValid(CLK:=XPP_PressureLinkHelper.bValid);
ft_bValid(CLK:=XPP_PressureLinkHelper.bValid);
IF(rt_bValid.Q)THEN
    fbLogger(sMsg:=concat('EPICS Signal is Valid. Severity: ', INT_TO_STRING(XPP_PressureLinkHelper.iLastValidSeverity)), eSevr:=TcEventSeverity.Info);
END_IF
IF(ft_bValid.Q)THEN
    fbLogger(sMsg:=concat('EPICS Signal Disconnected. Severity: ', INT_TO_STRING(XPP_PressureLinkHelper.iLastValidSeverity)), eSevr:=TcEventSeverity.Critical);
END_IF
//Modbus
XPP_Modbus_Gauge(IP:='172.21.84.44',nMBAddr:=8#4000,iBitOffset:=24);
//Combine two readings in one gauge
XPP_DS_Gauge.xPRESS_OK := XPP_Downstream_Gauge.xPRESS_OK OR XPP_Modbus_Gauge.VG.xPRESS_OK;
XPP_DS_Gauge.rPRESS := XPP_Downstream_Gauge.rPRESS;//XPP_Modbus_Gauge.VG.rPRESS;

(*PIRANI Gauges*)

    TV1L0_GPI_01(b937A:=TRUE, PG=>);

    TV2L0_GPI_01(b937A:=TRUE, PG=>);

    TV2L0_GPI_02(b937A:=TRUE, PG=>);

    SL1L0_POWER_GPI_01(b937A:=TRUE, PG=>);

    AT2L0_SOLID_GPI_01(b937A:=TRUE, PG=>);

    SP1L0_KMONO_GPI_01(b937A:=TRUE, PG=>);

    PA1L0_GPI_01(b937A:=TRUE, PG=>);

    MR1L0_HOMS_GPI_01(b937A:=TRUE, PG=>);

    MR1L1_TXI_GPI_01(PG=>);

    BT2L0_PLEG_GPI_01(PG=>);

    MR2L0_HOMS_GPI_01(PG=>);

    ST1L0_XTES_GPI_01(PG=>);

    //H1.1 and H1.2
    TV4L0_GPI_01(PG=>);

    TV4L0_GPI_02(PG=>);

    TV5L0_GPI_01(PG=>);

    TV5L0_GPI_02(PG=>);


(*Cold Cathode Gauges*)

    TV1L0_GCC_01(PG:=TV1L0_GPI_01.PG,IG=>, b937A:=TRUE);

    TV2L0_GCC_01(PG:=TV2L0_GPI_01.PG, IG=>, b937A:=TRUE);

    TV2L0_GFS_01(PG:=TV2L0_GPI_02.PG,IG=>, b937A:=TRUE);

    TV2L0_GCC_02(PG:=TV2L0_GPI_02.PG,IG=>, b937A:=TRUE);

    SL1L0_POWER_GCC_01(PG:=SL1L0_POWER_GPI_01.PG,IG=>, b937A:=TRUE);

    AT2L0_SOLID_GCC_01(PG:=AT2L0_SOLID_GPI_01.PG,IG=>, b937A:=TRUE);

    SP1L0_KMONO_GCC_01(PG:=PA1L0_GPI_01.PG,IG=>, b937A:=TRUE);

    PA1L0_GCC_01(PG:=PA1L0_GPI_01.PG,IG=>, b937A:=TRUE);

    MR1L0_HOMS_GCC_01(PG:=MR1L0_HOMS_GPI_01.PG,IG=>, b937A:=TRUE);

    MR1L1_TXI_GCC_01(PG:=MR1L1_TXI_GPI_01.PG,IG=>,bEP:=TRUE);

    BT2L0_PLEG_GCC_01(PG:=BT2L0_PLEG_GPI_01.PG,IG=>,bEP:=TRUE);

    MR2L0_HOMS_GCC_01(PG:=MR2L0_HOMS_GPI_01.PG,IG=>,bEP:=TRUE);

    ST1L0_XTES_GCC_01(PG:=ST1L0_XTES_GPI_01.PG,IG=>,bEP:=TRUE);

    //H1.1 and H1.2
    TV4L0_GCC_01(PG:=TV4L0_GPI_01.PG,IG=>,bEP:=TRUE);

    TV4L0_GCC_02(PG:=TV4L0_GPI_02.PG,IG=>,bEP:=TRUE);

    TV5L0_GCC_01(PG:=TV5L0_GPI_01.PG,IG=>,bEP:=TRUE);

    TV5L0_GCC_02(PG:=TV5L0_GPI_02.PG,IG=>,bEP:=TRUE);

    TV5L0_GFS_01(PG:=TV5L0_GPI_02.PG,IG=>);

    TV5L0_GCC_03(PG:=TV5L0_GPI_02.PG,IG=>,bEP:=TRUE);



(*Ion Pumps*)

    RTDSL0_PIP_01(i_stGauge:=TV1L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_EBD, stPump=>);

    RTDSL0_PIP_02(i_stGauge:=TV1L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_EBD, stPump=>);

    RTDSL0_PIP_03(i_stGauge:=TV1L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_EBD, stPump=>);

    RTDSL0_PIP_04(i_stGauge:=TV1L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_EBD, stPump=>);

    RTDSL0_PIP_05(i_stGauge:=TV1L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_EBD, stPump=>);

    IM1L0_XTES_PIP_01(i_stGauge:=TV2L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_EBD, stPump=>);

    TV2L0_PIP_01(i_stGauge:=TV2L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_EBD, stPump=>);

    TV2L0_PIP_02(i_stGauge:=TV2L0_GPI_02.PG, i_xOverrideMode:=xSystemOverrideMode_EBD, stPump=>);

    TV2L0_PIP_03(i_stGauge:=TV2L0_GPI_02.PG, i_xOverrideMode:=xSystemOverrideMode_EBD, stPump=>);

    SL1L0_POWER_PIN_01(i_stGauge:=SL1L0_POWER_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_FEE, stPump=>);

    AT2L0_SOLID_PIN_01(i_stGauge:=AT2L0_SOLID_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_FEE, stPump=>);

    SP1L0_KMONO_PIP_01(i_stGauge:=PA1L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_FEE, stPump=>);

    PA1L0_PIN_01(i_stGauge:=PA1L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_FEE, stPump=>); //was the Kmono GPI, now its bad

    MR1L0_HOMS_PIP_01(i_stGauge:=MR1L0_HOMS_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_FEE, stPump=>);

    MR1L1_TXI_PIP_01(i_stGauge:=MR1L1_TXI_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_FEE, stPump=>);

    BT2L0_PLEG_PIP_01(i_stGauge:=BT2L0_PLEG_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_FEE, stPump=>);

    MR2L0_HOMS_PIP_01(i_stGauge:=MR2L0_HOMS_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_FEE, stPump=>);

    TV3L0_PIP_01(i_stGauge:=ST1L0_XTES_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_FEE, stPump=>);

    ST1L0_XTES_PIP_01(i_stGauge:=ST1L0_XTES_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_FEE, stPump=>);


    //H1.1 and H1.2
    TV4L0_PIP_01(i_stGauge:=TV4L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_H1_1_H1_2, stPump=>);

    TV4L0_PIP_02(i_stGauge:=TV4L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_H1_1_H1_2, stPump=>);

    PA2L0_PIN_01(i_stGauge:=TV5L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_H1_1_H1_2, stPump=>);

    TV5L0_PIP_01(i_stGauge:=TV5L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_H1_1_H1_2, stPump=>);

    TV5L0_PIP_02(i_stGauge:=TV5L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_H1_1_H1_2, stPump=>);

    TV5L0_PIP_03(i_stGauge:=TV5L0_GPI_01.PG, i_xOverrideMode:=xSystemOverrideMode_H1_1_H1_2, stPump=>);

(*Vacuum Gate Valve*)
    TV1L0_VGC_01(
    i_stUSG:= Accelerator_Upstream_Gauge,
    i_stDSG:= RTDSL0_PIP_03.q_IG,
    i_xDis_DPIlk:= FALSE,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_xOverrideMode:= xSystemOverrideMode_EBD,
    i_xReset:= xReset_PMPS_FFO1,
    i_sDevName:= 'TV1L0:VGC:01',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput1,
    fbArbiter:= g_fbArbiter1 );

    IM1L0_XTES_VGC_01(
    i_stUSG:= RTDSL0_PIP_03.q_IG,
    i_stDSG:= IM1L0_XTES_PIP_01.q_IG,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_xOverrideMode:= xSystemOverrideMode_EBD,
    i_xReset:= xReset_PMPS_FFO1,
    i_sDevName:= 'IM1L0:XTES:VGC:01',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput1,
    fbArbiter:= g_fbArbiter1 );

    TV2L0_VGC_01(
    i_stUSG:= TV2L0_PIP_01.q_IG,
    i_stDSG:= TV2L0_PIP_02.q_IG,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_xOverrideMode:= xSystemOverrideMode_EBD,
    i_xReset:= xReset_PMPS_FFO1,
    i_sDevName:= 'TV2L0:VGC:01',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput1,
    fbArbiter:= g_fbArbiter1 );

    TV2L0_VGC_02(
    i_stUSG:= TV2L0_PIP_03.q_IG,
    i_stDSG:= SL1L0_POWER_GCC_01.IG,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_xOverrideMode:= xSystemOverrideMode_FEE,
    i_xReset:= xReset_PMPS_FFO1,
    i_sDevName:= 'TV2L0:VGC:02',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput1,
    fbArbiter:= g_fbArbiter1 );

    PC1L0_XTES_VGC_01(
    i_stUSG:= AT2L0_SOLID_PIN_01.q_IG,
    i_stDSG:= SP1L0_KMONO_PIP_01.q_IG,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_xOverrideMode:= xSystemOverrideMode_FEE,
    i_xReset:= xReset_PMPS_FFO1,
    i_sDevName:= 'PC1L0:XTES:VGC:01',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput1,
    fbArbiter:= g_fbArbiter1 );

//  PA1L0_VFS_01 : FB_VFS;

    MR1L0_HOMS_VGC_01(
    i_stUSG:= PA1L0_PIN_01.q_IG,
    i_stDSG:= MR1L0_HOMS_PIP_01.q_IG,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_xOverrideMode:= xSystemOverrideMode_FEE,
    i_xReset:= xReset_PMPS_FFO1,
    i_sDevName:= 'MR1L0:HOMS:VGC:01',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput1,
    fbArbiter:= g_fbArbiter1 );

    BT2L0_PLEG_VGC_01(
    i_stUSG:= MR1L0_HOMS_PIP_01.q_IG,
    i_stDSG:= BT2L0_PLEG_PIP_01.q_IG,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_xOverrideMode:= xSystemOverrideMode_FEE,
    i_xReset:= xReset_PMPS_FFO1,
    i_sDevName:= 'BT2L0:PLEG:VGC:01',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput1,
    fbArbiter:= g_fbArbiter1 );

    MR2L0_HOMS_VGC_01(
    i_stUSG:= BT2L0_PLEG_PIP_01.q_IG,
    i_stDSG:= MR2L0_HOMS_PIP_01.q_IG,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_xOverrideMode:= xSystemOverrideMode_FEE,
    i_xReset:= xReset_PMPS_FFO1,
    i_sDevName:= 'MR2L0:HOMS:VGC:01',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput1,
    fbArbiter:= g_fbArbiter1 );

    MR2L0_HOMS_VGC_02(
    i_stUSG:= MR2L0_HOMS_PIP_01.q_IG,
    i_stDSG:= ST1L0_XTES_PIP_01.q_IG,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TV3L0_VFS_01_Interface.i_xVAC_FAULT_OK,
    i_xOverrideMode:= xSystemOverrideMode_FEE,
    i_xReset:= xReset_PMPS_FFO1,
    i_sDevName:= 'MR2L0:HOMS:VGC:02',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput1,
    fbArbiter:= g_fbArbiter1 );
(*
    TV1L1_VGC_01(
    i_stUSG:= MR1L1_TXI_PIP_01.q_IG,
    i_stDSG:= MR2L0_HOMS_PIP_01.q_IG,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_xOverrideMode:= xSystemOverrideMode_FEE,
    i_xReset:= xReset_PMPS_FFO1,
    i_sDevName:= "TV1L1:VGC:01",
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput1);
*)


//  PC2L1_L2SI_VGC_01 : FB_VGC;

    //H1.1
    TV4L0_VGC_01(
    i_stUSG:= TV4L0_PIP_01.q_IG,
    i_stDSG:= TV4L0_PIP_02.q_IG,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TV3L0_VFS_01_Interface.i_xVAC_FAULT_OK,
    i_xOverrideMode:= xSystemOverrideMode_H1_1_H1_2,
    i_xReset:= xReset_PMPS_FFO2,
    i_sDevName:= 'TV4L0:VGC:01',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput2,
   fbArbiter:= g_fbArbiter1 );

    TV5L0_VGC_01(
    i_stUSG:= TV5L0_PIP_01.q_IG,
    i_stDSG:= TV5L0_PIP_02.q_IG,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_xOverrideMode:= xSystemOverrideMode_H1_1_H1_2,
    i_xReset:= xReset_PMPS_FFO2,
    i_sDevName:= 'TV5L0:VGC:01',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput2,
   fbArbiter:= g_fbArbiter1 );

    TV6L0_VGC_01(
    i_stUSG:= TV5L0_PIP_03.q_IG,
    i_stDSG:= XPP_DS_Gauge,
    i_xDis_DPIlk:= FALSE ,
    i_xEPS_OK:= TRUE,
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_xOverrideMode:= xSystemOverrideMode_H1_1_H1_2,
    i_xReset:= xReset_PMPS_FFO2,
    i_sDevName:= 'TV6L0:VGC:01',
    iq_stValve=> ,
    xMPS_OK=> ,
    io_fbFFHWO:= g_FastFaultOutput2,
    fbArbiter:= g_fbArbiter1 );



(*Vacuum Fast Shutter Valve*)
TV3L0_VFS_01_Interface(
        IG:=TV5L0_GFS_01.IG);



ctuTest(CU:=GVL_LFE_VAC_PMPS.g_FastFaultOutput1.q_xFastFaultOut, PV:=100);

END_PROGRAM
Related:

PRG_FastShutter

PROGRAM PRG_FastShutter
VAR
END_VAR
(*
PA1L0_VFS_01(
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_sDevName:= 'PA1L0:VFS:01',
    io_fbFFHWO:= g_FastFaultOutput3);
*)
TV3L0_VFS_01(
    i_xPMPS_OK:= TRUE,
    i_xExt_OK:= TRUE,
    i_sDevName:= 'TV3L0:VFS:01',
    io_fbFFHWO:= g_FastFaultOutput3);

(*FastFaultOuput*)
g_FastFaultOutput3.Execute(bAutoReset:= TRUE);

END_PROGRAM

PRG_PMPS

PROGRAM PRG_PMPS
VAR
    fbArbiterIO : FB_SubSysToArbiter_IO;

END_VAR
fbArbiterIO(Arbiter := g_fbArbiter1, fbFFHWO := g_FastFaultOutput1);
g_fbArbiter1.AddRequest(nReqID := 95 , stReqBp := PMPS_GVL.cstFullBeam, sDevName := 'plc-lfe-vac');

(*FastFaultOuput*)
g_FastFaultOutput1.Execute(bAutoReset:= TRUE);
g_FastFaultOutput2.Execute(i_xVeto:=PMPS_GVL.stCurrentBeamParameters.aVetoDevices[PMPS.L_Stopper.ST1L0], bAutoReset:= TRUE);

END_PROGRAM