FA.h 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  1. /*******************************************************************************
  2. 版权所有:
  3. 版本号: 1.00
  4. 文件名: vol.h
  5. 生成日期:2010-04-25
  6. 作者: 电力产品开发部
  7. 功能说明:电压控制文件
  8. ****************************************************************************/
  9. /*------------------------------- 头文件 --------------------------------------
  10. */
  11. #ifndef __VOL_LS_H
  12. #define __VOL_LS_H
  13. /*------------------------------- 宏定义 --------------------------------------
  14. */
  15. enum
  16. {
  17. FA_TYPE_S=0, //分段开关
  18. FA_TYPE_L, //联络开关
  19. };
  20. enum
  21. {
  22. S_INIT=1, //初始状态
  23. S_TEMP, //临时状态,用于检测瞬时电压
  24. S_BSFLASH, //瞬时电压闭锁状态
  25. S_XTIME, //X时限计数状态
  26. S_X_ZTIME, //X时限计数中发生的Z时限计数状态
  27. S_BSXTIME, //X时限闭锁状态
  28. S_YTIME, //Y时限计数状态
  29. S_Y_ZTIME, //Y时限计数中发生的Z时限计数状态
  30. S_BSYTIME, //Y时限闭锁状态
  31. S_USUAL, //正常运行状态
  32. S_BSDOUBLE, //双电源闭锁状态
  33. S_BSHHGZ, //合后故障闭锁状态
  34. S_BSFZ, //合后闭锁分闸状态
  35. S_BSDL, //大电流闭锁分闸状态
  36. //S_D_ZTIME, //双电源闭锁状态中发生的Z时限计数状态
  37. S_BS_SW, //
  38. };
  39. enum
  40. {
  41. L_INIT=1, //初始状态
  42. L_BS_STATE, //联络闭锁,待双侧YL有压解锁
  43. L_Y_ZTIME, //Y时限计数状态中发生的Z时限计数状态
  44. L_USUAL, //正常运行状态
  45. L_XLTIME, //X时限计数状态
  46. L_XL_ZTIME, //X时限计数中发生的Z时限计数状态
  47. L_RELAYON, //开关合运行状态
  48. L_YL_TIME, //合闸成功Y计时
  49. };
  50. struct vol_stu
  51. {
  52. u32 status; //当前状态
  53. u32 shangdiance; //当前上电侧
  54. u32 S_lockstatus; //分段模式合闸闭锁状态
  55. u32 L_lockstatus; //联络模式合闸闭锁状态
  56. u32 L_status; //联络模式当前状态
  57. };
  58. /*------------------------------ 类型结构 -------------------------------------
  59. */
  60. typedef union UVOT_U
  61. {
  62. WORD wfFlag;
  63. struct
  64. {
  65. WORD bQD:1; //失压启动
  66. WORD bQD1:1; //失压启动
  67. WORD bTz:1; //动作
  68. WORD bHz:1;
  69. WORD bLock:1; //合后故障闭锁失压分闸标志
  70. WORD bGL:1; //合后故障闭锁失压分闸标志
  71. WORD bJD:1; //合后接地故障闭锁失压分闸标志
  72. WORD bGLQD:1;
  73. WORD bStartLock:1; //
  74. WORD bDISENDZ:1; // 保护退出
  75. WORD bDISENBS:1; // 保护退出
  76. WORD bEvent:1;
  77. WORD bFault:1; //计数完成
  78. WORD bTz1:1; //计数完成
  79. WORD bSHWY:1; //手合无压标志
  80. }bFlag;
  81. }UVOT_U;
  82. typedef struct TLOSTVOT_T
  83. {
  84. UVOT_U uLostVot; //失压标志
  85. TIMERELAY tLostVotTime; //失压跳闸时间继电器
  86. TIMERELAY tCYY25ms0ms; //曾有压标志
  87. TIMERELAY tLostVLockTime;
  88. bool bLostVotLed;
  89. WORD losttimes; //失压次数
  90. WORD wfFlagsave;
  91. }TLOSTVOT_T;
  92. typedef struct TTQHZ_T
  93. {
  94. UVOT_U uTQHz; //同期合闸
  95. TIMERELAY tTQTime; //同期合闸时间继电器
  96. TIMERELAY tTQQDTime; //同期合闸时间继电器
  97. bool bBSTQLed;
  98. }TTQHZ_T;
  99. typedef union UU0_U
  100. {
  101. WORD wfFlag;
  102. struct
  103. {
  104. WORD bQD:1; //失压启动
  105. WORD bTz:1; //告警动作
  106. WORD bEvent:1;
  107. WORD bLock:1; //合后故障闭锁失压分闸标志
  108. WORD bGJQD:1; //失压启动
  109. WORD bGJ:1; //告警动作
  110. WORD bU0Ov:1; //合后故障闭锁失压分闸标志
  111. WORD bGJEvent:1;
  112. WORD bDISENGJ:1; // 保护退出
  113. WORD bDISENDZ:1;
  114. }bFlag;
  115. }UU0_U;
  116. typedef struct TU0_T //定义零序过压保护处理结构体
  117. {
  118. UU0_U uZOV; //零序过压标志
  119. TIMERELAY tZOVTime; //零序过压跳闸时间继电器
  120. TIMERELAY tU0TzTime; //零序过压跳闸时间继电器
  121. bool bU0Led;
  122. bool bU0GjLed;
  123. }TU0_T;
  124. typedef union USDHZ_U
  125. {
  126. DDWORD wfFlag;
  127. struct
  128. {
  129. DDWORD bUABYY:1; //UAB有压标志
  130. DDWORD bUBCYY:1; //UBC有压标志
  131. DDWORD bUABFlash:1;
  132. DDWORD bUBCFlash:1;
  133. DDWORD bPower:1; //上电记录标志 Uab1侧,电源侧
  134. DDWORD bYY:1; //有压标志
  135. DDWORD bCYY:1; //FA曾有压
  136. DDWORD bDBYY:1; //两侧有压标志
  137. DDWORD bOneLostV:1; //一侧失压标志
  138. DDWORD bOppositeYY:1; //对侧有压标志
  139. DDWORD bPowerYY:1; //电源侧有压标志
  140. DDWORD bPowerZ:1; //停电时间 DWORD bLockX:1; //X时间闭锁
  141. DDWORD bLockY:1; //Y时间闭锁
  142. DDWORD bLockUFlash:1; //瞬时加压闭锁
  143. DDWORD bRLONFLAG:1; //开关合命令标志
  144. DDWORD bHz:1; //告警动作
  145. DDWORD bHZEvent:1; //合闸事件
  146. DDWORD bX_HZEvent:1; //x合闸事件
  147. DDWORD bGL2:1; //故障记忆 xj 2016.08.25
  148. DDWORD bJD2:1; //接地记忆
  149. DDWORD bGL_II:1;
  150. DDWORD bGL:1; //故障记忆 xj 2016.08.25
  151. DDWORD bJD:1; //接地记忆
  152. DDWORD bOverU0:1; //零序过压标志
  153. DDWORD bXOverUo:1; // X 时间有U0
  154. DDWORD bUabflashDI; // 失电过程中的Uab瞬压标志
  155. DDWORD bUbcflashDI; // 失电过程中的Uab瞬压标志
  156. //DDWORD bGjEvent:1; //合闸事件
  157. DDWORD bSaveStatus:1; //状态保护标志
  158. DDWORD bSNChange:1; //上电记录标志
  159. DDWORD bTempJS:1; //临时解锁标志// DWORD bxdljd:1; //暂态判断小电流接地
  160. DDWORD bOCing:1; //FA过流状态
  161. DDWORD bJS:1; //满足解锁条件已解锁状态
  162. #if defined GD_AREA_ECZD_2020 && !defined GD_AREA_ZHONGSHAN_2020
  163. DDWORD bHhgz:1; //合后故障
  164. #endif
  165. #ifdef FUNC_NYY_NWY
  166. DDWORD bUAB_NYY_NWY:1; //UAB非有压非无压态
  167. DDWORD bUBC_NYY_NWY:1; //UBC非有压非无压态
  168. #endif
  169. DDWORD bYtOn:1; //进入过Y计时标志
  170. }bFlag;
  171. }USDHZ_U;
  172. typedef struct TSDHZ_T
  173. {
  174. USDHZ_U uSdhz_S; //分段开关上电合闸标志
  175. USDHZ_U uSdhz_L; //联络开关上电合闸标志
  176. WORD S_Status; //分段开关运行中的状态标志
  177. WORD L_Status; //联络开关运行中的状态标志
  178. DWORD s_flag_save;
  179. DWORD l_flag_save;
  180. WORD S_Status_save; //分段开关运行中的状态标志
  181. WORD L_Status_save; //联络开关运行中的状态标志
  182. #ifdef FA_OC_COUNT
  183. WORD fa_oc_count; //过流次数
  184. TIMERELAY tFaOcCountTime; //过流脉冲复归继电器
  185. #endif
  186. bool bDL_Tz;
  187. bool bDL_Hz;
  188. bool bInitUF;
  189. bool bSDHZinit; //上电合闸初始化:无压后启动S上电合闸 1--初始化,0--未初始化
  190. TIMERELAY tOnXSTime; //X时间继电器
  191. TIMERELAY tOnYSTime; //Y时间继电器
  192. TIMERELAY tOnZSTime; //Z时间继电器
  193. TIMERELAY tOnXLTime; //XL时间继电器
  194. TIMERELAY tOnYLTime; //YL时间继电器
  195. TIMERELAY tOnLLCDYLTime; //联络充电时间继电器
  196. TIMERELAY tOnZLTime; //ZL时间继电器
  197. TIMERELAY tOnOCingTime; //FA过流状态继电器
  198. TIMERELAY tOnLXingTime; //FA零序状态继电器
  199. TIMERELAY tOnJSTime; //单侧来电解锁时间继电器
  200. TIMERELAY tOnY_JSTime; //正向闭锁后,反向来电合闸双侧有压时间继电器,中山局要求3S
  201. TIMERELAY tOnBSTZTime; //合闸成功闭锁跳闸时间
  202. TIMERELAY tOnHW_FA_JSTime; //合位直接解锁时间 默认1s
  203. TIMERELAY tUABS25ms;
  204. TIMERELAY tUBCS25ms;
  205. #ifdef FUNC_NYY_NWY
  206. TIMERELAY tUABS_NYY_NWY_50ms;
  207. TIMERELAY tUBCS_NYY_NWY_50ms;
  208. TIMERELAY tUABL_NYY_NWY_50ms;
  209. TIMERELAY tUBCL_NYY_NWY_50ms;
  210. #endif
  211. TIMERELAY tUDBS100ms;
  212. TIMERELAY tUFABL80ms;
  213. TIMERELAY tUFBCL80ms;
  214. TIMERELAY tUFDBTime; // 瞬压判断时间
  215. TIMERELAY tUABL25ms;
  216. TIMERELAY tUBCL25ms;
  217. TIMERELAY tUFABS80ms;
  218. TIMERELAY tUFBCS80ms;
  219. TIMERELAY tUFABS25ms;
  220. TIMERELAY tUFBCS25ms;
  221. TIMERELAY tUFABL25ms;
  222. TIMERELAY tUFBCL25ms;
  223. TIMERELAY tFREQAB25ms_SCY; //用于S模式电源侧残压的频率判断
  224. TIMERELAY tFREQBC25ms_SCY; //用于S模式线路侧残压的频率判断
  225. TIMERELAY tFREQAB25ms_LCY; //用于L模式电源侧残压的频率判断
  226. TIMERELAY tFREQBC25ms_LCY; //用于L模式线路侧残压的频率判断
  227. TIMERELAY tFREQSAB25ms; //用于S模式电源侧得电合闸的频率判断
  228. TIMERELAY tFREQSBC25ms; //用于S模式线路侧得电合闸的频率判断
  229. TIMERELAY tFREQLAB25ms; //用于L模式电源侧得电合闸的频率判断
  230. TIMERELAY tFREQLBC25ms; //用于L模式线路侧得电合闸的频率判断
  231. TIMERELAY tL_RELAYONL3s;
  232. TIMERELAY tHzS100ms;
  233. TIMERELAY tTSDHzHJS; // 上电合闸后加速延时
  234. TIMERELAY tOpsiteYY100ms;
  235. TIMERELAY tPowerYY100ms;
  236. TIMERELAY tGZJYRstGL_II_Time; //故障记忆复归时间
  237. TIMERELAY tGZJYRstGLTime; //故障记忆复归时间
  238. TIMERELAY tGZJYRstJDTime; //故障记忆复归时间
  239. TIMERELAY tGZJYRstGL2Time; //故障记忆复归时间
  240. TIMERELAY tGZJYRstJD2Time; //故障记忆复归时间
  241. TIMERELAY tHw100ms100ms;
  242. TIMERELAY tTw100ms100ms;
  243. TIMERELAY tHz0ms1s;
  244. TIMERELAY tTz0ms1s;
  245. TIMERELAY tHz0ms2s;
  246. TIMERELAY tTz0ms2s;
  247. bool bS_BSLed;
  248. bool bL_BSLed;
  249. #ifdef FUNC_REBOOT_BS_HA_JS_3S
  250. TIMERELAY tHW_JS_HA_3STime; //合位解锁手分/遥分闭锁时间 默认3S
  251. #endif
  252. }TSDHZ_T;
  253. typedef struct _bRTCSAVE
  254. {
  255. WORD bSig; //存储签名
  256. BYTE bStatus; //当前状态
  257. BYTE bShangDianCe; //当前上电侧
  258. WORD bCrc; //crc校验码
  259. }bRTCSAVE;
  260. typedef struct THZBS_T
  261. {
  262. TIMERELAY tBSHZTime; //同期合闸时间继电器
  263. TIMERELAY tTw100ms100ms;
  264. WORD fztimes;
  265. }THZBS_T;
  266. /*------------------------------ 函数声明 -------------------------------------
  267. */
  268. extern TLOSTVOT_T tLostVot[SWITCH_NUM_MAX]; //失压标志
  269. extern TTQHZ_T tTQHz[SWITCH_NUM_MAX]; //同期合闸标志
  270. extern TSDHZ_T tSDHZ[SWITCH_NUM_MAX]; //上电合闸标志
  271. extern u8 g_volfile_open;
  272. extern bool gb_wake_soe;
  273. void FA_Run(DWORD dStep);
  274. void FA_Init(void);
  275. void FA_lostvotTz(int sw,DWORD dStep); //失压跳闸判断
  276. void FA_OverU0Tz(int sw,DWORD dStep);
  277. int vol_stu_printf(void);
  278. int FA_status_write(void);
  279. int FA_exit(void);
  280. void Pro_hzbs(int sw,DWORD dStep);
  281. bool fa_bs_hz(int sw);
  282. bool fa_bs_fz(int sw);
  283. void fa_s_state_change(int sw,int state);
  284. #ifdef FUN_JDXX
  285. bool get_power_on_dir(int sw);
  286. #endif
  287. #endif//
  288. /*------------------------------ 文件结束 -------------------------------------
  289. */