?? smart.h
字號:
/* 變量及函數(shù)定義 */
/* 變量定義 */
#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數(shù)據(jù)存儲地址指針 */
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數(shù)據(jù)存儲區(qū)大小 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濾波數(shù)據(jù)存儲地址指針 */
unsigned int KaiRu_ZhuangTai; /* 開入實(shí)時狀態(tài) */
/*讀寫保護(hù)定值所需的變量 yxy */
/*寫保護(hù)定值用到的緩沖區(qū)*/
unsigned int DingZhi_SHOUDIZHI;
unsigned int DingZhi_zuhao;
#define YAOTIAO_SH0UDIZHI *(int *)(0x8000) /* 開辟從8000到8600個內(nèi)存緩沖區(qū)(2048)個字節(jié),用來存上位機(jī)發(fā)來的定值信號*/
#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)/* 讀保護(hù)定值用到的臨時緩沖取 */
#define LouJi_SH0UDIZHI *(int *)(0x8700)//用來保存邏輯標(biāo)記。
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; /* 設(shè)備編號 */
unsigned long int TXSULV; /* 通訊速率 */
unsigned long int DZTAOHAO; /*定值套號 */
unsigned long int CTBIANBI; /*定值套號 */
unsigned long int PTBIANBI; /* PT變比 */
unsigned long int XWBCSHEZHI1; /* 相位補(bǔ)償區(qū)域設(shè)置1 */
unsigned long int XWBCSHEZHI2; /* 相位補(bǔ)償區(qū)域設(shè)置2*/
unsigned long int XWBCSHEZHI3; /* 相位補(bǔ)償區(qū)域設(shè)置3*/
unsigned long int XWBCSHEZHI4; /* 相位補(bǔ)償區(qū)域設(shè)置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; /* 分布就地控制標(biāo)志 */
int YFJZKG_flag=0; /* 遠(yuǎn)方集中控制標(biāo)志 */
//故障邏輯過程函數(shù)及變量
void CKLJ(); /*電壓時間型和電壓電流時間型處理控制邏輯*/
void GZGLKG(); /*故障隔離開關(guān)*/
void GZJCSuanFaLJ(); /*故障檢測算法邏輯*/
//int KaiGuan1HZOne_flag=0; /*合閘一次檢測--1有效*/
int KaiGuan1HZover_flag=0;
int KaiGuan1FZover_flag=0;
int ADDfirstFW_flag=0; /*開關(guān)分位,A側(cè)首次帶電標(biāo)記--1有效*/
int BDDfirstFW_flag=0; /*開關(guān)分位,B側(cè)首次帶電標(biāo)記--1有效*/
int ABDDfirstHW_flag=0; /*開關(guān)合位,首次帶電標(biāo)記--1有效*/
int DD_flag=0x000;
int ABiSuo_flag=0; /*A 向閉鎖標(biāo)記--1有效*/
int BBiSuo_flag=0; /*B 向閉鎖標(biāo)記--1有效*/
int LLqd_flag=0; /*聯(lián)絡(luò)允許--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; /* 速斷啟動標(biāo)志 */
int IaYSd_flag,IbYSd_flag,IcYSd_flag;
int YSdQiDong_flag=0; /* 延時速斷啟動標(biāo)志 */
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; /* 反時限啟動標(biāo)志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); /* 有效值計(jì)算 */
void BaoHuChuKouLJ(void); /* 保護(hù)出口邏輯 */
void FSXBaoHu(unsigned int value);
void LXFSXBaoHu();
void YouXiaoZhiJSy(void); /* 有效值計(jì)算 */
int KGHeFen_BianWei=0; /* 開關(guān)合到分變位標(biāo)志 */
int ChzQiDong_flag=0; /* 重合閘啟動標(biāo)志 */
int ChzQiDong_YunXu=0; /* 重合閘啟動允許標(biāo)志 */
int ChzBiSuo_flag=0; /* 重合閘閉鎖允許標(biāo)志 */
int ChzHz_flag=0; /* 重合閘合閘標(biāo)志 */
int HjsTz_flag=0; /* 合后跳閘標(biāo)志 */
int XieSOE_flag=0; /* 寫事故順序記錄標(biāo)志 */
int GZJCQiDong_flag=0;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -