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

📄 variable definition.h

📁 msp430和nrf905的例子,联系qqliuyong007@163.com
💻 H
字号:

//**********全局变量定义***********************************
//请注意:通信时,高字节先传送,低字节后传送,这个和计算机中的存储顺序相反,所以
//在处理的时候需要加以注意(交换高低字节)
//modified by zjx 2005-10-15 23:51

typedef unsigned char UBYTE; 
typedef unsigned short UWORD;
typedef unsigned long UDWORD;

struct flags
{
unsigned setup  :4;
 unsigned gb     :1;                     //有触摸屏中断
 unsigned sure   :1;
 unsigned updown :4;
 unsigned set    :1;
 unsigned ds     :3;                   //液晶显示数据还是系统显示
 unsigned sel    :2;
 unsigned number  :4;
 unsigned receive_ok :1 ;
 unsigned transfer_ok :1 ;
 unsigned timecount_ok :1 ;
 unsigned flag0620 :1;                //06号功能系统参数
 unsigned flag06511 :1;               //定植通道参数
 unsigned flag0606 :1 ;                //府费率参数
 unsigned flag0621 :1 ;                //实时时钟下载
 unsigned flag06501 :1 ;               //继电器参数
 unsigned system : 1;

 unsigned evecl   :1;                  // 清除事件记录
 unsigned edgcl   :1;                  //电表复位
 unsigned limicl  :1;                 //清除最大最小值
 unsigned   feeflag    :1;             //费率清零
 unsigned   warnflag   :1;             //定值清零
 unsigned  second  :1;
 unsigned  jy     :1;                  //校表参数设置完毕/
         
 }flag;


 struct relay              //继电器逻辑变量和输出量设置结构体定义
{ unsigned short controlmode;    //低位对应8个继电器,高8位保留。   //bool controlmode;  
  unsigned short actpulse[8];    //8个继电器的动作脉宽。//unsigned char actpulse; 
  unsigned short lockstate;//寄存器的锁存状态,为1的话释放锁存的继电器。
 }rel;
 
 float Pgainerr[3][2];      //功率增益
 float Phsregerr[3][5];    //角差校正
 float UIr[2][3];              //实际输入电压值
 //float Ir[3];              //实际输入电流值*/ 

 
typedef struct //定值通道的四种相关数据
{unsigned short logicalmode;//逻辑模式
 unsigned short actcondition;//动作条件
 unsigned short actcontinuetime;//动作延时
 unsigned short actkeyvalue;//动作键值
 }channel;
 //channel alarm;
 //channel logical;
 
struct Fixedvalues//定值通道结构体定义
{channel alarm[8];
 channel logical[8];
 }Fixedvalue;   //这样定义不会引起结构体存放位置的变化
 
 
typedef struct inceptfees     //起始段和费率定义
{unsigned short incept;       //时间取值
 unsigned short fee;          //费率取值
 }inceptfee;
 
 typedef struct feestructures  //费率结构
{unsigned short inlow;         //输入有功电度低字
 unsigned short inhigh;        //输入有功电度高字
 unsigned short outlow;        //输出有功电度低字
 unsigned short outhigh;       //输出有功电度低字
 unsigned short inulow;        //输入无功电度低字
 unsigned short inuhigh;       //输入无功电度高字
 unsigned short outulow;       //输出无功电度低字
 unsigned short outuhigh;      //输出无功电度高字
 }feestructure;
 
struct againfees              //复费率结构体定义
{unsigned short timenumber;
 inceptfee infee[8];
 feestructure feestr[4];
unsigned short reserved[32];  //保留
 }againfee;
 
 
 typedef struct      //UNIX时间结构体
{
 unsigned short highsecond;   //UNIX时间高位数
 unsigned short lowsecond;    //UNIX时间底位数
 }UNIXtime;
// UNIXtime UNIXti;
typedef struct                //年月日时分秒时间结构体
 { 
  UBYTE second;
  UBYTE minute;
  UBYTE hour;
  UBYTE date;
  UBYTE month;
  UBYTE year;
 } cur_time;
