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

📄 datadef.h

📁 此源代码为电力系统中的RTU终端反馈!具有GPRS通讯功能!
💻 H
字号:

//************************************//
//******* ***全局数据定义***************//
//***********************************//

#ifndef _DATADEF_H
#define _DATADEF_H
#define  SOFTVERSION   114   //软件版本号
#define  TRUE   1
#define  FALSE  0
#define  ULIMIT    10   //电压死区
#define  POFFVALUE    800   //停电电压判断
#define I_THRESHOLD_HIGH    1900
#define I_THRESHOLD_LOW     1300
#define YM_CONST     200  //脉冲常数
#define    MAXDD  4      //电度量个数      
#define    YMBIT  (BIT2+BIT1)      

typedef unsigned long       DWORD;
typedef int                 BOOL;
typedef unsigned char       BYTE;
typedef unsigned short      WORD;
typedef unsigned int        UINT;  

#define    PUHIGHV           0x80          //电压上限
#define    PLOAD0           (PUHIGHV+2)
#define    PYKSELECTTIME    (PLOAD0+2)

#define    PULOWV    (PYKSELECTTIME+2)     //电压下限
#define    PIHIGHI   (PULOWV+1)      
#define    PPTRATE   (PIHIGHI +1)         
#define    PNINTERVASLOFSAVE   (PPTRATE+1)
#define    PADDROFTTU     (PNINTERVASLOFSAVE+1)   
#define    PBAUDS0    (PADDROFTTU+1)     //波特率0
#define    PUNBLU    (PBAUDS0+1)   
#define    PBAUDS1   (PUNBLU+1)          //波特率1
#define    PUNBLI    (PBAUDS1+1)          

#define   PKV_A     (PUNBLI+1)           // 电压变比
#define   PKV_B     (PKV_A+2)            //
#define   PKV_C     (PKV_B+2 )           //
#define   PKI_A0    (PKV_C+2)        //电流变比MODE0
#define   PKI_B0    (PKI_A0+2)         
#define   PKI_C0    (PKI_B0+2)   


#define   PYKE_TIME    (PKI_C0 + 2)         //遥控执行时间
#define   PPWM_SET     (PYKE_TIME + 1)      //发送帧间隔
#define   PTTU_C_PARM  (PPWM_SET + 1)       //控制参数,清历史数据及统计数据
#define   PVSOFT       (PTTU_C_PARM + 1)    //版本号,电流MODE0或MODE1选择

#define   PKI_A1    (PVSOFT+1)             //电流变比MODE1
#define   PKI_B1    (PKI_A1+2)             //
#define   PKI_C1      (PKI_B1+2)           //
#define   PASS_WORD   (PKI_C1+2)    
#define   CHECK_PARAM  (PASS_WORD+3)     //校验参数

#define   PVPOWERB     (PASS_WORD + 6)  
#define   PVPOWEREND   (PVPOWERB+24)

//统计数据页内地址宏定义
#define   PMONTH                    0   //月
#define   PDATE                     1   //日
#define   PYCOVERLIMIT             (PDATE+1)//遥测越限  2+64
#define   PVALUE_TIME              (PYCOVERLIMIT+64)//极值 2+64+64
#define   PPOWER_SUPPLY_STATE      (PVALUE_TIME+64)//停电记录 2+64+64+54
#define   PRTSTATE                 (PPOWER_SUPPLY_STATE+9*sizeof(OffTimeData))//统计数据运行状态
#define   PSUMOFPOWER              (PRTSTATE+sizeof(RTSTATE))//(PPOWER_SUPPLY_STATE+45)//电量

extern unsigned int KP_A0;                 // 12 byte
extern unsigned int KP_A1;
extern unsigned int KP_B0;
extern unsigned int KP_B1;
extern unsigned int KP_C0;
extern unsigned int KP_C1;

#define RDATARECVLENG   64 //数据接受缓冲长度
#define TDATARECVLENG   255 //数据发送缓冲长度

//////////////////////////////////////------NEW------

extern BYTE DisDelay;               // 1 byte
extern const  unsigned int  W_const;


