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之间进行数据交换的结构体定义
///
///
}