cur_time mytime1;   //系统时间(年月日)


cur_time mytime2;   //最大小值显示的时刻。

typedef struct  //事件标号
{unsigned short number1;      //标号1 表示事件类型及状态
 unsigned short number2;      //标号2 表示发生时间毫秒
 unsigned short number3;      //标号3 事件发生UNIX秒低字
 unsigned short number4;      //标号4 事件发生UNIX秒高字
 }eventnumber;


struct eventnotes             //事件记录结构体定义
{ 
 UNIXtime UNIXti;
 eventnumber  eventnum[10];
 }eventnote;
 

 
typedef struct        //baud结构体定义
{unsigned short com1;        //通讯口1波特率
 unsigned short com2;        //通讯口2波特率
 unsigned short com3;        //通讯口3波特率
 unsigned short com4;        //通讯口4波特率
}baud;

unsigned char choicebaud;    /*用于下位机的波特率选择*/
// baud baudrate;
 
typedef struct sbxhs            //设备型号定义
{unsigned char productname[10]; //厂家名称
 unsigned char maintypeno[5];   //主型号
 unsigned char subtypeno[5];    //次要型号
 }sbxhao;

struct systemsetups             //系统设置
 { unsigned short sbzh;//设备组号
  unsigned short sbh;//设备地址
  baud baudrate;   //通讯口波特率
  unsigned short PT;//PT 变比
  unsigned short CT;//CT 变比
  unsigned short connectionmode;//接线模式
  unsigned short xlsjcslow;//需量时间常数低位
  unsigned short xlsjcshigh;//需量时间常数高位
  //以上需要在下位机设置
  
  unsigned short pulseoutmode;//脉冲输出模式
  unsigned short txycsjlow;//通信延迟时间低位
  unsigned short txycsjhigh;//通信延迟时间高位
  unsigned short bjycsjlow;//报警延迟时间低位
  unsigned short bjycsjhigh;//报警延迟时间高位
  }systemsetup;


//注意:以下结构体紧接着上面的结构体存放,但是下面结构体的值的存取方式和上面的不一样
struct systemsetups1         //系统设置2
{
 UNIXtime dqdatetime;         //当前时间  当前日期
 sbxhao sbxh;     //设备型号 
 unsigned short ccxlhlow;//出厂序列号低位
 unsigned short ccxlhhigh;//出厂序列号高位
 unsigned short rjbblow;//软件日期版本低位
 unsigned short rjbbhigh;//软件日期版本高位
 unsigned short passwordL1;//密码L1
 unsigned short passwordL2;//密码L2
 unsigned short reserved[32];//保留
} systemsetup1;

//long 是32位!
//采集的数据


typedef struct 
 {  UNIXtime dqdatatime;  
    	//unsigned long SpiStatus1; 
    	//unsigned long SpiStatus2;
	
    unsigned short   I[4];    //三相电流和中线电流
    unsigned short reserved1; //保留
    unsigned short   U[3];    //三相相电压
    unsigned short reserved2; //保留
    unsigned short   XU[3];   //三相线电压
    unsigned short reserved3; //保留
    unsigned short reserved4;// 保留
    signed long ActPwr[4];    //三相有功功率和总有功功率
    signed long ReaPwr[4];    //三相无功功率和总有功功率
    signed long AppPwr[4];    //三相视在功率和总有功功率
    signed short Factor[4];   //三相功率因数
    
    unsigned short  MainF;    //系统频率
    unsigned short reserved5;// 保留
    unsigned long  r_PosEpt ; //三相输入有功电能 低位和高位不要弄错
    unsigned long r_NegEpt;   //三相输出有功电能
    unsigned long r_AddEpt;   //有功电度的总和
    unsigned long r_DecEpt;   //有功电度的净值
   
    unsigned long r_PosEqt;   //三相输入无功电能
    unsigned long r_NegEqt;   //三相输出无功电能
    unsigned long r_AddEqt;   //无功电度的总和
    unsigned long r_DecEqt;   //无功电度的净值
    unsigned long r_Set;      //视在电度的总和
    unsigned short eventnum;  // SOE 事件计数器

//失真度
   unsigned short iTHD[4];    // 三相电流失真度
   unsigned short uTHD[3];    //三相电压流失真度
   unsigned short xuTHD[3];   //三相线电压失真度
   unsigned short temp;       //温度 
 } SPIRegister;
 SPIRegister SPI; 
 
