|
@@ -29,6 +29,7 @@ using CyberX8_RT.Devices.Safety;
|
|
|
using MECF.Framework.Common.ProcessCell;
|
|
|
using MECF.Framework.Common.Alarm;
|
|
|
using MECF.Framework.Common.IOCore;
|
|
|
+using Aitex.Core.RT.Routine;
|
|
|
|
|
|
|
|
|
namespace CyberX8_RT.Devices.Reservoir
|
|
@@ -198,7 +199,6 @@ namespace CyberX8_RT.Devices.Reservoir
|
|
|
private bool _isAutoDIReplenError = false;
|
|
|
private bool _isSafetyHigh = false;
|
|
|
private bool _isSystemAutoMode = false;
|
|
|
- private bool _reservoirPowerOn = false;
|
|
|
/// <summary>
|
|
|
/// 用于控制打印错误log
|
|
|
/// </summary>
|
|
@@ -709,7 +709,8 @@ namespace CyberX8_RT.Devices.Reservoir
|
|
|
DATA.Subscribe($"{Module}.HedFlow", () => _reservoirData.HedFlow, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
DATA.Subscribe($"{Module}.PHEnable", () => _reservoirData.PHFlowValve, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
DATA.Subscribe($"{Module}.IsDIReplenInFault", () => _isDiReplenInFault, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
- DATA.Subscribe($"{Module}.ReservoirPowerOn", () => _reservoirPowerOn, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
+ DATA.Subscribe($"{Module}.ReservoirPowerOn", () => _reservoirData.ResPowerOn, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
+ DATA.Subscribe($"{Module}.HedPowerOn", () => _reservoirData.HedPowerOn, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 初始化操作
|
|
@@ -734,6 +735,85 @@ namespace CyberX8_RT.Devices.Reservoir
|
|
|
OP.Subscribe($"{Module}.StopManualDosing", StopManualDosing);
|
|
|
OP.Subscribe($"{Module}.ResetBottleVolume", ResetBottleVolume);
|
|
|
OP.Subscribe($"{Module}.DosingInitialize", DosingInitialize);
|
|
|
+
|
|
|
+ OP.Subscribe($"{Module}.HedPowerOn", HedPowerOnAction);
|
|
|
+ OP.Subscribe($"{Module}.HedPowerOff", HedPowerOffAction);
|
|
|
+ OP.Subscribe($"{Module}.ResPowerOn", ResPowerOnAction);
|
|
|
+ OP.Subscribe($"{Module}.ResPowerOff", ResPowerOffAction);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private bool HedPowerOnAction(string cmd, object[] args)
|
|
|
+ {
|
|
|
+ string ioName = BeckhoffModuleIOManager.Instance.GetIoNameByInnerModuleName($"{Module}.{HEDPOWERON}");
|
|
|
+ if (!string.IsNullOrEmpty(ioName))
|
|
|
+ {
|
|
|
+ bool result = IOModuleManager.Instance.WriteIoValue(ioName, true);
|
|
|
+ if (!result)
|
|
|
+ {
|
|
|
+ LOG.WriteLog(eEvent.ERR_RESERVOIR, Module, $"Open HED Power Relay failed");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private bool HedPowerOffAction(string cmd, object[] args)
|
|
|
+ {
|
|
|
+ string ioName = BeckhoffModuleIOManager.Instance.GetIoNameByInnerModuleName($"{Module}.{HEDPOWERON}");
|
|
|
+ if (!string.IsNullOrEmpty(ioName))
|
|
|
+ {
|
|
|
+ bool result = IOModuleManager.Instance.WriteIoValue(ioName, false);
|
|
|
+ if (!result)
|
|
|
+ {
|
|
|
+ LOG.WriteLog(eEvent.ERR_RESERVOIR, Module, $"Close HED Power Relay failed");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private bool ResPowerOnAction(string cmd, object[] args)
|
|
|
+ {
|
|
|
+ string ioName = BeckhoffModuleIOManager.Instance.GetIoNameByInnerModuleName($"{Module}.{RESPOWERON}");
|
|
|
+ if (!string.IsNullOrEmpty(ioName))
|
|
|
+ {
|
|
|
+ bool result = IOModuleManager.Instance.WriteIoValue(ioName, true);
|
|
|
+ if (!result)
|
|
|
+ {
|
|
|
+ LOG.WriteLog(eEvent.ERR_RESERVOIR, Module, $"Open Res Power Relay failed");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private bool ResPowerOffAction(string cmd, object[] args)
|
|
|
+ {
|
|
|
+ string ioName = BeckhoffModuleIOManager.Instance.GetIoNameByInnerModuleName($"{Module}.{RESPOWERON}");
|
|
|
+ if (!string.IsNullOrEmpty(ioName))
|
|
|
+ {
|
|
|
+ bool result = IOModuleManager.Instance.WriteIoValue(ioName, false);
|
|
|
+ if (!result)
|
|
|
+ {
|
|
|
+ LOG.WriteLog(eEvent.ERR_RESERVOIR, Module, $"Close Res Power Relay failed");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
#region Operation
|
|
@@ -1947,6 +2027,8 @@ namespace CyberX8_RT.Devices.Reservoir
|
|
|
BeckhoffIoSubscribeUpdateVariable(LOW_LEVEL);
|
|
|
BeckhoffIoSubscribeUpdateVariable(HIGH_LEVEL);
|
|
|
BeckhoffIoSubscribeUpdateVariable(SAFETY_HIGH_LEVEL);
|
|
|
+ BeckhoffIoSubscribeUpdateVariable(RESPOWERON);
|
|
|
+ BeckhoffIoSubscribeUpdateVariable(HEDPOWERON);
|
|
|
for (int i = 0; i < _replenNum; i++)
|
|
|
{
|
|
|
BeckhoffIoSubscribeUpdateVariable($"Replen{i + 1}Level");
|