switch.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963
  1. /******************************************************************************
  2. 版权所有:
  3. 文件名称: switch.h
  4. 文件版本: 01.01
  5. 创建作者: sunxi
  6. 创建日期: 2013-04-15
  7. 功能说明: DTU核心处理程序以开关为单位,循环处理。
  8. 其它说明:
  9. 修改记录:
  10. */
  11. #ifndef _SWITCH_H
  12. #define _SWITCH_H
  13. /*------------------------------- 头文件 --------------------------------------
  14. */
  15. #include "fft.h"
  16. /*------------------------------- 宏定义 --------------------------------------
  17. */
  18. #define INDEX_INVALLID (-1)
  19. #define DC_BOARD_150V 1
  20. #define CFG_NAME_LEN 16
  21. #ifdef DC_BOARD_150V
  22. #define DC_AJUST_0 20.0
  23. #define DC_AJUST_1 100.0
  24. #else
  25. #define DC_AJUST_0 10.0
  26. #define DC_AJUST_1 50.0
  27. #endif
  28. /*------------------------------ 类型结构 -------------------------------------
  29. */
  30. enum
  31. {
  32. SW_DI_TYPE_00 = 0,
  33. SW_DI_TYPE_OFF,
  34. SW_DI_TYPE_ON,
  35. SW_DI_TYPE_11
  36. };
  37. enum
  38. {
  39. SW_DO_TYPE_OFF = 0,
  40. SW_DO_TYPE_ON,
  41. SW_DO_TYPE_SELECT_OFF,
  42. SW_DO_TYPE_SELECT_ON
  43. };
  44. enum
  45. {
  46. SW_DI_KRHW = 0, // 合位
  47. SW_DI_KRTW, // 跳位
  48. SW_DI_GLDZ1, // 隔离刀闸
  49. SW_DI_JDDZ, // 接地刀闸
  50. SW_DI_CN, // 弹簧未储能
  51. #ifdef DISP_DOUBLE_CN
  52. SW_DI_YCN, // 弹簧已储能
  53. #endif
  54. SW_DI_QYD, // SF6气压低
  55. #ifndef GW_AREA_MAIN_2021
  56. SW_DI_TZWZ,
  57. SW_DI_HZWZ,
  58. #endif
  59. SW_DI_PT1SY, // PT1瞬压
  60. SW_DI_PT2SY, // PT2瞬压
  61. SW_DI_SH, // 手动合闸
  62. SW_DI_SF, // 手动分闸
  63. #ifdef GW_AREA_MAIN_2021
  64. SW_DI_KGYF, // 开关远方
  65. SW_DI_BHTT, // 常规保护投退压板
  66. SW_DI_CHZ, // 重合闸压板
  67. SW_DI_FA_TT, // 就地FA压板
  68. SW_DI_KZDX, // 控制回路告警
  69. SW_DI_BKJS, // 板卡在线监测
  70. #else
  71. SW_DI_BHZTT, // 保护总功能投退压板
  72. SW_DI_BHTT, // 常规保护投退压板
  73. SW_DI_CHZ, // 重合闸压板
  74. SW_DI_FA_TT, // 就地FA压板
  75. SW_DI_FA_GOOSE, //智能FA压板
  76. SW_DI_FA_LS,
  77. SW_DI_KGYF, // 开关远方
  78. SW_DI_BSCH, // 闭锁重合闸开入
  79. SW_DI_TQ, // 同期压板
  80. SW_DI_KZDX, //控制回路断线
  81. SW_DI_IMP1,
  82. SW_DI_IMP2, // 23
  83. SW_DI_FA_BS_TT,//就地FA闭锁压板//SW_DI_31,
  84. SW_DI_FREQ_VOL, //频率电压解列功能投入
  85. #endif
  86. #ifdef TYTQ_DI_YB
  87. SW_DI_TYTQ, //停用检同期
  88. #else
  89. SW_DI_24, //开入1
  90. #endif
  91. #ifdef JZS_FUNCTION
  92. SW_DI_JZS_TT, //集中式投退压板
  93. #else
  94. SW_DI_25,
  95. #endif
  96. #ifdef DO_KOUT_CHECK
  97. SW_DI_KOCHK,
  98. #else
  99. SW_DI_26,
  100. #endif
  101. //#ifdef GD_AREA_ZHUHAI_V2
  102. #if defined GD_AREA_ZHUHAI_V2 || defined GD_AREA_JIEYANG || defined GD_AREA_LIAONING_2021
  103. SW_DI_B_SW, //B侧开关位置
  104. #else
  105. SW_DI_27,
  106. #endif
  107. #ifndef GW_AREA_MAIN_2021
  108. SW_DI_SAFE_AUTO, //安全自动控制
  109. #endif
  110. #ifdef BS_FAL_DI_YB
  111. SW_DI_BS_FAL, //闭锁FA联络
  112. #endif
  113. #ifdef CUSTOMIZE_BZT //备自投
  114. SW_DI_BZT,
  115. SW_DI_DL1_HW,
  116. SW_DI_DL1_TW,
  117. SW_DI_DL2_HW,
  118. SW_DI_DL2_TW,
  119. SW_DI_DL3_HW,
  120. SW_DI_DL3_TW,
  121. SW_DI_BSBZT,
  122. SW_DI_BZT_SY, //备自投-失压分闸开入
  123. #endif
  124. #ifdef GD_AREA_ECZD_QINGYUAN_2022
  125. SW_PRO_HZ, //保护合闸出口
  126. SW_PRO_FZ, //保护跳闸出口
  127. SW_YK_HZ, //遥控/电动合闸
  128. SW_YK_FZ, //遥控/电动分闸
  129. #endif
  130. SW_DI_NUM
  131. };
  132. #define SW_DI_NUM_ALL (SW_DI_NUM + EV_SW_NUM)
  133. enum
  134. {
  135. SW_DO_HZ = 0, // 合闸
  136. SW_DO_FZ, // 分闸
  137. SW_DO_BHH,
  138. SW_DO_BHT,
  139. SW_DO_YKH,
  140. SW_DO_YKT,
  141. SW_RST_SY, //瞬压复归
  142. SW_RST_SY1, //瞬压复归
  143. SW_FBT_SY, //瞬压闭锁
  144. SW_DO_CN, //储能信号//SW_DO_11,
  145. SW_DO_BHDZ,
  146. SW_DO_TQBS,
  147. #ifdef GD_AREA_CHAOZHOU_CHAOAN_FUYANG
  148. SW_DI_TQBS_CLOSE, //同期合闸开出-常闭"
  149. #endif
  150. #ifdef CUSTOMIZE_BZT //备自投
  151. SW_DO_DL1_HZ,
  152. SW_DO_DL1_FZ,
  153. SW_DO_DL2_HZ,
  154. SW_DO_DL2_FZ,
  155. SW_DO_FD_HZ, //备自投-分段合闸
  156. SW_DO_FD_FZ, //备自投-分段分闸
  157. SW_DO_JX1_SY, //备自投-进线1失压分闸
  158. SW_DO_JX2_SY, //备自投-进线2失压分闸
  159. #endif
  160. #if defined GD_AREA_MAIN_2020 || defined SW_FAIL_SINGLE_OUT
  161. SW_DO_UNSTUCK_SINGLE,
  162. #endif
  163. #ifdef GD_AREA_YUNAN_LP
  164. SW_DO_LOST_AC,
  165. #else
  166. SW_DO_14,
  167. #endif
  168. #ifdef GD_AREA_PROTECTOR
  169. SW_EQU_ERR,
  170. #endif
  171. SW_DO_NUM
  172. };
  173. // 开关类LED类型
  174. enum
  175. {
  176. SW_LED_ZHHW = 0,// 综合合位灯,以一个灯代表双点灯
  177. SW_LED_ZHTW, // 综合合位灯,以一个灯代表双点灯
  178. SW_LED_HW, // 合位灯
  179. SW_LED_TW, // 跳位灯
  180. SW_LED_GL, // 过流灯
  181. SW_LED_JD, // 接地灯
  182. SW_LED_CHZ, // 重合闸灯
  183. SW_LED_CD, // 充电灯(包含重合闸、联络和分布式的充电)
  184. SW_LED_LOCK, // 闭锁灯
  185. SW_LED_XT, // XT灯
  186. SW_LED_YT, // YT灯
  187. SW_LED_DZ, // 动作灯
  188. SW_LED_CHZBS, // 重合闸闭锁灯
  189. SW_LED_CN, // 未储能灯
  190. #ifdef DISP_DOUBLE_CN
  191. SW_LED_YCN, // 已储能灯
  192. #endif
  193. SW_LED_LL, // 联络
  194. SW_LED_FD, // 分段
  195. SW_LED_CHZBS_LOCK, // 重合闸闭锁灯+FA闭锁合闸
  196. SW_LED_MODE_BH, //保护模式
  197. SW_LED_MODE_FA, //就地FA 模式
  198. SW_LED_MODE_GOOSE, //智能分布式
  199. SW_LED_X_YT,
  200. #ifdef QYD_STATE_LED
  201. SW_LED_QYD,
  202. #endif
  203. #ifdef CHZ_QUIT_LED //重合闸退出灯(硬件压板或软件压板退出灯亮)
  204. SW_LED_CHZ_QUIT,
  205. #endif
  206. #if defined GD_AREA_GUANGZHOU_FTU || defined GD_AREA_TEST_2020 || defined GD_AREA_ZHUHAI_V2
  207. SW_LED_FAULT_GJ,//故障告警灯
  208. #endif
  209. #ifdef GD_AREA_ZHUHAI_V2
  210. SW_LED_COMMERR, //通讯异常
  211. #endif
  212. //#ifdef GD_AREA_ECZD_2020
  213. #if defined GD_AREA_ECZD_2020 || defined GD_AREA_MAIN_2020
  214. SW_LED_ZDJL, //"自动解列功能",
  215. SW_LED_TQHZ, //"同期合闸功能",
  216. SW_LED_TYBHTT, //"停用保护及FA",
  217. SW_LED_TYZDJL, //"停用自动解列",
  218. SW_LED_TYTQHZ, //"停用同期合闸",
  219. #endif
  220. #ifdef TZ_STATE_LED
  221. SW_LED_TZ, //跳闸灯
  222. #endif
  223. #ifdef CHZ_CD_LED
  224. SW_LED_CHZ_CD, // 重合闸充电灯(之前的充电灯包含联络和分布式的充电状态,非单独的重合闸充电灯)
  225. #endif
  226. #ifdef EQU_RUN_LED
  227. SW_LED_EQU_RUN, //装置工作指示灯
  228. #endif
  229. #ifdef SWITCH_GLJD_LED
  230. SW_LED_GLDZ, //隔离刀闸灯
  231. SW_LED_JDDZ, //接地刀闸灯
  232. #endif
  233. #ifdef FUNC_DRIVE
  234. SW_LED_DRIVE, //开关传动灯
  235. #endif
  236. #ifdef GW_AREA_MAIN_2021
  237. SW_LED_XLGZ,
  238. #endif
  239. SW_LED_NUM
  240. };
  241. #define SW_DO_LED_NUM (SW_DO_NUM + SW_LED_NUM)
  242. enum
  243. {
  244. SW_AC_IA = 0, // IA
  245. SW_AC_IB, // IB
  246. SW_AC_IC, // IC
  247. SW_AC_I0, // I0
  248. #ifdef SW_AC_I0S_SAMPLE
  249. SW_AC_I0s,
  250. #endif
  251. SW_AC_CIA , // 测量IA
  252. SW_AC_CIB, // 测量IB
  253. SW_AC_CIC, // 测量IC
  254. SW_AC_NUM
  255. };
  256. enum
  257. {
  258. SW_AC_IN_P= SW_AC_NUM,
  259. SW_AC_IN_Pa,
  260. SW_AC_IN_Pb,
  261. SW_AC_IN_Pc,
  262. SW_AC_IN_Q,
  263. SW_AC_IN_Qa,
  264. SW_AC_IN_Qb,
  265. SW_AC_IN_Qc,
  266. #ifdef FUN_YC_POWER_S
  267. SW_AC_IN_S,
  268. #endif
  269. SW_AC_IN_COS,
  270. SW_AC_IN_BI_UNBALANCE,// 电流不平衡度
  271. SW_AC_IN_CI_UNBALANCE,// 电流不平衡度
  272. SW_AC_IN_IMP1,
  273. SW_AC_IN_IMP2,
  274. #ifndef GW_AREA_MAIN_2021
  275. SW_AC_IN_SET_BEGIN,
  276. SW_AC_IN_SET2,
  277. SW_AC_IN_SET3,
  278. SW_AC_IN_SET4,
  279. SW_AC_IN_SET5,
  280. SW_AC_IN_SET6,
  281. SW_AC_IN_SET7,
  282. SW_AC_IN_SET8,
  283. SW_AC_IN_SET9,
  284. SW_AC_IN_SET10,
  285. SW_AC_IN_SET11,
  286. SW_AC_IN_SET_END,
  287. #endif
  288. #ifdef METERING_ENERGY
  289. SW_AC_IN_XS_UAB,
  290. SW_AC_IN_XS_UBC,
  291. SW_AC_IN_XS_UCA,
  292. SW_AC_IN_XS_UA,
  293. SW_AC_IN_XS_UB,
  294. SW_AC_IN_XS_UC,
  295. SW_AC_IN_XS_IA,
  296. SW_AC_IN_XS_IB,
  297. SW_AC_IN_XS_IC,
  298. SW_AC_IN_XS_I0,
  299. SW_AC_IN_XS_P,
  300. SW_AC_IN_XS_PA,
  301. SW_AC_IN_XS_PB,
  302. SW_AC_IN_XS_PC,
  303. SW_AC_IN_XS_Q,
  304. SW_AC_IN_XS_QA,
  305. SW_AC_IN_XS_QB,
  306. SW_AC_IN_XS_QC,
  307. SW_AC_IN_XS_S,
  308. SW_AC_IN_XS_SA,
  309. SW_AC_IN_XS_SB,
  310. SW_AC_IN_XS_SC,
  311. SW_AC_IN_XS_COS,
  312. SW_AC_IN_XS_COSA,
  313. SW_AC_IN_XS_COSB,
  314. SW_AC_IN_XS_COSC,
  315. SW_AC_IN_XS_FREQ,
  316. #else
  317. SW_AC_IN_YC1,
  318. SW_AC_IN_YC2,
  319. SW_AC_IN_YC3,
  320. SW_AC_IN_YC4,
  321. SW_AC_IN_YC5,
  322. SW_AC_IN_YC6,
  323. SW_AC_IN_YC7,
  324. SW_AC_IN_YC8,
  325. SW_AC_IN_YC9,
  326. SW_AC_IN_YC10,
  327. SW_AC_IN_YC11,
  328. SW_AC_IN_YC12,
  329. #endif
  330. SW_AC_NUM_ALL
  331. };
  332. #ifdef SW_AC_I0S_SAMPLE
  333. #define SW_AC_MENU_NUM (SW_AC_IN_IMP2) // 开关测量值在菜单中显示数目
  334. #else
  335. #define SW_AC_MENU_NUM (SW_AC_IN_IMP2+1) // 开关测量值在菜单中显示数目
  336. #endif
  337. enum
  338. {
  339. SW_DD_NOW1=0,
  340. SW_DD_NOW2,
  341. SW_DD_NOW3,
  342. SW_DD_NOW4,
  343. SW_DD_NOW5,
  344. SW_DD_NOW6,
  345. SW_DD_NOW7,
  346. SW_DD_NOW8,
  347. SW_DD_15M1,
  348. SW_DD_15M2,
  349. SW_DD_15M3,
  350. SW_DD_15M4,
  351. SW_DD_15M5,
  352. SW_DD_15M6,
  353. SW_DD_15M7,
  354. SW_DD_15M8,
  355. SW_DD_DAY1,
  356. SW_DD_DAY2,
  357. SW_DD_DAY3,
  358. SW_DD_DAY4,
  359. SW_DD_DAY5,
  360. SW_DD_DAY6,
  361. SW_DD_DAY7,
  362. SW_DD_DAY8,
  363. SW_DD_CHA1,
  364. SW_DD_CHA2,
  365. SW_DD_CHA3,
  366. SW_DD_CHA4,
  367. SW_DD_CHA5,
  368. SW_DD_CHA6,
  369. SW_DD_CHA7,
  370. SW_DD_CHA8,
  371. #ifdef METERING_ENERGY
  372. SW_DD_EPA,
  373. SW_DD_EPB,
  374. SW_DD_EPC,
  375. SW_DD_EPAP,
  376. SW_DD_EPBP,
  377. SW_DD_EPCP,
  378. SW_DD_EPAN,
  379. SW_DD_EPBN,
  380. SW_DD_EPCN,
  381. SW_DD_EP,
  382. SW_DD_EQ,
  383. #endif
  384. SW_DD_NUM_ALL,
  385. };
  386. enum
  387. {
  388. PUB_DI_YF = 0, // 远方
  389. PUB_DI_JD, // 就地
  390. PUB_DI_GMDK, // 柜门打开
  391. PUB_DI_RST, // 复归信号
  392. PUB_DI_DCJLSD, // 电池交流失电
  393. PUB_DI_DCDYGZ, // 电池电源故障
  394. PUB_DI_DCQY, // 电池欠压
  395. PUB_DI_DCHHZT, // 电池活化状态
  396. PUB_DI_CAP,
  397. PUB_DI_JS,
  398. PUB_DI_REBOOT,
  399. PUB_DI_BHALL,
  400. PUB_DI_JX,
  401. #ifndef GW_AREA_MAIN_2021
  402. PUB_DI_FDL1,
  403. PUB_DI_FDL2,
  404. PUB_DI_FDL3,
  405. PUB_DI_FDL4,
  406. PUB_DI_FDL5,
  407. PUB_DI_FDL6,
  408. PUB_DI_FDL7,
  409. PUB_DI_FDL8,
  410. #endif
  411. PUB_DI_1,
  412. PUB_DI_2,
  413. PUB_DI_3,
  414. PUB_DI_4,
  415. PUB_DI_5,
  416. PUB_DI_6,
  417. #ifdef YX_DI_ERROR
  418. PUB_DI_ERROR, //遥信自检
  419. #else
  420. PUB_DI_7,
  421. #endif
  422. #ifdef KZ_OUT_TT
  423. PUB_KZ_OUT_TT,
  424. #else
  425. PUB_DI_8,
  426. #endif
  427. PUB_DI_RST_JS,
  428. PUB_DI_NUM
  429. };
  430. #define PUB_DI_NUM_ALL (PUB_DI_NUM + EV_PUB_NUM)
  431. enum
  432. {
  433. PUB_DO_DCHH = 0,// 电池活化
  434. PUB_DO_HHTC, // 活化退出
  435. PUB_DO_03,
  436. PUB_DO_04,
  437. PUB_DO_05,
  438. PUB_DO_06,
  439. PUB_DO_07,
  440. PUB_DO_08,
  441. PUB_DO_09,
  442. #ifdef YK_ZZDY_KC
  443. PUB_YK_ZZDY_KC, //装置电源开出
  444. #endif
  445. PUB_QUA_CLR,
  446. PUB_DO_YK, //预控
  447. PUB_DO_JS, // 解除闭锁
  448. PUB_DO_RESTART, // 远方重启
  449. PUB_DO_RST, // 远方复归
  450. #ifdef YK_FG_FAJS
  451. PUB_DO_RST_FAJS, // 远方复归+FA解锁
  452. #endif
  453. #ifndef GW_AREA_MAIN_2021
  454. PUB_CHYB_HZ, // 虚遥控,重合闸压板
  455. PUB_CHYB_FZ, // 虚遥控,分闸压板
  456. #endif
  457. #if defined BHFA_YB_YK || defined BHFAGS_YB_YK
  458. PUB_BHYB_HZ, // 虚遥控,分闸压板
  459. PUB_BHYB_FZ, // 虚遥控,分闸压板
  460. PUB_KZYB_HZ, // 虚遥控,控制出口合闸压板(线路保护投停&&保护投入软压板)
  461. PUB_KZYB_FZ, // 虚遥控,控制出口分闸压板(线路保护投停&&保护投入软压板)
  462. #ifndef BH_FA_INONE_SW
  463. PUB_BHYBTT_HZ, // 虚遥控,常规保护投退合闸压板(线路保护投停&&保护投入软压板)
  464. PUB_BHYBTT_FZ, // 虚遥控,常规保护投退分闸压板(线路保护投停&&保护投入软压板)
  465. PUB_FAYBTT_HZ, // 虚遥控,FA保护投退合闸压板(线路保护投停&&保护投入软压板)
  466. PUB_FAYBTT_FZ, // 虚遥控,FA保护投退分闸压板(线路保护投停&&保护投入软压板)
  467. #ifdef BHFAGS_YB_YK
  468. PUB_GOOSEYBTT_HZ, // 虚遥控,goose保护投退合闸压板(线路保护投停&&保护投入软压板)
  469. PUB_GOOSEYBTT_FZ, // 虚遥控,goose保护投退分闸压板(线路保护投停&&保护投入软压板)
  470. #endif
  471. #endif
  472. #else
  473. #ifndef GW_AREA_MAIN_2021
  474. PUB_BHYB_HZ, // 虚遥控,分闸压板
  475. PUB_BHYB_FZ, // 虚遥控,分闸压板
  476. PUB_KZYB_HZ, // 虚遥控,控制出口合闸压板(线路保护投停&&保护投入软压板)
  477. PUB_KZYB_FZ, // 虚遥控,控制出口分闸压板(线路保护投停&&保护投入软压板)
  478. #endif
  479. #endif
  480. #ifdef TQ_SOFT_YB
  481. PUB_TQ_YB_HZ, //虚遥控,检同期软压板
  482. PUB_TQ_YB_FZ, //虚遥控,检同期软压板
  483. #endif
  484. #ifdef JZS_FUNCTION
  485. PUB_JZS_YB_HZ, //虚遥控,集中式软压板
  486. PUB_JZS_YB_FZ, //虚遥控,集中式软压板
  487. #endif
  488. #ifdef YK_SOFT_YB
  489. PUB_YK_YB_HZ, //虚遥控,遥控软压板
  490. PUB_YK_YB_FZ, //虚遥控,遥控软压板
  491. #endif
  492. #ifdef YK_FA_ENBLE
  493. PUB_YK_BS_FA_HZ, // "FA遥控闭锁-合",
  494. PUB_YK_BS_FA_FZ, // "FA遥控闭锁-分",
  495. #endif
  496. #ifdef YK_FA_S_L_ENBLE
  497. PUB_YK_FA_S_L_HZ, // "分段/联络-合",
  498. PUB_YK_FA_S_L_FZ, // "分段/联络-分",
  499. #endif
  500. #ifdef JL_SOFT_YB
  501. PUB_JL_YB_HZ, //虚遥控,停用自动解列软压板
  502. PUB_JL_YB_FZ, //虚遥控,停用自动解列软压板
  503. #endif
  504. #ifdef METERING_ENERGY
  505. PUB_DD_CLR, // 虚遥控,电度清零
  506. PUB_LLSOE_CLR, // 虚遥控,线损事件清零
  507. #endif
  508. #ifdef FUNC_DRIVE
  509. PUB_DRIVE_YB_ON, //不停电传动软压板投入
  510. PUB_DRIVE_YB_OFF, //不停电传动软压板退出
  511. PUB_DRIVE_HZ, //不停电传动指令
  512. #endif
  513. #ifdef FUNC_DRIVE_JY
  514. PUB_UNSTOP_V_DRI_HZ, //不停电传动功能
  515. #endif
  516. #ifdef FUNC_RESET_EQU
  517. PUB_RESET_EQU, //重启装置
  518. #endif
  519. PUB_DO_NUM
  520. };
  521. // 公共类LED类型
  522. enum
  523. {
  524. PUB_LED_POWER = 0, // 电源灯
  525. PUB_LED_RUN, // 运行灯
  526. PUB_LED_COMM, // 通信灯
  527. #ifdef COMM_STATUS_LED
  528. PUB_LED_COMM_STATUS,// 通信状态灯
  529. #endif
  530. PUB_LED_BAT, // 电池灯
  531. PUB_LED_ERR, // 异常灯
  532. //#ifdef GD_AREA_ECZD_2020
  533. #if defined GD_AREA_ECZD_2020 || defined GD_AREA_MAIN_2020
  534. PUB_LED_RUN_GJ, // 运行告警,PT断线、气压低、GOOSE通信异常
  535. #endif
  536. PUB_LED_DZ, // 动作灯,例如电压类动作
  537. PUB_LED_YF, // 远方灯
  538. PUB_LED_JD, // 就地灯
  539. PUB_LED_232T1,
  540. PUB_LED_232R1,
  541. PUB_LED_232T2,
  542. PUB_LED_232R2,
  543. PUB_LED_232T3,
  544. PUB_LED_232R3,
  545. PUB_LED_485T1,
  546. PUB_LED_485R1,
  547. PUB_LED_485T2,
  548. PUB_LED_485R2,
  549. PUB_LED_485T3,
  550. PUB_LED_485R3,
  551. PUB_LED_NET1,
  552. PUB_LED_NET2,
  553. #if defined __GOOSE_USING_DOUBLE_ETH__ || defined NET3_IP5
  554. PUB_LED_NET3,
  555. #endif
  556. #ifdef BAT_STATE_LED
  557. PUB_LED_BAT_LOW,
  558. PUB_LED_BAT_HH,
  559. #endif
  560. #ifdef KZ_OUT_TT
  561. PUB_LED_KZ_OUT,
  562. #endif
  563. #ifdef IEC_ERR_LED
  564. PUB_LED_IEC_ERR, //"规约通信异常灯",
  565. #endif
  566. #ifdef LINK_ERR_LED
  567. PUB_LED_LINK_ERR, //"级联异常灯",
  568. #endif
  569. #ifdef GW_AREA_MAIN_2021
  570. PUB_LED_PHA,
  571. PUB_LED_PHB,
  572. PUB_LED_PHC,
  573. #endif
  574. PUB_LED_NUM,
  575. };
  576. #define PUB_DO_LED_NUM (PUB_DO_NUM + PUB_LED_NUM)
  577. enum
  578. {
  579. PUB_AC_UA1 = 0,
  580. PUB_AC_UB1,
  581. PUB_AC_UC1,
  582. PUB_AC_UAB1,
  583. PUB_AC_UBC1,
  584. PUB_AC_UCA1,
  585. PUB_AC_U01,
  586. PUB_AC_US1,
  587. PUB_AC_UA2,
  588. PUB_AC_UB2,
  589. PUB_AC_UC2,
  590. PUB_AC_UAB2,
  591. PUB_AC_UBC2,
  592. PUB_AC_UCA2,
  593. PUB_AC_U02,
  594. PUB_AC_US2,
  595. PUB_AC_NUM
  596. };
  597. enum
  598. {
  599. PUB_AC_IN_V_UNBALANCE1 = PUB_AC_NUM,// 电压组1不平衡度
  600. PUB_AC_IN_V_UNBALANCE2,// 电压组2不平衡度
  601. PUB_AC_IN_F1,
  602. PUB_AC_IN_F2,
  603. PUB_AC_IN_UZ1,
  604. PUB_AC_IN_UZ2,
  605. #ifdef GD_AREA_YUNAN_LP // 云南涞浦
  606. PUB_AC_IN_DLTUAB,
  607. PUB_AC_IN_DLTUBC,
  608. PUB_AC_IN_DLTUCA,
  609. PUB_AC_IN_ARGUAB,
  610. PUB_AC_IN_ARGUBC,
  611. PUB_AC_IN_ARGUCA,
  612. #endif
  613. PUB_AC_IN_TEMP,
  614. #ifdef TMP_CHIP_AHT20
  615. PUB_AC_IN_HUMI,
  616. #endif
  617. PUB_AC_IN_VER,
  618. #ifdef BATTERY_WITH_COMM
  619. PUB_AC_BATT_ACT_T_MAX, // 电池活化最大放电时长
  620. PUB_AC_BATT_ACT_T_NOW, // 电池活化当前放电时长
  621. #endif
  622. #ifdef DEV_GPS_ATGM332D
  623. #ifndef GPS_JWD_SPLIT
  624. PUB_AC_GPS_LONGITUDE,
  625. PUB_AC_GPS_LATITUDE,
  626. #else
  627. PUB_AC_GPS_LONGITUDE_D,
  628. PUB_AC_GPS_LONGITUDE_M,
  629. PUB_AC_GPS_LONGITUDE_S,
  630. PUB_AC_GPS_LATITUDE_D,
  631. PUB_AC_GPS_LATITUDE_M,
  632. PUB_AC_GPS_LATITUDE_S,
  633. #endif
  634. PUB_AC_GPS_NUM_SV, // 卫星个数
  635. #endif
  636. PUB_AC_YC1,
  637. PUB_AC_YC2,
  638. PUB_AC_YC3,
  639. PUB_AC_YC4,
  640. PUB_AC_YC5,
  641. PUB_AC_YC6,
  642. PUB_AC_YC7,
  643. PUB_AC_YC8,
  644. PUB_AC_YC9,
  645. PUB_AC_YC10,
  646. PUB_AC_YC11,
  647. PUB_AC_YC12,
  648. #ifdef BATTERY_BP_L500
  649. PUB_AC_BATT_R, //电池内阻
  650. PUB_AC_BATT_TEMP, //电池温度
  651. PUB_AC_BATT_RT_POWER, //电池实时电量
  652. PUB_AC_BATT_DISCHARGE_CURRENT, //电池放电电流
  653. PUB_AC_BATT_RECHARGE_CURRENT, //电池充电电流
  654. #endif
  655. PUB_AC_NUM_ALL
  656. };
  657. #define PUB_AC_IN_UDC PUB_AC_IN_UZ1
  658. #define UI_NUM (PUB_AC_NUM+SW_AC_NUM*SWITCH_NUM_MAX)
  659. #define PUB_AC_MENU_NUM (PUB_AC_IN_TEMP+1) // 公共测量值在菜单中显示数目
  660. #define MEA_MENU_MAX (SW_AC_MENU_NUM+PUB_AC_MENU_NUM)
  661. // g_ui使用的和开关对应的索引
  662. #define UI_SW_INDEX_BEGIN(sw) (PUB_AC_NUM + (sw)*SW_AC_NUM)
  663. #define UI_SW_INDEX(sw,sw_index) (PUB_AC_NUM + (sw)*SW_AC_NUM + (sw_index))
  664. #define UI_FLAGS_MAKE_LV1 0X0001 // 线电压1自产
  665. #define UI_FLAGS_MAKE_LV2 0X0002 // 线电压2自产
  666. #define UI_FLAGS_MAKE_I0 0X0004 // I0自产
  667. #define UI_FLAGS_MAKE_IB 0X0008 // IB自产
  668. #define UI_FLAGS_3M 0X0010 // 3表法
  669. #define UI_FLAGS_MAKE_UCA1 0X0020 // 线电压UCA1自产
  670. #define UI_FLAGS_MAKE_UCA2 0X0040 // 线电压UCA2自产
  671. #define UI_FLAGS_MAKE_U01 0X0080 // 线电压UCA2自产
  672. #define UI_FLAGS_MAKE_U02 0X0100 // 线电压UCA2自产
  673. #define UI_FLAGS_MAKE_CIB 0X0200 //测量 IB自产
  674. /*------------------------------ 类型结构 -------------------------------------
  675. */
  676. struct mea_desc
  677. {
  678. char * name;
  679. u8 unit;
  680. u8 unit_angle;
  681. };
  682. struct dd_v
  683. {
  684. float fv;
  685. struct rtc_time_t ct;
  686. bool bchanged;
  687. };
  688. struct sw
  689. {
  690. u32 ui_flags;
  691. // 测量值
  692. qs16 ac_in[SW_AC_NUM_ALL];
  693. u8 link_qds[SW_AC_NUM_ALL];
  694. qs16 ac_in_buf[SW_AC_NUM_ALL];
  695. float ac_in_acc[SW_AC_NUM_ALL];
  696. // 电度
  697. struct dd_v dd[SW_DD_NUM_ALL];
  698. // 遥信值
  699. u8 di[SW_DI_NUM+EV_SW_NUM];
  700. //最大最小值
  701. u32 m2_min;
  702. u32 m2_max;
  703. u32 fz_min;
  704. u32 fz_max;
  705. // 配置索引
  706. u16 di_cfg_index[SW_DI_NUM];
  707. u16 do_cfg_index[SW_DO_NUM];
  708. u16 ac_cfg_index[SW_AC_NUM];
  709. u16 led_cfg_index[SW_LED_NUM];
  710. };
  711. struct sw_t
  712. {
  713. // 过流标识
  714. u32 overI_flags[3];
  715. // 方向
  716. u32 dir_flags[3];
  717. // 测量值
  718. qs16 ac_in[3];
  719. float ac_in_acc[3];
  720. };
  721. struct sw_public
  722. {
  723. u32 ui_flags;
  724. // 测量值
  725. qs16 ac_in[PUB_AC_NUM_ALL];
  726. qs16 ac_in_buf[PUB_AC_NUM_ALL];
  727. float ac_in_acc[PUB_AC_NUM_ALL];
  728. // 遥信值
  729. u8 di[PUB_DI_NUM+EV_PUB_END-EV_PUB_START];
  730. //最大最小值
  731. u32 m2_min[4];
  732. u32 m2_max[4];
  733. u32 fz_min[2];
  734. u32 fz_max[2];
  735. // 配置索引
  736. u16 di_cfg_index[PUB_DI_NUM];
  737. u16 do_cfg_index[PUB_DO_NUM];
  738. u16 ac_cfg_index[PUB_AC_NUM];
  739. u16 led_cfg_index[PUB_LED_NUM];
  740. u32 vol_qua_run_time[2]; //电压合格率 统计运行时间
  741. u32 vol_qua_ok_time[2]; //电压合格率 统计合格时间
  742. bool bclearqua;
  743. };
  744. struct ui
  745. {
  746. int chn_index; // 实际的ADC通道,如果没有则为CFG_ADC_CHANNEL_ZERO
  747. int ui_base_make; // 合成UI的基础ui索引
  748. // 保护值
  749. struct ri_s32 ri;
  750. u32 m2[CFG_ADC_DOTS_PER_PERIOD/2]; // 模值的平方
  751. // qs08 m2_factor; // 幅值自动校准后的修正系数/幅值的理论变换系数
  752. qs08 m2_factor_k; // 幅值的理论变换系数
  753. #ifdef PROTECT_AC_ADJUST
  754. int m2_factor_c; // 幅值自动校准后的修正系数
  755. #else
  756. qs16 m2_factor_c; // 幅值自动校准后的修正系数
  757. #endif
  758. struct rt_stat m2_stat;
  759. u32 fz; //辐值
  760. //测量谐波
  761. complex h[CFG_ADC_DOTS_PER_PERIOD/2]; // 谐波
  762. // 测量有效值
  763. qu16 e; // 有效值
  764. float e_acc; // 有效值累加值
  765. float e_factor0; // 幅值自动校准后的修正系数/幅值的理论变换系数(不带温度补偿)
  766. float e_factor; // 幅值自动校准后的修正系数/幅值的理论变换系数
  767. float e_ps; //一二次变比
  768. struct rt_stat e_stat;
  769. //测量相角
  770. qs16 p; // 相角
  771. qs16 p_acc; // 相角累加值
  772. float p_factor; // 相角的理论变换系数 + 相角自动校准后的修正系数
  773. int p_mark; // 角度标志,0:没有初始化;1:角度在1、4象限;-1:角度在2、3象限.
  774. struct rt_stat p_stat;
  775. // 测量PQ
  776. float pq_factor[2];
  777. // 通道名称
  778. char name[CFG_NAME_LEN];
  779. };
  780. struct ui_jy
  781. {
  782. struct ri_s32 ri;
  783. u32 m2; // 模值的平方
  784. };
  785. //正序,负序及零序
  786. //电压,电流的实部和虚部
  787. struct ui120
  788. {
  789. DWORD vect1; //正序分量幅值平方
  790. DWORD vect2; //负序分量幅值平方
  791. };
  792. struct ui_p0 //零序功率计算
  793. {
  794. float p; //零序有功功率
  795. float q; //零序无功功率
  796. float ps; //零序有功功率
  797. float qs; //零序无功功率
  798. float Pea; //零序有功功率积分
  799. float Per; //零序无功功率积分
  800. float Peas; //零序有功功率积分
  801. float Pers; //零序无功功率积分
  802. };
  803. extern int g_harmonic_num;
  804. extern float g_harmonic_factor[CFG_ADC_DOTS_PER_PERIOD/2];
  805. extern int g_sw_init;
  806. extern struct ui g_ui[UI_NUM];
  807. extern int g_prot_index; // 保护计算时,采样通道中采样点的索引
  808. extern struct ui_jy g_ui_jy[3];
  809. extern struct ui_p0 g_ui_p0[SWITCH_NUM_MAX]; //零序功率
  810. extern struct sw_public g_sw_pub;
  811. extern struct sw g_sw[];
  812. extern struct sw_t g_sw_temp[];
  813. extern struct ui120 Us1_120,Us2_120;
  814. extern const s8 * g_sw_di_name[];
  815. extern const s8 * g_sw_do_name[];
  816. extern const s8 * g_sw_led_name[];
  817. extern const struct mea_desc g_sw_ac_desc[];
  818. extern const s8 * g_pub_di_name[];
  819. extern const s8 * g_pub_do_name[];
  820. extern const s8 * g_pub_led_name[];
  821. extern const struct mea_desc g_pub_ac_desc[];
  822. extern const struct mea_desc g_dd_desc[];
  823. /*------------------------------ 函数声明 -------------------------------------
  824. */
  825. int sw_init(void);
  826. int sw_exit(void);
  827. int sw_di_set(u32 sw,u32 no,u8 v);
  828. int sw_di_get(u32 sw,u32 no);
  829. int sw_do_yuk(int type);
  830. int sw_do(u32 sw,u32 index,int type);
  831. int sw_do_pub(u32 index,int type);
  832. float sw_v_m2_factor_k(int id);
  833. float _sw_p2( float Ur, float Ui,float Ir, float Ii, float k1, float k2);
  834. float _sw_q2( float Ur, float Ui,float Ir, float Ii, float k1, float k2);
  835. void sw_cal_protect(void); //计算全周故障量
  836. int sw_cal_app(void);
  837. int sw_auto_adjust(int ui_angle0);
  838. int sw_adjust_dc_0(void);
  839. int sw_adjust_dc_1(void);
  840. int sw_stat_reset(void);
  841. int sw_pub_printf(void);
  842. int sw_pub_printf_v(void);
  843. int sw_printf(void);
  844. int sw_printf_v(void);
  845. int sw_ui_printf(void);
  846. int sw_ui_printf_e(void);
  847. int sw_ui_printf_m(void);
  848. int sw_ui_printf_p(void);
  849. int sw_get_chnl_ps(int index,bool prim);
  850. int sw_ext_init(void);
  851. void _sw_cal_Xfl120( int ui_index, struct ui120 *pII);
  852. #endif //_SWITCH_H
  853. /*------------------------------ 文件结束 -------------------------------------
  854. */