IODefine.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml.Serialization;
  6. namespace Aitex.Core.RT.IOCore
  7. {
  8. [Serializable]
  9. public class DI_ITEM
  10. {
  11. [XmlAttribute]
  12. public int Index;
  13. [XmlAttribute]
  14. public bool Expected;
  15. [XmlAttribute]
  16. public string Name = " ";
  17. [XmlAttribute]
  18. public bool NeedLatch; //是否需要信号锁定处理(是否需要手动清除)
  19. [XmlAttribute]
  20. public bool LatchWhen; //当处于什么信号时进行锁存(报警状态)
  21. [XmlAttribute]
  22. public bool NeedNoiseFilter; //是否需要滤波处理
  23. [XmlAttribute]
  24. public bool IsSoftwareDI; //是否为软件DI
  25. [XmlAttribute]
  26. public int FilterTime_Ms; //滤波时间(单位:ms)
  27. [XmlAttribute]
  28. public string Addr; //物理地址
  29. public void Subscribe()
  30. {
  31. }
  32. [XmlAttribute]
  33. public string Description = "";
  34. }
  35. /// <summary>
  36. /// 数字量输出节点定义
  37. /// </summary>
  38. [Serializable]
  39. public class DO_ITEM
  40. {
  41. [XmlAttribute]
  42. public int Index;
  43. [XmlAttribute]
  44. public string Addr; //物理地址
  45. [XmlAttribute]
  46. public string Name = " ";
  47. [XmlAttribute]
  48. public int Safe_Feedback_Index;
  49. public void Subscribe()
  50. {
  51. }
  52. [XmlAttribute]
  53. public string Description = "";
  54. }
  55. /// <summary>
  56. /// 模拟量输出节点定义
  57. /// </summary>
  58. [Serializable]
  59. public class AO_ITEM
  60. {
  61. [XmlAttribute]
  62. public int Index;
  63. [XmlAttribute]
  64. public string Name = " ";
  65. [XmlAttribute]
  66. public string Addr; //物理地址
  67. public void Subscribe()
  68. {
  69. if (!string.IsNullOrEmpty(Name))
  70. {
  71. //var pmName = string.Format("PM{0}", Convert.ToChar(Reactor.ChamId - ChamberSet.ReactorA + 'A'));
  72. //DataRecorder.SubscribeData(string.Format("{0}.AOs.{1}", "PM", Name), string.Empty, () => IOManager.GetAO(Index));
  73. }
  74. }
  75. [XmlAttribute]
  76. public string Description = "";
  77. }
  78. /// <summary>
  79. /// 数字量输入节点定义
  80. /// </summary>
  81. [Serializable]
  82. public class AI_ITEM
  83. {
  84. [XmlAttribute]
  85. public int Index;
  86. [XmlAttribute]
  87. public string Name = " ";
  88. public void Subscribe()
  89. {
  90. if (!string.IsNullOrEmpty(Name))
  91. {
  92. //var pmName = string.Format("PM{0}", Convert.ToChar(Reactor.ChamId - ChamberSet.ReactorA + 'A'));
  93. //DataRecorder.SubscribeData(string.Format("{0}.AIs.{1}", "PM", Name), string.Empty, () => IOManager.GetAI(Index));
  94. }
  95. }
  96. [XmlAttribute]
  97. public string Addr; //物理地址
  98. [XmlAttribute]
  99. public string Description = "";
  100. }
  101. /// <summary>
  102. /// IO数据表
  103. /// </summary>
  104. [Serializable]
  105. public class IO_DEFINE
  106. {
  107. public IO_DEFINE()
  108. {
  109. Dig_In = new DI_ITEM[1000];
  110. Dig_Out = new DO_ITEM[1000];
  111. Ana_In = new AI_ITEM[1000];
  112. Ana_Out = new AO_ITEM[1000];
  113. for (int i = 0; i < 1000; i++)
  114. {
  115. Dig_In[i] = new DI_ITEM() { Index = i };
  116. Dig_Out[i] = new DO_ITEM() { Index = i };
  117. Ana_In[i] = new AI_ITEM() { Index = i };
  118. Ana_Out[i] = new AO_ITEM() { Index = i };
  119. }
  120. }
  121. public DI_ITEM[] Dig_In;
  122. public DO_ITEM[] Dig_Out;
  123. public AI_ITEM[] Ana_In;
  124. public AO_ITEM[] Ana_Out;
  125. }
  126. /// <summary>
  127. /// C#与PLC Shutter之间进行数据交换的结构体定义
  128. /// </summary>
  129. ///
  130. }