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

📄 ddj.h

📁 电动机保护测量程序,用的是DSP2407,
💻 H
📖 第 1 页 / 共 2 页
字号:
/* 变量及函数定义 */
/* 变量定义 */

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 + -