/****************************************************************************** 版权所有: 文件名称: dcfactor.h 文件版本: 01.01 创建作者: sunxi 创建日期: 2013-05-20 功能说明: 内部运行状态 其它说明: 修改记录: */ #ifndef _RUN_STATUS_H #define _RUN_STATUS_H /*------------------------------- 头文件 -------------------------------------- */ /*------------------------------- 宏定义 -------------------------------------- */ // 遥控器4个按键 enum { RMT_A, RMT_B, RMT_C, RMT_D, RMT_NUM, }; // 遥控器4个按键对应的功能 // 解锁3秒内,按分闸实现分闸;解锁3秒内,按合闸实现合闸;单按复归实现复归 // 多键并存,按键无效 enum { RMT_KEY_FZ, // 分闸 RMT_KEY_ULK, // 解锁 RMT_KEY_FG, // 复归 RMT_KEY_HZ, // 合闸 RMT_KEY_NUM, }; // 遥控器相关命令 enum { CMD_NILL, CMD_HZ, // 合闸命令 CMD_FZ, // 分闸命令 CMD_FG, // 复归命令 CMD_PAIR, // 配对命令 CMD_CLRPAIR, // 清除配对命令 YK_CMD_NUM, }; //动作类型 enum { RY_DZ_NULL=0, //无动作 RY_DZ_XYBS, //X/Y闭锁合闸 RY_DZ_BHT, //保护跳 RY_DZ_BHGJ, //保护告警 RY_DZ_HZ, //FA合闸 RY_DZ_NUM, }; /*------------------------------ 类型结构 ------------------------------------- */ // 与内部状态开入状态结构体 struct di_stu { u32 pub_di; // 公共开入 u32 sw_di[SWITCH_NUM_MAX]; // 开关开入 }; // 内部状态结构体 struct run_stu { u8 yf; // 远方 u8 jd; //就地 u8 fg; // 复归 u8 js; // FA解锁按钮 u8 fg_js; //复归+解锁 u8 kz_out_tt; //控制出口 u8 rmtjs; // 遥控解锁 u8 button_on; // 复归按钮按下 #ifdef FUNC_ONLY_MMD_JS bool b_mmdjs; // 液晶解锁 #endif u32 dcjlsd; // 电池交流失电 u32 dcjlsd_t; // 电池交流失电,带延时定时器 u8 dcdygz; // 电池电源故障 u8 dcqy; // 电池欠压 u8 dchh; // 电池欠压 #if defined BATTERY_WITH_COMM && defined FUNC_SEL_BAT_MODULE u8 dcgygj; // 电池过压告警 u8 dclxgj; // 电池离线告警 u8 dcfzgj; // 电池反接告警 u8 dcbyjlsd; // 电池备用点交流失电 u8 dcrlgz; // 电池容量故障 #endif u8 pubdz; // 动作 u8 rmt_A; // 遥控器A u8 rmt_B; // 遥控器B u8 rmt_C; // 遥控器C u8 rmt_D; // 遥控器D u8 pt1yy; // PT1有压 u8 pt2yy; // PT2有压 u8 pt1cyy; // PT1曾有压 u8 pt2cyy; // PT2曾有压 u8 bToolRmtTest;// 维护工具测试 u8 bHmiRmtTest;// 维护工具测试 u8 bhall; // 保护投退 u8 bjx; // 装置检修额 u8 mb_yuk; //面板预控 u8 mb_hz; //面板分闸 u8 mb_fz; //面板合闸 u8 yxError; //遥信异常 #ifdef YX_DI_ERROR u8 yxEnable; //遥信使能,自检 #endif u32 cd; u8 led[CFG_UART_NUM_MAX*2+CFG_ETH_NUM_MAX]; }; // 内部状态结构体 typedef struct run_stu_sw { u8 sw; // 开关位置 u8 hw; // 开关合位 u8 tw; // 开关分位 u8 hw_change; u8 tw_change; u8 hzw; u8 tzw; u8 wcn; // 未储能 u8 gld; // 隔离刀闸 u8 jdd; // 接地刀闸 u8 qyd_bs; // 气压低闭锁 u8 qyd_gj; // 气压低告警 u8 pt1uf; // PT1瞬压 u8 pt2uf; // PT2瞬压 u8 sw_sh; // 手合 u8 sw_sf; // 手分 u8 bhztt; // 保护总投退 u8 jzs_tt; // 集中式投退 u8 cgbhtt; // 常规保护投退 u8 fatt; // fa功能跟投退 u8 fa_g_tt; // 智能 fa功能跟投退 u8 fa_ls; // 联络分段 u8 chzyb; // 重合闸 u8 fa_start_hz; // 对侧开关位置信号,对侧合位后,B侧有压才有效。用于启动fa来电合闸信号 u8 kgyf; u8 gl; // 保护过流 u8 jd; // 保护接地 u8 chzdz; // 重合闸动作 u8 chzcd; // 重合闸充电 u8 fa_ll_cd; // 联络充电 u8 goose_glcd; u8 goose_qccd; u8 goose_ll_cd; u8 gy; // 过压 u8 gj_led; u8 dz; // 保护动作 u8 bs; // 闭锁 u8 fgbs; // 智能分布式闭锁 u8 bsch; u8 XT; u8 YT; u8 lock; u8 exerr; // 外部异常 u8 pt1yy; // PT1有压 u8 pt2yy; // PT2有压 u8 kzdx; // 控制回路断线 开入信号 u8 chzbs; u8 bh_yx; // 常规保护遥信点 u8 fa_yx; // fa功能遥信点 u8 fa_g_yx; // 智能 fa功能遥信点 u8 gldz; // 隔离刀闸 u8 jddz; // 接地刀闸 } RUN_STU_SW; struct rmt_oprate { u8 key; u8 cmd; u8 stu; u8 step[RMT_KEY_NUM]; u8 key_en[RMT_KEY_NUM]; TIMERELAY tTULK3STime; // 解锁3s }; // 内部状态文件描述 struct instu { u8 type; //显示类型:16进制,10进制,2进制 s8 name[20]; //名称 u32 *fstdata; //对应的值 }; // 内部状态文件描述 struct instu_desc { u8 type; //显示类型:16进制,10进制,2进制 s8 name[20]; //名称 u8 reserved[11]; }; // 内部状态文件头,16bytes struct instu_file_head { u32 signature; //文件签名 u32 version; //文件版本 u32 reserved0; //保留0 u32 reserved1; //保留1 }; // 内部状态文件格式 struct instu_file_head_data { // 内部状态文件头 struct instu_file_head cfh; // 装置类型 u8 equ_sw_num; u8 equ_brd_num; char equ_name[14]; // 内部状态描述 u32 instu_addr; u32 instu_num; u32 Reserved[2]; }; typedef union USWST { DWORD wfFlag; struct { #ifdef CUSTOMIZE_BZT //备自投 WORD b1DLHW:1; //1DL合位 WORD b2DLHW:1; //2DL合位 WORD b3DLHW:1; //3DL合位 WORD bBZTBS:1; WORD bBZTSY:1; #endif DWORD bTZWZ:1; //重合闸用位置信号 DWORD bHZWZ:1; //重合闸用位置信号 DWORD bDIHW:1; //外部开入合位 DWORD bDITW:1; //外部开入跳位 DWORD bWCN:1; //未储能告警 DWORD bKZHL:1; DWORD bTWYL:1; //跳位有流告警 DWORD bSXWL:1; //三相无流 DWORD bSHJS:1; //手合加速 DWORD bSDJS:1; //上电加速 DWORD bFagLLJS:1; //智能分布式联络合闸,加速 DWORD bBSTZ:1; //闭锁跳闸 DWORD bCYY:1; //曾有压 DWORD bFAWL:1; //Fa无流 DWORD bIBSCHZ:1; //大电流闭锁重合闸 }bFlag; }USWST; typedef struct TSWST { USWST uSWST; TIMERELAY tTRunST_20s1s; TIMERELAY tSHz3s10ms; // 手合 TIMERELAY tSTz3s10ms; // 手跳 TIMERELAY tSf3s; // 手分保持3秒报 闭锁 TIMERELAY tTTWYL_10S1S; // 跳位有流 TIMERELAY tTWCNGJ1s; // 弹簧未储能 TIMERELAY tTKZHLGJ1s; // 控制回路 TIMERELAY tCTXXYC; // CT相序异常 TIMERELAY tCTYC; // CT断线 TIMERELAY tBatChk; // 电池异常 TIMERELAY tBatOver; // 电池过压 TIMERELAY tIBSCHZ; // 大电流闭锁重合闸 DWORD wfFlagsave; }TSWST; /*------------------------------ 变量声明 ------------------------------------- */ extern const int INSTU_NUM; extern struct run_stu g_run_stu; // 内部运行状态 extern struct rmt_oprate g_rmt_op; // 遥控器 extern struct instu g_instu_desc[]; extern TIMERELAY g_tJLSDTime; // 交流失电定时器 /*------------------------------ 函数声明 ------------------------------------- */ int run_status_init(void); int run_status_check(u32 dStep); int run_status_dz_all(void); int app_action_result(void); int rmt_key_init(void); #endif// //========================== 本文件结束 =============================