typedef struct           //39 byte
{    
  unsigned int ARunTime;           //运行时间,,以分为单位
  unsigned int BRunTime;
  unsigned int CRunTime;
  unsigned int SRunTime;
      
  unsigned int UaUpSTime;         //越上限时间,以分为单位
  unsigned int UbUpSTime;
  unsigned int UcUpSTime;
  unsigned int UsUpSTime;
  
  unsigned int UaDownSTime;     //越下限时间,,以分为单位
  unsigned int UbDownSTime;
  unsigned int UcDownSTime;
  unsigned int UsDownSTime;    
   
   BYTE nAOffNums;  //断电次数
   BYTE nBOffNums;
   BYTE nCOffNums;
   BYTE nSOffNums;
   
  BYTE nACurUpRec;//各相越限记录条目
  BYTE nBCurUpRec; 
  BYTE nCCurUpRec;
  BYTE ValidRecords;//总越限记录数
  BYTE nACurOffRec; //各相的停电记录数
  BYTE nBCurOffRec;
  BYTE nCCurOffRec;
  BYTE nOffRecords; //总的停电记录数
  BYTE nSCurOffRec; //三相断电记录数
  BYTE nResetNum;   //日复位次数
   unsigned UaS:2;     //电压当前状态
   unsigned UbS:2;
   unsigned UcS:2;
   unsigned UsS:2;     
 
}RTSTATE;
  
typedef struct    // 2 byte
{
   unsigned b0:1;
   unsigned U0SEnd:1;
   unsigned b2:1;
   unsigned U0REnd:1;
   unsigned DoSendLubo:1;// 发送录波数据
   unsigned DoIniCom0:1; // 波特率变化,初始化串口0
   unsigned DoIniCom1:1;// 波特率变化,初始化串口0
   unsigned TxWait:1;
   unsigned U1SBegin:1;
   unsigned U1SEnd:1;
   unsigned U1RBegin:1;
   unsigned U1REnd:1;
   unsigned SendSoe:1;
   unsigned IsBroadcast:1;  //广播地址
   unsigned DoWrParm:1;// 写参数
   unsigned DoReSend:1;
} COMMSTATE;

typedef struct   // 2 byte
{
   unsigned Secondf:1;  //秒
   unsigned TenSecf:1;   //10秒
   unsigned Minutef0:1;   //分
   unsigned Hourf:1;     //小时
   unsigned Datef:1;   //日
   unsigned Monthf:1;   //
   unsigned Yearf:1;
   unsigned DoGetData:1;
   
   unsigned Powerf:1;
   unsigned PowerChf:1;
   unsigned Timef:1;  //较时
   unsigned NewData:1;
   unsigned DisPlay_Lcd:1;
   unsigned bSOEOverFlow:1;   // SOE  益出
   unsigned DoClearDay:1;  //清当天的历史数据和统计数据
   unsigned DoClearAll:1;  //清所有的历史数据和统计数据
   
   unsigned Capture:1;
   unsigned In_phase:1;
   unsigned Cal_FFT:1;
   unsigned Minutef1:1;  //用于统计数据时间,分 
   unsigned doSavePowerOff:1; 
   unsigned doSaveHisdata:1;             // 不采用过零采样 ,A无测频信号
         
}DEVICESTATE;


extern BYTE nticks1;          // 2 byte
extern BYTE nticks2;


typedef struct
{
   unsigned int Ua;            
   unsigned int Ia;
   unsigned int Ub;
   unsigned int Ib;
   unsigned int Uc;
   unsigned int Ic;
   int P;              
   int Q;
   int COS;
   int Pa;
   int Pb;
   int Pc;
   
   int Qa;            //高位在后,低位在前
   int Qb;
   int Qc;
   int I0;
  
   int UnbalRateofU;
   int UnbalRateofI;
   
   int COSA;         
   int COSB;
   int COSC;
   int Frequence; 
   
   int Ua1_n;            //电压的谐波率
   int Ub1_n;
   int Uc1_n;
   int Ia1_n;           //电流的谐波率
   int Ib1_n;
   int Ic1_n;
   unsigned int IT;
}BD_DATA;              //共29个量 58个字节

typedef struct    // 8 byte
{
   unsigned int MillSecond;
   BYTE second;
   BYTE minute;
   BYTE hour;  
   BYTE week_date;   //后五位日期
   BYTE month;
   BYTE year;
}STDATETIME;

typedef struct    // 1 byte
{
   unsigned  FUNCTION:4;
   unsigned  DFC:1;
   unsigned  ACD:1;
   unsigned  PRM:1;
   unsigned  DIR:1;
}CONTROL_FIELD;

