EVENT.H
上传用户:shtiemo
上传日期:2017-12-29
资源大小:163k
文件大小:22k
开发平台:

Visual C++

  1. //---------------------------- iES500 事项处理头文件 ------------------------------
  2. //
  3. // 文件名: EVENT.H
  4. //
  5. // 编  程: 杨志强 
  6. //
  7. // 日  期: 1995.10
  8. //
  9. //--------------------------------------------------------------------------------
  10. //----------------------------- 常用常数及符号定义 --------------------------------
  11. #ifndef __EVENT_H__
  12. #define __EVENT_H__
  13. // 常数和符号定义:
  14. #define SMALLINT USHORT  
  15. #define IDTYPE   USHORT
  16. #define YCTYPE float
  17. #define REAL float
  18. #define KWHTYPE double
  19. #define TINYINT     BYTE
  20. #define PKWHTYPE KWHTYPE*
  21. #define CZWPEVENT "CZWP" // 操作等待存盘处理事件名
  22. //--------------------------- 参数事项类数据结构定义 ------------------------------
  23. // 事项类型枚举
  24. enum CSETYPE{
  25. KGEvent, // 开关事项
  26. DZEvent, // 刀闸事项
  27. BHEvent, // 传统保护事项
  28. YCEvent, // 遥测类数据
  29. ZBEvent, // 周波类
  30. TDEvent, // 通道类
  31. XNStateEvent, // 虚拟状态类事项
  32. BYQEvent, // 变压器事项
  33. WJBHEvent, // 微机保护(综合自动化)事项
  34. JHOLEvent, // 遥测超计划值事项
  35. RRDEvent // 遥传数据自动替代置入数据事项
  36. };
  37. // 事项中参数类型名枚举
  38. enum CSNAMETYPE{
  39. YG, // "有功"或"P"
  40. WG, // "无功"或"Q"
  41. DL, // "电流"或"I"
  42. DY, // "电压或"V"
  43. SG, // "事故"
  44. KG, // "开关"
  45. DZ, // "刀闸"
  46. ZB, // "周波"
  47. TD, // "通道"
  48. BH, // "保护"
  49. XN, // "虚拟量"
  50. XNZT, // "虚拟状态"
  51. WJBH, // "微机保护"
  52. BYQFJT, // "变压器分接头"
  53. AXDY, // "A相电压"
  54. BXDY, // "B相电压"
  55. CXDY, // "C相电压"
  56. XXDY, // "线电压"
  57. OXDY // "零序电压"
  58. };
  59. // 遥测越限类型枚举
  60. enum OLTYPE{
  61. UPL, // 越上限
  62. DNL, // 越下限
  63. RUPL, // 越上限恢复
  64. RDNL, // 越下限恢复
  65. CRL,  // 越变化率限
  66. UPLOT, // 越上限超时
  67. DNLOT, // 越下限超时
  68. // 非法值(超有效上限)
  69. INVALIDVAL, // 非法值(超有效上限)
  70. KHUPL,                  //越考核上限1998.5.8zyq
  71. KHDNL,                  //越考核下限 
  72. RKHUPL,                 //越考核上限恢复
  73. RKHDNL,                 //越考核下限恢复
  74. MXRUN,                  //母线投入运行
  75. MXSTOP                  //母线退出运行
  76. };
  77. // 周波越限类型枚举
  78. enum CYCOLTYPE{
  79. UPL05, // 越 0.5 上限(事故周波)
  80. DNL05, // 越 0.5 下限(事故周波)
  81. RUPL05, // 越 0.5 上限恢复(事故周波) 
  82. RDNL05, // 越 0.5 下限恢复(事故周波)
  83. UPL03, // 越 0.3 上限(或不用)
  84. DNL03, // 越 0.3 下限(或不用)
  85. RUPL03, // 越 0.3 上限恢复(或不用) 
  86. RDNL03, // 越 0.3 下限恢复(或不用)
  87. UPL02, // 越 0.2 上限(或越设置的上限)
  88. DNL02, // 越 0.2 下限(或越设置的下限)
  89. RUPL02, // 越 0.2 上限恢复(或设置的上限恢复) 
  90. RDNL02, // 越 0.2 下限恢复(或设置的下限恢复)
  91. UPOVERTIMEL02, //越0.2上限超时
  92. DNOVERTIMEL02, //越0.2下限超时
  93. RUPOVERTIMEL02, //越0.2上限超时恢复
  94. RDNOVERTIMEL02, //越0.2上限超时恢复
  95. UPL01, // 越 0.1 上限(或越设置的上限)
  96. DNL01, // 越 0.1 下限(或越设置的下限)
  97. RUPL01, // 越 0.1 上限恢复(或设置的上限恢复) 
  98. RDNL01, // 越 0.1 下限恢复(或设置的下限恢复)
  99. UPOVERTIMEL01, //越0.1上限超时
  100. DNOVERTIMEL01, //越0.1下限超时
  101. RUPOVERTIMEL01, //越0.1上限超时恢复
  102. RDNOVERTIMEL01, //越0.1上限超时恢复
  103. UPL0, // 向上越 0 
  104. DNL0, // 向下越 0 
  105. RUPL0, // 向上越 0恢复 
  106. RDNL0, // 向下越 0恢复
  107. UPOVERTIMEL0, //向上越0超时
  108. DNOVERTIMEL0, //向下越0超时
  109. RUPOVERTIMEL0, //向上越0超时恢复
  110. RDNOVERTIMEL0 //向下越0超时恢复
  111. };
  112. // 通道事项类型枚举
  113. enum TDETYPE{
  114. WM, // 误码超限
  115. RWM, // 误码超限恢复
  116. FSERR, // 发送故障
  117. RFSERR, // 发送故障恢复
  118. NODATA, // 无数据
  119. RNODATA, // 无数据恢复
  120. NOZB, // 无载波信号
  121. RNOZB, // 无载波信号恢复
  122. FOFSHI, // 频偏高
  123. RFOFSHI, // 频偏高恢复
  124. OSW, // 仅收到同步字符
  125. ROSW, // 仅收同步字故障恢复
  126. NOSYN, // 同步失败
  127. RNOSYN, // 同步故障恢复
  128. WSHERR, // 外设故障
  129. RWSERR, // 外设故障恢复
  130. CHXCHG, // 通道自动切换事项
  131. ZF_ERR, // 下行故障
  132. RZF_ERR, // 下行故障恢复
  133. CHISOK, // 通道处于正常状态
  134. CHMANCHG // 通道人工切换事项 LGCH 99.2.23
  135. };
  136. // 超计划限类型枚举
  137. enum OJHTYPE{
  138. OVERJH, // 超计划
  139. OVERUP, // 超上计划
  140. OVERDN, // 低于下计划
  141. OJHR, // 超计划恢复
  142. OUPR, // 超上计划恢复
  143. ODNR, // 低于下计划恢复
  144. OVERJHP, // 超计划百分比
  145. OVERUPP, // 超上计划百分比
  146. OVERDNP, // 低于下计划百分比
  147. OJHRP, // 超计划百分比恢复
  148. OUPRP, // 超上计划百分比恢复
  149. ODNRP // 低于下计划百分比恢复
  150. };
  151. // 事项中时间结构
  152. typedef struct _ETIME{
  153. BYTE Month; // 月
  154. BYTE Day; // 日
  155. BYTE Hour; // 时
  156. BYTE Minute; // 分
  157. BYTE Second; // 秒    
  158. USHORT MSecond; // 毫秒(SOE 类有,其他没有)
  159. }ETIME,*PETIME;
  160. // 开关事项数据
  161. typedef struct _KGEDATA{
  162. BYTE KGOldSt:2, // 开关状态原状态(SOE 用于放状态位,0:低位,1:高位)
  163. KGNewSt:2, // 开关状态现状态(SOE 为位状态)
  164. YXCMode:1, // 遥信连接方式 0单输入;1双输入
  165. SGJFlag:1, // 有事故判断  (SOE 不用为0)
  166. PFlag:1; // 是否有有功值(SOE 不用为0)
  167.     TINYINT JudgeRes; // 变位判断结果(跳闸时使用)
  168. YCTYPE P; // 对应有功当前值(SOE 不使用)
  169. KWHTYPE DD; // 合闸时使用,存放参考损失电量(SOE 不使用)
  170. }KGEDATA,PKGEDATA;
  171. // 刀闸事项数据
  172. typedef struct _DZEDATA{
  173. BYTE DZState:1; // 刀闸当前状态
  174. }DZEDATA,*PDZEDATA;
  175. // 保护事项数据
  176. typedef struct _BHEDATA{
  177. USHORT BHLXId; // 保护动作类型
  178. USHORT DYBJId; // 对应部件ID
  179. BYTE DYBJType; // 对应部件类型
  180. BYTE BHState:1; // 保护当前状态
  181.     TINYINT JudgeRes; // 变位判断结果 ZZW 1997.12.08
  182. }BHEDATA,*PBHEDATA;
  183. // 遥测类事项数据
  184. typedef struct _YCEDATA{
  185. YCTYPE Value; // 越限值(或投退原值)
  186. OLTYPE OLType; // 越限类型
  187. }YCEDATA,*PYCEDATA;
  188. // 周波类数据
  189. typedef struct _ZBEDATA{
  190. YCTYPE Value; // 越限值
  191. YCTYPE ZJPVal; // 全网有功值
  192. CYCOLTYPE OLType; // 越限类型
  193. }ZBEDATA,*PZBEDATA;
  194. // 通道类数据
  195. typedef struct _TDEDATA{
  196. TDETYPE TDEventType;// 通道事项类型
  197. USHORT RTUNo; // RTU 号
  198. BYTE byCOM_SER_No;// 所属通信服务器编号
  199. BYTE byChannel1; // 通道1(自动切换时表示原通道号, 其它情况下表示事项发生的通道号)
  200. BYTE byChannel2; // 通道2(自动切换事项使用, 表示切换到的通道号)
  201. BYTE byChXType; // 通道切换类型(0:硬切换,1:软切换)
  202. BYTE byChXReason;// 通道切换原因
  203. WORD wPinLu; // 载波频率
  204. WORD wDianYa; // 载波电压
  205. }TDEDATA,*PTDEDATA;
  206. // 虚拟状态量类数据
  207. typedef struct _XNSDATA{
  208. BYTE State:1; // 当前状态
  209. TINYINT XNType; // 虚拟量类型
  210. TINYINT DYBJType; // 对应部件类型
  211. SMALLINT DYBJId; // 对应部件 ID
  212. }XNSDATA,*PXNSDATA;
  213. // 变压器类数据
  214. typedef struct _BYQDATA{
  215. enum { // 变化方式枚举
  216. DanWeiZhi, // 单位置变化
  217. ShuZi // 数字变化
  218. };
  219. USHORT ChMode; // 变化方式
  220. USHORT PosVal; // 位置值(仅单位置变化用)
  221. UINT OldVal; // 原值
  222. UINT NewVal; // 新值
  223. }BYQDATA,*PBYQDATA;
  224. // 微机保护事项
  225. typedef struct _WBHDATA{
  226. BYTE byBHSOEType;// 类型(0:保护事件 1:保护自诊断 2:保护复归成功/失败) ZZW 1998.01.09
  227. BYTE byGiuHao; // 柜号
  228. BYTE byBHHao; // 保护编号
  229. USHORT nSGTZNum; // 事故跳闸次数
  230. USHORT nSGType; // 事故类型
  231. USHORT nDZType; // 动作类型
  232. USHORT nCLType; // 测量类型
  233. WORD wCSValue; // 参数
  234. USHORT nRTU; // RTU ID
  235. }WBHDATA,*PWBHDATA;
  236. // 计划值超限事项数据
  237. typedef struct _JHVDATA{
  238. YCTYPE Value; // 当前值
  239. YCTYPE JHVal; // 计划值
  240. YCTYPE JHValP; // 计划值百分比(仅百分比越限使用)
  241. OJHTYPE OJHType; // 超计划类型
  242. }JHVDATA,*PJHVDATA;
  243. // 遥传数据自动替代置入数据事项
  244. typedef struct _RRDATA{
  245. union{
  246. BYTE byOldState; // 原状态数据
  247. YCTYPE ycOldData; // 原遥测数据
  248. };
  249. union{
  250. BYTE byNewState; // 新状态数据
  251. YCTYPE ycNewData; // 新遥测数据
  252. };
  253. }RRDATA,*PRRDATA;
  254. // LGCH 99.6.26 Begin
  255. // 为保证统一性,CSEVENTDATA定义移到EVENT.H 为保证兼容性,_CSEVENT中保持原有定义
  256. // 扩大CSEVENTDATA空间相应修改LSTABSTR.H中参数事项内容空间定义
  257. //参数事项数据
  258. union CSEVENTDATA{
  259. char NoUse[32]; // 参数事项最大空间
  260. KGEDATA KGData; // 开关事项数据
  261. DZEDATA DZData; // 刀闸事项数据
  262. BHEDATA BHData; // 保护事项数据
  263.   YCEDATA YCData; // 遥测类事项数据
  264. ZBEDATA ZBData; // 周波类数据
  265. TDEDATA TDData; // 通道类数据
  266. XNSDATA XNStData; // 虚拟状态类数据
  267. BYQDATA BYQData; // 变压器类数据
  268. JHVDATA JHVData; // 计划值超限
  269. WBHDATA WBHData; // 微机保护事项
  270. RRDATA RRData; // 遥传数据自动替代置入数据事项
  271. };
  272. // 参数事项记录结构
  273. typedef struct _CSEVENT{
  274. CSETYPE EventType; // 事项类型
  275. DATAADDRESS BJId; // 部件 ID
  276. ETIME EventTime; // 发生时间
  277. SMALLINT ChangZhan; // 厂站号
  278.   BYTE DianYaDengJiID; // 电压过滤 hgz 2000.3.28
  279. CHAR CZMing[16]; // 厂站名
  280. CHAR BJMing[8]; // 部件编号名
  281. CHAR MingZi[32]; // 部件名字 99.10.26
  282. CSNAMETYPE CSType; // 参数类型
  283. CHAR CSTypeName[10]; // 参数类型名
  284. BYTE CPFlag:1, // 存入历史库
  285. SAlarm:1, // 声光报警
  286. PrntFlag:1, // 即时打印
  287. ScrFlag:1, // 自动推图
  288. SOEFlag:1; // 由RTU 传送的 SOE 形成
  289. SMALLINT EventCount; // 发送参数事项记数 99.11.11
  290. union{
  291. char NoUse[32]; // 参数事项最大空间 //1999.6.26
  292. KGEDATA KGData; // 开关事项数据
  293. DZEDATA DZData; // 刀闸事项数据
  294. BHEDATA BHData; // 保护事项数据
  295.   YCEDATA YCData; // 遥测类事项数据
  296. ZBEDATA ZBData; // 周波类数据
  297. TDEDATA TDData; // 通道类数据
  298. XNSDATA XNStData;//虚拟状态类数据
  299. BYQDATA BYQData;// 变压器类数据
  300. JHVDATA JHVData;// 计划值超限
  301. WBHDATA WBHData;// 微机保护事项
  302. RRDATA RRData; // 遥传数据自动替代置入数据事项
  303. };
  304. }CSEVENT,*PCSEVENT;
  305. // LGCH 99.6.26 End
  306. //--------------------------- 操作类事项数据结构定义 ------------------------------
  307. // 操作事项类型枚举
  308. enum CZETYPE{
  309. YK, // 遥控操作类
  310. YD, // 遥调操作类
  311. SHJ, // 升降操作类
  312. SETDATA, // 设置数据类
  313. PMCZ, // 手动旁母替代操作
  314. YCREP, // 遥测数据替代操作
  315. TDCZ, // 通道操作类
  316. MSHJ, // 修改描述数据库
  317. MBH, // 修改保护信息
  318. JJB, // 交接班记录
  319. KGDWCZ, // 开关对位操作
  320. JXCZ, // 设置检修操作
  321. YDCZ, // 设置远动操作
  322. };
  323. // 操作者类型定义:
  324. enum RYTYPE{
  325. SYSADM, // 系统管理员
  326. SYSAUTO, // 系统自动
  327. DIAODU, // 调度人员
  328. YUANDONG, // 远动人员
  329. JIKONG, // 集控人员
  330. BAOHUBAN, // 保护人员
  331. TONGXIN, // 通信人员
  332. NORMAL, // 一般人员
  333. };
  334. // 操作者结构定义
  335. typedef struct _CZRY{
  336. RYTYPE OpType; // 操作者类型
  337. TINYINT OpId; // 操作者编号(Id)
  338. CHAR OpName[16]; // 操作者名字
  339. CHAR OpMacName[16]; // 操作者所在机器名 LGCH 2000.8.2
  340. }CZRY,*PCZRY;
  341. // 遥控命令类事项类型定义:
  342. enum YKEVENTCOM{
  343. YKC, // 0.下达遥控(选择)命令
  344. YKEXE, // 1.下达遥控执行命令
  345. YKDEL, // 2.下达遥控撤销命令
  346. YKFJC, // 3.收到遥控返校正确信息
  347. YKFJE, // 4.收到遥控返校错误信息
  348. YKFJOBJE, // 5.遥控返校对象错误
  349. YKOBJE, // 6.遥控对象错误
  350. YKOTIME, // 7.遥控返校超时
  351. YKEXEOTIME, // 8.下达遥控执行命令超时
  352. YKSUCCESS, // 9.遥控成功
  353. YKFAIL,
  354. // zzw 1998.02.26
  355. TQYKEXE, // 10.下达同期遥控执行命令
  356. TQYKSUCCESS, // 11.同期遥控成功
  357. TQYKEXEOTIME, // 12.同期遥控执行命令超时
  358. TQYKEXEERR, // 13.同期遥控执行错误
  359. TQYKEXEDEL // 14.同期遥控执行撤消
  360. // end
  361. };
  362. // 遥控对象结构定义:
  363. typedef struct  _YKOBJECT{
  364. YKEVENTCOM YKEventType;// 遥控命令类型
  365. SMALLINT StationId; // 站号ID
  366. CHAR CZMing[16]; // 厂站名 99.10.26
  367. CHAR BJName[8]; // 部件编号名
  368. CHAR MingZi[32]; // 部件名字
  369. BYTE bySBit; // 双点遥控标志
  370. BYTE byDZState; // 动作状态: 0: 由合到分; 1:由分到合
  371. int eFJInf; // 返校错误时信息码(见YKFXCODE)
  372. SHORT nTQDataV[7];// 频率0、频率1、电压0、电压1、相位差、频率差、电压差
  373. }YKOBJECT,*PYKOBJECT;
  374. // 遥调(设点)对象结构定义
  375. typedef struct _YTOBJECT{
  376. DATAADDRESS BJId; // 部件 ID
  377. SMALLINT StationId; // 站号ID
  378. CHAR CZMing[16]; // 厂站名 99.10.26
  379. CHAR BJName[8]; // 部件编号名
  380. CHAR MingZi[32]; // 部件名字
  381. YCTYPE PresentValue;// 当前值
  382. YCTYPE SetValue; // 设置值
  383. }YTOBJECT,*PYTOBJECT;
  384. // 升降命令类事项类型定义:
  385. enum SJEVENTCOM{
  386. SJC, // 下达升降(选择)命令
  387. SJEXE, // 下达升降执行命令
  388. SJDEL, // 下达升降撤销命令
  389. SJFJC, // 收到升降返校正确信息
  390. SJFJE, // 收到升降返校错误信息
  391. SJFJOBJE, // 升降返校对象错误
  392. SJOBJE, // 升降对象错误
  393. SJOTIME, // 升降返校超时
  394. SJEXEOTIME, // 下达升降执行命令超时
  395. SJSUCCESS, // 升降完成
  396. SJFAIL,
  397. };
  398. // 升降对象结构定义:
  399. typedef struct  _SJOBJECT{
  400. SJEVENTCOM SJEventType;// 升降命令类型
  401. SMALLINT StationId; // 站号ID
  402. CHAR CZMing[16]; // 厂站名 99.10.26
  403. CHAR BJName[8]; // 部件编号名
  404. CHAR MingZi[32]; // 部件名字
  405. BYTE byDZState; // 动作状态: 0: 降一档; 1:升一档
  406. //  2: 急停(V2.0)
  407. USHORT nOldVal; // 原档位值
  408. }SJOBJECT,*PSJOBJECT;
  409. // 人工设置数据命令类型
  410. enum SETDATATYPE{
  411. SETYC, // 设置遥测类型
  412. SETYXS, // 设置遥信类型
  413. SETDD, // 设置电度类型
  414. DELSETYC, // 解除设置遥测类型
  415. DELSETYXS, // 解除设置遥信类型
  416. SETYXJDS, // 设置接地
  417. DELSETYXJDS // 解除设置接地
  418. };
  419. // 人工设置数据对象结构定义
  420. typedef struct _SDOBJECT{
  421. CHAR BJName[8]; // 部件编号名
  422. CHAR MingZi[32]; // 部件名字 99.10.26
  423. SETDATATYPE SDType; // 数据类型
  424.     SMALLINT StationId; // 站号ID
  425. CHAR CZMing[16]; // 厂站名
  426. union { // 设置值联合
  427. YCTYPE SYCVal;
  428. KWHTYPE SKWHVal;
  429. BYTE SYXVal;
  430. };
  431. }SDOBJECT,*PSDOBJECT;
  432. //投退命令结构
  433. enum YDCZTYPE {
  434. YXTOUTUICOMMAND, //遥信投退状态
  435. YCTOUTUICOMMAND, //遥测投退状态
  436. YXBAOJINGTOUTUICOMMAND, //遥信报警允许/禁止
  437. YCBAOJINGTOUTUICOMMAND, //遥测报警允许/禁止
  438. YXYKCONTROLCOMMAND //遥控允许/禁止
  439. };
  440. //某点投退状态结构
  441. typedef struct _POINTTOUTUISTATE
  442. {
  443. YDCZTYPE nType; // 命令类型
  444. WORD wBJID; // 部件ID号
  445. BYTE byBJType; // 部件类型
  446. BYTE byBJParam; // 部件参数
  447. BYTE byStation; // 厂站号
  448. BOOL TouTuiState; // 投退状态
  449. }POINTTOUTUISTATE, *PPOINTTOUTUISTATE;
  450. // 远动操作对象
  451. typedef struct _YDCZOBJ{
  452. YDCZTYPE YDCZType; // 远动操作类型
  453. BOOL bCZState; // 操作状态(0:投 1:退)
  454. SMALLINT StationId; // 站号ID
  455. CHAR CZMing[16]; // 厂站名 99.10.26
  456. CHAR BJName[8]; // 部件编号名
  457. CHAR MingZi[32]; // 部件名字
  458. }YDCZOBJ, *PYDCZOBJ;
  459. // 旁母替代对象结构定义
  460. typedef struct _PMOBJECT{
  461. DATAADDRESS SBJId; // 源部件 ID(替代者)
  462. DATAADDRESS DBJId; // 目标部件 ID(被替代者)
  463. CHAR SBJName[8]; // 源部件编号名
  464. CHAR SMingZi[32];// 部件名字 99.10.26
  465. CHAR DBJName[8]; // 目的部件编号名
  466. CHAR DMingZi[32];// 部件名字
  467. SMALLINT SStationId; // 源站号ID
  468. CHAR SCZMing[16];// 源厂站名
  469. SMALLINT DStationId; // 目的站号ID
  470. CHAR DCZMing[16];// 目的厂站名
  471. BYTE OperType:1; // 替代性质:0.设置替代 1.解除 
  472. }PMOBJECT,*PPMOBJECT;
  473. // 通道对象类型定义
  474. enum TDOBJTYPE{
  475. FS, // 封锁 RTU
  476. JCFS, // 解除封锁
  477. MBQH, // 主通道切换到备用通道
  478. BMQH // 备通道切换到主通道
  479. };
  480. // 通道对象结构定义
  481. typedef struct _TDOBJECT{
  482. TDOBJTYPE TDObjType; // 通道对象类型
  483. USHORT nRTUNo; // RTU 号
  484. SMALLINT StId; // RTU 所属站号
  485. CHAR strCZName[16];// 厂站名
  486. BYTE byCOM_SER_No;// 服务器编号
  487. BYTE byMTDNo; // 主通道号
  488. BYTE byBTDNo; // 备通道号
  489. }TDOBJECT,*PTDOBJECT;
  490. // 库修改对象
  491. typedef struct _KMOBJECT{
  492. CHAR ListName[16];// 修改库的表名
  493. }KMOBJECT,*PKMOBJECT;
  494. // 保护修改类型
  495. enum BHMODTYPE{
  496. MODVAL, // 修改定值
  497. CALLVAL, // 招呼远方定值设置
  498. SENDVAL // 发送定值
  499. };
  500. // 修改保护参数对象
  501. typedef struct _BHOBJECT{
  502. BHMODTYPE ModifyType; // 修改类型
  503. SMALLINT BHId; // 保护对象的 ID
  504. SMALLINT StaId; // 厂站 ID
  505. SMALLINT BHTypeId; // 保护类型 ID
  506. TINYINT DZHNo; // 定值序号
  507. REAL MVal; // 修改定值
  508. }BHOBJECT,*PBHOBJECT;
  509. // 交接班对象
  510. typedef struct _JJBOBJECT{
  511. CZRY NewOp; // 新接班人员
  512. }JJBOBJECT,*PJJBOBJECT;
  513. // 对位类型枚举
  514. enum DWTYPE{
  515.   IDDW, // 指定开关 ID 对位
  516. CZDW, // 指定厂站的所有开关对位
  517. SYSDW, // 系统所有开关对位
  518.   DZIDDW, // 指定刀闸 ID 对位
  519. DZCZDW, // 指定厂站的所有刀闸对位
  520. DZSYSDW, // 系统所有刀闸对位
  521.   BHIDDW, // 指定保护 ID 对位 2000.07.10 ZB +--->
  522. BHCZDW, // 指定厂站的所有保护对位
  523. BHSYSDW, // 系统所有保护对位 +<---
  524.   XNIDDW, // 指定虚拟状态量 ID 对位
  525. XNSYSDW // 所有虚拟状态量对位
  526. };
  527. // 开关对位操作数据
  528. typedef struct _KGDWOBJ{
  529. DWTYPE enType; // 命令类型
  530. USHORT nCZID; // 厂站 ID 号(仅按厂站对位命令使用)
  531. CHAR CZMing[16]; // 厂站名(仅按厂站对位命令使用) 99.10.26
  532. CHAR BJName[8]; // 部件编号名
  533. CHAR MingZi[32]; // 部件名字
  534. }KGDWOBJ,*PKGDWOBJ;
  535. // 设置检修类枚举 hgz 2000.4.4 挂牌入库
  536. enum SETJXTYPE{
  537. JXTYPE, // 检修
  538. LGXTYPE, // 临故修
  539. JCLTYPE, // 减出力
  540. JDTYPE, // 接地
  541. LBYTYPE, // 冷备用
  542. RBYTYPE, // 热备用
  543. LDTYPE, // 拉电
  544. };
  545. // 检修,临故修,减出力,接地,冷备用,热备用,拉电 hgz 2000.4.4 挂牌入库
  546. typedef struct _JDXOBJ{
  547. SETJXTYPE jxType; // 命令类型
  548. BYTE JDXValue; // 命令
  549.     SMALLINT StationId; // 站号ID
  550. CHAR CZMing[16]; // 厂站名 99.10.26
  551. CHAR BJName[8]; // 部件编号名
  552. CHAR MingZi[32]; // 部件名字
  553. }JDXOBJ, *PJDXOBJ;
  554. // LGCH 99.6.26 Begin
  555. // 为保证统一性,CZOBJECTDATA定义移到EVENT.H 为保证兼容性,_CZEVENT中保持原有定义
  556. // 扩大CZOBJECTDATA空间相应修改LSTABSTR.H中操作事项内容空间定义
  557. // 操作对象数据
  558. union CZOBJECTDATA{
  559. char NoUse[128]; // 操作事项最大空间 99.10.26
  560. YKOBJECT YKObj; // 遥控对象
  561. YTOBJECT YTObj; // 遥调对象
  562. SJOBJECT SJObj; // 升降对象
  563. SDOBJECT SDObj; // 人工设置数据对象
  564. PMOBJECT PMObj; // 旁母替代对象
  565. TDOBJECT TDObj; // 通道对象
  566. KMOBJECT KMObj; // 库修改对象
  567. BHOBJECT BHObj; // 修改保护参数对象
  568. JJBOBJECT JJObj; // 交接班对象
  569. KGDWOBJ KGDWObj; // 开关对位对象
  570. JDXOBJ JDXObj; // 检修,临故修,减出力,接地,冷备用,热备用,拉电对象
  571. YDCZOBJ YDCZObj; // 远动操作对象
  572. };
  573. // 运行操作类事项
  574. typedef struct _CZEVENT{
  575. CZETYPE EventType; // 事项类型
  576. CZRY Operator; // 操作者
  577. CZRY SlaveOperator; // 副操作者 LGCH 2000.3.28
  578. time_t EventTime; // 发生时间
  579. DATAADDRESS BJId; // 部件 ID
  580. SMALLINT EventCount; // 发送参数事项记数 99.11.11
  581. union{ // 操作对象
  582. char NoUse[128]; // 操作事项最大空间 99.10.26
  583. YKOBJECT YKObj; // 遥控对象
  584. YTOBJECT YTObj; // 遥调对象
  585. SJOBJECT SJObj; // 升降对象
  586. SDOBJECT SDObj; // 人工设置数据对象
  587. PMOBJECT PMObj; // 旁母替代对象
  588. TDOBJECT TDObj; // 通道对象
  589. KMOBJECT KMObj; // 库修改对象
  590. BHOBJECT BHObj; // 修改保护参数对象
  591. JJBOBJECT JJObj; // 交接班对象
  592. KGDWOBJ KGDWObj; // 开关对位对象
  593. JDXOBJ JDXObj; // 检修,临故修,减出力,接地,冷备用,热备用,拉电对象
  594. YDCZOBJ YDCZObj; // 远动操作对象
  595. };
  596. }CZEVENT,*PCZEVENT;
  597. // LGCH 99.6.26 End
  598. // 参数类事项表结构
  599. typedef struct _CSEVENTLST{
  600. BYTE SDisk:1, // 已存盘标志
  601. NSend:1; // 网络已发走(广播)
  602. CSEVENT AnEvent; // 一条事件
  603. }CSEVENTLST,*PCSEVENTLST;
  604. // 操作事项表结构
  605. typedef struct _CZEVENTLST{
  606. BYTE SDisk:1, // 已存盘标志
  607. NSend:1; // 网络已发走(广播)
  608. CZEVENT AnEvent; // 一条事件
  609. }CZEVENTLST,*PCZEVENTLST;
  610. // 读事项者定义:
  611. enum READER{
  612. SHISTORY, // 存历史数据
  613. NETSEND // 网络广播
  614. };
  615. //---------------------------- 遥信变位数据传输给 MMI 结构---------------------------
  616. typedef struct _YXCHDATA{
  617. DATAID sDataID; // 数据 ID 
  618. USHORT ChangZhanID; // 厂站 hgz 2000.1.10
  619. SMALLINT EventCount; // 发送参数事项记数 99.11.11
  620. union{
  621. RETYXV retKG; // 同开关返回的数据
  622. DBYXV retDB; // 同刀闸,保护,变压器分接头位置,虚拟状态量
  623. DWORD retBYQ; // 仅变压器双字访问使用
  624. BYTE retJDXStatus; // 检修状态
  625. RETJDV retJDXData; // 接地返回的数据
  626. };
  627. }YXCHDATA,*PYXCHDATA;
  628. // 遥信变位数据发送表结构
  629. typedef struct _YXCHLST{
  630. BYTE SDisk:1, // 已存盘标志
  631. NSend:1; // 网络已发走(广播)
  632. YXCHDATA AnEvent; // 一条事件
  633. }YXCHLST,*PYXCHLST;
  634. //------------------------------- 事项发送数据结构 ----------------------------------
  635. #pragma pack (push)
  636. #pragma pack (1)
  637. #define MAX_INF_BLOCK 3 // 一帧中的最大信息块个数
  638. #define EVENT_DATA_LEN 4096 // 缓冲区长度
  639. // 帧结构
  640. typedef struct _EVENT_SB_BUF{
  641. CHAR bySB_Reserve[16]; // SB 保留
  642. USHORT nDataTotalLength; // 数据总长度
  643. USHORT nInfBlockNum; // 信息块个数
  644. USHORT pInfPoint[MAX_INF_BLOCK]; // 各组信息块指针
  645. CHAR byBuffer[EVENT_DATA_LEN]; // 数据缓冲区
  646. }EVENT_SB_BUF, *PEVENT_SB_BUF;
  647.  // 通信数据结构
  648. typedef struct _EVENTBLOCK {
  649. CHAR byType; // 类型
  650. USHORT nDataLength; // 数据长度
  651. BYTE pData[1]; // 数据
  652. }EVENTBLOCK, *PEVENTBLOCK;
  653. // MMI 事项响应等命令的数据结构  <----(LiangCH,99.11.11)
  654. #define MMICMD_GETCSEVENT 10 // 获取参数事项
  655. #define MMICMD_GETCZEVENT 20 // 获取操作事项
  656. #define MMICMD_GETYXEVENT 30 // 获取遥信变位事项
  657. typedef struct tagSBHeadResv
  658. {
  659. CHAR SBRev[16]; // 网络保留字节
  660. WORD wCmdType; // 命令类型
  661. }SBHEADRESV, *PSBHEADRESV;
  662. typedef struct tagMMIGetEvent:public SBHEADRESV
  663. {
  664. USHORT nMMIID; // MMI 标识符
  665. SMALLINT numS; // 需获取的事项的起始编号
  666. SMALLINT numE; // 需获取的事项的终止编号
  667. }MMIGETEVENT, *PMMIGETEVENT;
  668. typedef struct tagADMBackCSEvent:public SBHEADRESV // ADM 回送参数事项
  669. {
  670. WORD wCount; // 返回的事项个数
  671. CSEVENT csEvts[1]; // 返回的事项的内容(数组形式)
  672. }ADMBACKCSEVENT, *PADMBACKCSEVENT;
  673. typedef struct tagADMBackCZEvent:public SBHEADRESV // ADM 回送操作事项
  674. {
  675. WORD wCount; // 返回的事项个数
  676. CZEVENT czEvts[1]; // 返回的事项的内容(数组形式)
  677. }ADMBACKCZEVENT, *PADMBACKCZEVENT;
  678. typedef struct tagADMBackYXEvent:public SBHEADRESV // ADM 回送遥信事项
  679. {
  680. WORD wCount; // 返回的事项个数
  681. YXCHDATA yxEvts[1]; // 返回的事项的内容(数组形式)
  682. }ADMBACKYXEVENT, *PADMBACKYXEVENT;
  683. // <----
  684. #pragma pack(pop)
  685. #endif