using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Serialization; namespace Aitex.Core.RT.IOCore { [Serializable] public class DI_ITEM { [XmlAttribute] public int Index; [XmlAttribute] public bool Expected; [XmlAttribute] public string Name = " "; [XmlAttribute] public bool NeedLatch; //是否需要信号锁定处理(是否需要手动清除) [XmlAttribute] public bool LatchWhen; //当处于什么信号时进行锁存(报警状态) [XmlAttribute] public bool NeedNoiseFilter; //是否需要滤波处理 [XmlAttribute] public bool IsSoftwareDI; //是否为软件DI [XmlAttribute] public int FilterTime_Ms; //滤波时间(单位:ms) [XmlAttribute] public string Addr; //物理地址 public void Subscribe() { } [XmlAttribute] public string Description = ""; } /// /// 数字量输出节点定义 /// [Serializable] public class DO_ITEM { [XmlAttribute] public int Index; [XmlAttribute] public string Addr; //物理地址 [XmlAttribute] public string Name = " "; [XmlAttribute] public int Safe_Feedback_Index; public void Subscribe() { } [XmlAttribute] public string Description = ""; } /// /// 模拟量输出节点定义 /// [Serializable] public class AO_ITEM { [XmlAttribute] public int Index; [XmlAttribute] public string Name = " "; [XmlAttribute] public string Addr; //物理地址 public void Subscribe() { if (!string.IsNullOrEmpty(Name)) { //var pmName = string.Format("PM{0}", Convert.ToChar(Reactor.ChamId - ChamberSet.ReactorA + 'A')); //DataRecorder.SubscribeData(string.Format("{0}.AOs.{1}", "PM", Name), string.Empty, () => IOManager.GetAO(Index)); } } [XmlAttribute] public string Description = ""; } /// /// 数字量输入节点定义 /// [Serializable] public class AI_ITEM { [XmlAttribute] public int Index; [XmlAttribute] public string Name = " "; public void Subscribe() { if (!string.IsNullOrEmpty(Name)) { //var pmName = string.Format("PM{0}", Convert.ToChar(Reactor.ChamId - ChamberSet.ReactorA + 'A')); //DataRecorder.SubscribeData(string.Format("{0}.AIs.{1}", "PM", Name), string.Empty, () => IOManager.GetAI(Index)); } } [XmlAttribute] public string Addr; //物理地址 [XmlAttribute] public string Description = ""; } /// /// IO数据表 /// [Serializable] public class IO_DEFINE { public IO_DEFINE() { Dig_In = new DI_ITEM[1000]; Dig_Out = new DO_ITEM[1000]; Ana_In = new AI_ITEM[1000]; Ana_Out = new AO_ITEM[1000]; for (int i = 0; i < 1000; i++) { Dig_In[i] = new DI_ITEM() { Index = i }; Dig_Out[i] = new DO_ITEM() { Index = i }; Ana_In[i] = new AI_ITEM() { Index = i }; Ana_Out[i] = new AO_ITEM() { Index = i }; } } public DI_ITEM[] Dig_In; public DO_ITEM[] Dig_Out; public AI_ITEM[] Ana_In; public AO_ITEM[] Ana_Out; } /// /// C#与PLC Shutter之间进行数据交换的结构体定义 /// /// }