typedef struct
{
   int   UHighV;          //80,81  --- 81
   int   Load0;          //82,83  --- 82
   int   YKSelectTime ;   //84,85  --- 83   //遥控选择时间
   
   BYTE  ULowV;           //86  --- 84
   BYTE  IHighI;          //87  --- 85
   BYTE  PTRate;          //88  --- 86
   BYTE  nIntervalOfSave; //89  --- 87   //存盘间隔,15表示15分钟保存一次历史数据,30表示半个小时,缺省默认为一个小时
   BYTE  AddrOfTTU;       //8A  --- 88
   BYTE  Bauds0;          //8B  --- 89
   BYTE  UnblU;       //8C  --- 8A
   BYTE  Bauds1;          //8D  --- 8B
   BYTE  UnblI;       //8E  --- 8C
   
   int  KV_A;            //90 91  --- 8D   //电压变比
   int  KV_B;            //92 93  --- 8E
   int  KV_C;            //94 95  --- 8F
   int  KI_A0;           //96 97  --- 90   //电流变比MODE0
  
   int  KI_B0;           //98 99 --- 91
   int  KI_C0;           //9a 9b --- 92
   BYTE  YKExcecuteTime;  //9c   --- 93   //遥控执行时间
   BYTE  PWM_SET;         //9d   --- 94
   BYTE  TTU_Control_Param;   //9e  --- 95
   BYTE  VersionOfSoft;       //9f  --- 96
   int  KI_A1;               //a0 a1  --- 97
   int  KI_B1;               //a2 a3  --- 98
   int  KI_C1;               //a4 a5  --- 99
  
   unsigned  int  PassWord;   //a6,a7  --- 9A
}TTU_RUNPARAM;  //共26个量,39个字节

 
//VARIAL struct qualifier
typedef struct             // 1 byte
{
 unsigned NumsOfObject:7;
 unsigned SQ:1;
}QUALIFIEROFVARSTR;

// cause of transimission
typedef struct    // 1 byte
{
 unsigned CAUSE:6;
 unsigned PN:1;
 unsigned T:1;
}CAUSEOFTRANSMISSION;

typedef struct         // 7 byte
{
 unsigned DoSendClass1Data:1;  //已发送一级数据
 unsigned YCChangeFlag:1;  //遥测
 unsigned YXChangeFlag:1;  //遥信变位
 unsigned InitEndFlag:1;   //
 unsigned SOEFlag:1;
 unsigned b4:1;
 unsigned CallAllFlag:1;
 unsigned CallAll_YCFlag:1;
 unsigned CallAll_YXFlag:1;
 unsigned CallAll_DDFlag:1;   //电度
 unsigned CallAll_EndFlag:1;
 unsigned b10:1;   
 unsigned b11:1;   
 unsigned IdleTimeFlag:1; 
 unsigned TTUParamChangeFlag:1;
 unsigned RES:1;
 unsigned FileTxFlag:1; //文件传输标志
 unsigned F_LS_NA_F:1;//最后段或节确认帧
 unsigned DataType:2;//1,整点数据;2,统计数据
 
 unsigned nIdleTime:8;
 unsigned nSGCount:8 ;   //段计数器
 unsigned LSQ:8;//最后的节和段限定词 5-节,6-段
 
 unsigned CHS:8 ; //CH校验

}SPECIALFLAG;

// 极值时间结构
typedef struct     // 2 byte
{
  int value;
  int time;
} SLim_Time;

typedef struct  // 8 byte
{
   BYTE YCcode;       
   BYTE OverLimitCode;  //越限代码1 A 2 B 3 C 
   int  OverLimitValue; //越限值1 UP 2 DOWN
   unsigned int  UpTimeStart;   // 停电启始时间
   unsigned int UpTimeEnd;   // 停电启始时间
     
}OverLimitData;

typedef struct  // 6 byte
{
   BYTE DomainFlag;     //相标志 A 01 B 10 C 11 ,100  all
   BYTE OffNum;         //  顺序号    
   unsigned  int  OffTimeStart;   // 停电启始时间
   unsigned  int  OffTimeEnd;   // 停电启始时间  
}OffTimeData;
//soe结构体

typedef struct  // abc 临时电压
{
    unsigned  int  Ua;  
    unsigned  int  Ub;    
    unsigned  int  Uc;    
}SUABC;
extern   SUABC  Uabc;
extern RTSTATE RunState;     //39 byte
extern DEVICESTATE  DeviceState;   // 2 byte
extern COMMSTATE    CommState;     // 2 byte

extern BD_DATA BD_data;           // 58 byte
extern STDATETIME stDateTime,stFileName;   // 8x2 byte 
extern TTU_RUNPARAM     TTU_RunParam;   // 39 byte 

