📄 9311fdr.h
字号:
/*------------------------------------------------------------------*/
/*模块名称:9311fdr.h */
/*模块功能:电压型馈线故障检测 */
/*编写日期:2005年9月 */
/*编写者: dingding */
/*------------------------------------------------------------------*/
#ifndef DF9311FDR_H
#define DF9311FDR_H
/*------------------------------------------------------------------*/
/*--------------------------FDR常量定义-----------------------------*/
/*------------------------------------------------------------------*/
#define FDRCRC (1) //pre10ms 故障检测周期
//参数默认设置
#define LOWULIMIT 3000 //失压限值(伏),额定电压的30%
#define FDRYCNUM 2 //Uab, Ucb
#define SWYKNO 1 //开关遥控号
#define SWLOCNO 2 //开关闭锁遥控号
#define YXLOCALNO 2 //当地/远方遥信号
#define YXRELAYNO 3 //遥控中间继电器遥信号
#define YXLOCNO 4 //闭锁继电器遥信号
#define YTIME 500 //(10ms)
#define ZTIME 100 //(10ms)
#define ITIME 15 //(10ms)
#define HZFAILTIME 130 //(10ms)
#define ITIMESUM (100 / FDRCRC) //(10ms)
#define FDRRESETTIME (120 / FDRCRC) //(1s)
//参数输入定义
#define FFDRDIR 0x01 //是否启动方向检测
#define FFDRDIRACT 0x02 //默认电源侧顺投(Uab)
#define FFDRSWTYPE 0x0C //开关类型,占两位
#define FDRTCOMM 0x00 //00:分段开关
#define FDRTCONCT 0x04 //01:联络开关
#define FDRTBRANCH 0x08 //10:分支开关(暂不使用)
#define FDRTOTHER 0x0C //11:未用
#define FDRTIMEBITS 0x3F //D0~D5工作时间倍数
#define FDRMODEBITS 0xC0 //D6~D7工作模式
#define FDRMODE1 0x07
#define FDRMODE2 0x0A
#define FDRMODE3 0x0E
#define FDRMODE4 0x14
//标志定义
#define FDRENABLE 0x8000 //馈线检测有效
//FDR运行状态
#define RS_NORMAL 0x00 //正常
#define RS_CRITICAL 0x01 //失压
#define RS_XTIME 0x02 //X时限内
#define RS_YTIME 0x03 //Y时限内
#define RS_LOC 0x04 //闭锁
//FDR故障类型
#define FDR_F 0x80
#define FDR_Y 0x01
#define FDR_X 0x02
#define FDR_D 0x04
#define FDR_A 0x08
#define FDR_E 0x10
#define FDR_H 0x20
//输出信息定义
#define FAENBLE 0x00
#define FATRIP 0x01
#define FARECLOSE 0x02
#define FAFAULTD 0x03
#define FAAFOREVER 0x04
#define FABFOREVER 0x05
#define FACFOREVER 0x06
#define FAOFOREVER 0x07
#define FAAINSTANT 0x08
#define FABINSTANT 0x09
#define FACINSTANT 0x0A
#define FAOINSTANT 0x0B
/*------------------------------------------------------------------*/
/*---------------------------数据结构定义---------------------------*/
/*------------------------------------------------------------------*/
struct FdrFeeder_t{
INT16U Flag;
INT16U Mode;
INT16U XTime;
INT16U YTime;
INT16U ZTime;
INT16U ITime;
INT16U HZFAILTime;
INT8U SwYXNo;
INT8U SwYKNo;
INT8U SwLocNo;
INT8U YKLocNo;
// INT16U YCInNo;
// INT16U YCOutNo;
INT32U LowULimit;
};
struct FDRFaultInfo_t{ //故障信息
INT16U Type;
INT16U BakType; //为复位故障时使用
INT16U TmpType;
INT16U ResetCounter; //故障信号持续时间计数器
struct AbsTime_t Time;
};
struct FdrRunInfo_t{
INT8U State;
INT8U PreState;
BOOL Temp;
BOOL FlagLoc;
INT8U SwYXVal;
INT8U SwRelayVal;
INT8U SwLocVal;
INT8U COSFlag;
INT16U Timer[5];
struct FDRFaultInfo_t FaultInfo; //纪录故障信息
};
struct YKDelayMem{
BOOL Flag;
BOOL ON_OFF;
INT8U No;
};
struct YcResult{
BOOL FIn;
BOOL FOut;
};
/*------------------------------------------------------------------*/
/*----------------------------函数声明------------------------------*/
/*------------------------------------------------------------------*/
void FdrTask(struct SysPort *Info);
BOOL FdrInit(void);
BOOL FdrInitRunInfo(void);
BOOL FdrRenewYx(void);
void FdrReadYc(void);
void FdrSwitchDo(INT8U No, BOOL ON_OFF);
BOOL FdrDetectLow(INT16U FDIndex, struct YcResult *Rc);
void FdrDetect(void);
void FdrDetectYX(void);
void FDRStateChange(WORD FDIndex, WORD State);
void FDRWriteInfo(INT16U FDIndex);
void FDRResetInfo(INT16U FDIndex);
INT16U FDRGetSoftBINo(INT16U *FaultType);
INT8U FDRTestValid(INT16U FDIndex, INT8U Status);
extern INT32U MyPow(INT32U x, INT32U y);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -