| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838 |
- /******************************************************************************
- 版权所有:
- 文件名称: switch.h
- 文件版本: 01.01
- 创建作者: sunxi
- 创建日期: 2013-04-15
- 功能说明: DTU核心处理程序以开关为单位,循环处理。
- 其它说明:
- 修改记录:
- */
- #ifndef _SWITCH_H
- #define _SWITCH_H
- /*------------------------------- 头文件 --------------------------------------
- */
- #include "fft.h"
- /*------------------------------- 宏定义 --------------------------------------
- */
- #define INDEX_INVALLID (-1)
- #define DC_BOARD_150V 1
- #define CFG_NAME_LEN 16
- #ifdef DC_BOARD_150V
- #define DC_AJUST_0 20.0
- #define DC_AJUST_1 100.0
- #else
- #define DC_AJUST_0 10.0
- #define DC_AJUST_1 50.0
- #endif
- /*------------------------------ 类型结构 -------------------------------------
- */
- enum
- {
- SW_DI_TYPE_00 = 0,
- SW_DI_TYPE_OFF,
- SW_DI_TYPE_ON,
- SW_DI_TYPE_11
- };
- enum
- {
- SW_DO_TYPE_OFF = 0,
- SW_DO_TYPE_ON,
- SW_DO_TYPE_SELECT_OFF,
- SW_DO_TYPE_SELECT_ON
- };
- enum
- {
- SW_DI_KRHW = 0, // 合位 1
- SW_DI_KRTW, // 分位
- SW_DI_WCN, // 弹簧未储能
- SW_DI_YCN, // 弹簧已储能
- SW_DI_GLDZ_HW, // 隔离刀合位
- SW_DI_GLDZ_FW, // 隔离刀分位
- SW_DI_JDDZ_HW, // 接地刀合位
- SW_DI_JDDZ_FW, // 接地刀分位
- SW_DI_QYD_GJ, // SF6气压低告警
- SW_DI_QYD_BS, // SF6气压低闭锁 10
- SW_DI_BHZTT, // 自动化投入
- SW_DI_BHTT, // 常规保护
- SW_DI_JZS_TT, // 集中式
- SW_DI_CHZ, // 重合闸投入
- SW_DI_BSCH, // 重合闸停用
- SW_DI_FA_TT, // 馈线自动化
- SW_DI_FA_GOOSE, // 智能分布式
- SW_DI_FA_BS_TT, // 就地FA闭锁
- SW_DI_FA_LS, // 联络/分段模式
- SW_DI_YYXH, // 带电显示器有压
- SW_DI_YB_FZ, // 分闸出口压板状态 20
- SW_DI_YB_HZ, // 合闸出口压板状态
- SW_DI_SH, // 手动合闸
- SW_DI_SF, // 手动分闸
- SW_DI_DRIVE_ERR, // 驱动器异常
- SW_DI_YJCY_A, // 母线侧硬件残压
- SW_DI_YJCY_B, // 线路侧硬件残压
- SW_DI_KZDX, // 控制回路断线
- SW_DI_HZHLJS, // 合闸回路监视
- SW_DI_FZHLJS, // 分闸回路监视
- SW_DI_TZWZ, // 跳闸位置 30
- SW_DI_HZWZ, // 合闸位置
- SW_DI_PT1SY, // 电源侧瞬压
- SW_DI_PT2SY, // 负荷侧瞬压
- SW_DI_KGYF, // 开关远方
- SW_DI_IMP1, // 脉冲计数1
- SW_DI_IMP2, // 脉冲计数2
- #ifdef DO_KOUT_CHECK
- SW_DI_KOCHK, // 开出自检
- #else
- SW_DI_26,
- #endif
- #ifdef CUSTOMIZE_BZT // 备自投
- SW_DI_BZT, // 备自投
- SW_DI_DL1_HW, // #1进线合位
- SW_DI_DL1_TW, // 1进线分位
- SW_DI_DL2_HW, // 2进线合位
- SW_DI_DL2_TW, // 2进线分位
- SW_DI_DL3_HW, // 备自投-合位
- SW_DI_DL3_TW, // 备自投-分位
- SW_DI_BSBZT, // 闭锁备自投
- SW_DI_BZT_SY, // 备自投-失压分闸
- #endif
- SW_DI_NUM
- };
- #define SW_DI_NUM_ALL (SW_DI_NUM + EV_SW_NUM)
- enum
- {
- SW_DO_HZ = 0, // 合闸
- SW_DO_FZ, // 分闸
- SW_DO_BHH,
- SW_DO_BHT,
- SW_DO_YKH,
- SW_DO_YKT,
- SW_RST_SY, //瞬压复归
- SW_RST_SY1, //瞬压复归
- SW_FBT_SY, //瞬压闭锁
- SW_DO_CN, //储能信号//SW_DO_11,
- SW_DO_BHDZ,
- SW_DO_TQBS,
- #ifdef CUSTOMIZE_BZT //备自投
- SW_DO_DL1_HZ,
- SW_DO_DL1_FZ,
- SW_DO_DL2_HZ,
- SW_DO_DL2_FZ,
- SW_DO_FD_HZ, //备自投-分段合闸
- SW_DO_FD_FZ, //备自投-分段分闸
- SW_DO_JX1_SY, //备自投-进线1失压分闸
- SW_DO_JX2_SY, //备自投-进线2失压分闸
- #endif
- #if defined SW_FAIL_SINGLE_OUT
- SW_DO_UNSTUCK_SINGLE,
- #endif
- SW_DO_NUM
- };
- // 开关类LED类型
- enum
- {
- SW_LED_HW = 0, // 合位灯
- SW_LED_TW, // 跳位灯
- SW_LED_WCN, // 未储能灯
- SW_LED_GL, // 过流灯
- SW_LED_JD, // 接地灯
- SW_LED_MODE_BH, // 常规保护灯
- SW_LED_MODE_FA, // 就地FA灯
- SW_LED_MODE_JZFA, // 集中FA灯
- SW_LED_MODE_GOOSE, // 分布式灯
- SW_LED_CHZ, // 重合闸灯
- SW_LED_CHZ_CD, // 重合闸充电灯(之前的充电灯包含联络和分布式的充电状态,非单独的重合闸充电灯)
- SW_LED_TZ, // 跳闸灯
- SW_LED_FAULT_GJ, // 故障告警灯
- SW_LED_LOCK, // 闭锁灯
- SW_LED_DZ, // 动作灯
- SW_LED_CHZBS, // 重合闸闭锁灯
- SW_LED_CHZBS_LOCK, // 重合闸闭锁灯+FA闭锁合闸
- SW_LED_DRIVE, // 开关传动灯
- SW_LED_LL, // 联络
- SW_LED_FD, // 分段
- SW_LED_CD, // 充电灯(包含重合闸、联络和分布式的充电)
- SW_LED_GLDZ, // 隔离刀闸灯
- SW_LED_JDDZ, // 接地刀闸灯
- #if !defined CPU_FUXI
- SW_LED_ZHHW, // 综合合位灯,以一个灯代表双点灯
- SW_LED_ZHTW, // 综合合位灯,以一个灯代表双点灯
- SW_LED_XT, // XT灯
- SW_LED_YT, // YT灯
- SW_LED_X_YT,
- SW_LED_ZDJL, // 自动解列功能,
- SW_LED_TYBHTT, // 停用保护及FA,
- SW_LED_TYZDJL, // 停用自动解列,
- #endif
- SW_LED_NUM
- };
- #define SW_DO_LED_NUM (SW_DO_NUM + SW_LED_NUM)
- enum
- {
- SW_AC_IA = 0, // IA
- SW_AC_IB, // IB
- SW_AC_IC, // IC
- SW_AC_I0, // I0
- #ifdef SW_AC_I0S_SAMPLE
- SW_AC_I0s,
- #endif
- SW_AC_CIA , // 测量IA
- SW_AC_CIB, // 测量IB
- SW_AC_CIC, // 测量IC
- SW_AC_NUM
- };
- enum
- {
- SW_AC_IN_P= SW_AC_NUM,
- SW_AC_IN_Pa,
- SW_AC_IN_Pb,
- SW_AC_IN_Pc,
- SW_AC_IN_Q,
- SW_AC_IN_Qa,
- SW_AC_IN_Qb,
- SW_AC_IN_Qc,
- #ifdef FUN_YC_POWER_S
- SW_AC_IN_S,
- #endif
- SW_AC_IN_COS,
- SW_AC_IN_BI_UNBALANCE,// 电流不平衡度
- SW_AC_IN_CI_UNBALANCE,// 电流不平衡度
- SW_AC_IN_IMP1,
- SW_AC_IN_IMP2,
- SW_AC_IN_SET_BEGIN,
- SW_AC_IN_SET2,
- SW_AC_IN_SET3,
- SW_AC_IN_SET4,
- SW_AC_IN_SET5,
- SW_AC_IN_SET6,
- SW_AC_IN_SET7,
- SW_AC_IN_SET8,
- SW_AC_IN_SET9,
- SW_AC_IN_SET10,
- SW_AC_IN_SET11,
- SW_AC_IN_SET_END,
- #ifdef METERING_ENERGY
- SW_AC_IN_XS_UAB,
- SW_AC_IN_XS_UBC,
- SW_AC_IN_XS_UCA,
- SW_AC_IN_XS_UA,
- SW_AC_IN_XS_UB,
- SW_AC_IN_XS_UC,
- SW_AC_IN_XS_IA,
- SW_AC_IN_XS_IB,
- SW_AC_IN_XS_IC,
- SW_AC_IN_XS_I0,
- SW_AC_IN_XS_P,
- SW_AC_IN_XS_PA,
- SW_AC_IN_XS_PB,
- SW_AC_IN_XS_PC,
- SW_AC_IN_XS_Q,
- SW_AC_IN_XS_QA,
- SW_AC_IN_XS_QB,
- SW_AC_IN_XS_QC,
- SW_AC_IN_XS_S,
- SW_AC_IN_XS_SA,
- SW_AC_IN_XS_SB,
- SW_AC_IN_XS_SC,
- SW_AC_IN_XS_COS,
- SW_AC_IN_XS_COSA,
- SW_AC_IN_XS_COSB,
- SW_AC_IN_XS_COSC,
- SW_AC_IN_XS_FREQ,
- #else
- SW_AC_IN_YC1,
- SW_AC_IN_YC2,
- SW_AC_IN_YC3,
- SW_AC_IN_YC4,
- SW_AC_IN_YC5,
- SW_AC_IN_YC6,
- SW_AC_IN_YC7,
- SW_AC_IN_YC8,
- SW_AC_IN_YC9,
- SW_AC_IN_YC10,
- SW_AC_IN_YC11,
- SW_AC_IN_YC12,
- #endif
- SW_AC_NUM_ALL
- };
- #ifdef SW_AC_I0S_SAMPLE
- #define SW_AC_MENU_NUM (SW_AC_IN_IMP2) // 开关测量值在菜单中显示数目
- #else
- #define SW_AC_MENU_NUM (SW_AC_IN_IMP2+1) // 开关测量值在菜单中显示数目
- #endif
- enum
- {
- SW_DD_NOW1=0,
- SW_DD_NOW2,
- SW_DD_NOW3,
- SW_DD_NOW4,
- SW_DD_NOW5,
- SW_DD_NOW6,
- SW_DD_NOW7,
- SW_DD_NOW8,
- SW_DD_15M1,
- SW_DD_15M2,
- SW_DD_15M3,
- SW_DD_15M4,
- SW_DD_15M5,
- SW_DD_15M6,
- SW_DD_15M7,
- SW_DD_15M8,
- SW_DD_DAY1,
- SW_DD_DAY2,
- SW_DD_DAY3,
- SW_DD_DAY4,
- SW_DD_DAY5,
- SW_DD_DAY6,
- SW_DD_DAY7,
- SW_DD_DAY8,
- SW_DD_CHA1,
- SW_DD_CHA2,
- SW_DD_CHA3,
- SW_DD_CHA4,
- SW_DD_CHA5,
- SW_DD_CHA6,
- SW_DD_CHA7,
- SW_DD_CHA8,
- #ifdef METERING_ENERGY
- SW_DD_EPA,
- SW_DD_EPB,
- SW_DD_EPC,
- SW_DD_EPAP,
- SW_DD_EPBP,
- SW_DD_EPCP,
- SW_DD_EPAN,
- SW_DD_EPBN,
- SW_DD_EPCN,
- SW_DD_EP,
- SW_DD_EQ,
- #endif
- SW_DD_NUM_ALL,
- };
- enum
- {
- PUB_DI_YF = 0, // 远方
- PUB_DI_JD, // 就地
- PUB_DI_JX, // 检修状态投入
- PUB_DI_GMDK, // 柜门打开
- PUB_DI_RST, // 复归信号
- PUB_DI_DCJLSD, // 交流失电
- PUB_DI_DCHHZT, // 电池活化状态
- PUB_DI_DCQY, // 电池欠压
- PUB_DI_DCDYGZ, // 电源模块故障
- PUB_DI_CAP, // 电容器动作
- PUB_DI_ZLDYQY, // 直流电源欠压
- PUB_DI_NZYC, // 内阻异常
- PUB_DI_JS, // FA解锁
- PUB_DI_REBOOT, // 装置复位
- PUB_DI_BHALL, // 功能总压板
- PUB_DI_RST_JS, // 信号复归+FA解锁
- PUB_DI_FDL1, // 非电量1
- PUB_DI_FDL2, // 非电量2
- PUB_DI_FDL3, // 非电量3
- PUB_DI_FDL4, // 非电量4
- PUB_DI_FDL5, // 非电量5
- PUB_DI_FDL6, // 非电量6
- PUB_DI_1,
- PUB_DI_2,
- PUB_DI_3,
- PUB_DI_4,
- PUB_DI_5,
- PUB_DI_6,
- #ifdef YX_DI_ERROR
- PUB_DI_ERROR, // 遥信自检
- #else
- PUB_DI_7,
- #endif
- #ifdef KZ_OUT_TT
- PUB_KZ_OUT_TT, // 控制出口压板
- #else
- PUB_DI_8,
- #endif
- PUB_DI_NUM
- };
- #define PUB_DI_NUM_ALL (PUB_DI_NUM + EV_PUB_NUM)
- enum
- {
- PUB_DO_DCHH = 0,// 电池活化
- PUB_DO_HHTC, // 活化退出
- PUB_DO_03,
- PUB_DO_04,
- PUB_DO_05,
- PUB_DO_06,
- PUB_DO_07,
- PUB_DO_08,
- PUB_DO_09,
- PUB_QUA_CLR,
- PUB_DO_YK, //预控
- PUB_DO_JS, // 解除闭锁
- PUB_DO_RESTART, // 远方重启
- PUB_DO_RST, // 远方复归
- #ifdef YK_FG_FAJS
- PUB_DO_RST_FAJS, // 远方复归+FA解锁
- #endif
- PUB_CHYB_HZ, // 虚遥控,重合闸压板
- PUB_CHYB_FZ, // 虚遥控,分闸压板
- #if defined BHFA_YB_YK
- PUB_BHYB_HZ, // 虚遥控,分闸压板
- PUB_BHYB_FZ, // 虚遥控,分闸压板
- PUB_KZYB_HZ, // 虚遥控,控制出口合闸压板(线路保护投停&&保护投入软压板)
- PUB_KZYB_FZ, // 虚遥控,控制出口分闸压板(线路保护投停&&保护投入软压板)
- PUB_BHYBTT_HZ, // 虚遥控,常规保护投退合闸压板(线路保护投停&&保护投入软压板)
- PUB_BHYBTT_FZ, // 虚遥控,常规保护投退分闸压板(线路保护投停&&保护投入软压板)
- PUB_FAYBTT_HZ, // 虚遥控,FA保护投退合闸压板(线路保护投停&&保护投入软压板)
- PUB_FAYBTT_FZ, // 虚遥控,FA保护投退分闸压板(线路保护投停&&保护投入软压板)
- PUB_GOOSEYBTT_HZ, // 虚遥控,goose保护投退合闸压板(线路保护投停&&保护投入软压板)
- PUB_GOOSEYBTT_FZ, // 虚遥控,goose保护投退分闸压板(线路保护投停&&保护投入软压板)
- #else
- PUB_BHYB_HZ, // 虚遥控,分闸压板
- PUB_BHYB_FZ, // 虚遥控,分闸压板
- PUB_KZYB_HZ, // 虚遥控,控制出口合闸压板(线路保护投停&&保护投入软压板)
- PUB_KZYB_FZ, // 虚遥控,控制出口分闸压板(线路保护投停&&保护投入软压板)
- #endif
- PUB_TQ_YB_HZ, //虚遥控,同期合闸软压板
- PUB_TQ_YB_FZ, //虚遥控,同期合闸软压板
- PUB_JZS_YB_HZ, //虚遥控,集中式软压板
- PUB_JZS_YB_FZ, //虚遥控,集中式软压板
- #ifdef YK_SOFT_YB
- PUB_YK_YB_HZ, //虚遥控,遥控软压板
- PUB_YK_YB_FZ, //虚遥控,遥控软压板
- #endif
- #ifdef YK_FA_ENBLE
- PUB_YK_BS_FA_HZ, // FA遥控闭锁-合,
- PUB_YK_BS_FA_FZ, // FA遥控闭锁-分,
- #endif
- #ifdef YK_FA_S_L_ENBLE
- PUB_YK_FA_S_L_HZ, // 分段/联络-合,
- PUB_YK_FA_S_L_FZ, // 分段/联络-分,
- #endif
- PUB_JL_YB_HZ, //虚遥控,自动解列软压板
- PUB_JL_YB_FZ, //虚遥控,自动解列软压板
- #ifdef METERING_ENERGY
- PUB_DD_CLR, // 虚遥控,电度清零
- PUB_LLSOE_CLR, // 虚遥控,线损事件清零
- #endif
- #ifdef FUNC_DRIVE
- PUB_DRIVE_YB_ON, //不停电传动软压板投入
- PUB_DRIVE_YB_OFF, //不停电传动软压板退出
- PUB_DRIVE_HZ, //不停电传动指令
- #endif
- #ifdef FUNC_DRIVE_JY
- PUB_UNSTOP_V_DRI_HZ, //不停电传动功能
- #endif
- #ifdef FUNC_RESET_EQU
- PUB_RESET_EQU, //重启装置
- #endif
- PUB_DO_NUM,
- };
- // 公共类LED类型
- enum
- {
- PUB_LED_POWER = 0, // 电源灯
- PUB_LED_RUN, // 运行灯
- PUB_LED_COMM, // 通信灯
- PUB_LED_COMM_STATUS,// 通信状态灯
- PUB_LED_BAT, // 电池灯
- PUB_LED_ERR, // 异常灯
- #if defined GD_AREA_ECZD_2020
- PUB_LED_RUN_GJ, // 运行告警,PT断线、气压低、GOOSE通信异常
- #endif
- PUB_LED_DZ, // 动作灯,例如电压类动作
- PUB_LED_YF, // 远方灯
- PUB_LED_JD, // 就地灯
- PUB_LED_SP1,// 串口
- PUB_LED_SP2,
- PUB_LED_SP3,
- PUB_LED_SP4,
- PUB_LED_NET1,// 网口
- PUB_LED_NET2,
- PUB_LED_NET3,
- PUB_LED_JL_ERR,// 级联异常
- PUB_LED_JG_1,// 间隔通信
- PUB_LED_JG_2,
- PUB_LED_JG_3,
- PUB_LED_JG_4,
- PUB_LED_JG_5,
- PUB_LED_JG_6,
- PUB_LED_IEC_ERR, //规约通信异常灯,
- #ifdef KZ_OUT_TT
- PUB_LED_KZ_OUT,
- #endif
- PUB_LED_NUM,
- };
- #define PUB_DO_LED_NUM (PUB_DO_NUM + PUB_LED_NUM)
- enum
- {
- PUB_AC_UA1 = 0,
- PUB_AC_UB1,
- PUB_AC_UC1,
- PUB_AC_UAB1,
- PUB_AC_UBC1,
- PUB_AC_UCA1,
- PUB_AC_U01,
- PUB_AC_US1,
- PUB_AC_UA2,
- PUB_AC_UB2,
- PUB_AC_UC2,
- PUB_AC_UAB2,
- PUB_AC_UBC2,
- PUB_AC_UCA2,
- PUB_AC_U02,
- PUB_AC_US2,
- PUB_AC_NUM
- };
- enum
- {
- PUB_AC_IN_V_UNBALANCE1 = PUB_AC_NUM,// 电压组1不平衡度
- PUB_AC_IN_V_UNBALANCE2,// 电压组2不平衡度
- PUB_AC_IN_F1,
- PUB_AC_IN_F2,
- PUB_AC_IN_UZ1,
- PUB_AC_IN_UZ2,
- PUB_AC_IN_DLTUAB,
- PUB_AC_IN_DLTUBC,
- PUB_AC_IN_DLTUCA,
- PUB_AC_IN_ARGUAB,
- PUB_AC_IN_ARGUBC,
- PUB_AC_IN_ARGUCA,
- PUB_AC_IN_TEMP,
- #ifdef TMP_CHIP_AHT20
- PUB_AC_IN_HUMI,
- #endif
- PUB_AC_IN_VER,
- #ifdef BATTERY_WITH_COMM
- PUB_AC_BATT_ACT_T_MAX, // 电池活化最大放电时长
- PUB_AC_BATT_ACT_T_NOW, // 电池活化当前放电时长
- #endif
- #ifdef DEV_GPS_ATGM332D
- #ifndef GPS_JWD_SPLIT
- PUB_AC_GPS_LONGITUDE,
- PUB_AC_GPS_LATITUDE,
- #else
- PUB_AC_GPS_LONGITUDE_D,
- PUB_AC_GPS_LONGITUDE_M,
- PUB_AC_GPS_LONGITUDE_S,
- PUB_AC_GPS_LATITUDE_D,
- PUB_AC_GPS_LATITUDE_M,
- PUB_AC_GPS_LATITUDE_S,
- #endif
- PUB_AC_GPS_NUM_SV, // 卫星个数
- #endif
- PUB_AC_YC1,
- PUB_AC_YC2,
- PUB_AC_YC3,
- PUB_AC_YC4,
- PUB_AC_YC5,
- PUB_AC_YC6,
- PUB_AC_YC7,
- PUB_AC_YC8,
- PUB_AC_YC9,
- PUB_AC_YC10,
- PUB_AC_YC11,
- PUB_AC_YC12,
- #ifdef BATTERY_BP_L500
- PUB_AC_BATT_R, //电池内阻
- PUB_AC_BATT_TEMP, //电池温度
- PUB_AC_BATT_RT_POWER, //电池实时电量
- PUB_AC_BATT_DISCHARGE_CURRENT, //电池放电电流
- PUB_AC_BATT_RECHARGE_CURRENT, //电池充电电流
- #endif
- PUB_AC_NUM_ALL
- };
- #define PUB_AC_IN_UDC PUB_AC_IN_UZ1
- #define UI_NUM (PUB_AC_NUM+SW_AC_NUM*SWITCH_NUM_MAX)
- #define PUB_AC_MENU_NUM (PUB_AC_IN_TEMP+1) // 公共测量值在菜单中显示数目
- #define MEA_MENU_MAX (SW_AC_MENU_NUM+PUB_AC_MENU_NUM)
- // g_ui使用的和开关对应的索引
- #define UI_SW_INDEX_BEGIN(sw) (PUB_AC_NUM + (sw)*SW_AC_NUM)
- #define UI_SW_INDEX(sw,sw_index) (PUB_AC_NUM + (sw)*SW_AC_NUM + (sw_index))
- #define UI_FLAGS_MAKE_LV1 0X0001 // 线电压1自产
- #define UI_FLAGS_MAKE_LV2 0X0002 // 线电压2自产
- #define UI_FLAGS_MAKE_I0 0X0004 // I0自产
- #define UI_FLAGS_MAKE_IB 0X0008 // IB自产
- #define UI_FLAGS_3M 0X0010 // 3表法
- #define UI_FLAGS_MAKE_UCA1 0X0020 // 线电压UCA1自产
- #define UI_FLAGS_MAKE_UCA2 0X0040 // 线电压UCA2自产
- #define UI_FLAGS_MAKE_U01 0X0080 // 线电压UCA2自产
- #define UI_FLAGS_MAKE_U02 0X0100 // 线电压UCA2自产
- #define UI_FLAGS_MAKE_CIB 0X0200 //测量 IB自产
- /*------------------------------ 类型结构 -------------------------------------
- */
- struct mea_desc
- {
- char * name;
- u8 unit;
- u8 unit_angle;
- };
- struct dd_v
- {
- float fv;
- struct rtc_time_t ct;
- bool bchanged;
- };
- struct sw
- {
- u32 ui_flags;
- // 测量值
- qs16 ac_in[SW_AC_NUM_ALL];
- u8 link_qds[SW_AC_NUM_ALL];
- qs16 ac_in_buf[SW_AC_NUM_ALL];
- float ac_in_acc[SW_AC_NUM_ALL];
- // 电度
- struct dd_v dd[SW_DD_NUM_ALL];
- // 遥信值
- u8 di[SW_DI_NUM+EV_SW_NUM];
- //最大最小值
- u32 m2_min;
- u32 m2_max;
- u32 fz_min;
- u32 fz_max;
-
- // 配置索引
- u16 di_cfg_index[SW_DI_NUM];
- u16 do_cfg_index[SW_DO_NUM];
- u16 ac_cfg_index[SW_AC_NUM];
- u16 led_cfg_index[SW_LED_NUM];
- };
- struct sw_t
- {
- // 过流标识
- u32 overI_flags[3];
- // 方向
- u32 dir_flags[3];
- // 测量值
- qs16 ac_in[3];
- float ac_in_acc[3];
- };
- struct sw_public
- {
- u32 ui_flags;
-
- // 测量值
- qs16 ac_in[PUB_AC_NUM_ALL];
- qs16 ac_in_buf[PUB_AC_NUM_ALL];
- float ac_in_acc[PUB_AC_NUM_ALL];
- // 遥信值
- u8 di[PUB_DI_NUM+EV_PUB_END-EV_PUB_START];
- //最大最小值
- u32 m2_min[4];
- u32 m2_max[4];
- u32 fz_min[2];
- u32 fz_max[2];
-
- // 配置索引
- u16 di_cfg_index[PUB_DI_NUM];
- u16 do_cfg_index[PUB_DO_NUM];
- u16 ac_cfg_index[PUB_AC_NUM];
- u16 led_cfg_index[PUB_LED_NUM];
- u32 vol_qua_run_time[2]; //电压合格率 统计运行时间
- u32 vol_qua_ok_time[2]; //电压合格率 统计合格时间
- bool bclearqua;
- };
- struct ui
- {
- int chn_index; // 实际的ADC通道,如果没有则为CFG_ADC_CHANNEL_ZERO
- int ui_base_make; // 合成UI的基础ui索引
-
- // 保护值
- struct ri_s32 ri;
- u32 m2[CFG_ADC_DOTS_PER_PERIOD/2]; // 模值的平方
- // qs08 m2_factor; // 幅值自动校准后的修正系数/幅值的理论变换系数
- qs08 m2_factor_k; // 幅值的理论变换系数
- #ifdef PROTECT_AC_ADJUST
- int m2_factor_c; // 幅值自动校准后的修正系数
- #else
- qs16 m2_factor_c; // 幅值自动校准后的修正系数
- #endif
- struct rt_stat m2_stat;
- u32 fz; //辐值
- //测量谐波
- complex h[CFG_ADC_DOTS_PER_PERIOD/2]; // 谐波
-
- // 测量有效值
- qu16 e; // 有效值
- float e_acc; // 有效值累加值
- float e_factor0; // 幅值自动校准后的修正系数/幅值的理论变换系数(不带温度补偿)
- float e_factor; // 幅值自动校准后的修正系数/幅值的理论变换系数
- float e_ps; //一二次变比
- struct rt_stat e_stat;
- //测量相角
- qs16 p; // 相角
- qs16 p_acc; // 相角累加值
- float p_factor; // 相角的理论变换系数 + 相角自动校准后的修正系数
- int p_mark; // 角度标志,0:没有初始化;1:角度在1、4象限;-1:角度在2、3象限.
- struct rt_stat p_stat;
- // 测量PQ
- float pq_factor[2];
- // 通道名称
- char name[CFG_NAME_LEN];
- };
- struct ui_jy
- {
- struct ri_s32 ri;
- u32 m2; // 模值的平方
- };
- //正序,负序及零序
- //电压,电流的实部和虚部
- struct ui120
- {
- DWORD vect1; //正序分量幅值平方
- DWORD vect2; //负序分量幅值平方
- };
- struct ui_p0 //零序功率计算
- {
- float p; //零序有功功率
- float q; //零序无功功率
- float ps; //零序有功功率
- float qs; //零序无功功率
- float Pea; //零序有功功率积分
- float Per; //零序无功功率积分
- float Peas; //零序有功功率积分
- float Pers; //零序无功功率积分
- };
- extern int g_harmonic_num;
- extern float g_harmonic_factor[CFG_ADC_DOTS_PER_PERIOD/2];
- extern int g_sw_init;
- extern struct ui g_ui[UI_NUM];
- extern int g_prot_index; // 保护计算时,采样通道中采样点的索引
- extern struct ui_jy g_ui_jy[3];
- extern struct ui_p0 g_ui_p0[SWITCH_NUM_MAX]; //零序功率
- extern struct sw_public g_sw_pub;
- extern struct sw g_sw[];
- extern struct sw_t g_sw_temp[];
- extern struct ui120 Us1_120,Us2_120;
- extern const s8 * g_sw_di_name[];
- extern const s8 * g_sw_do_name[];
- extern const s8 * g_sw_led_name[];
- extern const struct mea_desc g_sw_ac_desc[];
- extern const s8 * g_pub_di_name[];
- extern const s8 * g_pub_do_name[];
- extern const s8 * g_pub_led_name[];
- extern const struct mea_desc g_pub_ac_desc[];
- extern const struct mea_desc g_dd_desc[];
- /*------------------------------ 函数声明 -------------------------------------
- */
- int sw_init(void);
- int sw_exit(void);
- int sw_di_set(u32 sw,u32 no,u8 v);
- int sw_di_get(u32 sw,u32 no);
- int sw_do_yuk(int type);
- int sw_do(u32 sw,u32 index,int type);
- int sw_do_pub(u32 index,int type);
- float sw_v_m2_factor_k(int id);
- float _sw_p2( float Ur, float Ui,float Ir, float Ii, float k1, float k2);
- float _sw_q2( float Ur, float Ui,float Ir, float Ii, float k1, float k2);
- void sw_cal_protect(void); //计算全周故障量
- int sw_cal_app(void);
- int sw_auto_adjust(int ui_angle0);
- int sw_adjust_dc_0(void);
- int sw_adjust_dc_1(void);
- int sw_stat_reset(void);
- int sw_pub_printf(void);
- int sw_pub_printf_v(void);
- int sw_printf(void);
- int sw_printf_v(void);
- int sw_ui_printf(void);
- int sw_ui_printf_e(void);
- int sw_ui_printf_m(void);
- int sw_ui_printf_p(void);
- int sw_get_chnl_ps(int index,bool prim);
- int sw_ext_init(void);
-
- void _sw_cal_Xfl120( int ui_index, struct ui120 *pII);
- #endif //_SWITCH_H
- /*------------------------------ 文件结束 -------------------------------------
- */
|