遥远的星星

PROFINET协议解析-DCP

2020-12-12

DCP全称Discovery and basic Configurat10n Protocol,发现和配置协议,如图1所示,其工作在OSI七层中的第二层-数据链路层,所以主要的识别站点的ID就是MAC地址。DCP在PROFINET中设置(Set),识别(ldentify),Hello,获取(Get)四大功能。下面将以Set和Identify为例分别介绍。

一 设置 Set(请求)

配置的内容主要是网络参数和辅助功能,包括IP地址,子网掩码,网关,设备名称,闪烁识别等。下面以设置设备名称为例进行帧分析。设备名称类似于以太网的域名,相比较而言,域名是国际唯一的,而设备名称只要保证在你的控制网络中唯一即可;域名通过DNS解析为IP地址,而设备名称与MAC地址相绑定,都是为了更好的记忆和使用通信网络。

表1 链路层帧

1 2 3 4 5 6 7 8 9 10 11
FrameControl DST SDR BSSID Seq QOS LT FrameID DCPDU Pad CRC

表2 DCPDU结构

1 2 3 4 5 6
ServiceID ServiceType Xid 0000 DCPLength SetReqBlock

设置请求块结构(SetReqBlock)
表3 SetReq块结构

1 2 3 4 5 6
DeviceProperties Option SuboptionName OfStation DCPBlocklength BlockQuabfie NameOfStation Value

根据以上结构,我们以IS620F设备名称为例,拼接一个DCP分配设备名称的数据帧:
条件:

源MAC地址(上位机或PLC):28-30-11-02-11-01
目的MAC地址:08-62-74-99-10-01
设备名称:IS620F
不带VLAN标签
08 62 74 99 10 01 28 30 11 02
11 01 88 92 FE FD 04 00 00 00
01 00 00 00 00 0C 02 02 00 08
00 01 49 53 36 32 30 46

通过上述帧即可永久设置设备名称,其他参数设置类似,具体参考GBZ 25105.2-2010

二 设置Set(应答)

发送请求帧后,接收返回的数据。设备会根据向请求的mac地址设备返回相应的数据信息。既然是响应就有成功与失败两种情况,PN在blockErr中详细规定了响应的情况。

以太网帧结构同上。

Set应答帧结构:
表4 SetRes帧

1 2 3 4 5 6
ServiceID ServiceType Xid Padding DCPDataLen SetResBlock

SetResBlock帧结构:
表5 SetRes块

1 2 3 4 5
Control SubOption DCPBlockLen NameOfStation BlockErr

条件:以文章一的请求为例进行应答

28 30 11 02 11 01 08 62 74 99
10 01 88 92 FE FD 04 01 00 00
01 00 00 00 08 05 04 00 03 02
02 00 00

三 识别 Identify(请求)

Identify主要是用来扫描网络中的PN设备,所以该帧只需要源MAC地址就可以了,目标地址一般为广播MAC,所有接收到该帧的设备包括控制器都进行应答,就可以知到网络中的设备信息,为后续建立连接做准备。
Identify有两种,一种是带过滤器的帧,毕竟多了过滤的功能,所以结构会更复杂,这里以不带过滤器的帧展开,即向所有的设备发送广播。
以太网链路层帧结构:

表6 链路层帧结构

1 2 3 4 5 6 7 8 9 10 11
FrameControl DST SDR BSSID@ Seq@ QOS@ LT FrameID DCPDU Pad CRC

@为可选

Identi-ALL DCPDU结构:
表7 DCP-Identi-ALL结构

1 2 3 4 5 6 7
ServiceID ServiceType Xid ResponseDelayFactor DCPDataLength AllSelectorType DCPBlocklength

条件:

扫描网络中所有设备
扫描主机mac:28-30-11-02-11-01
01 0E CF 00 00 00 28 30 11 02
11 01 88 92 FE FE 05 00 00 00
01 00 00 01 00 04 FF FF 00 00

四 识别 Identify(应答)

这里的应答不再详述,扫描所有的设备,设备会应答所有的数据,包括IP,设备名称,厂家信息,mac地址,设备别名等。具体可以参考国标。

本篇文章只是起到一个引导使用国标的作用,具体的各种帧情况并未这里详述。毕竟牵扯到了以太网,就有各种各样复杂的网络状况和拓扑,这些内容只能在数据帧中进行限制,这在很大程度上提提高了网络帧结构的复杂性,内容也很多,比如VLAN,路由,交换机,PC,IO设备等常用的网络设备,协议上包括常用LLDP,SNMP,MRP等,它们工作在符合CC-A的标准上,在PN中也可以烁识RT_CLASS_1,还有为了保证实时RT_CLASS_3,CC-C上的IRT等等。为了实现更好的过渡,下一篇文章计划在这片基础上进行实践,演示抓包工具或管理型交换机抓包,分析实际网路上的数据帧,更贴近实际使用情况。下下篇文章将开启第二部分,profinet的过程数据帧分析。

2020-12-12