📄 epa_maninfbas.h
字号:
/**************************************************************************
**
** 文件: EPA_ManInfBas.h
** 描述: 该文件完成EPA管理信息库中对象结构的定义
**
**************************************************************************/
#ifndef EPA_ManInfBas_h
#define EPA_ManInfBas_h
//include user defined file
#include "Define.h"
//定义AppID和ObjectID
#define MIB_AppID 0
#define Domain_Application_Information_ObjectID 4000
//定义时间同步对象中的时间同步精度
#define Time_None 0 //无精度要求
#define Time_1s 1 //时间同步精度<1s
#define Time_100ms 2 //时间同步精度<100ms
#define Time_10ms 3 //时间同步精度<10ms
#define Time_1ms 4 //时间同步精度<1ms
#define Time_100us 5 //时间同步精度<100us
#define Time_10us 6 //时间同步精度<10us
#define Time_1us 7 //时间同步精度<1us
//定义链接对象中本地设备的通信角色
#define Role_Transmitter 0 //发送者,客户机或发布者
#define Role_Receiver 1 //接收者,服务器或预订者
#define Role_None 0xff //链接对象未组态或已删除
//EPA设备管理信息库的首部对象
struct EPA_MIB_Header
{
uint ObjectID; //ObjectID=1
uint SMIB_Resivion_Number; //EPA管理信息库的修改版本号,由用户指定
};
//EPA设备描述对象
struct EPA_Device_Descriptor
{
uint ObjectID; //ObjectID=2
uchar Reserved[2];
uchar DeviceID[32]; //设备ID,冗余的设备具有相同的设备ID,不足部分用空格填充
uchar PD_Tag[32]; //设备物理位号,当不存在设备冗余时,即设备ID
uchar Active_IP_Address[4]; //当前可操作的IP地址
uchar Device_Type; //设备类型,描述设备的功能,由设备制造商设定
uchar Status; //设备所处状态,0无地址,1未组态,2已组态
uint Device_Version; //设备版本号
uint Annunciation_Interval; //发送设备声明请求报文的时间间隔
uint Annunciation_Version_Number; //设备属性每修改一次,值加1
uchar Device_Redundancy_State; //设备冗余状态,0活动状态,1备份状态
uchar Device_Redundancy_Number; //设备冗余号
uint LAN_Redundancy_Port; //设备冗余消息处理端口号
uchar Max_Redundancy_Number; //设备最大冗余个数
uchar Duplicate_Tag_Detected; //PD Tag是否与网络上其他设备的冲突,TURE,冲突
};
//时间同步对象
struct Clock_Synchronization
{
uint ObjectID; //ObjectID=3
uchar Reserved[2];
uchar Primary_Time_Server[4]; //主时间服务器的IP地址
uchar Secondary_Time_Server[4]; //从时间服务器的IP地址
ulong Time_Request_Timeout; //时间客户机等待时间服务器响应的时间(微秒)
ulong Time_Request_Interval; //时间客户发送时间请求的时间间隔(秒)
ulong Capable_Time_Sync_Class; //时间客户机支持的时间同步精度
ulong Target_Time_Sync_Class; //要求时间客户支持的时间同步精度,读/写
BinaryDate Current_Time; //设备当前时间
TimeDifference Standard_Time_Difference;//标准时间差,标准时间戳-当前时间
};
//证实服务最大响应时间
struct Max_Response_Time
{
uint ObjectID; //ObjectID=4
uchar Reserved[2];
ulong Max_Response_Time; //证实服务的最大响应时间(毫秒)
};
//通信调度管理对象
struct Communication_Schedule_Management
{
uint ObjectID; //ObjectID=5
uchar Reserved[2];
ulong Communication_Macro_Cycle; //通信宏周期,初始值0xffffffff,表示T未组态
ulong NonPeriodic_Data_Transfer_Offset; //周期报文发送阶段总时间,初始值0xffffffff,表示Tp未被组态
uint CommunicationCycle_Version_Number;//T的版本号,T每修改一次,加1
};
//设备应用信息对象
struct Device_Application_Information
{
uint ObjectID; //ObjectID=6
uint XDDL_Version; //设备描述版本号,高字节为主版本号,低字节为次版本号
};
//功能块应用信息对象首部
struct FB_Application_Information_Header
{
uint ObjectID; //ObjectID=7
uint Number_of_FB_Application_Information_Object; //功能块应用信息对象的数目
uint First_Number_of_FB_Application_Information_Object;//第一个功能块应用信息对象的索引=2000
};
//链接对象首部
struct Link_Object_Header
{
uint ObjectID; //ObjectID=8
uint Number_of_Link_Object; //设备中链接对象的个数
uint First_Number_of_Link_Object; //第一个链接对象的索引=5000
uint Number_of_Configured_Link_Object; //设备中已组态的链接对象的个数
uint Number_of_Unonfigured_Link_Object;//设备中未组态的链接对象的个数
};
//域应用对象首部
struct Domain_Application_Object_Header
{
uint ObjectID; //ObjectID=9
uint Number_of_Domain_Application_Object; //设备中,域应用信息对象的个数
uint First_Number_of_Domain_Application_Object;//第一个域应用信息对象的索引=4000
uint Number_of_Configured_Domain_Object; //设备中已组态的域对象的个数
uint Number_of_UnConfigured_Domain_Object; //设备中未组态的域对象的个数
};
//功能块应用信息对象
struct FB_Application_Information
{
uint ObjectID; //ObjectID=2000
uint Reserved;
uchar FB_Name[32]; //功能块的名称
uint FB_Type; //功能块的类型
uint Max_Number_of_Instantiation; //功能块的最大实例化个数
ulong FB_Execution_Time; //功能块执行时间(毫秒)
uint First_Number_of_Instantiation; //功能块实例化时可分配的第一个实例标识
};
//域应用信息对象
struct Domain_Application_Information
{
uint ObjectID; //ObjectID=4000
uint Domain_ObjectID; //该域应用对象对应的域对象的索引号>=4000
uchar ConfigurationStatus; //域对象的组态状态,TRUE表示已组态
uchar Reserved[3];
uchar Domain_Name[32]; //域对象的名称
};
//链接对象
struct Link_Object
{
uint ObjectID; //ObjectID=5000
uint Local_AppID; //本地功能块实例标识
uint Local_ObjectID; //本地变量对象索引号
uint Remote_AppID; //远程功能块实例标识
uint Remote_ObjectID; //远程变量对象索引号
uchar Service_Operation; //链接对象所应用的EPA服务标识,本地链接时,值为0
uchar Service_Role; //本地设备的通信角色:
uchar Remote_IP_Address[4]; //远程IP地址
ulong Send_Time_Offset; //本地周期报文的发送时间,初始值0xffffffff,表示Tdx未被组态
};
#endif
/******************* End Of File **********************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -