⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9311fdr.h

📁 详细介绍了arm7-at91r40008,的开发全过程
💻 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 + -