01-EtherNet IP配置
本章节下载: 01-EtherNet IP配置 (596.11 KB)
1.7.1 Identity Object(Class ID: 0x01)
1.7.2 Message Router Object(Class ID: 0x02)
1.7.3 Assembly Object(Class ID: 0x04)
1.7.4 Connection Manager Object(Class ID: 0x06)
1.7.5 TCP/IP Interface Object(Class Code: 0xF5)
1.7.6 Ethernet Link Object(Class Code: 0xF6)
EtherNet/IP(Ethernet/Industrial Protocol,以太网工业协议)是一种基于以太网和TCP/IP技术的工业网络控制技术,由ODVA组织定义并维护。EtherNet/IP网络在物理层和数据链路层使用以太网协议,网络层和传输层使用TCP/IP协议族,应用层使用CIP(Common Industrial Protocol,通用工业协议)。EtherNet/IP技术在高负载的工业网络通信中能够满足实时性和确定性的需求,目前在工业以太网络中被广泛应用。
EtherNet/IP具有如下技术优势:
· 开放性:EtherNet/IP使用TCP/IP协议栈,因此它可以使用现有的标准以太网硬件,无缝集成到现有的工业以太网络中。
· 标准化:EtherNet/IP存在由ODVA组织定义的公认标准,为不同的工业设备和系统提供了统一的通信标准,不同厂商之间的设备仍可以实现EtherNet/IP通信。
· 安全可靠:EtherNet/IP的应用层CIP协议自带安全可靠的数据传输机制。
· 可扩展性:EtherNet/IP的应用层CIP协议是一个可扩展的协议,可以根据不同的应用场景和需求进行扩展和定制。
如图1-1所示,EtherNet/IP的物理层、数据链路层、传输层均与标准以太网相同,特点在与其在传输层之上添加了一个封装层,用于对来此应用层的CIP数据进行统一格式的封装。
图1-1 EtherNet/IP网络模型
EtherNet/IP定义了两种通信类型,显式(explicit)和隐式(implicit):
· 显式通信:通过TCP传输数据,适用于传递对准确性要求高、但对及时性要求低的数据,例如配置设备信息、上传或下载程序等场景。
· 隐式通信:通过UDP传输数据,适用于对及时性要求高的数据,例如I/O数据交互等场景。隐式通信需要于前建立CIP连接,CIP连接是CIP协议的一个服务,完成该服务后,连接的双方各持一个Connection ID,用该ID来完成后续的信息交流。
EtherNet/IP显式通信使用客户机/服务器模型,在EtherNet/IP网络中工业控制设备(上位机)作为客户机,外围的I/O传感器、阀门、工业交换机或其他测量设备等(下位机)作为服务器,只有客户机发送请求,其他服务器接收来自客户机的数据来进行响应,如图1-2所示。
图1-2 EtherNet/IP显式通信模型
EtherNet/IP隐式通信使用生产者/消费者模型,下位机作为数据源将本设备上的数据发送到网络上,供上位机读取,以提高整个EtherNet/IP网络系统的通信效率。本方式通过Input和Output报文来进行通信,上位机通过Output报文请求想要获取的数据,下位机收到上位机的请求后通过Input报文回应数据,如图1-3所示。隐式通信的报文相对于显式报文更简单,减少了报文中数据以外的额外开销,拥有更高的通信效率,但是无法提供数据可靠性。
图1-3 EtherNet/IP隐式通信模型
显式通信方式下,EtherNet/IP在CIP协议数据上封装的报文格式如图1-4所示。
显式通信的EtherNet/IP封装包含封装头以及封装数据两部分,封装头各字段的解释如下:
· Command:EtherNet/IP命令,描述报文的功能和作用,长2字节。
· Length:封装头中后续数据的长度,单位为字节,本字段长2字节。
· Session Handle:TCP会话句柄,长4字节。
· Status:EtherNet/IP命令执行状态,长4字节。
· Sender Context:描述发送者信息的上下文,长8字节。
· Options:可选字段,最长4字节。
封装数据各字段的解释如下:
· Item Count:封装数据中item的总个数。
· Address Item:目的地址信息,包含地址类型、地址长度以及地址具体数值。
· Data Item:CIP协议数据信息,包含数据类型、数据长度以及具体数据。CIP协议的具体数据包括CIP命令、请求路径等内容。我司设备定义的具体数据信息含义,请参考1.8 附录二-显式通信方式下我司发送的CIP数据信息含义。
隐式通信方式下,EtherNet/IP在CIP协议数据上封装的报文格式如图1-5所示。
隐式通信的EtherNet/IP封装包仅包含封装数据,各字段的解释如下:
· Item Count:封装数据中item的总个数。
· Address Item:目的地址信息,包含地址类型、地址长度、CIP连接ID以及地址具体数值。EtherNet/IP在隐式通信方式下通过连接ID来确定通信的目标。
· Data Item:CIP协议数据信息,包含数据类型、数据长度以及具体数据。CIP协议的具体数据包括CIP命令、请求路径等内容。我司设备定义的具体数据信息含义,请参考1.9 附录三-隐式通信方式下我司发送的CIP数据信息含义。
每个CIP协议的节点都是一组对象(object)的集合,CIP协议的通信目标都是一个个具体的对象。而设备可以将本身的一些特定组件定义为不同的对象,以此实现EtherNet/IP通信。
对象分为三个维度,类(class)、实例(instance)和属性(attribute),每个CIP协议的节点上可以存在多个类,每个类可以包含多个实例,每个实例可以包含多个属性,其逻辑关系如图1-6所示。
图1-6 CIP对象模型示意图
我司设备上规划的具体对象取值请参考1.7 附录一-我司设备定义的对象信息。
目前,H3C工业交换机仅支持作为下位机进行EtherNet/IP通信。
仅F6355P05及以上版本支持EtherNet/IP。
EtherNet/IP配置任务如下:
配置本功能后,我司设备可以与上位机建立TCP或UDP连接,并在此连接基础上承载EtherNet/IP通信。上位机通过EtherNet/IP通信可以对我司设备的数据或状态进行读写控制。我司设备建立TCP连接使用的端口号为44818,建立UDP连接使用的端口号为2222。
如果网络中存在误操作或恶意攻击时,随意修改我司设备的状态将会对整个网络造成严重的安全隐患,此时可以将设备上EtherNet/IP的工作模式切换为只读模式,使得控制设备只能通过EtherNet/IP通信读取设备上的信息。
我司设备使用VLAN 1作为EtherNet/IP的管理VLAN来与上位机通信,所以在开启设备的EtherNet/IP通信功能之前,请先设置VLAN接口1的IP地址。
上位机需要读/写我司设备端口的数据时,可以执行display ethernet-ip information命令,根据端口的ID来在我司设备发送的数据中区分那些数据属于上位机需要获得的端口信息数据。
目前仅支持上位机同时对单台我司设备的128个端口的信息进行读取和修改。
某些CIP命令要求EtherNet/IP通信建立特定的传输层连接,具体的对应关系请参考表1-1。
表1-1 CIP命令代码与需求的连接方式对应表
命令代码 |
名称 |
使用的连接方式 |
0x0000 |
NOP |
TCP |
0x0004 |
ListServices(列表服务) |
TCP或UDP |
0x0063 |
ListIdentity(列表标识) |
TCP或UDP |
0x0064 |
ListInterfaces(列表接口) |
TCP或UDP |
0x0065 |
RegisterSession (注册会话) |
TCP |
0x0066 |
UnRegisterSession (非注册会话) |
TCP |
0x006F |
SendRRData (发送数据) |
TCP |
0x0070 |
SendUnitData (发送单元数据) |
TCP |
0x0072 |
IndicateStatus (指示状态) |
TCP |
0x0073 |
Cancel (取消) |
TCP |
(1) 进入系统视图。
system-view
(2) 开启设备的EtherNet/IP通信功能。
ethernet-ip enable
缺省情况下,设备的EtherNet/IP通信功能处于关闭状态。
(3) (可选)配置EtherNet/IP的工作模式为只读。
ethernet-ip working-mode read-only
缺省情况下,EtherNet/IP的工作模式为读写模式,即通过EtherNet/IP协议,设备支持对自身状态进行读(读取设备信息)写(修改设备状态)。
在完成上述配置后,在任意视图下执行display命令可以显示配置后EtherNet/IP的相关信息。
表1-2 Modbus显示和维护
操作 |
命令 |
示通过EtherNet/IP协议读取本地的端口信息时需要的信息 |
display ethernet-ip information interface { interface-type interface-number | interface-name } |
类中的instance=0时,该实例的属性称为Class Attribute,类中的instance>0时,该实例的属性称为Instance Attribute。
Service Code |
支持情况 |
Service 名称 |
描述 |
|
instance=0 |
intance>0 |
|||
0x0E |
有条件(√) |
有条件(√) |
Get_Attribute_Single |
读取单一Attribute 内容 |
0x05 |
可选× |
必选(√) |
Rest |
执行Reset |
0x01 |
可选(√) |
有条件(√) |
Get_Attributes_All |
读取对象多个Attribute内容 |
Class Attribute |
支持 情况 |
操作 类型 |
名称 |
数据 类型 |
描述 |
0x01 |
√ |
Get |
Revision |
USHORT |
class版本 |
0x02 |
√ |
Get |
Number of Instance |
USHORT |
当前class的instance个数 |
0x06 |
√ |
Get |
Number of mac attribute |
USHORT |
当前class的attribute最大个数 |
0x07 |
√ |
Get |
Number of max Instance attribute |
USHORT |
当前instance的attribute最大个数 |
Instance Attribute |
支持 情况 |
操作 类型 |
名称 |
数据 类型 |
描述 |
0x01 |
√ |
Get |
Vendor ID |
UINT |
厂商代码 |
0x02 |
√ |
Get |
Device Type |
UINT |
设备类型: |
0x03 |
√ |
Get |
Product Code |
UINT |
产品代码: 2465:H3C IE4320-28S 2463:H3C IE4320-28P 2464:H3C IE4320-28S-HPWR 2479:H3C IE4320-52S 2478:H3C IE4320-52P 2487:H3C IE4320-28S-PS1 2552:H3C IE4320-12P-UPWR 2551:H3C IE4320-28F 2579:H3C IE4320-6P 2576:H3C IE4320-12P 2578:H3C IE4320-20P 2577:H3C IE4320-6P-AC 2604:H3C IE4320-12P-PWRM 3470:H3C IE4320-28P-K 3469:H3C IE4320-28P-S 1749:H3C IE4300-28P-M 1974:H3C IE4300-12P-PWR-M 2225:H3C IE4300-12P-AC 2226:H3C IE4300-12P-PWR 25506:H3C Simware32/H3C Simware64 |
0x04 |
√ |
Get |
Revision |
STRUCT |
设备版本,显示方式:Major.Minor |
Major Revision |
USINT |
主版本Range: 0x 01~0x 7F |
|||
Minor Revision |
USINT |
次版本Range:0x01~0xFF |
|||
0x05 |
√ |
Get |
Status |
WORD |
状态描述 |
0x06 |
√ |
Get |
Serial Number |
UDINT |
序列号 |
0x07 |
√ |
Get |
Product Name |
STRING |
产品名称 |
该对象名为消息路由器,负责接收来自UCMM或Transport的显示报文并去掉报文头后,将数据进行解析。解析后根据要访问的类和属性路径对目的对象进行路由。
Service Code |
支持情况 |
Service 名称 |
描述 |
|
Class Attribute |
Instance Attribute |
|||
0x0E |
必选(√) |
必选(√) |
Get_Attribute_Single |
读取单一Attribute 内容 |
0x01 |
有条件(√) |
有条件(√) |
Get_Attribute_All |
读取对象多笔Attribute内容 |
Class Attribute |
支持 情况 |
操作 类型 |
名称 |
数据 类型 |
描述 |
0x01 |
√ |
Get |
Revision |
UINT |
Object版本 |
0x02 |
√ |
Get |
Max Instance |
UINT |
当前Object的Instance最大个数 |
0x03 |
√ |
Get |
Number of Instance |
UINT |
当前Object存在的Instance个数 |
暂不支持
本类对象名为组合对象,用于定义I/O数据交换的参数。
Service Code |
支持 |
Service 名称 |
描述 |
|||
Static Assembly |
Dynamic Assembly(暂不支持) |
|||||
|
Class Attribute |
Instance Attribute |
Class Attribute |
Instance Attribute |
|
|
0x0E |
有条√件 |
必选√ |
必选√ |
必选√ |
Get_Attribute_Single |
读取单一Attribute 内容 |
0x08 |
N/A |
N/A |
必选 |
N/A |
Create |
|
0x10 |
N/A |
可选√ |
N/A |
有条件√ |
Set_Attribute_Single |
修改单一Attribute 内容 |
0x09 |
N/A |
N/A |
有条件 |
必选 |
Delete |
删除Assembly Object并且释放资源 |
Class Attribute |
支持情况 |
操作类型 |
名称 |
数据 类型 |
描述 |
0x01 |
√ |
Get |
Revision |
UINT |
Object 版本 |
0x02 |
√ |
Get |
Max Instance |
UINT |
当前Object的Instance最大个数 |
0x03 |
√ |
Get |
Number of Instance |
UINT |
当前Object存在的Instance个数 |
Instance Attribute |
支持情况 |
操作 类型 |
名称 |
数据类型 |
描述 |
0x03 |
必选(√) |
Get/Set |
Data |
ARRAY of BYTE |
IO Connection 数据内容 |
此对象为连接管理器对象,负责CIP连接的建立和断开。
Service Code |
支持情况 |
Service 名称 |
描述 |
|
Class Attribute |
Instance Attribute |
|||
0x01 |
可选(√) |
可选(√) |
Get_Attributes_All |
读取对象多个Attribute内容 |
0x0E |
有条件(√) |
有条件(√) |
Get_Attribute_Single |
读取单一Attribute 内容 |
0x4E |
N/A |
有条件(√) |
Forward_Close |
结束CIP 联机 |
0x54 |
N/A |
有条件(√) |
Forward_Open |
建立CIP 联机 |
0x5A |
N/A |
有条件(√) |
Get_Connection_Owner |
确定冗余连接的所有者 |
Class Attribute |
支持 情况 |
操作 类型 |
名称 |
数据 类型 |
描述 |
0x01 |
√ |
Get |
Revision |
UINT |
Object版本 |
0x02 |
√ |
Get |
Max Instance |
UINT |
当前Object的Instance最大个数 |
0x03 |
√ |
Get |
Number of Instances |
UINT |
当前Object存在的Instance个数 |
暂不支持
此对象为TCP/IP接口对象,提供了设备的TCP/IP网络接口配置。
Service Code |
支持情况 |
Service 名称 |
描述 |
|
Class Attribute |
Instance Attribute |
|||
0x01 |
可选(√) |
可选(√) |
Get_Attributes_All |
读取对象多个Attribute内容 |
0x0E |
有条件(√) |
必选(√) |
Get_Attribute_Single |
读取单一Attribute 内容 |
0x10 |
N/A |
必选(√) |
Set_Attribute_Single |
修改单一Attribute内容值 |
Class Attribute |
支持 情况 |
操作 类型 |
名称 |
数据 类型 |
描述 |
0x01 |
√ |
Get |
Revision |
UINT |
Object版本 |
0x02 |
√ |
Get |
Max Instance |
UINT |
当前Object的Instance最大个数 |
0x03 |
√ |
Get |
Number of Instances |
UINT |
当前Object存在的Instance个数 |
Class Attribute |
支持情况 |
操作类型 |
名称 |
数据类型 |
描述 |
备注 |
0x01 |
√ |
Get |
Status |
DWORD |
IP设置状态 |
0:尚未设置 1:从 BOOTP,DHCP 或非易失性存储中获取的有效配置 2:已由硬件配置 |
0x02 |
√ |
Get |
Configuration Capability |
DWORD |
设备支持的网络配置能力集 |
0:BOOTP 客户端 1:DNS 客户端 2:DHCP 客户端 3:DHCP-DNS 更新 4:配置可设置 5-31:保留 |
0x03 |
√ |
Get/Set |
Configuration Control |
DWORD |
接口IP模式 |
|
0x04 |
√ |
Get |
Physical Link Object |
STRUCT of: |
物理链路对象的路径 |
获取到的属性是一个由以下成员组成的结构体 |
Path size |
UINT |
路径的长度 |
|
|||
Path |
EPATH |
路径具体内容 |
|
|||
0x05 |
√ |
Get/Set |
Interface Configuration |
STRUCT of: |
设备的TCP/IP网络配置信息 |
获取到的属性是一个由以下成员组成的结构体 |
IP Address |
UDINT |
设备的IP地址 |
|
|||
Network Mask |
UDINT |
设备的掩码 |
|
|||
Gateway Address |
UDINT |
设备的网关 |
|
|||
Name Server |
UDINT |
Primary name server |
|
|||
Name Server 2 |
UDINT |
Secondary name server |
|
|||
Domain Name |
STRING |
Default domain name |
|
|||
0x06 |
√ |
Get/Set |
Host Name |
STRING |
设备名称 |
|
0x08 |
√ |
Get Set is conditional |
TTL Value |
USINT |
EtherNet/IP多播数据包的TTL值 |
|
0x09 |
√ |
Get Set is conditional |
Mcast Config |
STRUCT of: |
多播的ip地址配置信息 |
获取到的属性是一个由以下成员组成的结构体 |
Alloc Control |
USINT |
多播地址分配状态 |
|
|||
Reserved |
USINT |
|
|
|||
Num Mcast |
UINT |
多播可分配地址个数 |
|
此对象是以太网链路对象,用于维护以太网链路的统计信息和状态信息。
Service Code |
支持情况 |
Service 名称 |
描述 |
|
Class Attribute |
Instance Attribute |
|||
0x01 |
可选(√) |
可选(√) |
Get_Attributes_All |
读取对象多个Attribute内容 |
0x0E |
有条件(√) |
必选(√) |
Get_Attribute_Single |
读取单一Attribute 内容 |
Class Attribute |
支持 情况 |
操作 类型 |
名称 |
数据 类型 |
描述 |
0x01 |
√ |
Get |
Revision |
UINT |
Object版本 |
0x02 |
√ |
Get |
Max Instance |
UINT |
当前Object的Instance最大个数 |
0x03 |
√ |
Get |
Number of Instances |
UINT |
当前Object存在的Instance个数 |
Class Attribute |
支持情况 |
操作类型 |
名称 |
数据类型 |
描述 |
备注 |
0x01 |
√ |
Get |
Interface Speed |
DWORD |
接口速率 |
10Mbps 100Mbps 1G |
0x02 |
√ |
Get |
Interface Flags |
DWORD |
接口状态 |
见表1 |
0x03 |
√ |
Get |
Physical Address |
ARRAY of 6 USINTS |
MAC地址 |
|
0x0A |
√ |
Get |
Interface Label |
SHORT_ STRING |
接口名称 |
|
上位机如需对我司设备的状态进行查询或设置,则需要先发送携带set attribute single命令的请求,对上位机需要访问的数据信息进行设置,然后发送携带get attribute single命令的请求来对设置的数据信息进行正式请求。
服务 |
参数 |
set attribute single |
Service:16 Class:4 Instance:104 Attribute:3 |
Get attribute single |
Service:14 Class:4 Instance:103 Attribute:3 |
本节描述上位机从我司设备可以获得的端口以及告警数据信息,上位机发送的携带set attribute single命令的请求报文的数据段前两个字节填0x0000,后续填充的内容如下表所示。
Setting |
||||||||
第三个字节 |
第四个字节 |
|||||||
00 |
01 |
02 |
03 |
04 |
05 |
… |
n |
|
端口状态及告警(00) |
|
|
|
|
|
|
|
|
收到get attribute single命令的请求报文后,我司设备向上位机回复应答报文。应答报文从05位置开始的取值含义如下:
Input Byte Offset num: |
Status Item: |
在报文data 部分的位置(byte) |
每一位字段代表4 个端口,数据共占取16位,16 位以后为告警信息 |
0 |
Port Status: Port 1 - 4 |
1 |
Port Status: Port 5 - 8 |
2 |
Port Status: Port 9 - 12 |
3 |
Port Status: Port 13 - 16 |
4 |
Port Status: Port 17 - 20 |
5 |
Port Status: Port 21 - 24 |
6 |
Port Status: Port 25 - 28 |
7 |
Port Status: Port 29 - 32 |
8 |
Port Status: Port 33 - 36 |
9 |
Port Status: Port 37 - 40 |
10 |
Port Status: Port 41 - 44 |
11 |
Port Status: Port 45 - 48 |
12 |
Port Status: Port 49 - 52 |
13 |
Port Status: Port 53 - 56 |
14 |
Port Status: Port 57 - 60 |
15 |
Port Status: Port 61 - 64 |
16 |
Port Status: Port 65 - 68 |
17 |
Port Status: Port 69 - 72 |
18 |
Port Status: Port 73 - 76 |
19 |
Port Status: Port 77 - 80 |
20 |
Port Status: Port 81 - 84 |
21 |
Port Status: Port 85 - 88 |
22 |
Port Status: Port 89 - 92 |
23 |
Port Status: Port 93 - 96 |
24 |
Port Status: Port 97 - 100 |
25 |
Port Status: Port 101 - 104 |
26 |
Port Status: Port 105 - 108 |
27 |
Port Status: Port 109 - 112 |
28 |
Port Status: Port 113 - 116 |
29 |
Port Status: Port 117 - 120 |
30 |
Port Status: Port 121 - 124 |
31 |
Port Status: Port 125 - 128 |
其中端口状态用2bit 表示,需要将每位段中数据中16 进制字母或者数字转换成而二 进制查看。状态有如下三种: Disable: 00 Up: 01 Down: 10 端口处于up 或down 时,认为端口是enable 状态 |
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置(byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
32 |
端口1 告警状态 Port 1 alarm status |
0x00 = disable 0x01 = normal 0x02 = alarm |
1 |
33 |
端口2 告警状态 Port 2 alarm status |
0x00 = disable 0x01 = normal 0x02 = alarm |
1 |
34 |
第3-128 个端口的告警状态 每个端口占1 个字节 Ports 3-64 alarm status Each port occupies 1 byte |
0x01 = normal 0x02 = alarm |
62 |
160 |
温度告警 |
0x01 = normal 0x02 = alarm |
1 |
161 |
CPU告警 |
0x01 = normal 0x02 = alarm |
1 |
162 |
内存告警 |
0x01 = normal 0x02 = alarm |
1 |
163 |
电源告警状态 |
0x01 = normal 0x02 = alarm电源1告警 0x03 = alarm电源2告警 |
1 |
164-255 |
预留 |
|
|
本节描述上位机从我司设备可以获得的设备状态信息,上位机发送的携带set attribute single命令的请求报文的数据段前两个字节填0x0000,后续填充的内容如下表所示。
Setting |
|||||||||||||||||
第三个字节 |
第四个字节 |
第五个字节 |
|||||||||||||||
数据类别 (Table) |
数据类别(node)/索引 |
数据子类别(node)/子索引 |
|||||||||||||||
00 |
01 |
02 |
03 |
04 |
05 |
06 |
… |
n(ff) |
00 |
01 |
... |
n |
|||||
01(设备信息) |
|
厂商名称 |
设备类型 |
厂商地址 |
联系电话 |
产品名称
|
其他信息 |
|
|
\ |
|||||||
02(端口信息) |
|
第一个端口 |
第二个端口 |
第三个端口 |
第四个端口 |
第五个端口 |
第六个端口 |
|
第n个端口 |
\ |
|||||||
03(RSTP信息) |
全局信息 |
第一个端口环网信息 |
第二个端口环网信息 |
第三个端口环网信息 |
第四个端口环网信息 |
第五个端口环网信息 |
第六个端口环网信息 |
|
第n个端口环网信息 |
\ |
|||||||
04(ERPS环网信息) |
全局信息 |
第一个ERPS环信息 |
第二个ERPS环信息 |
第三个ERPS环信息 |
第四个ERPS环信息 |
第五个ERPS环信息 |
第六个ERPS环信息 |
|
第n个ERPS环信息 |
\ |
|||||||
05(ERPS环实例信息) |
全局信息 |
第一个ERPS环信息 |
第二个ERPS环信息 |
第三个ERPS环信息 |
第四个ERPS环信息 |
第五个ERPS环信息 |
第六个ERPS环信息 |
|
第n个ERPS环信息 |
\ |
第一个实例信息 |
... |
第n个实例信息 |
||||
06(RRPP域信息) |
全局信息 |
第一个RRPP域信息 |
第二个RRPP域信息
|
第三个RRPP域信息 |
第四个RRPP域信息 |
第五个RRPP域信息 |
第六个RRPP域信息 |
|
第n个RRPP域信息 |
\ |
|||||||
07(RRPP环网信息) |
全局信息 |
第一个RRPP域信息 |
第二个RRPP域信息 |
第三个RRPP域信息 |
第四个RRPP域信息 |
第五个RRPP域信息 |
第六个RRPP域信息 |
|
第n个RRPP域信息 |
\ |
第一个RRPP环信息 |
... |
第n个RRPP环信息 |
||||
收到get attribute single命令的请求报文后,我司设备向上位机回复应答报文。应答报文从05位置开始的取值含义如下:
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置(byte) |
数据名称 |
数据示例 |
数据长度(bytes)
|
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
序列号 Serial number |
|
33 |
35 |
Bootrom 版本号 Bootrom verison |
|
64 |
99 |
软件版本号 Current running software version |
|
64 |
163 |
设备IP 地址 Device IP address |
192.168.0.1 (C0 A8 00 01)
|
4 |
167 |
主控板MAC 地址数量 Mac number |
|
4 |
171 |
设备桥MAC 地址 Device original Mac address |
|
6 |
177 |
电源1 状态信息 Power1 status information |
0x00= Power OFF 0x01=Power ON |
1 |
178 |
电源2 状态信息 Power2 status information |
0x00= Power OFF 0x01=Power ON |
1 |
179 |
CPU 占用率百分比(长期) CPU Usage Percentage (Long Term) |
|
4 |
183 |
CPU 占用率百分比(短期) CPU utilization percentage (short term) |
|
4 |
187 |
内存总量(字节) Total memory (bytes) |
|
4 |
191 |
剩余内存(字节) Free memory (bytes) |
|
4 |
195 |
设备运行时间(分钟) Device uptime (minutes) |
|
8 |
203-255 |
预留 |
|
|
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data部分的位置 (byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
端口名称 Port Name |
|
64 |
66 |
端口状态 Port State |
0x00 = disable 0x01 = up 0x02 = down |
1 |
67 |
端口速率 Speed |
|
1 |
68 |
端口双工 Duplex |
0x01 = half 0x02 = full 0x03 = Auto |
1 |
69 |
端口流控状态 Flow Control |
0x00 = off 0x01 = on |
1 |
70 |
端口接收报文数(packets) Port message receive umber |
|
8 |
78 |
端口接收字节数(Octets) Port receive Bytes |
|
8 |
86 |
端口发送报文数(packets) Port message send number |
|
8 |
94 |
端口发送字节数(Octets) Port send Bytes |
|
8 |
102 |
端口接收单播报文数(packets) Port unicast message receive number |
|
8 |
110 |
端口接收组播报文数(packets) Port multicast message receive number |
|
8 |
118 |
端口接收广播报文数(packets) Port broadcast message receive number |
|
8 |
126 |
端口发送单播报文数(packets) Port unicast message send number |
|
8 |
134 |
端口发送组播报文数(packets) Port multicast message send number |
|
8 |
142 |
端口发送广播报文数(packets) Port broadcast message send number |
|
8 |
150 |
端口接收pause 帧数 Port frame receive number |
|
8 |
158 |
端口发送pause 帧数 Port frame send number |
|
8 |
166 |
端口接收CRC 错误报文数(packets) Port CRC massage receive number |
|
8 |
174~255 |
预留 |
|
|
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置 (byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
全局开启状态 Rstp Protocol Status |
0— disable 1— enable |
2 |
04 |
根桥ID Rstp Rootbriage Id |
根桥ID 8字节 |
8 |
12 |
网桥ID Rstp Briage Id |
网桥ID 8字节 |
8 |
20 |
优先级 Rstp Priority |
优先级,范围0-61440 |
4 |
24 |
根设备发送BPDU的周期 Rstp Hello Time |
根设备发送BPDU的周期,范围1-10 |
4 |
28 |
BPDU的最大生存时间 Rstp Max Age Time |
BPDU的最大生存时间,范围6-40 |
4 |
32 |
端口状态迁移的延时 Rstp Forward Delay Time |
端口状态迁移的延时,范围4-30 |
4 |
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置 (byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
端口开启状态 Rstp Port Protocol Status |
0— disable 1— enable |
2 |
04 |
端口优先级 Rstp Port Priority |
端口优先级,范围:0-240 |
4 |
08 |
端口路径开销 Rstp Path Cost |
端口路径开销,范围0- 200000000 |
4 |
12 |
端口角色 Rstp Port Role |
0—Disabled port 1—Alternate port 2—Backup port 3—Root port 4—Designated port 5—Master port |
4 |
16 |
端口状态 Rstp Port Status |
1—Discarding 2—Learning 3—Forwarding |
4 |
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置 (byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
ERPS功能全局开启状态 ERPS Protocol Status |
0: disable 1: enable |
2 |
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置 (byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
ERPS环编号 Ring ID |
编号范围:1-8 |
2 |
04 |
ERPS环成员端口 port0 |
接口名 |
64 |
68 |
ERPS环成员端口 port1 |
接口名 |
64 |
132 |
ERPS环的实例列表 instance lists |
|
64 |
197-255
|
预留
|
|
|
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置 (byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
ERPS功能全局开启状态 ERPS Protocol Status |
0: disable 1: enable |
2 |
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置 (byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
ERPS环编号 Ring ID |
编号范围:1-8 |
2 |
04 |
ERPS实例编号 Instance ID |
编号范围:1-64 |
2 |
06 |
ERPS实例使能状态 Enable status |
0: 实例未使能 1: 实例已只能 |
1 |
07 |
ERPS实例的控制VLAN control VLAN |
范围:2-4094 |
2 |
09 |
节点类型 NodeRole |
字符串 Owner:主节点 Neighbor:邻居节点 Interconnection:互联节点 Normal:普通节点 |
32 |
41 |
节点状态 NodeState |
字符串 Idle:环初始化过后进入到稳定状态,在环链路正常情况下,整个环网为Idle状态 Protection:当环网某段链路出现故障,环路经过保护倒换,最终稳定到的状态 MS:手动倒换模式 FS:强制倒换模式 Pending:Pending状态是一个不稳定的状态,是各状态在进行跳转时的一个过渡状态 -:ERPS协议全局或在实例中处于关闭状态 |
32 |
73 |
ERPS环成员端口 port0 |
接口名 |
64 |
137 |
ERPS成员端口角色 port0 role |
该成员端口的角色,字符串 RPL:表示端口为RPL端口 Non-RPL:表示端口为非RPL端口 |
8 |
145 |
ERPS成员端口状态 port0 state |
端口状态,字符串: Block:端口阻塞 Up:链路up Down:链路down |
8 |
153 |
ERPS环成员端口 port0 |
接口名 |
64 |
217 |
ERPS成员端口角色 port1 role |
该成员端口的角色,字符串: RPL:表示端口为RPL端口 Non-RPL:表示端口为非RPL端口 |
8 |
225 |
ERPS成员端口状态 port1 state |
端口状态,字符串: Block:端口阻塞 Up:链路up Down:链路down |
8 |
233-255 |
保留 |
|
|
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置 (byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
RRPP功能全局开启状态 RRPP Protocol Status |
0: disable 1: enable |
2 |
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置 (byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
RRPP域的ID Domain ID |
编号范围:1-8 |
2 |
04 |
RRPP域的主控制VLAN Control VLAN(Primary) |
范围:2-4094 |
2 |
06 |
RRPP域的环列表 ring lists |
|
128 |
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置 (byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
RRPP功能全局开启状态 RRPP Protocol Status |
0: disable 1: enable |
2 |
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置 (byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
00 |
标志数据段 |
查询成功0x0000 查询失败0xFFFF |
2 |
02 |
RRPP域的ID Domain ID |
编号范围:1-8 |
2 |
04 |
RRPP环的ID Ring ID |
编号范围:1-64 |
2 |
06 |
RRPP环的级别 Ring level |
0: 主环 1: 子环 |
1 |
07 |
RRPP环的使能状态 Enable status |
0:RRPP环未使能 1: RRPP环已只能 |
1 |
08 |
设备的节点角色 Node mode |
0—transit传输节点 1—master主节点 2—edge边缘节点 3—assistant edge辅助节点 |
1 |
09 |
RRPP环的状态 Ring state |
0—Completed. 1—Failed 2—LinkUp 3—LinkDown 4—PreForward 5—LinkUpNotify 6—LinkDnNotify 7—PreForwardNotify 8—Unknown |
1 |
10 |
RRPP环主端口 Primary port |
端口号1-128 |
4 |
14 |
RRPP环主端口状态 Primary port status |
端口状态: 0—down. 1—up. 2—blocked. |
1 |
15 |
RRPP环副端口 Secondary port |
端口号1-128 |
4 |
19 |
RRPP环副端口状态 Secondary port status |
端口状态: 0—down. 1—up. 2—blocked. |
1 |
20 |
RRPP环边缘端口 Edge port |
端口号1-128 |
4 |
24 |
RRPP环边缘端口状态 Edge port status |
端口状态: 0—down. 1—up. 2—blocked. |
1 |
本节描述上位机可以设置的我司设备端口状态,上位机发送的携带set attribute single命令的请求报文的数据段前两个字节填0x0100,后续填充的内容如下表所示。
Setting |
|
Input Byte Offset num: |
Status Item: |
在报文data 部分的位置(byte) |
|
3 |
Port Status: Port 1 - 4 |
4 |
Port Status: Port 5 - 8 |
5 |
Port Status: Port 9 - 12 |
6 |
Port Status: Port 13 - 16 |
7 |
Port Status: Port 17 - 20 |
8 |
Port Status: Port 21 - 24 |
9 |
Port Status: Port 25 - 28 |
10 |
Port Status: Port 29 - 32 |
11 |
Port Status: Port 33 - 36 |
12 |
Port Status: Port 37 - 40 |
13 |
Port Status: Port 41 - 44 |
14 |
Port Status: Port 45 - 48 |
15 |
Port Status: Port 49 - 52 |
16 |
Port Status: Port 53 - 56 |
17 |
Port Status: Port 57 - 60 |
18 |
Port Status: Port 61 - 64 |
19 |
Port Status: Port 65 - 68 |
20 |
Port Status: Port 69 - 72 |
21 |
Port Status: Port 73 - 76 |
22 |
Port Status: Port 77 - 80 |
23 |
Port Status: Port 81 - 84 |
24 |
Port Status: Port 85 - 88 |
25 |
Port Status: Port 89 - 92 |
26 |
Port Status: Port 93 - 96 |
27 |
Port Status: Port 97 - 100 |
28 |
Port Status: Port 101 - 104 |
29 |
Port Status: Port 105 - 108 |
30 |
Port Status: Port 109 - 112 |
31 |
Port Status: Port 113 - 116 |
32 |
Port Status: Port 117 - 120 |
33 |
Port Status: Port 121 - 124 |
34 |
Port Status: Port 125 - 128 |
其中每个端口用2bit 表示,01 表示设置端口Enable,10 表示设置端口disable,00 和11 端口状态不变。 |
使用隐式通信前,我司设备需要与上位机建立CIP连接,需要设置的连接参数如下:
Transport Type |
Class ID |
Instance ID |
connection point |
data size |
Input |
4 |
3 |
101 0x65 |
200bytes |
Output |
102 0x66 |
40bytes |
隐式通信的Output报文中含有想要设置的各个端口的状态,Input 报文中包含各个端口现在的状态和告警信息。
Output报文描述想要设置的端口的状态。
Input Byte Offset num: |
Status Item: |
在报文data 部分的位置(byte) |
事务号,事务号更新时设备才会处理output 报文(2bytes),事务号不更新则认为数据没有更新,不会读取分析后面的报文内容 |
|
Run Idle Buf,置0(4bytes),Connection point 中设置的output 长度从下面开始计算。所以从下面开始计算数据位置 |
0 |
Port Status: Port 1 - 4 |
1 |
Port Status: Port 5 - 8 |
2 |
Port Status: Port 9 - 12 |
3 |
Port Status: Port 13 - 16 |
4 |
Port Status: Port 17 - 20 |
5 |
Port Status: Port 21 - 24 |
6 |
Port Status: Port 25 - 28 |
7 |
Port Status: Port 29 - 32 |
8 |
Port Status: Port 33 - 36 |
9 |
Port Status: Port 37 - 40 |
10 |
Port Status: Port 41 - 44 |
11 |
Port Status: Port 45 - 48 |
12 |
Port Status: Port 49 - 52 |
13 |
Port Status: Port 53 - 56 |
14 |
Port Status: Port 57 - 60 |
15 |
Port Status: Port 61 - 64 |
16 |
Port Status: Port 65 - 68 |
17 |
Port Status: Port 69 - 72 |
18 |
Port Status: Port 73 - 76 |
19 |
Port Status: Port 77 - 80 |
20 |
Port Status: Port 81 - 84 |
21 |
Port Status: Port 85 - 88 |
22 |
Port Status: Port 89 - 92 |
23 |
Port Status: Port 93 - 96 |
24 |
Port Status: Port 97 - 100 |
25 |
Port Status: Port 101 - 104 |
26 |
Port Status: Port 105 - 108 |
27 |
Port Status: Port 109 - 112 |
28 |
Port Status: Port 113 - 116 |
29 |
Port Status: Port 117 - 120 |
30 |
Port Status: Port 121 - 124 |
31 |
Port Status: Port 125 - 128 |
32-39 |
预留 |
报文前8 个字节表示想要设置的端口状态,其中每个端口用2bit 表示,01 表示设置端口 Enable,10表示设置端口disable,00 和11 端口状态不变。后面8 个字节预留。 |
Input报文中描述端口现在的状态。
Input Byte Offset num: |
Status Item: |
在报文data 部分的位置(byte) |
事务号,事务号更新时设备才会处理input 报文(2bytes)。Connection point 中设置的input 长度从下面开始计算 所以从下面开始计算数据位置 |
0 |
Port Status: Port 1 - 4 |
1 |
Port Status: Port 5 - 8 |
2 |
Port Status: Port 9 - 12 |
3 |
Port Status: Port 13 - 16 |
4 |
Port Status: Port 17 - 20 |
5 |
Port Status: Port 21 - 24 |
6 |
Port Status: Port 25 - 28 |
7 |
Port Status: Port 29 - 32 |
8 |
Port Status: Port 33 - 36 |
9 |
Port Status: Port 37 - 40 |
10 |
Port Status: Port 41 - 44 |
11 |
Port Status: Port 45 - 48 |
12 |
Port Status: Port 49 - 52 |
13 |
Port Status: Port 53 - 56 |
14 |
Port Status: Port 57 - 60 |
15 |
Port Status: Port 61 - 64 |
16 |
Port Status: Port 65 - 68 |
17 |
Port Status: Port 69 - 72 |
18 |
Port Status: Port 73 - 76 |
19 |
Port Status: Port 77 - 80 |
20 |
Port Status: Port 81 - 84 |
21 |
Port Status: Port 85 - 88 |
22 |
Port Status: Port 89 - 92 |
23 |
Port Status: Port 93 - 96 |
24 |
Port Status: Port 97 - 100 |
25 |
Port Status: Port 101 - 104 |
26 |
Port Status: Port 105 - 108 |
27 |
Port Status: Port 109 - 112 |
28 |
Port Status: Port 113 - 116 |
29 |
Port Status: Port 117 - 120 |
30 |
Port Status: Port 121 - 124 |
31 |
Port Status: Port 125 - 128 |
其中端口状态用2bit 表示,状态有如下三种: Disable:00 Up:01 Down:10 端口处于up 或down时,认为端口是enable 状态 |
Data portion position (byte) |
Data name |
Data example |
Data length (bytes) |
在报文data 部分的位置(byte) |
数据名称 |
数据示例 |
数据长度(bytes) |
32 |
端口1 告警状态 Port 1 alarm status |
0x00 = disable 0x01 = normal 0x02 = alarm |
|
33 |
端口2 告警状态 Port 2 alarm status |
0x00 = disable 0x01 = normal 0x02 = alarm |
|
34 |
第3-128 个端口的告警状态 每个端口占1 个字节 Ports 3-64 alarm status Each port occupies 1 byte |
0x01 = normal 0x02 = alarm |
|
160 |
温度告警 |
0x01 = normal 0x02 = alarm |
|
161 |
CPU告警 |
0x01 = normal 0x02 = alarm |
|
162 |
内存告警 |
0x01 = normal 0x02 = alarm |
|
163 |
电源告警状态 |
0x01 = normal 0x02 = alarm电源1告警 0x03 = alarm电源2告警 |
|
164-199 |
预留 |
|
|
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!