DUTs
GVLs
GVL_TXI_VAC_GAUGES
VAR_GLOBAL
//B940-008-K0S15-PNL-02 (FEE)
{attribute 'pytmc' := ' pv: TXI:PC1K3:GCC:01 '}
{attribute 'TcLinkTo' := '.i_iPRESS_R := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K0S15-PNL-02 EP2 (EP3174-0002)^PC1K3_GCC_01^Value '}
{attribute 'TcLinkTo' := '.q_xHV_DIS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K0S15-PNL-02 EP3 (EP2624-0002)^PC1K3_GCC_01^Output '}
fb_PC1K3_GCC_01: FB_MKS500;
{attribute 'pytmc' := ' pv: TXI:PC1K3:GCC:02 '}
{attribute 'TcLinkTo' := '.i_iPRESS_R := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K0S15-PNL-02 EP2 (EP3174-0002)^PC1K3_GCC_02^Value '}
{attribute 'TcLinkTo' := '.q_xHV_DIS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K0S15-PNL-02 EP3 (EP2624-0002)^PC1K3_GCC_02^Output '}
fb_PC1K3_GCC_02: FB_MKS500;
//B940-008-K3S23-PNL-1 (FEE)
{attribute 'pytmc' := ' pv: TXI:TV1K3:GCC:01 '}
{attribute 'TcLinkTo' := '.i_iPRESS_R := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K3S23-PNL-1 EP1(EP3174-0002)^TV1K3_GCC_01^Value '}
{attribute 'TcLinkTo' := '.q_xHV_DIS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K3S23-PNL-1 EP2 (EP2624-0002)^TV1K3_GCC_01^Output '}
fb_TV1K3_GCC_01: FB_MKS500;
{attribute 'pytmc' := ' pv: TXI:TV1K3:GPI:01 '}
{attribute 'TcLinkTo' := '.i_iPRESS_R := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K3S23-PNL-1 EP1(EP3174-0002)^TV1K3_GPI_01^Value '}
fb_TV1K3_GPI_01: FB_MKS275;
//B940-008-K3S34-PNL-1 (FEE)
{attribute 'pytmc' := ' pv: TXI:ST1L3:GCC:01 '}
{attribute 'TcLinkTo' := '.i_iPRESS_R := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K3S34-PNL-1 EP2 (EP3174-0002)^ST1L3_GCC_01^Value '}
{attribute 'TcLinkTo' := '.q_xHV_DIS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K3S34-PNL-1 EP3 (EP2624-0002)^ST1K3_GCC-01^Output '}
fb_ST1K3_GCC_01: FB_MKS500;
{attribute 'pytmc' := ' pv: TXI:ST1L3:GPI:01 '}
{attribute 'TcLinkTo' := '.i_iPRESS_R := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K3S34-PNL-1 EP2 (EP3174-0002)^ST1K3_GPI_01^Value '}
fb_ST1K3_GPI_01: FB_MKS275;
//B950-100H1-K3S1-PNL-1 (H1.1)
fb_TV2K3_GCC_01: FB_MKS500;
fb_TV2K3_GPI_01: FB_MKS275;
fb_TV3K3_GCC_01: FB_MKS500;
fb_TV3K3_GPI_01: FB_MKS275;
//B950-100-K3S3-DRL-1 (H1.1)
fb_TV4K3_GCC_01: FB_MKS500;
fb_TV4K3_GPI_01: FB_MKS275;
END_VAR
GVL_TXI_VAC_PUMPS
VAR_GLOBAL
//B940-009-R17-PCI-01
{attribute 'pytmc' := ' pv: TXI:TV1K3:PIP:01 '}
{attribute 'TcLinkTo' := '.i_iPRESS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E8 (EL3064)^TV1K3_PIP_01^Value ';
:= '.q_xHVEna_DO := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E9 (EL2794)^TV1K3_PIP_01^Output ';
:= '.i_xSP_DI := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E10 (EL1004)^TV1K3_PIP_01^Input '
}
fb_TV1K3_PIP_01: FB_PIP_GAMMA;
{attribute 'pytmc' := ' pv: TXI:ST1K3:PIP:01 '}
{attribute 'TcLinkTo' := '.i_iPRESS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E8 (EL3064)^ST1K3_PIP_01^Value ';
:= '.q_xHVEna_DO := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E9 (EL2794)^ST1K3_PIP_01^Output ';
:= '.i_xSP_DI := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E10 (EL1004)^ST1K3_PIP_01^Input '
}
fb_ST1K3_PIP_01: FB_PIP_GAMMA;
{attribute 'pytmc' := ' pv: TXI:PC1K3:PIP:01 '}
{attribute 'TcLinkTo' := '.i_iPRESS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E8 (EL3064)^PC1K3_PIP_01^Value ';
:= '.q_xHVEna_DO := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E9 (EL2794)^PC1K3_PIP_01^Output ';
:= '.i_xSP_DI := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E10 (EL1004)^PC1K3_PIP_01^Input '
}
fb_PC1K3_PIP_01: FB_PIP_GAMMA;
{attribute 'pytmc' := ' pv: TXI:PC1K3:PIP:02 '}
{attribute 'TcLinkTo' := '.i_iPRESS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E8 (EL3064)^PC1K3_PIP_02^Value ';
:= '.q_xHVEna_DO := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E9 (EL2794)^PC1K3_PIP_02^Output ';
:= '.i_xSP_DI := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E10 (EL1004)^PC1K3_PIP_02^Input '
}
fb_PC1K3_PIP_02: FB_PIP_GAMMA;
//B940-009-R17-PCI-02
{attribute 'pytmc' := ' pv: TXI:TV2K3:PIP:01 '}
{attribute 'TcLinkTo' := '.i_iPRESS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E11 (EL3064)^TV2K3_PIP_01^Value ';
:= '.q_xHVEna_DO := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E12 (EL2794)^TV2K3_PIP_01^Output ';
:= '.i_xSP_DI := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E13 (EL1004)^TV2K3_PIP_01^Input '
}
fb_TV2K3_PIP_01: FB_PIP_GAMMA;
{attribute 'pytmc' := ' pv: TXI:TV3K3:PIP:01 '}
{attribute 'TcLinkTo' := '.i_iPRESS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E11 (EL3064)^TV3K3_PIP_01^Value ';
:= '.q_xHVEna_DO := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E12 (EL2794)^TV3K3_PIP_01^Output ';
:= '.i_xSP_DI := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E13 (EL1004)^TV3K3_PIP_01^Input '
}
fb_TV3K3_PIP_01: FB_PIP_GAMMA;
{attribute 'pytmc' := ' pv: TXI:TV4K3:PIP:01 '}
{attribute 'TcLinkTo' := '.i_iPRESS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E11 (EL3064)^TV4K3_PIP_01^Value ';
:= '.q_xHVEna_DO := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E12 (EL2794)^TV4K3_PIP_01^Output ';
:= '.i_xSP_DI := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E13 (EL1004)^TV4K3_PIP_01^Input '
}
fb_TV4K3_PIP_01: FB_PIP_GAMMA;
END_VAR
GVL_TXI_VAC_VALVES
VAR_GLOBAL
//FEE Valves
{attribute 'TcLinkTo' := '.i_xOpnLS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K0S15-PNL-02 EP1 (EP2338-0002)^Channel 1^Input;
.i_xClsLS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K0S15-PNL-02 EP1 (EP2338-0002)^Channel 2^Input;
.q_xOPN_DO := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K0S15-PNL-02 EP1 (EP2338-0002)^Channel 11^Output'}
{attribute 'pytmc' := ' pv: PC1K3:VGC:01 '}
fb_PC1K3_VGC_01 : FB_VGC;
{attribute 'TcLinkTo' := '.i_xOpnLS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K3S34-PNL-1 EP1 (EP2338-0002)^Channel 1^Input;
.i_xClsLS := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K3S34-PNL-1 EP1 (EP2338-0002)^Channel 2^Input;
.q_xOPN_DO := TIID^Device 1 (EtherCAT)^Term 30 (EK1200)^E16 (EK1122)^K3S34-PNL-1 EP1 (EP2338-0002)^Channel 11^Output'}
{attribute 'pytmc' := ' pv: TV1K3:VGC:01 '}
fb_TV1K3_VGC_01 : FB_VGC;
//H1.1 Valves
{attribute 'pytmc' := ' pv: TV2K3:VGC:01 '}
fb_TV2K3_VGC_01 : FB_VGC;
{attribute 'pytmc' := ' pv: TV4K3:VGC:01 '}
fb_TV4K3_VGC_01 : FB_VGC;
END_VAR
GVL_TXI_VAC_VARIABLES
VAR_GLOBAL
{attribute 'pytmc' := 'pv: TXI:SXR:FEE:VAC:OVRDON;
field: ZNAM Override OFF;
field: ONAM Override ON;
io: io;
'}
xSystemOverrideMode1 : BOOL; (* Global system override for the prototype section*)
{attribute 'pytmc' := ' pv: PLC:TXI:VAC:FFO:01 '}
{attribute 'TcLinkTo' := '.q_xFastFaultOut:=TIIB[PMPS_FFO (EL2202)]^Channel 1^Output'}
g_FastFaultOutput1 : FB_HardwareFFOutput:= (i_sNetID:='172.21.42.126.1.1'); // change i_sNetID ??
{attribute 'pytmc' := ' pv: PLC:TXI:VAC:ARB:01 '}
fbArbiter1 : FB_Arbiter(1);
fbLogHandler : FB_loghandler;
END_VAR
POUs
MAIN
PROGRAM MAIN
VAR
END_VAR
PRG_TXI_VAC_GAUGES();
PRG_TXI_VAC_PUMPS();
PRG_TXI_VAC_VALVES();
END_PROGRAM
PRG_TXI_VAC_GAUGES
PROGRAM PRG_TXI_VAC_GAUGES
VAR
dummy_gauge : ST_VG;
END_VAR
//beamline dummy gauge
dummy_gauge.xPRESS_OK := TRUE;
dummy_gauge.xAT_VAC := TRUE;
dummy_gauge.eState := ValidLo;
dummy_gauge.rPRESS := 1e-4;
//B940-008-K0S15-PNL-02 (FEE)
fb_PC1K3_GCC_01(PG := dummy_gauge, bEP := TRUE);
fb_PC1K3_GCC_02(PG := dummy_gauge, bEP := TRUE);
//B940-008-K3S23-PNL-1 (FEE)
fb_TV1K3_GPI_01(PG =>);
fb_TV1K3_GCC_01(PG := fb_TV1K3_GPI_01.PG, bEP := TRUE);
//B940-008-K3S34-PNL-1 (FEE)
fb_ST1K3_GPI_01(PG =>);
fb_ST1K3_GCC_01(PG := fb_ST1K3_GPI_01.PG, bEP := TRUE);
//B950-100H1-K3S1-PNL-1 (H1.1)
fb_TV2K3_GPI_01(PG =>);
fb_TV2K3_GCC_01(PG := fb_TV2K3_GPI_01.PG, bEP := TRUE);
fb_TV3K3_GPI_01(PG =>);
fb_TV3K3_GCC_01(PG := fb_TV2K3_GCC_01.PG, bEP := TRUE);
//B950-100-K3S3-DRL-1 (H1.1)
fb_TV4K3_GPI_01(PG =>);
fb_TV4K3_GCC_01(PG := fb_TV4K3_GCC_01.PG, bEP := TRUE);
END_PROGRAM
PRG_TXI_VAC_PUMPS
PROGRAM PRG_TXI_VAC_PUMPS
VAR
dummy_gauge : ST_VG;
END_VAR
//beamline dummy gauge
dummy_gauge.xPRESS_OK := TRUE;
dummy_gauge.xAT_VAC := TRUE;
dummy_gauge.eState := ValidLo;
dummy_gauge.rPRESS := 1e-4;
//B940-009-R17-PCI-01
fb_TV1K3_PIP_01(i_stGauge := fb_TV1K3_GPI_01.PG, i_xOverrideMode := xSystemOverrideMode1);
fb_ST1K3_PIP_01(i_stGauge := fb_ST1K3_GPI_01.PG, i_xOverrideMode := xSystemOverrideMode1);
fb_PC1K3_PIP_01(i_stGauge := dummy_gauge, i_xOverrideMode := xSystemOverrideMode1);
fb_PC1K3_PIP_02(i_stGauge := fb_PC1K3_GCC_02.PG, i_xOverrideMode := xSystemOverrideMode1);
//B940-009-R17-PCI-02
//fb_TV2K3_PIP_01(i_stGauge := fb_TV2K3_GPI_01.PG, i_xOverrideMode := xSystemOverrideMode1);
//fb_TV3K3_PIP_01(i_stGauge := fb_TV3K3_GPI_01.PG, i_xOverrideMode := xSystemOverrideMode1);
//fb_TV4K3_PIP_01(i_stGauge := fb_TV4K3_GPI_01.PG, i_xOverrideMode := xSystemOverrideMode1);
//B940-009-R17-PCI-02 - For pump controls meanwhile gauges are installed
fb_TV2K3_PIP_01(i_stGauge := dummy_gauge, i_xOverrideMode := xSystemOverrideMode1);
fb_TV3K3_PIP_01(i_stGauge := dummy_gauge, i_xOverrideMode := xSystemOverrideMode1);
fb_TV4K3_PIP_01(i_stGauge := dummy_gauge, i_xOverrideMode := xSystemOverrideMode1);
END_PROGRAM
PRG_TXI_VAC_VALVES
PROGRAM PRG_TXI_VAC_VALVES
VAR
END_VAR
fb_PC1K3_VGC_01(
i_stUSG := fb_PC1K3_PIP_02.q_IG,
i_stDSG := fb_PC1K3_PIP_01.q_IG,
i_xDis_DPIlk := FALSE,
i_xEPS_OK := TRUE,
i_xPMPS_OK := TRUE,
i_xExt_OK := TRUE,
i_xOverrideMode := xSystemOverrideMode1,
io_fbFFHWO := g_FastFaultOutput1,
fbArbiter := fbArbiter1
);
fb_TV1K3_VGC_01(
i_stUSG := fb_TV1K3_PIP_01.q_IG,
i_stDSG := fb_ST1K3_PIP_01.q_IG,
i_xDis_DPIlk := FALSE,
i_xEPS_OK := TRUE,
i_xPMPS_OK := TRUE,
i_xExt_OK := TRUE,
i_xOverrideMode := xSystemOverrideMode1,
io_fbFFHWO := g_FastFaultOutput1,
fbArbiter := fbArbiter1
);
END_PROGRAM