DUTs ---- GVLs ---- GVL_GMD ^^^^^^^ :: VAR_GLOBAL // ST_Volume st_GMD : ST_Volume := (rVolume := 1E3, rPressure := Global_Pressure, rVLeak := Global_Leak); st_EM1K0_GMD_VRC_10_VOL : ST_Volume := (rVolume := 1E3, rPressure := Global_Pressure, rVLeak := Global_Leak); st_RoughingLine : ST_Volume := (rVolume := 1E3, rPressure := Global_Pressure, rVLeak := Global_Leak); st_EM1K0_GMD_VRC_20_VOL : ST_Volume := (rVolume := 1E3, rPressure := Global_Pressure, rVLeak := Global_Leak); st_EM1K0_GMD_VRC_30_VOL : ST_Volume := (rVolume := 1E3, rPressure := Global_Pressure, rVLeak := Global_Leak); st_EM1K0_GMD_VRC_50_VOL : ST_Volume := (rVolume := 1E3, rPressure := Global_Pressure, rVLeak := Global_Leak); st_EM1K0_GMD_VRC_60_VOL : ST_Volume := (rVolume := 1E3, rPressure := Global_Pressure, rVLeak := Global_Leak); st_EM1K0_GMD_VRC_70_VOL : ST_Volume := (rVolume := 1E3, rPressure := Global_Pressure, rVLeak := Global_Leak); // ST_MKS_275 st_EM1K0_GMD_GPI_10 : ST_MKS_275 := (q_xGaugeConnected := TRUE); st_EM1K0_GMD_GPI_40 : ST_MKS_275 := (q_xGaugeConnected := TRUE); st_EM1K0_GMD_GPI_70 : ST_MKS_275 := (q_xGaugeConnected := TRUE); // FB_MKS_275 fb_EM1K0_GMD_GPI_10 : FB_MKS_275; fb_EM1K0_GMD_GPI_40 : FB_MKS_275; fb_EM1K0_GMD_GPI_70 : FB_MKS_275; // ST_MechPump st_EM1K0_GMD_PTM_10 : ST_MechPump := (iMaxSpd:=1000, rBasePress:=1E-9, rMaxLoad:=0.95); st_EM1K0_GMD_PTM_20 : ST_MechPump := (iMaxSpd:=1000, rBasePress:=1E-9, rMaxLoad:=0.95); st_EM1K0_GMD_PTM_30 : ST_MechPump := (iMaxSpd:=1000, rBasePress:=1E-9, rMaxLoad:=0.95); st_EM1K0_GMD_PRT_40 : ST_MechPump := (rMRE:=10, rBasePress:=1E-3); st_EM1K0_GMD_PTM_40 : ST_MechPump := (iMaxSpd:=1000, rBasePress:=1E-9, rMaxLoad:=0.95); st_EM1K0_GMD_PTM_50 : ST_MechPump := (iMaxSpd:=1000, rBasePress:=1E-9, rMaxLoad:=0.95); st_EM1K0_GMD_PTM_60 : ST_MechPump := (iMaxSpd:=1000, rBasePress:=1E-9, rMaxLoad:=0.95); st_EM1K0_GMD_PTM_70 : ST_MechPump := (iMaxSpd:=1000, rBasePress:=1E-9, rMaxLoad:=0.95); // FB_TurboPump fb_EM1K0_GMD_PTM_10 : FB_TurboPump; fb_EM1K0_GMD_PTM_20 : FB_TurboPump; fb_EM1K0_GMD_PTM_30 : FB_TurboPump; fb_EM1K0_GMD_PTM_40 : FB_TurboPump; fb_EM1K0_GMD_PTM_50 : FB_TurboPump; fb_EM1K0_GMD_PTM_60 : FB_TurboPump; fb_EM1K0_GMD_PTM_70 : FB_TurboPump; // ST_VacuumValve st_EM1K0_GMD_VRC_10 : ST_VacuumValve := (q_xClsLS := TRUE, q_xOpnLS := FALSE); st_EM1K0_GMD_VRC_20 : ST_VacuumValve := (q_xClsLS := TRUE, q_xOpnLS := FALSE); st_EM1K0_GMD_VRC_30 : ST_VacuumValve := (q_xClsLS := TRUE, q_xOpnLS := FALSE); st_EM1K0_GMD_VRC_50 : ST_VacuumValve := (q_xClsLS := TRUE, q_xOpnLS := FALSE); st_EM1K0_GMD_VRC_60 : ST_VacuumValve := (q_xClsLS := TRUE, q_xOpnLS := FALSE); st_EM1K0_GMD_VRC_70 : ST_VacuumValve := (q_xClsLS := TRUE, q_xOpnLS := FALSE); // FB_VacuumValve fb_EM1K0_GMD_VRC_10 : FB_VacuumValve; fb_EM1K0_GMD_VRC_20 : FB_VacuumValve; fb_EM1K0_GMD_VRC_30 : FB_VacuumValve; fb_EM1K0_GMD_VRC_50 : FB_VacuumValve; fb_EM1K0_GMD_VRC_60 : FB_VacuumValve; fb_EM1K0_GMD_VRC_70 : FB_VacuumValve; // ST_MKS_422 st_EM1K0_GMD_GCC_10 : ST_MKS_422 := (q_xGaugeConnected := TRUE); st_EM1K0_GMD_GCC_20 : ST_MKS_422 := (q_xGaugeConnected := TRUE); st_EM1K0_GMD_GCC_30 : ST_MKS_422 := (q_xGaugeConnected := TRUE); st_EM1K0_GMD_GCC_40 : ST_MKS_422 := (q_xGaugeConnected := TRUE); st_EM1K0_GMD_GCC_50 : ST_MKS_422 := (q_xGaugeConnected := TRUE); st_EM1K0_GMD_GCC_60 : ST_MKS_422 := (q_xGaugeConnected := TRUE); st_EM1K0_GMD_GCC_70 : ST_MKS_422 := (q_xGaugeConnected := TRUE); // FB_MKS_422 fb_EM1K0_GMD_GCC_10 : FB_MKS_422; fb_EM1K0_GMD_GCC_20 : FB_MKS_422; fb_EM1K0_GMD_GCC_30 : FB_MKS_422; fb_EM1K0_GMD_GCC_40 : FB_MKS_422; fb_EM1K0_GMD_GCC_50 : FB_MKS_422; fb_EM1K0_GMD_GCC_60 : FB_MKS_422; fb_EM1K0_GMD_GCC_70 : FB_MKS_422; // FB_RoughPump fb_EM1K0_GMD_PRT_40 : FB_RoughPump; END_VAR GVL_VARIABLES ^^^^^^^^^^^^^ :: {attribute 'global_init_slot' := '40500'} // make sure variables are initialized before other GVLs VAR_GLOBAL Global_Leak : REAL := 0; Global_Pressure : REAL := 0.0079; New_Pressure : REAL := 22.0; //Torr Global_OverridePressure : BOOL := FALSE; END_VAR POUs ---- MAIN ^^^^ :: PROGRAM MAIN VAR END_VAR PRG_DIAGNOSTIC(); OverridePressure(); PRG_GMD(); END_PROGRAM Related: * `PRG_DIAGNOSTIC`_ * `PRG_GMD`_ OverridePressure ^^^^^^^^^^^^^^^^ :: PROGRAM OverridePressure VAR fb_SetPressure : FB_SetChamberPressure; END_VAR fb_SetPressure(chamber := st_GMD, rNewPressure := New_Pressure, Override := Global_OverridePressure); END_PROGRAM PRG_DIAGNOSTIC ^^^^^^^^^^^^^^ :: PROGRAM PRG_DIAGNOSTIC VAR heartbeat AT %Q* : UINT := 0; END_VAR heartbeat := heartbeat + 1; IF heartbeat > 65000 THEN heartbeat := 0; END_IF END_PROGRAM PRG_GMD ^^^^^^^ :: PROGRAM PRG_GMD VAR END_VAR // FB_MKS_275 fb_EM1K0_GMD_GPI_10(stVolume := st_GMD, stGauge := st_EM1K0_GMD_GPI_10); fb_EM1K0_GMD_GPI_40(stVolume := st_GMD, stGauge := st_EM1K0_GMD_GPI_40); fb_EM1K0_GMD_GPI_70(stVolume := st_GMD, stGauge := st_EM1K0_GMD_GPI_70); // FB_TurboPump fb_EM1K0_GMD_PTM_10(stVlInlet := st_EM1K0_GMD_VRC_10_VOL, stVlOutlet := st_RoughingLine, stPump := st_EM1K0_GMD_PTM_10); fb_EM1K0_GMD_PTM_20(stVlInlet := st_EM1K0_GMD_VRC_20_VOL, stVlOutlet := st_RoughingLine, stPump := st_EM1K0_GMD_PTM_20); fb_EM1K0_GMD_PTM_30(stVlInlet := st_EM1K0_GMD_VRC_30_VOL, stVlOutlet := st_RoughingLine, stPump := st_EM1K0_GMD_PTM_30); fb_EM1K0_GMD_PTM_40(stVlInlet := st_GMD, stVlOutlet := st_RoughingLine, stPump := st_EM1K0_GMD_PTM_40); fb_EM1K0_GMD_PTM_50(stVlInlet := st_EM1K0_GMD_VRC_50_VOL, stVlOutlet := st_RoughingLine, stPump := st_EM1K0_GMD_PTM_50); fb_EM1K0_GMD_PTM_60(stVlInlet := st_EM1K0_GMD_VRC_60_VOL, stVlOutlet := st_RoughingLine, stPump := st_EM1K0_GMD_PTM_60); fb_EM1K0_GMD_PTM_70(stVlInlet := st_EM1K0_GMD_VRC_70_VOL, stVlOutlet := st_RoughingLine, stPump := st_EM1K0_GMD_PTM_70); // FB_VacuumValve fb_EM1K0_GMD_VRC_10(stAVol := st_GMD, stBvol := st_EM1K0_GMD_VRC_10_VOL, stValve := st_EM1K0_GMD_VRC_10); fb_EM1K0_GMD_VRC_20(stAVol := st_GMD, stBvol := st_EM1K0_GMD_VRC_20_VOL, stValve := st_EM1K0_GMD_VRC_20); fb_EM1K0_GMD_VRC_30(stAVol := st_GMD, stBvol := st_EM1K0_GMD_VRC_30_VOL, stValve := st_EM1K0_GMD_VRC_30); fb_EM1K0_GMD_VRC_50(stAVol := st_GMD, stBvol := st_EM1K0_GMD_VRC_50_VOL, stValve := st_EM1K0_GMD_VRC_50); fb_EM1K0_GMD_VRC_60(stAVol := st_GMD, stBvol := st_EM1K0_GMD_VRC_60_VOL, stValve := st_EM1K0_GMD_VRC_60); fb_EM1K0_GMD_VRC_70(stAVol := st_GMD, stBvol := st_EM1K0_GMD_VRC_70_VOL, stValve := st_EM1K0_GMD_VRC_70); // FB_MKS_422 fb_EM1K0_GMD_GCC_10(stVolume := st_GMD, stGauge := st_EM1K0_GMD_GCC_10); fb_EM1K0_GMD_GCC_20(stVolume := st_GMD, stGauge := st_EM1K0_GMD_GCC_20); fb_EM1K0_GMD_GCC_30(stVolume := st_GMD, stGauge := st_EM1K0_GMD_GCC_30); fb_EM1K0_GMD_GCC_40(stVolume := st_GMD, stGauge := st_EM1K0_GMD_GCC_40); fb_EM1K0_GMD_GCC_50(stVolume := st_GMD, stGauge := st_EM1K0_GMD_GCC_50); fb_EM1K0_GMD_GCC_60(stVolume := st_GMD, stGauge := st_EM1K0_GMD_GCC_60); fb_EM1K0_GMD_GCC_70(stVolume := st_GMD, stGauge := st_EM1K0_GMD_GCC_70); // FB_RoughPump fb_EM1K0_GMD_PRT_40(stVolInlet := st_RoughingLine, stPump := st_EM1K0_GMD_PRT_40); END_PROGRAM