//下面这个结构包含其他一些实时测量值 主程序实现 
typedef struct
{
unsigned short inputstate;    // 输入开关量 当某一开关量通道闭合,则对应状态位为1,反
                              //之为0。
 unsigned short relaystate;   //继电器状态 1为响应的继电器闭合
 unsigned short channelstate; // 定值和逻辑通道状态 1为通道被激活
unsigned long anologue;       // 模拟量输入值
unsigned long feestate;       // 当前费率  读出每个时段(共8个)的费率
} SPIRegister1;

SPIRegister1 SPI1;

typedef struct 
{    UWORD imaxmin[4][2];         //3表示3相 中线  2表示最大最小值 电流最大最小值
     UWORD umaxmin[3][2];         //相电压最大最小值
     UWORD xumaxmin[3][2];        //线电压最大最小值
     signed long actpwrmaxmin[4][2];   //三相 总 有功功率最大最小值 
     signed long reapwrmaxmin[4][2];   //三相 总 无功功率最大最小值 
     signed long apppwrmaxmin[4][2];   //三相 总 视在功功率最大最小值 
     UWORD fctmaxmin[4][2];       //三相 总 功率因素 最大最小值 
     UWORD fmaxmin[2];	          //系统频率最大值 最小
}MAXMIN;
MAXMIN  myMAXMIN;


 typedef struct
{    UDWORD tmimaxmin[4][2];       //三相 中线 电流最大最小值时间
     UDWORD tmumaxmin[3][2];       //相电压最大最小值时间
     UDWORD tmxumaxmin[3][2];      //线电压最大最小值时间
     UDWORD tmactpwrmaxmin[4][2];  //三相 总 有功功率最大最小值 时间
     UDWORD tmreapwrmaxmin[4][2];  //三相 总 无功功率最大最小值 时间
     UDWORD tmapppwrmaxmin[4][2];  //三相 总 视在功功率最大最小值 时间
     UDWORD tmfctmaxmin[4][2];     //三相 总 功率因素 最大最小值 时间
     UDWORD tmfmaxmin[2];	   //系统频率最大值 最小时间
 }MTIME;
 MTIME mytime;

unsigned char sel=1;    //暂时代替的接线方式0:单项,1:三相三线2:三相四线

//需量变量定义
typedef struct
{ //三相电流需量及其最大值
   unsigned short  NEEDI[3];
   unsigned short  MAXNEEDI[3];
   //三相有功功率需量及其最大值
   signed long NEEDACTPWR[3];
   signed long MAXNEEDACTPWR[3]; 
   
   //三相无功功率需量及其最大值
   signed long NEEDREAPWR[3];
   signed long MAXNEEDREAPWR[3];
   
   //三相视在功率需量及其最大值
   signed long NEEDAPPPWR[3];
   signed long MAXNEEDAPPPWR[3];
} XULIANG;
XULIANG myNeed;  


typedef struct
{  UWORD uhwave[3][16];   //3表示 3相 ,16表示1到31次谐波。电压谐波
   UWORD ihwave[3][16];   //电流谐波
 } XIEBO;
 XIEBO myXIEBO;
                         //定于全局变量,存放谐波

 UWORD count,a,maxdate; 
unsigned long unixtime2;
unsigned long TS;   
unsigned long ts=0;
unsigned short xllow;
unsigned short xlhigh;
 signed long x=30;
int c[3], g[3], e[3], f[3];
int tempcurrent;        //现在温度
int TC=189;
         
//***************************************************************

⌨️ 快捷键说明

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