run_status.h 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. /******************************************************************************
  2. 版权所有:
  3. 文件名称: dcfactor.h
  4. 文件版本: 01.01
  5. 创建作者: sunxi
  6. 创建日期: 2013-05-20
  7. 功能说明: 内部运行状态
  8. 其它说明:
  9. 修改记录:
  10. */
  11. #ifndef _RUN_STATUS_H
  12. #define _RUN_STATUS_H
  13. /*------------------------------- 头文件 --------------------------------------
  14. */
  15. /*------------------------------- 宏定义 --------------------------------------
  16. */
  17. // 遥控器4个按键
  18. enum
  19. {
  20. RMT_A,
  21. RMT_B,
  22. RMT_C,
  23. RMT_D,
  24. RMT_NUM,
  25. };
  26. // 遥控器4个按键对应的功能
  27. // 解锁3秒内,按分闸实现分闸;解锁3秒内,按合闸实现合闸;单按复归实现复归
  28. // 多键并存,按键无效
  29. enum
  30. {
  31. RMT_KEY_FZ, // 分闸
  32. RMT_KEY_ULK, // 解锁
  33. RMT_KEY_FG, // 复归
  34. RMT_KEY_HZ, // 合闸
  35. RMT_KEY_NUM,
  36. };
  37. // 遥控器相关命令
  38. enum
  39. {
  40. CMD_NILL,
  41. CMD_HZ, // 合闸命令
  42. CMD_FZ, // 分闸命令
  43. CMD_FG, // 复归命令
  44. CMD_PAIR, // 配对命令
  45. CMD_CLRPAIR, // 清除配对命令
  46. YK_CMD_NUM,
  47. };
  48. //动作类型
  49. enum
  50. {
  51. RY_DZ_NULL=0, //无动作
  52. RY_DZ_XYBS, //X/Y闭锁合闸
  53. RY_DZ_BHT, //保护跳
  54. RY_DZ_BHGJ, //保护告警
  55. RY_DZ_HZ, //FA合闸
  56. RY_DZ_NUM,
  57. };
  58. /*------------------------------ 类型结构 -------------------------------------
  59. */
  60. // 与内部状态开入状态结构体
  61. struct di_stu
  62. {
  63. u32 pub_di; // 公共开入
  64. u32 sw_di[SWITCH_NUM_MAX]; // 开关开入
  65. };
  66. // 内部状态结构体
  67. struct run_stu
  68. {
  69. u8 yf; // 远方
  70. u8 jd; //就地
  71. u8 fg; // 复归
  72. u8 js; // FA解锁按钮
  73. u8 fg_js; //复归+解锁
  74. u8 kz_out_tt; //控制出口
  75. u8 rmtjs; // 遥控解锁
  76. u8 button_on; // 复归按钮按下
  77. #ifdef FUNC_ONLY_MMD_JS
  78. bool b_mmdjs; // 液晶解锁
  79. #endif
  80. u32 dcjlsd; // 电池交流失电
  81. u32 dcjlsd_t; // 电池交流失电,带延时定时器
  82. u8 dcdygz; // 电池电源故障
  83. u8 dcqy; // 电池欠压
  84. u8 dchh; // 电池欠压
  85. #if defined BATTERY_WITH_COMM && defined FUNC_SEL_BAT_MODULE
  86. u8 dcgygj; // 电池过压告警
  87. u8 dclxgj; // 电池离线告警
  88. u8 dcfzgj; // 电池反接告警
  89. u8 dcbyjlsd; // 电池备用点交流失电
  90. u8 dcrlgz; // 电池容量故障
  91. #endif
  92. u8 pubdz; // 动作
  93. u8 rmt_A; // 遥控器A
  94. u8 rmt_B; // 遥控器B
  95. u8 rmt_C; // 遥控器C
  96. u8 rmt_D; // 遥控器D
  97. u8 pt1yy; // PT1有压
  98. u8 pt2yy; // PT2有压
  99. u8 pt1cyy; // PT1曾有压
  100. u8 pt2cyy; // PT2曾有压
  101. u8 bToolRmtTest;// 维护工具测试
  102. u8 bHmiRmtTest;// 维护工具测试
  103. u8 bhall; // 保护投退
  104. u8 bjx; // 装置检修额
  105. u8 mb_yuk; //面板预控
  106. u8 mb_hz; //面板分闸
  107. u8 mb_fz; //面板合闸
  108. u8 yxError; //遥信异常
  109. #ifdef YX_DI_ERROR
  110. u8 yxEnable; //遥信使能,自检
  111. #endif
  112. u32 cd;
  113. u8 led[CFG_UART_NUM_MAX*2+CFG_ETH_NUM_MAX];
  114. };
  115. // 内部状态结构体
  116. typedef struct run_stu_sw
  117. {
  118. u8 sw; // 开关位置
  119. u8 hw; // 开关合位
  120. u8 tw; // 开关分位
  121. u8 hw_change;
  122. u8 tw_change;
  123. u8 hzw;
  124. u8 tzw;
  125. u8 wcn; // 未储能
  126. u8 gld; // 隔离刀闸
  127. u8 jdd; // 接地刀闸
  128. u8 qyd_bs; // 气压低闭锁
  129. u8 qyd_gj; // 气压低告警
  130. u8 pt1uf; // PT1瞬压
  131. u8 pt2uf; // PT2瞬压
  132. u8 sw_sh; // 手合
  133. u8 sw_sf; // 手分
  134. u8 bhztt; // 保护总投退
  135. u8 jzs_tt; // 集中式投退
  136. u8 cgbhtt; // 常规保护投退
  137. u8 fatt; // fa功能跟投退
  138. u8 fa_g_tt; // 智能 fa功能跟投退
  139. u8 fa_ls; // 联络分段
  140. u8 chzyb; // 重合闸
  141. u8 fa_start_hz; // 对侧开关位置信号,对侧合位后,B侧有压才有效。用于启动fa来电合闸信号
  142. u8 kgyf;
  143. u8 gl; // 保护过流
  144. u8 jd; // 保护接地
  145. u8 chzdz; // 重合闸动作
  146. u8 chzcd; // 重合闸充电
  147. u8 fa_ll_cd; // 联络充电
  148. u8 goose_glcd;
  149. u8 goose_qccd;
  150. u8 goose_ll_cd;
  151. u8 gy; // 过压
  152. u8 gj_led;
  153. u8 dz; // 保护动作
  154. u8 bs; // 闭锁
  155. u8 fgbs; // 智能分布式闭锁
  156. u8 bsch;
  157. u8 XT;
  158. u8 YT;
  159. u8 lock;
  160. u8 exerr; // 外部异常
  161. u8 pt1yy; // PT1有压
  162. u8 pt2yy; // PT2有压
  163. u8 kzdx; // 控制回路断线 开入信号
  164. u8 chzbs;
  165. u8 bh_yx; // 常规保护遥信点
  166. u8 fa_yx; // fa功能遥信点
  167. u8 fa_g_yx; // 智能 fa功能遥信点
  168. u8 gldz; // 隔离刀闸
  169. u8 jddz; // 接地刀闸
  170. } RUN_STU_SW;
  171. struct rmt_oprate
  172. {
  173. u8 key;
  174. u8 cmd;
  175. u8 stu;
  176. u8 step[RMT_KEY_NUM];
  177. u8 key_en[RMT_KEY_NUM];
  178. TIMERELAY tTULK3STime; // 解锁3s
  179. };
  180. // 内部状态文件描述
  181. struct instu
  182. {
  183. u8 type; //显示类型:16进制,10进制,2进制
  184. s8 name[20]; //名称
  185. u32 *fstdata; //对应的值
  186. };
  187. // 内部状态文件描述
  188. struct instu_desc
  189. {
  190. u8 type; //显示类型:16进制,10进制,2进制
  191. s8 name[20]; //名称
  192. u8 reserved[11];
  193. };
  194. // 内部状态文件头,16bytes
  195. struct instu_file_head
  196. {
  197. u32 signature; //文件签名
  198. u32 version; //文件版本
  199. u32 reserved0; //保留0
  200. u32 reserved1; //保留1
  201. };
  202. // 内部状态文件格式
  203. struct instu_file_head_data
  204. {
  205. // 内部状态文件头
  206. struct instu_file_head cfh;
  207. // 装置类型
  208. u8 equ_sw_num;
  209. u8 equ_brd_num;
  210. char equ_name[14];
  211. // 内部状态描述
  212. u32 instu_addr;
  213. u32 instu_num;
  214. u32 Reserved[2];
  215. };
  216. typedef union USWST
  217. {
  218. DWORD wfFlag;
  219. struct
  220. {
  221. #ifdef CUSTOMIZE_BZT //备自投
  222. WORD b1DLHW:1; //1DL合位
  223. WORD b2DLHW:1; //2DL合位
  224. WORD b3DLHW:1; //3DL合位
  225. WORD bBZTBS:1;
  226. WORD bBZTSY:1;
  227. #endif
  228. DWORD bTZWZ:1; //重合闸用位置信号
  229. DWORD bHZWZ:1; //重合闸用位置信号
  230. DWORD bDIHW:1; //外部开入合位
  231. DWORD bDITW:1; //外部开入跳位
  232. DWORD bWCN:1; //未储能告警
  233. DWORD bKZHL:1;
  234. DWORD bTWYL:1; //跳位有流告警
  235. DWORD bSXWL:1; //三相无流
  236. DWORD bSHJS:1; //手合加速
  237. DWORD bSDJS:1; //上电加速
  238. DWORD bFagLLJS:1; //智能分布式联络合闸,加速
  239. DWORD bBSTZ:1; //闭锁跳闸
  240. DWORD bCYY:1; //曾有压
  241. DWORD bFAWL:1; //Fa无流
  242. DWORD bIBSCHZ:1; //大电流闭锁重合闸
  243. }bFlag;
  244. }USWST;
  245. typedef struct TSWST
  246. {
  247. USWST uSWST;
  248. TIMERELAY tTRunST_20s1s;
  249. TIMERELAY tSHz3s10ms; // 手合
  250. TIMERELAY tSTz3s10ms; // 手跳
  251. TIMERELAY tSf3s; // 手分保持3秒报 闭锁
  252. TIMERELAY tTTWYL_10S1S; // 跳位有流
  253. TIMERELAY tTWCNGJ1s; // 弹簧未储能
  254. TIMERELAY tTKZHLGJ1s; // 控制回路
  255. TIMERELAY tCTXXYC; // CT相序异常
  256. TIMERELAY tCTYC; // CT断线
  257. TIMERELAY tBatChk; // 电池异常
  258. TIMERELAY tBatOver; // 电池过压
  259. TIMERELAY tIBSCHZ; // 大电流闭锁重合闸
  260. DWORD wfFlagsave;
  261. }TSWST;
  262. /*------------------------------ 变量声明 -------------------------------------
  263. */
  264. extern const int INSTU_NUM;
  265. extern struct run_stu g_run_stu; // 内部运行状态
  266. extern struct rmt_oprate g_rmt_op; // 遥控器
  267. extern struct instu g_instu_desc[];
  268. extern TIMERELAY g_tJLSDTime; // 交流失电定时器
  269. /*------------------------------ 函数声明 -------------------------------------
  270. */
  271. int run_status_init(void);
  272. int run_status_check(u32 dStep);
  273. int run_status_dz_all(void);
  274. int app_action_result(void);
  275. int rmt_key_init(void);
  276. #endif//
  277. //========================== 本文件结束 =============================