extern BYTE nSendBytesCount;
// extern BOOL bCommGroup2;

extern BYTE RCommCode[RDATARECVLENG];  //发送数据打包 64 byte
extern BYTE TCommCode[TDATARECVLENG]; //发送数据打包  255byte

extern BYTE m_EnCur;                  //打包的数据长度
extern BYTE CommDataLen;              //通讯过程中字节数

extern SPECIALFLAG SpecialFlag;   // 7 byte
extern CONTROL_FIELD strcontrol;  // 1 byte
extern QUALIFIEROFVARSTR nVarQualifier;  // 1 byte
extern CAUSEOFTRANSMISSION nTransCause;  // 1 byte


extern BYTE Controlcode,Controlold ; // 2 byte
extern BYTE nTypeIdentity;
extern BYTE nCOI;
extern BYTE nASDULen;
extern BYTE nYKQualifier;
extern BYTE nParamQualifier;
extern long   AddedPQ[4];     //电度表底  16 byte
extern unsigned short  AddedYM[2];    //遥脉小数部分  4 byte
extern BYTE YmState;


extern BYTE MCUState;    //停电状态
extern  SLim_Time value_time[16];  //极值 2x16 byte
extern  OverLimitData  over_limit[8];  // 8x8 byte
extern  OffTimeData    off_time[9]; //保存最近9条停电记录 54 byte
extern BYTE InitTime[7];         // 2003/4/1/2/1/1/1 ,  7 byte
extern  unsigned int ptr_1024;
extern BYTE nFileDataLen ;
extern BYTE nRecData;
extern BYTE nYKObject;

//AD采样值
extern int Ua_Data[32],Ia_Data[32];    // 128 byte
extern int Ub_Data[32],Ib_Data[32];    // 128 byte
extern int Uc_Data[32],Ic_Data[32];    // 128 byte

//脉冲的个数和测频的时间
//extern int PulseCounter;                 //脉冲的个数
//extern int PulseTime;                    //脉冲的记数时间

//电度量的计算
extern long int  Ps,Qs;            //用于计算电度量的统计 8 byte
extern long int  Pas ,Pbs,Pcs;        // 12 byte
extern long int  Qas, Qbs,Qcs;        // 12 byte
extern long int  Psum, Qsum;        // 8 byte
                  
extern int U_base, I_base;         //电压,电流基波值,计算谐波率用  4 byte
extern unsigned int Ua_base,Ub_base,Uc_base;               // 6 byte
extern unsigned int Ia_base,Ib_base,Ic_base;               // 6 byte

extern unsigned long int  Un,In;      //电压,电流的谐波值的总和,计算谐波率用  8 byte
extern unsigned int Uan,Ubn,Ucn;                                        // 6 byte
extern unsigned int Ian,Ibn,Icn;                                        // 6 byte

extern unsigned int  U1R,U1I,I1R,I1I;       //电压,电流基波的虚部,实部,计算不平衡率用  8 byte
extern int Ua_base_r, Ua_base_i, Ub_base_r, Ub_base_i;    // 8 byte
extern int Uc_base_r, Uc_base_i;                          // 4 byte
extern int Ia_base_r, Ia_base_i, Ib_base_r, Ib_base_i;    // 8 byte
extern int Ic_base_r, Ic_base_i;                          // 4 byte

extern unsigned int  U,I;              //电压,电流的中间量 4 byte
extern long P,Q;                                        // 8 byte

// extern BYTE Counter;
extern int COS;
extern long I0;              //零序电流用的是累加的方法  4 byte

extern  unsigned int  delayselect;  //遥控选择delay
extern  unsigned int   delayoperate;
extern  BYTE  YKselect, YKoperate;   // 2 byte
extern  BYTE  YKObj;

extern long fr[],fi[];
extern  int nhighV;  //电压上限
extern  int nlowV; //电压下限
extern  BYTE  WriteDelay ; //写1024延时
extern  BYTE  TxGap; //发送间隙
extern  BYTE  LinkState; //联路状态

extern  BYTE  HisCate;   //历史数据存储模式

extern  unsigned int  Count1; 
extern  unsigned int  Count3; 
extern  unsigned int  Count4;
extern  BYTE Delay485 ;
extern char Sam_Counter ;
extern long Freq;
extern long Temp; 
extern  BYTE CapDelay;
extern unsigned int numconst;  
extern int Uaold;

#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -