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

📄 103struct.h

📁 电力故障信息采集,主要是针对南自的保护装置,这个程序用在Linux操作系统下
💻 H
字号:
////////////////103Struct.h////////////////////#ifndef STRUCT103_H#define STRUCT103_H#include "mytype.h"#pragma pack(1)typedef union tag103NDE{    struct    {BYTE No	:        6;//UI[1~6]<1~63>:数目BYTE Count	:        1;/*BS1[7]<0~1>:具有相同的通用分类标识序号(RII)和相同的通用分类标识序号(GIN)的应用服务数据单元                		   通用分类标识的一位计数器位,计数器位初始值为0*/BYTE Cont	:        1;/*BS1[8]<0~1>:0:后面未跟随具有相同的返回标志符(RII)和相同的通用分类标识序号(GIN)的应用服务数据单元。                			 1:后面跟随具有相同的返回标志符(RII)和相同的通用分类标识序号(GIN)的应用服务数据单元。*/    }    nde;    BYTE byte;}NDE;//描述元素的数目(NDG):CP8{数目(No),计数器位(Count),后继位(Cont)}typedef union tag103NGD{    struct tagngd    {BYTE No	:        6;//UI[1~6]<1~63>:数目BYTE Count	:        1;//BS1[7]<0~1>:具有相同的通用分类标识序号(RII)的应用服务数据单元的一位计数器位,计数器位初始值为0BYTE Cont	:        1;/*BS1[8]<0~1>:0:后面未跟随具有相同的返回标志符(RII)的应用服务数据单元。                			 1:后面跟随具有相同的返回标志符(RII)的应用服务数据单元。*/    };    tagngd ngd;    BYTE byte;}NGD;//通用分类数据集数目(NGD):CP8{数目(No),计数器位(Count),后续状态位(Cont)}typedef union tag103GDD{    struct taggdd    {// P22 7.2.6.32        BYTE DataType;		//数据类型(DATATYPE)        BYTE DataSize;		//数据宽度(DATASIZE)BYTE Number	:        7;	//数目(NUMBER)BYTE Cont	:        1;	//后续状态位(CONT)    };    taggdd gdd;    BYTE byte[3];}GDD;//通用分类数据描述(GDD):CP24{数据类型(DATATYPE),数据宽度(DATASIZE),数目(NUMBER),后续状态位(CONT)}typedef union tagCP32TIME{    struct tagTime    {        WORD Milliseconds;        BYTE Minutes;BYTE Hours	:        5;BYTE Weeks	:        3;    };    tagTime Time;    BYTE byte[4];}CP32Time2a;typedef union tagCP56TIME{    struct tagDataTime    {        WORD Milliseconds;        BYTE Minutes;BYTE Hours			:        5;BYTE Weeks			:        3;BYTE DaysOfMonth	:        5;BYTE DaysOfWeek		:        3;BYTE Months			:        4;BYTE res3			:        4;BYTE Years			:        7;BYTE res4			:        1;    }    Time;    BYTE byte[7];    bool operator==(const tagCP56TIME& rhs)const    {    	for(int i=0;i<7;i++)	{		if(byte[i]!=rhs.byte[i])		{			return false;		}	}	return true;    }    bool operator!=(const tagCP56TIME& rhs)const    {    	return *this==rhs?false:true;    }}CP56Time2a;typedef union tagVSQ{    struct _tagVSQ    {BYTE num	:        7;//数目BYTE sq		:        1;//0:寻址一个信息体内的顺序的信息元素,1:寻址单个信息元素或综合信息元素    }    vsq;    BYTE byte;}VSQ;//可变结构限定词typedef union tagDPI{    struct _tagDPI    {BYTE dpi	:        2;//1:开(OFF),2:合(ON)BYTE res 	:        6;    }    dpi;    BYTE byte;}DPI;//双点信息(P18,7.2.6.5节)typedef struct tagGIN{    BYTE GROUP;//组号    BYTE ENTRY;//条目}GIN;//通用分类标识序号-7.2.6.31typedef union tagMEA{    struct _tagMEA    {WORD OV		:        1;//溢出位:0无溢出,1溢出WORD ER		:        1;//差错位:0被测值(MVAL)有效,1无效WORD res 		:        1;//未用WORD MVAL	:        13;//被测值    }    mea;    WORD word;}MEA;typedef union tagSOF{    struct _tagSOF    {BYTE TP	:        1;//0:被记录的故障未跳闸,1:被记录的故障跳闸BYTE TM	:        1;//0:扰动数据等待传输,1:扰动数据正在传输BYTE TEST	:        1;//0:在正常操作时被记录的扰动数据,1:在测试模式下被记录的扰动数据BYTE OTEV	:        1;//0:由启动/检出故障触发被记录的扰动数据,1:由其他事件触发被记录的扰动数据BYTE RES	:        4;//未用    }    sof;    BYTE byte;}SOF;//故障的状态(SOF)(P20,7.2.6.24)typedef union tagSwitchData{    struct    {        WORD TAP;	//标志的位置        BYTE FUN;	//功能类型        BYTE INF;	//信息序号        BYTE DPI;	//在7.2.5.2中定义    }    data;    BYTE byte[5];}SwitchData;//带标志的状态变位,参见ASDU29(带标志的状态变位传输)typedef struct tagChannelData{    BYTE  ACC;		//实际通道序号    WORD* NDV;	//每个应用服务数据单元有关扰动值的数目    WORD* NFE;	//应用服务数据单元的第一个信息元素的序号    WORD* SDV;	//单个扰动值}ChannelData;//通道数据,参见ASDU27(被记录的通道传输准备就绪),ASDU30(传输扰动值)typedef struct tagDistrubDataTable{    BYTE addr;    BYTE acc;    WORD FAN;			//故障序号    WORD NOF;			//电网故障序号    BYTE SOF;			//故障状态    CP56Time2a Cp56Time;//故障时间}DistrubDataTable;//扰动数据表的信息typedef struct tagACCInfo{    BYTE ACC;	//实际通道号    float RPV;	//一次额定值    float RSV;	//二次额定值    float RFA;	//参比因子}ACCInfo;//通道信息,参见ASDU27(被记录的通道传输准备就绪)typedef struct tagDataSet{    GIN gin;    BYTE kod;    GDD gdd;    CByteArray gid;}DataSet;//通用分类服务数据集typedef struct tagCommParam{    BYTE AsduAddress;//ASDU地址    int CpuNo;//CPU号    int FunCode;    bool bInit;    char szLastWaveTime[20];}CommParam;//通用分类服务数据集typedef struct tagCmdParam{    BYTE type;    BYTE cot;    BYTE addr;    BYTE fun;    BYTE inf;    BYTE too;    BYTE tov;    BYTE acc;    WORD fanno;    BYTE num;//DataSet个数}CmdParam;//通用分类服务数据集#pragma pack()#endif

⌨️ 快捷键说明

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