diff --git a/App/Modules/SicModules/Config/PM/PM1/DeviceModelPM1.xml b/App/Modules/SicModules/Config/PM/PM1/DeviceModelPM1.xml index 4efbc99..f6374e7 100644 --- a/App/Modules/SicModules/Config/PM/PM1/DeviceModelPM1.xml +++ b/App/Modules/SicModules/Config/PM/PM1/DeviceModelPM1.xml @@ -155,6 +155,7 @@ + @@ -196,15 +197,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/App/Modules/SicModules/Config/PM/PM1/_ioDefinePM1.xml b/App/Modules/SicModules/Config/PM/PM1/_ioDefinePM1.xml index bb6b34c..a16bda5 100644 --- a/App/Modules/SicModules/Config/PM/PM1/_ioDefinePM1.xml +++ b/App/Modules/SicModules/Config/PM/PM1/_ioDefinePM1.xml @@ -413,7 +413,7 @@ - + diff --git a/App/Modules/SicModules/PMs/Routines/PMCleanRoutine.cs b/App/Modules/SicModules/PMs/Routines/PMCleanRoutine.cs index 5dca017..fa23bbe 100644 --- a/App/Modules/SicModules/PMs/Routines/PMCleanRoutine.cs +++ b/App/Modules/SicModules/PMs/Routines/PMCleanRoutine.cs @@ -207,7 +207,7 @@ namespace SicModules.PMs.Routines private ModuleName moduleName; private PMModule _pmModule; private IoThrottleValve2 _IoThrottle; - private IoInterLock _pmIoInterLock; + //private IoInterLock _pmIoInterLock; private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值 private int _rotationCloseTimeout = 20; //旋转停止超时 @@ -242,7 +242,7 @@ namespace SicModules.PMs.Routines Name = "Clean"; _IoThrottle = DEVICE.GetDevice($"{Module}.TV"); - _pmIoInterLock = DEVICE.GetDevice($"{Module}.PMInterLock"); + //_pmIoInterLock = DEVICE.GetDevice($"{Module}.PMInterLock"); } public override Result Start(params object[] objs) @@ -267,13 +267,13 @@ namespace SicModules.PMs.Routines _throttleFinalPressure = SC.GetValue($"PM.{Module}.Clean.FinalPressure"); //Purge Succeed 清掉 - _pmIoInterLock.DoLidOpenRoutineSucceed = false; - _pmIoInterLock.DoLidCloseRoutineSucceed = false; - if (!_pmIoInterLock.SetPMCleanRoutineRunning(true, out string reason)) - { - EV.PostAlarmLog(Module, $"can not Clean,{reason}"); - return Result.FAIL; - } + //_pmIoInterLock.DoLidOpenRoutineSucceed = false; + //_pmIoInterLock.DoLidCloseRoutineSucceed = false; + //if (!_pmIoInterLock.SetPMCleanRoutineRunning(true, out string reason)) + //{ + // EV.PostAlarmLog(Module, $"can not Clean,{reason}"); + // return Result.FAIL; + //} _checkPMPt2Over1000 = false; @@ -438,13 +438,13 @@ namespace SicModules.PMs.Routines private void SetRoutineRuningDo() { - _pmIoInterLock.DoLidCloseRoutineRunning = false; + //_pmIoInterLock.DoLidCloseRoutineRunning = false; } private void SetRoutineSuccessedDo() { - _pmIoInterLock.SetLidClosedRoutineSucceed(true, out string reason); - _pmIoInterLock.DoLidOpenRoutineSucceed = false; + //_pmIoInterLock.SetLidClosedRoutineSucceed(true, out string reason); + //_pmIoInterLock.DoLidOpenRoutineSucceed = false; } diff --git a/App/Modules/SicModules/PMs/Routines/PMLeakCheckRoutine.cs b/App/Modules/SicModules/PMs/Routines/PMLeakCheckRoutine.cs index 9837d61..c905b19 100644 --- a/App/Modules/SicModules/PMs/Routines/PMLeakCheckRoutine.cs +++ b/App/Modules/SicModules/PMs/Routines/PMLeakCheckRoutine.cs @@ -207,7 +207,6 @@ namespace SicModules.PMs.Routines private ModuleName moduleName; private IoThrottleValve2 _IoThrottle; - private IoInterLock _pmIoInterLock; private int _rotationCheckSpeed = 0; //设置旋转速度为0后检查是否转速低于此数值 private int _rotationCloseTimeout; //旋转停止超时 @@ -272,7 +271,6 @@ namespace SicModules.PMs.Routines _rotationCloseTimeout = SC.GetValue($"PM.{Module}.RotationCloseTimeout"); _pmPressureMaxDiff = SC.GetValue($"PM.{Module}.ThrottlePressureMaxDiff"); _throttleTimeout = SC.GetValue($"PM.{Module}.ThrottlePressureTimeout"); - _pmIoInterLock = DEVICE.GetDevice($"{Module}.PMInterLock"); _rotationCloseTimeout = SC.GetValue($"PM.{Module}.RotationCloseTimeout"); _pressureLoopCount = SC.GetValue($"PM.{Module}.LeakCheck.CyclePurgeCount"); diff --git a/App/SicSimulator/Instances/SimulatorSystem.cs b/App/SicSimulator/Instances/SimulatorSystem.cs index 01ee02c..50d7016 100644 --- a/App/SicSimulator/Instances/SimulatorSystem.cs +++ b/App/SicSimulator/Instances/SimulatorSystem.cs @@ -95,6 +95,17 @@ namespace SicSimulator.Instances private void SetDefaultValue(string mod) { SetWaterTemp(mod); + IO.DI[$"{mod}.DI_PMH2SDetector1SW"].Value = true; + IO.DI[$"{mod}.DI_PMH2SeDetector1SW"].Value = true; + IO.DI[$"{mod}.DI_PMH2SeDetector2SW"].Value = true; + IO.DI[$"{mod}.DI_PMSO2Detector2SW"].Value = true; + IO.DI[$"{mod}.DI_PMGasDetectorFault2SW"].Value = true; + IO.DI[$"{mod}.DI_PMSO2Detector1SW"].Value = true; + IO.DI[$"{mod}.DI_GBH2SDetectorSW"].Value = true; + IO.DI[$"{mod}.DI_GBH2SeDetectorSW"].Value = true; + IO.DI[$"{mod}.DI_PMSmokeDetectorSW"].Value = true; + IO.DI[$"{mod}.DI_PMH2SDetector2SW"].Value = true; + IO.DI[$"{mod}.DI_ConfinementRingDone"].Value = true; IO.DI[$"{mod}.DI_DryPumpAlarm"].Value = true; @@ -259,7 +270,7 @@ namespace SicSimulator.Instances IO.DI[$"{mod}.DI_PMAExhaustDPSW"].Value = true; IO.DI[$"{mod}.DI_ServoDriverFaultSW"].Value = true; - IO.DI[$"{mod}.DI_GN2InletPressSW"].Value = true; + IO.DI[$"{mod}.DI_GN2InletPressSW"].Value = false; IO.DI[$"{mod}.DI_ArInletPressSW"].Value = true; IO.DI[$"{mod}.DI_FacilityWarningSW"].Value = true; @@ -297,6 +308,9 @@ namespace SicSimulator.Instances IO.DO[$"{mod}.DO_HeaterEnable"].Value = true; IO.DO[$"{mod}.DO_EPV2"].Value = true; + IO.DO[$"{mod}.DO_Foreline1FlowTemp"].Value = true; + IO.DO[$"{mod}.DO_Foreline2FlowTemp"].Value = true; + } private void SetWaterTemp(string mod) diff --git a/Framework/MECF.Framework.RT.EquipmentLibrary/Devices/IoInterLock.cs b/Framework/MECF.Framework.RT.EquipmentLibrary/Devices/IoInterLock.cs index 03039f5..e79d4b6 100644 --- a/Framework/MECF.Framework.RT.EquipmentLibrary/Devices/IoInterLock.cs +++ b/Framework/MECF.Framework.RT.EquipmentLibrary/Devices/IoInterLock.cs @@ -67,66 +67,17 @@ namespace Aitex.Core.RT.Device.Devices private DOAccessor _doReactorPressRisingRate = null; private DOAccessor _doUPSLowBattery = null; - //DO195-DO208 - private DOAccessor _doChamMiddleFlow2Temp = null; - private DOAccessor _doSHFlowTemp = null; - private DOAccessor _doChamTopFlowTemp = null; - private DOAccessor _doChamMiddleFlow1Temp = null; - private DOAccessor _doChamBottomFlowTemp = null; - - //private DOAccessor _doBottomPlateFlowTemp = null; - private DOAccessor _doSpare1FlowTemp = null; - - private DOAccessor _doPowerRod1FlowTemp = null; - private DOAccessor _doPowerRod2FlowTemp = null; - private DOAccessor _doElectrodeWFlowTemp = null; - private DOAccessor _doTMPump2FlowTemp = null; - private DOAccessor _doTMPump1FlowTemp = null; - private DOAccessor _doTransformerFlowTemp = null; - private DOAccessor _doForelineFlowTemp = null; - private DOAccessor _doTMTopLidTemp = null; - private DOAccessor _doTMBufferFlowTemp = null; // private AIAccessor _aiChamMiddleFlow2Temp = null; - private AIAccessor _aiSHFlowTemp = null; - private AIAccessor _aiChamTopFlowTemp = null; - private AIAccessor _aiChamMiddleFlowTemp = null; - private AIAccessor _aiChamBottomFlowTemp = null; - private AIAccessor _aiBottomPlateFlowTemp = null; - private AIAccessor _aiPowerRod1FlowTemp = null; - private AIAccessor _aiPowerRod2FlowTemp = null; - private AIAccessor _aiElectrodeWFlowTemp = null; - private AIAccessor _aiTMPump2FlowTemp = null; - private AIAccessor _aiTMPump1FlowTemp = null; - private AIAccessor _aiTransformerFlowTemp = null; - private AIAccessor _aiForelineFlowTemp = null; - private AIAccessor _aiTMTopLidTemp = null; - private AIAccessor _aiTMBufferFlowTemp = null; - private SCConfigItem _scPmVacPress; //判断腔体真空的BasePressure private SCConfigItem _scPmAtmPress; private SCConfigItem _scReactorPressRisingRateLimit; - private SCConfigItem _scChamMiddleFlow2Temp; - private SCConfigItem _scSHFlowTemp; - private SCConfigItem _scChamTopFlowTemp; - private SCConfigItem _scChamMiddleFlowTemp; - private SCConfigItem _scChamBottomFlowTemp; //private SCConfigItem _scBottomPlateFlowTemp; - private SCConfigItem _scPowerRod1FlowTemp; - - private SCConfigItem _scPowerRod2FlowTemp; - private SCConfigItem _scElectrodeWFlowTemp; - private SCConfigItem _scTMPump1FlowTemp; - private SCConfigItem _scTMPump2FlowTemp; - private SCConfigItem _scTransformerFlowTemp; - private SCConfigItem _scForelineFlowTemp; - private SCConfigItem _scTMTopLidTemp; - private SCConfigItem _scTMBufferFlowTemp; //private SCConfigItem _scPurgeRoutineSucceedTemp; @@ -250,21 +201,6 @@ namespace Aitex.Core.RT.Device.Devices sDO207 = "Spare3FlowTemp"; sDO208 = "Spare4FlowTemp"; } - _scChamMiddleFlow2Temp = ParseScNode(sDO195, node, ioModule, $"PM.{Module}.CoolingWater." + sDO195); - _scSHFlowTemp = ParseScNode(sDO196, node, ioModule, $"PM.{Module}.CoolingWater." + sDO196); - _scChamTopFlowTemp = ParseScNode(sDO197, node, ioModule, $"PM.{Module}.CoolingWater." + sDO197); - _scChamMiddleFlowTemp = ParseScNode(sDO198, node, ioModule, $"PM.{Module}.CoolingWater." + sDO198); - _scChamBottomFlowTemp = ParseScNode(sDO199, node, ioModule, $"PM.{Module}.CoolingWater." + sDO199); - _scTMPump2FlowTemp = ParseScNode(sDO200, node, ioModule, $"PM.{Module}.CoolingWater." + sDO200); - //_scBottomPlateFlowTemp = ParseScNode(sDO200, node, ioModule, $"PM.{Module}.CoolingWater.SpareTempLimit"); - _scPowerRod1FlowTemp = ParseScNode(sDO201, node, ioModule, $"PM.{Module}.CoolingWater." + sDO201); - _scPowerRod2FlowTemp = ParseScNode(sDO202, node, ioModule, $"PM.{Module}.CoolingWater." + sDO202); - _scForelineFlowTemp = ParseScNode(sDO203, node, ioModule, $"PM.{Module}.CoolingWater." + sDO203); - _scElectrodeWFlowTemp = ParseScNode(sDO204, node, ioModule, $"PM.{Module}.CoolingWater." + sDO204); - _scTMPump1FlowTemp = ParseScNode(sDO205, node, ioModule, $"PM.{Module}.CoolingWater." + sDO205); - _scTransformerFlowTemp = ParseScNode(sDO206, node, ioModule, $"PM.{Module}.CoolingWater." + sDO206); - _scTMTopLidTemp = ParseScNode(sDO207, node, ioModule, $"PM.{Module}.CoolingWater." + sDO207); - _scTMBufferFlowTemp = ParseScNode(sDO208, node, ioModule, $"PM.{Module}.CoolingWater." + sDO208); //_scPurgeRoutineSucceedTemp = ParseScNode("PurgeRoutineSucceedTemp", node, ioModule, $"PM.{Module}.Purge.PurgeRoutineSucceedTemp"); _scTCSFluidInfusionTime = ParseScNode("TCSSupplyTime", node, ioModule, $"PM.{Module}.TCSFluidInfusionTime"); @@ -293,10 +229,10 @@ namespace Aitex.Core.RT.Device.Devices _doSCR2Enable = ParseDoNode("doSCR2Enable", node, ioModule); _doSCR3Enable = ParseDoNode("doSCR3Enable", node, ioModule); - _doTCSSupply = ParseDoNode("doTCSSupply", node, ioModule); + _doTCSSupply = ParseDoNode("doTCSSupply", node, ioModule);//? _doTCSSupplementing = ParseDoNode("doTCSSupplementing", node, ioModule); _diTCSHighLevel1 = ParseDiNode("diTCSHighLevel1", node, ioModule); - _diTCSNormalLevel = ParseDiNode("diTCSNormalLevel", node, ioModule); + _diTCSNormalLevel = ParseDiNode("diTCSNormalLevel", node, ioModule);//? _aiTempCtrl1 = ParseAiNode("aiTempCtrl1", node, ioModule); @@ -310,8 +246,8 @@ namespace Aitex.Core.RT.Device.Devices _doPumpDownRoutineRunning = ParseDoNode("doPumpDownRoutineRunning", node, ioModule); _doVentRoutineRunning = ParseDoNode("doVentRoutineRunning", node, ioModule); _doProcessIdleRunning = ParseDoNode("doProcessIdleRunning", node, ioModule); - _doATMIdleRoutineRunning = ParseDoNode("doATMIdleRoutineRunning", node, ioModule); - _doVACIdleRoutineRunning = ParseDoNode("doVACIdleRoutineRunning", node, ioModule); + _doATMIdleRoutineRunning = ParseDoNode("doATMIdleRoutineRunning", node, ioModule);//? + _doVACIdleRoutineRunning = ParseDoNode("doVACIdleRoutineRunning", node, ioModule);//? _doVACTransferAllowed = ParseDoNode("doVACTransferAllowed", node, ioModule); _doATMTransferAllowed = ParseDoNode("doATMTransferAllowed", node, ioModule); @@ -327,45 +263,12 @@ namespace Aitex.Core.RT.Device.Devices _aiChamPress = ParseAiNode("aiChamPress", node, ioModule); - _doPMASlitDoorClosed = ParseDoNode("doPMASlitDoorClosed", node, ioModule); + _doPMASlitDoorClosed = ParseDoNode("doPMASlitDoorClosed", node, ioModule);//? _doReactorPressRisingRate = ParseDoNode("doReactorPressRisingRate", node, ioModule); _doUPSLowBattery = ParseDoNode("doUPSLowBattery", node, ioModule); //DO195-DO208 ChamMiddleFlow2Temp - _doChamMiddleFlow2Temp = ParseDoNode("do" + sDO195, node, ioModule); //DO195 - _doSHFlowTemp = ParseDoNode("do" + sDO196, node, ioModule); //DO196 - _doChamTopFlowTemp = ParseDoNode("do" + sDO197, node, ioModule); //DO197 - _doChamMiddleFlow1Temp = ParseDoNode("do" + sDO198, node, ioModule); //DO198 - _doChamBottomFlowTemp = ParseDoNode("do" + sDO199, node, ioModule); //DO199 - _doTMPump2FlowTemp = ParseDoNode("do" + sDO200, node, ioModule); //DO200 - //_doBottomPlateFlowTemp = ParseDoNode("doSpare1FlowTemp", node, ioModule); - _doPowerRod1FlowTemp = ParseDoNode("do" + sDO201, node, ioModule); //DO201 - _doPowerRod2FlowTemp = ParseDoNode("do" + sDO202, node, ioModule); //DO202 - _doForelineFlowTemp = ParseDoNode("do" + sDO203, node, ioModule); //DO203 - _doElectrodeWFlowTemp = ParseDoNode("do" + sDO204, node, ioModule); //DO204 - _doTMPump1FlowTemp = ParseDoNode("do" + sDO205, node, ioModule); //DO205 - _doTransformerFlowTemp = ParseDoNode("do" + sDO206, node, ioModule); //DO206 - _doTMTopLidTemp = ParseDoNode("do" + sDO207, node, ioModule); //DO207 - _doTMBufferFlowTemp = ParseDoNode("do" + sDO208, node, ioModule); //DO208 - - // - _aiChamMiddleFlow2Temp = ParseAiNode("aiChamMiddleFlow2Temp", node, ioModule); - _aiSHFlowTemp = ParseAiNode("aiSHFlowTemp", node, ioModule); - _aiChamTopFlowTemp = ParseAiNode("aiChamTopFlowTemp", node, ioModule); - _aiChamMiddleFlowTemp = ParseAiNode("aiChamMiddleFlowTemp", node, ioModule); - _aiChamBottomFlowTemp = ParseAiNode("aiChamBottomFlowTemp", node, ioModule); - _aiBottomPlateFlowTemp = ParseAiNode("aiBottomPlateFlowTemp", node, ioModule); - _aiPowerRod1FlowTemp = ParseAiNode("aiPowerRod1FlowTemp", node, ioModule); - _aiPowerRod2FlowTemp = ParseAiNode("aiPowerRod2FlowTemp", node, ioModule); - _aiElectrodeWFlowTemp = ParseAiNode("aiElectrodeWFlowTemp", node, ioModule); - _aiTMPump1FlowTemp = ParseAiNode("aiTMPump1FlowTemp", node, ioModule); - _aiTMPump2FlowTemp = ParseAiNode("aiTMPump2FlowTemp", node, ioModule); - _aiTransformerFlowTemp = ParseAiNode("aiTransformerFlowTemp", node, ioModule); - _aiForelineFlowTemp = ParseAiNode("aiForelineFlowTemp", node, ioModule); - _aiTMTopLidTemp = ParseAiNode("aiTMTopLidTemp", node, ioModule); - _aiTMBufferFlowTemp = ParseAiNode("aiTMBufferFlowTemp", node, ioModule); - _swTimer.Start(); }