|
@@ -723,6 +723,20 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
public IoSensor SensorVACHFOK { get; set; }
|
|
|
[Tag("SensorVACF2OK")]
|
|
|
public IoSensor SensorVACF2OK { get; set; }
|
|
|
+
|
|
|
+ [Tag("SensorO2DetectSideLA")]
|
|
|
+ public IoSensor SensorO2DetectSideLA { get; set; }
|
|
|
+ [Tag("SensorO2DetectSideFIMS1")]
|
|
|
+ public IoSensor SensorO2DetectSideFIMS1 { get; set; }
|
|
|
+ [Tag("SensorO2DetectSideFIMS2")]
|
|
|
+ public IoSensor SensorO2DetectSideFIMS2 { get; set; }
|
|
|
+ [Tag("SensorLADoorSw1")]
|
|
|
+ public IoSensor SensorLADoorSw1 { get; set; }
|
|
|
+ [Tag("SensorLADoorSw2")]
|
|
|
+ public IoSensor SensorLADoorSw2 { get; set; }
|
|
|
+ [Tag("SensorLADoorSw3")]
|
|
|
+ public IoSensor SensorLADoorSw3 { get; set; }
|
|
|
+
|
|
|
//[Tag("SensorNH3PressureOK")]
|
|
|
//public IoAlarmSignal SignalLeak { get; set; }
|
|
|
|
|
@@ -1600,130 +1614,6 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
// SensorTHBreakOK,
|
|
|
};
|
|
|
//SensorLidClosed.OnSignalChanged += SensorLidClosed_OnSignalChanged;
|
|
|
- _n2PurgeSequenceAction = new Dictionary<string, Tuple<R_TRIG, List<Tuple<IoValve, bool>>>>()
|
|
|
- {
|
|
|
- {"N2PurgeAIRTo20PPM",Tuple.Create(new R_TRIG(),
|
|
|
- new List<Tuple<IoValve, bool>>()
|
|
|
- {
|
|
|
- Tuple.Create(ValveAV56,true), //AV56
|
|
|
- Tuple.Create(ValveAV57,true),//AV57
|
|
|
- Tuple.Create(ValveAV65,false), //AV65
|
|
|
- Tuple.Create(ValveAV66,false),//AV66
|
|
|
- Tuple.Create(ValveLADamper,true), //AV227
|
|
|
-
|
|
|
- Tuple.Create(ValveAV58,false),//AV58
|
|
|
- Tuple.Create(ValveAV59,false),//AV59
|
|
|
- Tuple.Create(ValveFIMS1N2Purge,false), //AV63
|
|
|
- Tuple.Create(ValveFIMS2N2Purge,false), //AV64
|
|
|
- Tuple.Create(ValveSV61,false),//SV61
|
|
|
- Tuple.Create(ValveSV62,false),//SV62
|
|
|
- //Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
|
|
|
- Tuple.Create(ValveLABacksideDoorCylinderControl,false),//V202
|
|
|
- })
|
|
|
- },
|
|
|
- {"N2PurgeUnder20PPM",Tuple.Create(new R_TRIG(),
|
|
|
- new List<Tuple<IoValve, bool>>()
|
|
|
- {
|
|
|
- Tuple.Create(ValveAV56,true),//AV56
|
|
|
- Tuple.Create(ValveAV57,false),//AV57
|
|
|
- Tuple.Create(ValveAV65,false), //AV65
|
|
|
- Tuple.Create(ValveAV66,false),//AV66
|
|
|
- Tuple.Create(ValveLADamper,true), //AV227
|
|
|
-
|
|
|
- Tuple.Create(ValveAV58,false),//AV58
|
|
|
- Tuple.Create(ValveAV59,false),//AV59
|
|
|
- Tuple.Create(ValveFIMS1N2Purge,false), //AV63
|
|
|
- Tuple.Create(ValveFIMS2N2Purge,false), //AV64
|
|
|
- Tuple.Create(ValveSV61,false),//SV61
|
|
|
- Tuple.Create(ValveSV62,false),//SV62
|
|
|
- //Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
|
|
|
- Tuple.Create(ValveLABacksideDoorCylinderControl,false),//V202
|
|
|
- })
|
|
|
- },
|
|
|
- {"AIR",Tuple.Create(new R_TRIG(),
|
|
|
- new List<Tuple<IoValve, bool>>()
|
|
|
- {
|
|
|
- Tuple.Create(ValveAV56,false),
|
|
|
- Tuple.Create(ValveAV57,false),
|
|
|
- Tuple.Create(ValveAV65,true), //AV65
|
|
|
- Tuple.Create(ValveAV66,true),
|
|
|
- Tuple.Create(ValveLADamper,true), //AV227
|
|
|
-
|
|
|
- Tuple.Create(ValveAV58,false),
|
|
|
- Tuple.Create(ValveAV59,false),
|
|
|
- Tuple.Create(ValveFIMS1N2Purge,false), //AV63
|
|
|
- Tuple.Create(ValveFIMS2N2Purge,false), //AV64
|
|
|
- Tuple.Create(ValveSV61,false),
|
|
|
- Tuple.Create(ValveSV62,false),
|
|
|
- //Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,true), //AV201
|
|
|
- Tuple.Create(ValveLABacksideDoorCylinderControl,true),//V202
|
|
|
- })
|
|
|
- },
|
|
|
- {"DoorOpen",Tuple.Create(new R_TRIG(),
|
|
|
- new List<Tuple<IoValve, bool>>()
|
|
|
- {
|
|
|
- Tuple.Create(ValveAV56,false),
|
|
|
- Tuple.Create(ValveAV57,false),
|
|
|
- Tuple.Create(ValveAV65,true), //AV65
|
|
|
- Tuple.Create(ValveAV66,true),
|
|
|
- Tuple.Create(ValveLADamper,false), //AV227
|
|
|
- Tuple.Create(ValveAV58,false),
|
|
|
- Tuple.Create(ValveAV59,false),
|
|
|
- Tuple.Create(ValveFIMS1N2Purge,false), //AV63
|
|
|
- Tuple.Create(ValveFIMS2N2Purge,false), //AV64
|
|
|
- Tuple.Create(ValveSV61,false),
|
|
|
- Tuple.Create(ValveSV62,false),
|
|
|
- //Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,true), //AV201
|
|
|
- Tuple.Create(ValveLABacksideDoorCylinderControl,true),//V202
|
|
|
- })
|
|
|
- },
|
|
|
- {"Foup1",Tuple.Create(new R_TRIG(),
|
|
|
- new List<Tuple<IoValve, bool>>()
|
|
|
- {
|
|
|
- Tuple.Create(ValveAV56,true),
|
|
|
- Tuple.Create(ValveAV57,false),
|
|
|
- Tuple.Create(ValveAV65,false), //AV65
|
|
|
- Tuple.Create(ValveAV66,false),
|
|
|
- Tuple.Create(ValveLADamper,true), //AV227
|
|
|
- Tuple.Create(ValveAV58,true),
|
|
|
- Tuple.Create(ValveAV59,false),
|
|
|
- Tuple.Create(ValveFIMS1N2Purge,true), //AV63
|
|
|
- Tuple.Create(ValveFIMS2N2Purge,false), //AV64
|
|
|
- Tuple.Create(ValveSV61,true),
|
|
|
- Tuple.Create(ValveSV62,false),
|
|
|
- //Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
|
|
|
- Tuple.Create(ValveLABacksideDoorCylinderControl,false),//V202
|
|
|
- })
|
|
|
- },
|
|
|
- {"Foup2",Tuple.Create(new R_TRIG(),
|
|
|
- new List<Tuple<IoValve, bool>>()
|
|
|
- {
|
|
|
- Tuple.Create(ValveAV56,true),
|
|
|
- Tuple.Create(ValveAV57,false),
|
|
|
- Tuple.Create(ValveAV65,false), //AV65
|
|
|
- Tuple.Create(ValveAV66,false),
|
|
|
- Tuple.Create(ValveLADamper,true), //AV227
|
|
|
-
|
|
|
- Tuple.Create(ValveAV58,false),
|
|
|
- Tuple.Create(ValveAV59,true),
|
|
|
- Tuple.Create(ValveFIMS1N2Purge,false), //AV63
|
|
|
- Tuple.Create(ValveFIMS2N2Purge,true), //AV64
|
|
|
- Tuple.Create(ValveSV61,true),
|
|
|
- Tuple.Create(ValveSV62,true),
|
|
|
- //Tuple.Create(ValveCommonBoxPressureRegulatingCylinder,false), //AV201
|
|
|
- Tuple.Create(ValveLABacksideDoorCylinderControl,false),//V202
|
|
|
- })
|
|
|
- },
|
|
|
- };
|
|
|
- _n2PurgeSequenceStatus = new Dictionary<string, Func<bool>>()
|
|
|
- {
|
|
|
- {"N2PurgeAIRTo20PPM",()=> GetN2PurgeAIRTo20PPMStatus()},
|
|
|
- {"N2PurgeUnder20PPM",()=> GetN2PurgeUnder20PPMStatus()},
|
|
|
- {"AIR",()=> GetN2PurgeAIRStatus()},
|
|
|
- {"DoorOpen",()=> GetN2PurgeDoorOpenStatus()},
|
|
|
- {"Foup1",()=> GetN2PurgeFoup1Status()},
|
|
|
- {"Foup2",()=> GetN2PurgeFoup2Status()},
|
|
|
- };
|
|
|
|
|
|
TrigFurnaceUZoneHeatingEnable.SetTrigger(true, out _);
|
|
|
TrigFurnaceCUZoneHeatingEnable.SetTrigger(true, out _);
|
|
@@ -1732,6 +1622,7 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
TrigFurnaceLZoneHeatingEnable.SetTrigger(true, out _);
|
|
|
MINI8AlarmReset?.Reset();
|
|
|
PLCCPUReset?.Reset();
|
|
|
+ InitN2PurgeConfigData();
|
|
|
}
|
|
|
|
|
|
private void SensorLidClosed_OnSignalChanged(IoSensor sender, bool isTriggered)
|
|
@@ -2452,19 +2343,6 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
- private bool SetN2PurgeMode(out string reason, int time, object[] param)
|
|
|
- {
|
|
|
- reason = string.Empty;
|
|
|
- var mode = param[0].ToString();
|
|
|
- _N2PurgeMode = (N2PurgeModeEnum)Enum.Parse(typeof(N2PurgeModeEnum), mode);
|
|
|
-
|
|
|
- if (SC.ContainsItem("PM1.SelectN2PurgeMode"))
|
|
|
- {
|
|
|
- SC.SetItemValue("PM1.SelectN2PurgeMode", mode);
|
|
|
- }
|
|
|
-
|
|
|
- return true;
|
|
|
- }
|
|
|
private void SetHeaterControlParameters(object[] param)
|
|
|
{
|
|
|
//Mode参数;Correct Table;PID Table
|