📄 datadef.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 + -