📄 smart.h
字号:
/* 变量及函数定义 */
/* 变量定义 */
#define SUM_EVENT 26
#define pi 3.1415926
unsigned int lengthbak=0;
unsigned int adresult[16];
long int Iar,Ibr,Icr,I0r,Uar,Ubr,Ucr,U0r;
long int Iai,Ibi,Ici,I0i,Uai,Ubi,Uci,U0i;
//long int Iarp,Ibrp,Icrp,I0rp,Ua1rp,Ub1rp,Uc1rp,Ua2rp,Ub2rp,Uc2rp,U02rp;
//long int Iaip,Ibip,Icip,I0ip,Ua1ip,Ub1ip,Uc1ip,Ua2ip,Ub2ip,Uc2ip,U02ip;
float IaZengYi,IbZengYi,IcZengYi,I0ZengYi;
long int UaZengYi,UbZengYi,UcZengYi,U0ZengYi;
float IamVal,IbmVal,IcmVal,I0mVal;
long int UamVal,UbmVal,UcmVal,U0mVal; /* 平方后的有效值 */
long int IamValF,IbmValF,IcmValF,I0mValF;
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;
unsigned int DSPRUN_FLAG=0;
#define ADDRAM_SHOUDIZHI *(int *)0xE000
#define ADDXRAM_SHOUDIZHI *(int *)0xE001
#define AD0DRAM_SHOUDIZHI *(int *)0xE000
#define AD0XDRAM_SHOUDIZHI *(int *)0xE001
#define AD0DRAM_MODIZHI *(int *)0xE018
#define AD1DRAM_SHOUDIZHI *(int *)0xE019
#define AD1XDRAM_SHOUDIZHI *(int *)(0xE001+25*1)
#define AD1DRAM_MODIZHI *(int *)(0xE018+25*1)
#define AD2DRAM_SHOUDIZHI *(int *)(0xE000+25*2)
#define AD2XDRAM_SHOUDIZHI *(int *)(0xE001+25*2)
#define AD2DRAM_MODIZHI *(int *)(0xE018+25*2)
#define AD3DRAM_SHOUDIZHI *(int *)(0xE000+25*3)
#define AD3XDRAM_SHOUDIZHI *(int *)(0xE001+25*3)
#define AD3DRAM_MODIZHI *(int *)(0xE018+25*3)
#define AD4DRAM_SHOUDIZHI *(int *)(0xE000+25*4)
#define AD4XDRAM_SHOUDIZHI *(int *)(0xE001+25*4)
#define AD4DRAM_MODIZHI *(int *)(0xE018+25*4)
#define AD5DRAM_SHOUDIZHI *(int *)(0xE000+25*5)
#define AD5XDRAM_SHOUDIZHI *(int *)(0xE001+25*5)
#define AD5DRAM_MODIZHI *(int *)(0xE018+25*5)
#define AD6DRAM_SHOUDIZHI *(int *)(0xE000+25*6)
#define AD6XDRAM_SHOUDIZHI *(int *)(0xE001+25*6)
#define AD6DRAM_MODIZHI *(int *)(0xE018+25*6)
#define AD7DRAM_SHOUDIZHI *(int *)(0xE000+25*7)
#define AD7XDRAM_SHOUDIZHI *(int *)(0xE001+25*7)
#define AD7DRAM_MODIZHI *(int *)(0xE018+25*7)
#define AD8DRAM_SHOUDIZHI *(int *)(0xE000+25*8)
#define AD8XDRAM_SHOUDIZHI *(int *)(0xE001+25*8)
#define AD8DRAM_MODIZHI *(int *)(0xE018+25*8)
#define AD9DRAM_SHOUDIZHI *(int *)(0xE000+25*9)
#define AD9XDRAM_SHOUDIZHI *(int *)(0xE001+25*9)
#define AD9DRAM_MODIZHI *(int *)(0xE018+25*9)
#define AD10DRAM_SHOUDIZHI *(int *)(0xE000+25*10)
#define AD10XDRAM_SHOUDIZHI *(int *)(0xE000+25*10)
#define AD10DRAM_MODIZHI *(int *)(0xE018+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 */
int HJS_FLAG=0;
#define AD0BHRAM_SHOUDIZHI *(int *)0xE800
#define AD0BHRAM_MODIZHI *(int *)0xE920
#define AD1BHRAM_SHOUDIZHI *(int *)0xE921
#define AD1BHRAM_MODIZHI *(int *)(0xE920+288*1)
#define AD2BHRAM_SHOUDIZHI *(int *)(0xE800+288*2)
#define AD2BHRAM_MODIZHI *(int *)(0xE920+288*2)
#define AD3BHRAM_SHOUDIZHI *(int *)(0xE800+288*3)
#define AD3BHRAM_MODIZHI *(int *)(0xE920+288*3)
#define AD4BHRAM_SHOUDIZHI *(int *)(0xE800+288*4)
#define AD4BHRAM_MODIZHI *(int *)(0xE920+288*4)
#define AD5BHRAM_SHOUDIZHI *(int *)(0xE800+288*5)
#define AD5BHRAM_MODIZHI *(int *)(0xE920+288*5)
#define AD6BHRAM_SHOUDIZHI *(int *)(0xE800+288*6)
#define AD6BHRAM_MODIZHI *(int *)(0xE920+288*6)
#define AD7BHRAM_SHOUDIZHI *(int *)(0xE800+288*7)
#define AD7BHRAM_MODIZHI *(int *)(0xE920+288*7)
#define AD8BHRAM_SHOUDIZHI *(int *)(0xE800+288*8)
#define AD8BHRAM_MODIZHI *(int *)(0xE920+288*8)
#define AD9BHRAM_SHOUDIZHI *(int *)(0xE800+288*9)
#define AD9BHRAM_MODIZHI *(int *)(0xE920+288*9)
#define AD10BHRAM_SHOUDIZHI *(int *)(0xE800+288*10)
#define AD10BHRAM_MODIZHI *(int *)(0xE920+288*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)//用来保存逻辑标记。
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 long int ADDR; /* 通讯站号 */
unsigned long int SBBIAOHAO; /* 设备编号 */
unsigned long int TXSULV; /* 通讯速率 */
unsigned long int DZTAOHAO; /*定值套号 */
unsigned long int CTBIANBI; /*定值套号 */
unsigned long int PTBIANBI; /* PT变比 */
unsigned long int XWBCSHEZHI1; /* 相位补偿区域设置1 */
unsigned long int XWBCSHEZHI2; /* 相位补偿区域设置2*/
unsigned long int XWBCSHEZHI3; /* 相位补偿区域设置3*/
unsigned long int XWBCSHEZHI4; /* 相位补偿区域设置4 */
unsigned long int AXGLZENGYI0; /* A相功率增益0*/
unsigned long int BXGLZENGYI0; /* B相功率增益0*/
unsigned long int CXGLZENGYI0; /* C相功率增益0*/
unsigned long int AXGLZENGYI1; /* A相功率增益1*/
unsigned long int BXGLZENGYI1; /* B相功率增益1 */
unsigned long int CXGLZENGYI1; /* C相功率增益1*/
unsigned long int AXDYJIAOZHENG; /* A相电压校正 */
unsigned long int BXDYJIAOZHENG; /* B相电压校正 */
unsigned long int CXDYJIAOZHENG; /* C相电压校正 */
unsigned long int AXDLJIAOZHENG; /*A相电流校正*/
unsigned long int BXDLJIAOZHENG; /* B相电流校正 */
unsigned long int CXDLJIAOZHENG; /* 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);
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 csa[24]={32768,31651,28378,23170,16384,8481,0,-8481,-16384,-23170,-28378,-31651,-32768,
// -31651,-28378,-23170,-16384,-8481,0,8481,16384,23170,28378,31651};
//int snb[24]={0,8481,16384,23170,28378,31651,32768,31651,28378,23170,16384,8481,0,-8481,-16384,-23170,-28378,-31651,-32768,
// -31651,-28378,-23170,-16384,-8481};
//long int csa[24]={65536,63303,56756,46341,32768,16962,0,-16962,-32768,-46341,
//-56756,-63303,-65536,-63303,-56756,-46341,-32768,-16962,0,16962,32768,
//46341,56756,63303};/*cos与sin的值*65536*/
//long int snb[24]={0,16962,32768,46341,56756,63303,65536,63303,56756,46341,
//32768,16962,0,-16962,-32768,-46341,-56756,-63303,-65536,-63303,-56756,-46341,
//-32768,-16962};/*cos与sin的值*65536*/
//long int cs[24][2]={
//63303,16962,
//56756,32768,
//46341,46341,
//32768,56756,
//16962,63303,
//0,65536,
//-16962,63303,
//-32768,56756,
//-46341,46341,
//-56756,32768,
//-63303,16962,
//-65536,0,
//-63303,-16962,
//-56756,-32768,
//-46341,-46341,
//-32768,-56756,
//-16962,-63303,
//0,-65536,
//16962,-63303,
//32768,-56756,
//46341,-46341,
//56756,-32768,
//63303,-16962,
//65536,0,
//};/*cos与sin的值*65536*/
int FBJDKG_flag=0; /* 分布就地控制标志 */
int YFJZKG_flag=0; /* 远方集中控制标志 */
//故障逻辑过程函数及变量
void CKLJ(); /*电压时间型和电压电流时间型处理控制逻辑*/
void GZGLKG(); /*故障隔离开关*/
void GZJCSuanFaLJ(); /*故障检测算法逻辑*/
//int KaiGuan1HZOne_flag=0; /*合闸一次检测--1有效*/
int KaiGuan1HZover_flag=0;
int KaiGuan1FZover_flag=0;
int ADDfirstFW_flag=0; /*开关分位,A侧首次带电标记--1有效*/
int BDDfirstFW_flag=0; /*开关分位,B侧首次带电标记--1有效*/
int ABDDfirstHW_flag=0; /*开关合位,首次带电标记--1有效*/
int DD_flag=0x000;
int ABiSuo_flag=0; /*A 向闭锁标记--1有效*/
int BBiSuo_flag=0; /*B 向闭锁标记--1有效*/
int LLqd_flag=0; /*联络允许--1有效*/
long int T1_timer=0; /*逻辑T1时限--T1*/
long int T2_timer=0; /*逻辑T2时限--T2*/
long int T21_timer=0;
long int T22_timer=0;
long int T3_timer=0; /*逻辑T3时限--T3*/
long int YYtimer=0; /*瞬时加压--38(150ms)*/
//long int GZGLMaiKuantimer=0; /*故障隔离继电器脉冲宽度*/
int step_flag=0;
int YYtimerqd_flag=0;
int T1_timerqd_flag=0;
//int GZGLMaiKuantimerqd_flag=0;
int T2_timer_flag=0;
int T3_timerqd_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;
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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -