目录

一 设置 Set(请求)

二 设置Set(应答)

三 识别 Identify(请求)

四 识别 Identify(应答)


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

图1 OSI模型

一 设置 Set(请求)

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

表1 链路层帧

FrameControl

DST

SDR

BSSID

Seq

QOS

LT

FrameID

DCPDU

Pad

CRC

表2 DCPDU结构

ServiceID

ServiceType

Xid

0000

DCPLength

SetReqBlock

设置请求块结构(SetReqBlock)

表3 SetReq块结构

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帧

ServiceID

ServiceType

Xid

Padding

DCPDataLen

SetResBlock

SetResBlock帧结构:

表5 SetRes块

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 链路层帧结构

FrameControl

DST

SDR

BSSID@

Seq@

QOS@

LT

FrameID

DCPDU

Pad

CRC

@为可选

Identi-ALL   DCPDU结构:

表7  DCP-Identi-ALL结构

ServiceID

ServiceType

Xid

Response

DelayFactor

DCPData

Length

AllSelector

Type

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

PROFINET协议解析-DCP相关推荐

  1. Profinet协议解析-过程数据

    新的一篇文章,开始讲下一个点--过程数据.过程数据,顾名思义,就是一直循环传输的数据,在整个过程中不间断的传输,其每次传输的时间称为同步周期.这点类似于Ethercat中的PDO数据,而下下篇将要讲到 ...

  2. Profinet非周期协议解析

    PROFINET的非周期通信,是想了又想,拖了又拖,终于鼓足勇气写一下.跟Ethercat和Canopen一样,任何一种完备的协议都不可能所有的内容通过过程数据解决.Ethercat有SDO数,对比于 ...

  3. synopsys PCIE IP协议解析

    synopsys PCIE IP协议解析 1.Overview Core支持单个Pcie内核的Loopback功能,该功能主要为了做芯片验证,以及在没有远程接收器件的情况下完成自己的回环.同时,Cor ...

  4. 详解BLE 空中包格式—兼BLE Link layer协议解析

    BLE有几种空中包格式?常见的PDU命令有哪些?PDU和MTU的区别是什么?DLE又是什么?BLE怎么实现重传的?BLE ACK机制原理是什么?希望这篇文章能帮你回答以上问题. 虽然BLE空中包(pa ...

  5. wireshark协议解析器 源码分析 封装调用

    源码分析 Wireshark启动时,所有解析器进行初始化和注册.要注册的信息包括协议名称.各个字段的信息.过滤用的关键字.要关联的下层协议与端口(handoff)等.在解析过程,每个解析器负责解析自己 ...

  6. wireshark协议解析器原理与插件编写

    工作原理 每个解析器解码自己的协议部分, 然后把封装协议的解码传递给后续协议. 因此它可能总是从一个Frame解析器开始, Frame解析器解析捕获文件自己的数据包细节(如:时间戳), 将数据交给一个 ...

  7. SGS 0.9.7 协议解析

    SGS as客户端发送数据规则: sgs 是0.9.7版 协议规则:  包头3个字节: 包大小(2个字节),命令(1个字节)  数据包  注意:包大小=命令+ 数据包 的大小 登陆命令:   命令是: ...

  8. 简易HTTP协议解析

    首先介绍一些必要的知识点. TCP协议为操作系统底层协议,能够保证应用层获取到完整的.顺序一直的包序列.但TCP不提供具体的分包,需要上层协议自己解决.TCP发送给上层协议的数据是一个没有意义的字符串 ...

  9. 视音频数据处理入门:UDP-RTP协议解析

    ===================================================== 视音频数据处理入门系列文章: 视音频数据处理入门:RGB.YUV像素数据处理 视音频数据处理 ...

最新文章

  1. vsftpd学习笔记
  2. linux下vim编辑器的基本使用
  3. Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分
  4. [转] PHP 转义与反转义函数
  5. SpringBoot的启动过程
  6. Firebug Console API
  7. 送给那些有代码基础但仍旧不会学自动化测试的朋友们
  8. 【算法导论】第15章动态规划
  9. CC2541蓝牙模块间通信设置 蓝牙透传 蓝牙通信程序
  10. 【深度学习基础】Epoch, Batch, Iteration这三个概念的区别与联系
  11. 数字图像处理学习笔记4第四章 图像变换 附实验
  12. 双卡版本不插卡的情况下状态栏中只显示了一个信号图标,而不是两个信号图标,如何修改为2个图标
  13. git使用遇到的问题
  14. expect命令简介及使用案例
  15. 作为一名数据人,真心推荐一位行业大佬,从0到1的实践案例
  16. 《社交网络》里的评分公式——ELO排名系统
  17. java+selenium+chromedriver 整页截屏
  18. 国内PHP开源电商平台有哪些,国内电商平台开源程序汇总
  19. 机器视觉运动控制一体机应用例程|端子裁切检测
  20. 一个Web服务的性能瓶颈分析及对策

热门文章

  1. 慕课头条:拼多多海外版表现亮眼;小度配送机器人发布;土巴兔也玩儿元宇宙...
  2. STM32(基于HAL库)驱动0.96寸OLED屏幕(四脚且中英文皆可显示)
  3. USB Hub集线控制器芯片AU9254A21 国产替代DP9254
  4. 【20岁的时候决定自己的一生】
  5. 民生保险“链”接链家地产,2018向家告白赢取爱疯X
  6. 【梳理】数据库系统概论 第8章 数据库编程 8.1 嵌入式SQL 8.2 过程化SQL 8.3 存储过程和函数 8.4 ODBC编程
  7. python-pandapower电力系统潮流计算无法收敛情况解决方法
  8. 开机一直黑屏后,扣电池,No bootable device or remote image found
  9. 三轴高速激光扫描振镜
  10. 基于vue.js开发的demo—天气APP