[RT.EquipmentLibrary]

修改MFC5控制流程逻辑
This commit is contained in:
hanqiangqiang 2023-11-21 17:15:47 +08:00
parent d846c53367
commit 2cdf7624e0
1 changed files with 73 additions and 48 deletions

View File

@ -3,6 +3,7 @@ using Aitex.Core.RT.Device.Devices;
using Aitex.Core.RT.Device.Unit;
using Aitex.Core.RT.Log;
using Aitex.Core.RT.OperationCenter;
using Aitex.Core.RT.SCCore;
using System;
using System.Collections.Generic;
using System.Linq;
@ -15,13 +16,18 @@ namespace Aitex.Core.RT.Device.PmDevices
{
public class IoN2HighDoping : BaseDevice, IDevice
{
private IValve _valve1;
//private IValve _valve1;
private IValve _valve2;
private IValve _valve3;
private IValve _valve4;
//private IValve _valve4;
//private IValve _valve5;
public IoN2HighDoping(string module, XmlElement node, string ioModule = "")
/// <summary>
/// MFC是否安装
/// </summary>
private bool IsInstalled;
public IoN2HighDoping(string module, XmlElement node, string ioModule = "") : base(module, node, ioModule)
{
var attrModule = node.GetAttribute("module");
base.Module = string.IsNullOrEmpty(attrModule) ? module : attrModule;
@ -29,17 +35,20 @@ namespace Aitex.Core.RT.Device.PmDevices
base.Display = node.GetAttribute("display");
base.DeviceID = node.GetAttribute("schematicId");
_valve1 = DEVICE.GetDevice($"{Module}.{node.GetAttribute("valve1")}") as IValve;
//_valve1 = DEVICE.GetDevice($"{Module}.{node.GetAttribute("valve1")}") as IValve;
_valve2 = DEVICE.GetDevice($"{Module}.{node.GetAttribute("valve2")}") as IValve;
_valve3 = DEVICE.GetDevice($"{Module}.{node.GetAttribute("valve3")}") as IValve;
_valve4 = DEVICE.GetDevice($"{Module}.{node.GetAttribute("valve4")}") as IValve;
//_valve4 = DEVICE.GetDevice($"{Module}.{node.GetAttribute("valve4")}") as IValve;
//_valve5 = DEVICE.GetDevice($"{Module}.{node.GetAttribute("valve5")}") as IValve;
System.Diagnostics.Debug.Assert(_valve1 != null, $"Valve setting not valid");
//System.Diagnostics.Debug.Assert(_valve1 != null, $"Valve setting not valid");
System.Diagnostics.Debug.Assert(_valve2 != null, $"Valve setting not valid");
System.Diagnostics.Debug.Assert(_valve3 != null, $"Valve setting not valid");
System.Diagnostics.Debug.Assert(_valve4 != null, $"Valve setting not valid");
//System.Diagnostics.Debug.Assert(_valve4 != null, $"Valve setting not valid");
//System.Diagnostics.Debug.Assert(_valve5 != null, $"Valve setting not valid");
IsInstalled = SC.SafeGetValue(ScBasePath, false);
SC.RegisterValueChangedCallback(ScBasePath, obj => IsInstalled=(bool)obj);
}
public bool Initialize()
@ -51,6 +60,10 @@ namespace Aitex.Core.RT.Device.PmDevices
private bool SetValve(out string reason, int time, object[] param)
{
reason = "";
if (!IsInstalled)
return true;
return SetValve(out reason, param[0].ToString());
}
@ -59,47 +72,59 @@ namespace Aitex.Core.RT.Device.PmDevices
reason = string.Empty;
FlowMode mode = (FlowMode)Enum.Parse(typeof(FlowMode), flowMode, true);
//switch (mode)
//{
// case FlowMode.Purge:
// if (!_valve1.TurnValve(false, out reason))
// return false;
// if (!_valve2.TurnValve(true, out reason))
// return false;
// if (!_valve3.TurnValve(false, out reason))
// return false;
// if (!_valve4.TurnValve(true, out reason))
// return false;
// //if (!_valve5.TurnValve(true, out reason))
// // return false;
// break;
// case FlowMode.Vent:
// if (!_valve1.TurnValve(true, out reason))
// return false;
// if (!_valve2.TurnValve(false, out reason))
// return false;
// if (!_valve3.TurnValve(false, out reason))
// return false;
// if (!_valve4.TurnValve(true, out reason))
// return false;
// //if (!_valve5.TurnValve(true, out reason))
// // return false;
// break;
// case FlowMode.Run:
// if (!_valve1.TurnValve(true, out reason))
// return false;
// if (!_valve2.TurnValve(false, out reason))
// return false;
// if (!_valve3.TurnValve(true, out reason))
// return false;
// if (!_valve4.TurnValve(false, out reason))
// return false;
// //if (!_valve5.TurnValve(false, out reason))
// // return false;
// break;
// default:
// break;
//}
switch (mode)
{
case FlowMode.Purge:
//if (!_valve1.TurnValve(true, out reason))
// return false;
if (!_valve2.TurnValve(false, out reason))
return false;
if (!_valve3.TurnValve(true, out reason))
return false;
//if (!_valve4.TurnValve(true, out reason))
// return false;
//if (!_valve5.TurnValve(true, out reason))
// return false;
break;
case FlowMode.Vent:
//if (!_valve1.TurnValve(true, out reason))
// return false;
if (!_valve2.TurnValve(false, out reason))
return false;
if (!_valve3.TurnValve(true, out reason))
return false;
//if (!_valve4.TurnValve(true, out reason))
// return false;
//if (!_valve5.TurnValve(true, out reason))
// return false;
break;
case FlowMode.Run:
//if (!_valve1.TurnValve(true, out reason))
// return false;
if (!_valve2.TurnValve(true, out reason))
return false;
if (!_valve3.TurnValve(false, out reason))
return false;
//if (!_valve4.TurnValve(false, out reason))
// return false;
//if (!_valve5.TurnValve(false, out reason))
// return false;
break;
case FlowMode.Close:
//if (!_valve1.TurnValve(false, out reason))
// return false;
if (!_valve2.TurnValve(false, out reason))
return false;
if (!_valve3.TurnValve(true, out reason))
return false;
//if (!_valve4.TurnValve(false, out reason))
// return false;
//if (!_valve5.TurnValve(false, out reason))
// return false;
break;
default:
break;
}
return true;
}