oc.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. /******************************************************************************
  2. 版权所有:
  3. 文件名称: oc.h
  4. 文件版本: 01.01
  5. 创建作者: xxxxxx
  6. 创建日期: 2012-03-28
  7. 功能说明: 过流保护头文件
  8. 其它说明:
  9. 修改记录:
  10. */
  11. #ifndef _OC_H
  12. #define _OC_H
  13. /*------------------------------- 头文件 --------------------------------------
  14. */
  15. /*------------------------------- 宏定义 --------------------------------------
  16. */
  17. /*------------------------------ 类型结构 -------------------------------------
  18. */
  19. // 电流保护标志
  20. typedef union UOCFLAG
  21. {
  22. DWORD wfFlag;
  23. struct
  24. {
  25. DWORD bIaQD : 1; // A相过流启动
  26. DWORD bIbQD : 1; // B相过流启动
  27. DWORD bIcQD : 1; // C相过流启动
  28. DWORD bIaxb : 1; // A相谐波闭锁启动
  29. DWORD bIbxb : 1; // B相谐波闭锁启动
  30. DWORD bIcxb : 1; // C相谐波闭锁启动
  31. DWORD bQD : 1; // 启动
  32. DWORD bGj : 1; // 告警
  33. DWORD bTz : 1; // 跳闸
  34. DWORD bXBbs : 1; // 谐波闭锁
  35. DWORD bBSCH : 1; // 闭锁重合
  36. DWORD bCYL : 1; // 曾有流
  37. DWORD bTripBak : 1; // 跳闸动作备份
  38. DWORD bTzhold : 1; // 暂时没使用
  39. DWORD bJSBC : 1; // 加速保持
  40. DWORD bDzLed : 1; // 动作灯
  41. DWORD bGjLed : 1; // 告警灯
  42. DWORD bQDWave : 1; // 幅值启动时,启动录波标志
  43. DWORD bddyQD : 1; // 低电压启动
  44. DWORD bGjEvent : 1; // 告警记录及led
  45. DWORD bTzEvent : 1; // 跳闸记录及led
  46. } bFlag;
  47. } UOCFLAG;
  48. /*------------------------------ 变量声明 -------------------------------------
  49. */
  50. enum
  51. {
  52. BH_GL1 = 0, // 过流1段
  53. BH_GL2, // 过流2段
  54. BH_GL3, // 过流3段
  55. BH_LX1, // 零序1段
  56. BH_LX2, // 零序2段
  57. BH_LX3, // 零序3段
  58. BH_GLJS, // 过流加速段
  59. BH_LXJS, // 零序加速段
  60. FA_GL, // FA相间故障I段
  61. FA_GL_II, // FA相间故障II段
  62. FA_LX, // FA零序故障
  63. FA_GL2, // FA相间告警
  64. FA_LX2, // FA零序告警
  65. FA_DLBS, // 大电流闭锁
  66. BH_DLBS, // 常规保护大电流闭锁
  67. BH_OVI_ZZ, // 电流重载
  68. BH_OVI_GZ, // 电流过载
  69. BH_OVI, // 电流越限
  70. BH_OVI0, // 零序电流越限
  71. BHOC_NUMBER
  72. };
  73. typedef struct TOC_T
  74. {
  75. UOCFLAG sta; // 动作标志字
  76. TIMERELAY tFz25ms; // 幅值启动25ms
  77. TIMERELAY tQDTime; // 时间继电器
  78. TIMERELAY tXBTime; // 谐波动作时间
  79. TIMERELAY tXBQD25ms; // 谐波启动25ms
  80. TIMERELAY tQD25ms; // 启动25ms,防干扰时间继电器,用于速断和零序加速,防止误出口
  81. #ifdef YX_RESET_TIME
  82. TIMERELAY tGjEvRstTime; // 故障遥信保持时间
  83. TIMERELAY tTzEvRstTime; // 告警遥信保持时间
  84. #endif
  85. } TOC_T;
  86. typedef struct YC_REFRESH_EN
  87. {
  88. DWORD bAGl : 1; // A相过流
  89. DWORD bBGl : 1; // B相过流
  90. DWORD bCGl : 1; // C相过流
  91. DWORD bABGl : 1; // AB相过流
  92. DWORD bBCGl : 1; // BC相过流
  93. DWORD bACGl : 1; // AC相过流
  94. DWORD bABCGl : 1; // ABC相过流
  95. DWORD bLx : 1; // 零流
  96. DWORD bFAGl : 1; // FA过流
  97. DWORD bFALx : 1; // FA零序过流
  98. } YC_REFRESH_EN;
  99. /*------------------------------ 函数声明 -------------------------------------
  100. */
  101. void Pro_OC(int sw, u32 dStep, int oc, int soe_no);
  102. void Pro_LX(int sw, u32 dStep, int oc, int soe_no);
  103. void Pro_Accheck(int sw, u32 dStep, int oc, int soe_no);
  104. void Pro_BSTZ(int sw, u32 dStep, int oc, int soe_no);
  105. void Pro_over_i(int sw, u32 dStep, int oc, int soe_no);
  106. void Pro_over_i2(int sw, u32 dStep); // 二次谐波
  107. void Pro_over_i0(int sw, u32 dStep, int oc, int soe_no);
  108. bool XBCalc(int sw, int index, DWORD xBcoe, bool bQD);
  109. int gl_soe_set_clr(u8 set_clr, int sw, u16 soe_no, u32 i_set, bool bfault);
  110. int gz_soe_set_clr(u8 set_clr, int sw, u16 soe_no, u32 i_set);
  111. #ifdef EV_GL_STATR
  112. void gl_start_soe_set(u8 set_clr, int sw, u16 soe_no);
  113. void lx_start_soe_set(u8 set_clr, int sw, u16 soe_no);
  114. #endif
  115. bool pro_check_bh_all(int sw);
  116. bool pro_check_gl_all(int sw);
  117. void pro_rst_event(int sw, int soe_no);
  118. bool CalDir_A(int sw, bool bQD, bool bInv);
  119. bool CalDir_B(int sw, bool bQD, bool bInv);
  120. bool CalDir_C(int sw, bool bQD, bool bInv);
  121. extern void xb_bs_soe(int sw, u32 dStep);
  122. #endif //_OC_H
  123. /*------------------------------ 文件结束 -------------------------------------
  124. */