📄 ddj.h
字号:
/* 变量及函数定义 */
/* 变量定义 */
unsigned int ms_data,sec_data,min_data,hour_data,
mon_data,yd_data,year_data1,year_data2;
#define SUM_EVENT 29
#define Iar *(long int *)0x0D00
#define Iai *(long int *)0x0D02
#define Ibr *(long int *)0x0D04
#define Ibi *(long int *)0x0D06
#define Icr *(long int *)0x0D08
#define Ici *(long int *)0x0D0A
#define Uar *(long int *)0x0D10
#define Uai *(long int *)0x0D12
#define Ubr *(long int *)0x0D14
#define Ubi *(long int *)0x0D16
#define Ucr *(long int *)0x0D18
#define Uci *(long int *)0x0D1A
#define UamVal *(long int *)0x0D38
#define UbmVal *(long int *)0x0D3A
#define UcmVal *(long int *)0x0D3C
#define IamValF *(long int *)0x0D46
#define IamVblF *(long int *)0x0D48
#define IamVclF *(long int *)0x0D4A
#define IamVal *(unsigned long int *)0x0D4E
#define IbmVal *(unsigned long int *)0x0D50
#define IcmVal *(unsigned long int *)0x0D52
unsigned int lengthbak=0;
unsigned int adresult[16];
float IaZengYi,IbZengYi,IcZengYi;
long int UaZengYi,UbZengYi,UcZengYi;
int ptrcs=0,recordsamp=0,recordsampbak=0;
long int Iamfs=0,Ibmfs=0,Icmfs=0;
long int I0mfs=0;
long int fsxacounter=0,fsxbcounter=0,fsxccounter=0;
long int fsx0counter=0;
unsigned int CAP2_RESOLD1=0,CAP2_RES1=0;
unsigned int CAP2_OLD, CAP2_NEW, CAP2_RES=0,CAP2_RESOLD=0;
#define WaiWDT PDDATDIR ^= 0x0001 /*外部看门狗喂狗输出,主程序应确保200ms内翻转一次*/
unsigned int DSPRUN_FLAG=0;
#define ADDRAM_SHOUDIZHI *(int *)0x0800
#define ADDXRAM_SHOUDIZHI *(int *)0x0801
#define AD0DRAM_SHOUDIZHI *(int *)0x0800
#define AD0XDRAM_SHOUDIZHI *(int *)0x0801
#define AD0DRAM_MODIZHI *(int *)0x0818
#define AD1DRAM_SHOUDIZHI *(int *)0x0819
#define AD1XDRAM_SHOUDIZHI *(int *)(0x0801+25*1)
#define AD1DRAM_MODIZHI *(int *)(0x0818+25*1)
#define AD2DRAM_SHOUDIZHI *(int *)(0x0800+25*2)
#define AD2XDRAM_SHOUDIZHI *(int *)(0x0801+25*2)
#define AD2DRAM_MODIZHI *(int *)(0x0818+25*2)
#define AD3DRAM_SHOUDIZHI *(int *)(0x0800+25*3)
#define AD3XDRAM_SHOUDIZHI *(int *)(0x0801+25*3)
#define AD3DRAM_MODIZHI *(int *)(0x0818+25*3)
#define AD4DRAM_SHOUDIZHI *(int *)(0x0800+25*4)
#define AD4XDRAM_SHOUDIZHI *(int *)(0x0801+25*4)
#define AD4DRAM_MODIZHI *(int *)(0x0818+25*4)
#define AD5DRAM_SHOUDIZHI *(int *)(0x0800+25*5)
#define AD5XDRAM_SHOUDIZHI *(int *)(0x0801+25*5)
#define AD5DRAM_MODIZHI *(int *)(0x0818+25*5)
#define AD6DRAM_SHOUDIZHI *(int *)(0x0800+25*6)
#define AD6XDRAM_SHOUDIZHI *(int *)(0x0801+25*6)
#define AD6DRAM_MODIZHI *(int *)(0x0818+25*6)
#define AD7DRAM_SHOUDIZHI *(int *)(0x0800+25*7)
#define AD7XDRAM_SHOUDIZHI *(int *)(0x0801+25*7)
#define AD7DRAM_MODIZHI *(int *)(0x0818+25*7)
#define AD8DRAM_SHOUDIZHI *(int *)(0x0800+25*8)
#define AD8XDRAM_SHOUDIZHI *(int *)(0x0801+25*8)
#define AD8DRAM_MODIZHI *(int *)(0x0818+25*8)
#define AD9DRAM_SHOUDIZHI *(int *)(0x0800+25*9)
#define AD9XDRAM_SHOUDIZHI *(int *)(0x0801+25*9)
#define AD9DRAM_MODIZHI *(int *)(0x0818+25*9)
#define AD10DRAM_SHOUDIZHI *(int *)(0x0800+25*10)
#define AD10XDRAM_SHOUDIZHI *(int *)(0x0800+25*10)
#define AD10DRAM_MODIZHI *(int *)(0x0818+25*10)
int *ADDramDiZhi_pt[11]; /* AD数据存储地址指针 */
int *ADD1ramDiZhi_pt[11], *ADD2ramDiZhi_pt[11];
int Chz_num=0;
int baohu_num=0;
int ADjgpt_pt1=0,ADjgpt_pt2=0,ADjgpt_pt3=0,ADjgpt_pt4=0,ADjgpt_pt5=0,ADjgpt_pt6=0;
int ADjgpt_pt7=0,ADjgpt_pt8=0,ADjgpt_pt9=0,ADjgpt_pt10=0,ADjgpt_pt11=0;
//#define ADDRAMBUF_SIZE 407 /* AD数据存储区大小 0x2a0 YXY1118GAI*/
#define ADDRAMBUF_SIZE 275 /* AD数据存储区大小 0x2a0 YXY1118GAI*/
#define ADDBHRAMBUF_SIZE 1920 /* AD数据存储区大小 0x2a0 YXY1118GAI*/
int HJS_FLAG=0;
#define AD0BHRAM_SHOUDIZHI *(int *)0xE800
#define AD0BHRAM_MODIZHI *(int *)0xE8BF //0xE91f YXY1118GAI
#define AD1BHRAM_SHOUDIZHI *(int *)0xE8C0 //0xE920
#define AD1BHRAM_MODIZHI *(int *)(0xE8BF+192*1)
#define AD2BHRAM_SHOUDIZHI *(int *)(0xE800+192*2)
#define AD2BHRAM_MODIZHI *(int *)(0xE8BF+192*2)
#define AD3BHRAM_SHOUDIZHI *(int *)(0xE800+192*3)
#define AD3BHRAM_MODIZHI *(int *)(0xE8BF+192*3)
#define AD4BHRAM_SHOUDIZHI *(int *)(0xE800+192*4)
#define AD4BHRAM_MODIZHI *(int *)(0xE8BF+192*4)
#define AD5BHRAM_SHOUDIZHI *(int *)(0xE800+192*5)
#define AD5BHRAM_MODIZHI *(int *)(0xE8BF+192*5)
#define AD6BHRAM_SHOUDIZHI *(int *)(0xE800+192*6)
#define AD6BHRAM_MODIZHI *(int *)(0xE8BF+192*6)
#define AD7BHRAM_SHOUDIZHI *(int *)(0xE800+192*7)
#define AD7BHRAM_MODIZHI *(int *)(0xE8BF+192*7)
#define AD8BHRAM_SHOUDIZHI *(int *)(0xE800+192*8)
#define AD8BHRAM_MODIZHI *(int *)(0xE8BF+192*8)
#define AD9BHRAM_SHOUDIZHI *(int *)(0xE800+192*9)
#define AD9BHRAM_MODIZHI *(int *)(0xE8BF+192*9)
#define AD10BHRAM_SHOUDIZHI *(int *)(0xE800+192*10)
#define AD10BHRAM_MODIZHI *(int *)(0xE8BF+192*10)
int *ADDBHramDiZhi_pt[11]; /* AD滤波数据存储地址指针 */
unsigned int KaiRu_ZhuangTai; /* 开入实时状态 */
/*读写保护定值所需的变量 yxy */
/*写保护定值用到的缓冲区*/
unsigned int DingZhi_SHOUDIZHI;
unsigned int DingZhi_zuhao;
#define YAOTIAO_SH0UDIZHI *(int *)(0x8000) /* 开辟从8000到8600个内存缓冲区(2048)个字节,用来存上位机发来的定值信号*/
#define BAOHU0_SH0UDIZHI *(int *)(0x8100)
#define BAOHU1_SH0UDIZHI *(int *)(0x8200)
#define BAOHU2_SH0UDIZHI *(int *)(0x8300)
#define BAOHU3_SH0UDIZHI *(int *)(0x8400)
#define BAOHU4_SH0UDIZHI *(int *)(0x8500)
#define DUDINGZHI_TEMP *(int *)(0x8600)/* 读保护定值用到的临时缓冲取 */
#define LouJi_SH0UDIZHI *(int *)(0x8700)//用来保存逻辑标记。
#define CSNA *(int *)(0x0980)
#define SSNA *(int *)(0x09a0)
unsigned int ChuShiDingZhi_flag,ChuShiYaotiao_flag;
unsigned int YaoTiaoDZValid_flag=0;
unsigned int YTsum,BaoHuDingZhi_sum;
unsigned int DingZhiValid_flag1, DingZhiValid_flag2,DingZhiValid_flag3,DingZhiValid_flag4,DingZhiValid_flag5;
unsigned int DingZhiError_flag=0;
unsigned int ADDR; //通讯站号
unsigned int SBBIAOHAO; //设备编号
unsigned int TXSULV; //通讯速率
unsigned int DZTAOHAO; //定值套号
unsigned int AXDLJIAOZHENG[3]; //A相电流校正
unsigned int BXDLJIAOZHENG[3]; //B相电流校正
unsigned int CXDLJIAOZHENG[3]; //C相电流校正
unsigned int Invers_Coef1[36]={1003,881,793,726,673,630,595,565,540,517,498,481,465,452,439,428,404,384,367,353,340,330,320,312,304,297,275,258,246,235,227,220,213,208,203,199};
unsigned int Invers_Coef2[36]={2667,2083,1681,1389,1170,1000,866,758,669,595,533,481,436,397,363,333,274,229,194,167,145,127,112,100,90,81,56,41,31,25,20,17,14,12,10,9};
unsigned int Invers_Coef3[36]={2667,2083,1681,1389,1170,1000,866,758,669,595,533,481,436,397,363,333,274,229,194,167,145,127,112,100,90,81,56,41,31,25,20,17,14,12,10,9};
unsigned int Invers_Coef4[36]={6764,5098,3976,3182,2599,2159,1819,1551,1335,1160,1016,896,795,709,637,574,450,361,295,245,206,175,150,130,114,100,63,43,31,23,18,14,11,9,8,6};
unsigned int Calculate_InversTime(unsigned long int multiple,unsigned int value);
/*
o标准反时限SIT
t=(0.14/((i/Ib)^0.02-1))*Tp
o非常反时限VIT或LTI
t=(13.5/((i/Ib)-1))*Tp
o极端反时限EIT
t=(80/((i/Ib)^2-1))*Tp
o超反时限UIT
t=(315/((i/Ib)^2.5-1))*Tp
******************************************************************************************************************************************
Tp=1.0s
反时限特征值
单位:秒
I/Ib 标准反时限 非常反时限 极端反时限 超反时限 I/Ib 标准反时限 非常反时限 极端反时限 超反时限
2.0 10.03 13.50 26.67 67.64 6.5 3.67 2.45 1.94 2.95
2.2 8.81 11.25 20.83 50.89 7.0 3.53 2.25 1.67 2.45
2.4 7.93 9.64 16.81 39.76 7.5 3.40 2.08 1.45 2.06
2.6 7.26 8.44 13.89 31.82 8.0 3.30 1.93 1.27 1.75
2.8 6.73 7.50 11.70 25.99 8.5 3.20 1.80 1.12 1.50
3.0 6.30 6.75 10.00 21.59 9.0 3.12 1.69 1.00 1.30
3.2 5.95 6.14 8.66 18.19 9.5 3.04 1.59 0.90 1.14
3.4 5.65 5.63 7.58 15.51 10.0 2.97 1.50 0.81 1.00
3.6 5.40 5.19 6.69 13.35 12.0 2.75 1.23 0.56 0.63
3.8 5.17 4.82 5.95 11.60 14.0 2.58 1.04 0.41 0.43
4.0 4.98 4.50 5.38 10.16 16.0 2.46 0.90 0.31 0.31
4.2 4.81 4.22 4.81 8.96 18.0 2.35 0.79 0.25 0.23
4.4 4.65 3.97 4.36 7.95 20.0 2.27 0.71 0.20 0.18
4.6 4.52 3.75 3.97 7.09 22.0 2.20 0.64 0.17 0.14
4.8 4.39 3.55 3.63 6.37 24.0 2.13 0.59 0.14 0.11
5.0 4.28 3.38 3.33 5.74 26.0 2.08 0.54 0.12 0.09
5.5 4.04 3.00 2.74 4.50 28.0 2.03 0.50 0.10 0.08
6.0 3.84 2.70 2.29 3.61 30.0 1.99 0.47 0.09 0.06
*****************************************************************************************************************************************
*/
int csa[24]={1024,989,887,724,512,265,0,-265,-512,-724,-887,-989,-1024,
-989,-887,-724,-512,-265,0,265,512,724,887,989};
int snb[24]={0,265,512,724,887,989,1024,989,887,724,512,265,
0,-265,-511,-724,-886,-989,-1024,-989,-887,-724,-512,-265};
int FBJDKG_flag=0; /* 分布就地控制标志 */
int YFJZKG_flag=0; /* 远方集中控制标志 */
int qdb=0;
int acc=0;
int fsxIaYsd_flag,fsxIbYsd_flag,fsxIcYsd_flag;
int fsxI0Ysd_flag;
int IaSd_flag,IbSd_flag,IcSd_flag;
int SdQiDong_flag=0; /* 速断启动标志 */
int IaYSd_flag,IbYSd_flag,IcYSd_flag;
int YSdQiDong_flag=0; /* 延时速断启动标志 */
int IaDSd_flag,IbDSd_flag,IcDSd_flag;
int DSdQiDong_flag=0;
int fsxIaDsd_flag=0,fsxIbDsd_flag,fsxIcDsd_flag;
int fsxDsd_flag=0;
int FSdQiDong_flag=0;
int fsxQD_flag=0,fsx_flag=0,fsxI0_flag=0; /* 反时限启动标志lgc0507 */
int I0Sd_flag,I0YSd_flag,I0GSd_flag;
int LXSdQiDong_flag,LXYSdQiDong_flag,LXDSdQiDong_flag;
int fsxI0Dsd_flag,XFSdQiDong_flag,fsxI0QD_flag;
int QDflaga=0,QDflagb=0,QDflagc=0,QDflag0=0,YXZQDflag=0;
long int QDtimera=0,QDtimerb=0,QDtimerc=0,QDtimer0=0;
int DingZhiXGflag=0;
int DownLoadDingZhiXGflag=0;
int SdTz_flag=0;
int YSdTz_flag=0;
int DSdTz_flag=0;
int FSdTz_flag=0;
int LXSdTz_flag=0;
int LXYSdTz_flag=0;
int LXGSdTz_flag=0;
int LXFSdTz_flag=0;
int CHZCounter=0;
int GZTZ_flag=0;
int JDQ_HeFen_flag=0;
int JDQ_DONGZUO_flag=0x5555;
unsigned int ZongZhao_frame=14;
int ZongZhao_flag=0x5555;
int dzchenggong_flag=0x5555;
void BaohuSuanFaLJ();
void YouXiaoZhiJS(void); /* 有效值计算 */
void BaoHuChuKouLJ(void); /* 保护出口逻辑 */
void FSXBaoHu(unsigned int value);
void LXFSXBaoHu();
void YouXiaoZhiJSy(void); /* 有效值计算 */
int KGHeFen_BianWei=0; /* 开关合到分变位标志 */
int ChzQiDong_flag=0; /* 重合闸启动标志 */
int ChzQiDong_YunXu=0; /* 重合闸启动允许标志 */
int ChzBiSuo_flag=0; /* 重合闸闭锁允许标志 */
int ChzHz_flag=0; /* 重合闸合闸标志 */
int HjsTz_flag=0; /* 合后跳闸标志 */
int XieSOE_flag=0; /* 写事故顺序记录标志 */
int GZJCQiDong_flag=0;
int baohu_flag=0;
/* 保护压板 */
unsigned int GLSD_YaBan=0; /* 速断保护投退压板 */
unsigned int GLYSD_YaBan=0; /* 延时速断保护投退压板 */
unsigned int DLIIDFYS_YaBan=0;
unsigned int FSXXZ_YaBan=0; /* 反时限曲线选择压板*/
unsigned int QY_YaBan=0; //
unsigned int GY_YaBan=0;
unsigned int SXDLB_YaBan=0;
unsigned int SXDYB_YaBan=0;
/* 保护定值 */
unsigned int BHYanBan1; /* 保护压板控制字1 */
unsigned int BHYanBanF1;
unsigned long int DLSDHDingZhi; /* 速断保护电流定值 */
unsigned long int DLYSDHDingZhi; /* 延时速断保护电流定值 */
unsigned long int DLSDSDingZhi; /* 速断保护时间定值 */
unsigned long int DLYSDSDingZhi; /* 延时速断保护时间定值 */
unsigned int GLFSXCSDingZhi; /* 反时限过流常数曲线选择 */
unsigned long int FHZShuChu_MaiKuan; /* 分合闸输出脉冲宽度时间定值 */
/* 平方值 */
unsigned long int XDLYXQDDingZhi2; /* 相电流有效值启动定值 */
unsigned long int DLSDHDingZhi2; // 过流I段电流定值的平方
unsigned long int DLSDTDingZhi2; // 过流I段时间定值
unsigned long int DLYSDHDingZhi2; // 延时速断电流定值的平方
unsigned long int DLYSDTDingZhi2; // 延时速断时间定值
unsigned long int DLDSDHDingZhi2; // 定时限过流保护电流定值的平方
unsigned long int GLFSXJZDingZhi2; // 反时限过流基准电流值的平方
unsigned long int QYDYHDingZhi2; //欠压电压定值的平方
unsigned long int QYDYTDingZhi2; //欠压时间定值
unsigned long int GYDYHDingZhi2; //过压电压定值的平方
unsigned long int GYDYTDingZhi2; //过压时间定值
unsigned long int SXDLBHDingZhi2; //三相电流不平衡度
unsigned long int SXDLBTDingZhi2; //三相电流不平衡时间
unsigned long int SXDYBHDingZhi2; //三相电压不平衡度
unsigned long int SXDYBTDingZhi2; //三相电压不平衡时间
/* 返回值 */
unsigned long int DLSDHFanHuiZhi; /* 速断保护电流返回值 */
unsigned long int DLYSDHFanHuiZhi; /* 延时速断保护电流返回值 */
unsigned long int DLDSDHFanHuiZhi; /* 定时限过流保护电流返回值 */
unsigned long int LXSDHFanHuiZhi; /* 零序速断保护电流返回值 */
unsigned long int LXYSDHFanHuiZhi; /* 延时零序速断保护电流返回值 */
unsigned long int LXGSDHFanHuiZhi; /* 定时限零序保护电流返回值 */
unsigned long int GLFSXMDingZhi1; /* 反时限过电流中间定值1 */
unsigned long int GLFSXMDingZhi2; /* 反时限过电流中间定值2 */
unsigned long int GLDLFHDingZhi; /* 反时限过流保护返回电流定值1 */
unsigned long int GLDLFHDingZhi2; /* 反时限过流保护返回电流定值2 */
unsigned long int LXFSXMDingZhi1; /* 零序反时限过电流中间定值1 */
unsigned long int LXFSXMDingZhi2; /* 零序反时限过电流中间定值2 */
unsigned long int LXDLFHDingZhi1; /* 零序反时限过流保护返回电流定值1 */
unsigned long int LXDLFHDingZhi2; /* 零序反时限过流保护返回电流定值2 */
unsigned long int GLDLQDDingZhip; /* 反时限过流保护启动电流定值的平方 */
unsigned long int LXDLQDDingZhip; /* 反时限零序过流保护启动电流定值的平方 */
unsigned long int FSdYanShi_time; /* 反时限过流保护定时器lgc0507 */
unsigned long int FSdYanShi_oldtime;
unsigned long int LXGSdYanShi_time; /* 定时限零序过流保护定时器lgc0507 */
unsigned long int YSdYanShi_time; /* 延时速断保护定时器 */
unsigned long int DSdYanShi_time; /* 定时限过流保护定时器 */
unsigned long int LXYSdYanShi_time; /* 延时零序速断保护定时器 */
unsigned long int LXGSdYanShi_time; /* 定时限零序过流保护定时器 */
unsigned long int LXFSdYanShi_time; /* 零序反时限过流保护定时器 */
unsigned long int GZGLShi_timer1; /* 故障隔离时间定时器1 */
unsigned long int GZGLShi_timer2; /* 故障隔离时间定时器2 */
unsigned long int GZGLShi_timer3; /* 故障隔离时间定时器3 */
unsigned long int ChzYanShi_time; /* 重合闸时间定时器*/
unsigned long int ChzBiSuo_time; /* 重合闸闭锁定时器 */
unsigned long int HjsYouXiao_time; /* 后加速允许时间定时器 */
unsigned long int HjsYs_time; /* 后加速延时时间定时器 */
unsigned long int MaiKuantimer=0;
unsigned long int CKMaiKuantimer=0;
/* 开入量 */
int FSXMflag=0;
int LXFSXMflag=0;
/* 函数定义 */
void HeFenCaoZuo(void);
void delaythree(void);
void DingZhiCRC(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -