diff --git a/MECF.Framework.RT.EquipmentLibrary/Devices/IoInterLock.cs b/MECF.Framework.RT.EquipmentLibrary/Devices/IoInterLock.cs index e78d4b8..d55727c 100644 --- a/MECF.Framework.RT.EquipmentLibrary/Devices/IoInterLock.cs +++ b/MECF.Framework.RT.EquipmentLibrary/Devices/IoInterLock.cs @@ -31,6 +31,8 @@ namespace Aitex.Core.RT.Device.Devices private DOAccessor _doSCR3Enable = null; private DOAccessor _doTCSSupply = null; + private DIAccessor _diTCSSupplyHigh_1 = null; + private DIAccessor _diTCSSupplyHigh_2 = null; private DOAccessor _doLidOpenRoutineSucceed = null; @@ -124,6 +126,7 @@ namespace Aitex.Core.RT.Device.Devices //private SCConfigItem _scPurgeRoutineSucceedTemp; private SCConfigItem _scTCSFluidInfusionTime; //TCS补液时间 + private bool _scTCSFluidInfusionFeedbackDI; //配置参数,TCS补液使用DI反馈信号 private double _lastChamberPressure = 0; private long currentSeconds = 0; @@ -260,6 +263,8 @@ namespace Aitex.Core.RT.Device.Devices //_scPurgeRoutineSucceedTemp = ParseScNode("PurgeRoutineSucceedTemp", node, ioModule, $"PM.{Module}.Purge.PurgeRoutineSucceedTemp"); _scTCSFluidInfusionTime = ParseScNode("TCSSupplyTime", node, ioModule, $"PM.{Module}.TCSFluidInfusionTime"); + _scTCSFluidInfusionFeedbackDI = SC.GetValue($"PM.{Module}.TCSFluidInfusionFeedbackDI"); + SC.RegisterValueChangedCallback($"PM.{Module}.TCSFluidInfusionFeedbackDI", (obj) => _scTCSFluidInfusionFeedbackDI=(bool)obj); _doReactorATMTransferReady = ParseDoNode("doReactorATMTransferReady", node, ioModule); _doReactorVACTransferReady = ParseDoNode("doReactorVACTransferReady", node, ioModule); @@ -284,6 +289,9 @@ namespace Aitex.Core.RT.Device.Devices _doSCR3Enable = ParseDoNode("doSCR3Enable", node, ioModule); _doTCSSupply = ParseDoNode("doTCSSupply", node, ioModule); + _diTCSSupplyHigh_1 = ParseDiNode("diTCSSupplyHigh_1", node, ioModule); + _diTCSSupplyHigh_2 = ParseDiNode("diTCSSupplyHigh_2", node, ioModule); + _aiTempCtrl1 = ParseAiNode("aiTempCtrl1", node, ioModule); _doProcessRunning = ParseDoNode("doProcessRunning", node, ioModule); @@ -623,6 +631,16 @@ namespace Aitex.Core.RT.Device.Devices _doTCSSupply.Value = false; _timerTCSSupply.Stop(); //进入Idle状态 } + + if (_scTCSFluidInfusionFeedbackDI)//根据配置是否启用使用DI反馈信号 + { + if ((_diTCSSupplyHigh_1?.Value ?? false) || (_diTCSSupplyHigh_2?.Value ?? false))//两个DI为高液位时主动停止补液 + { + _doTCSSupply.Value = false; + _timerTCSSupply.Stop(); //进入Idle状态 + } + + } }