4. PROFIBUS DP数据链路层
PROFIBUS DP 的数据链路层(FDL,Fieldbus Data Link)决定了总线上“谁可以发、什么时候发、发给谁、如何确认”。它既不是单纯的以太网式竞争,也不是纯轮询,而是把令牌传递与主从轮询组合起来:主站之间用令牌控制发言权,主站与从站之间用请求/响应完成循环数据交换。理解这一层,是排查“通信时断时续、从站掉站、诊断读不到”等问题的关键。
一、令牌传递与主从通信原理
PROFIBUS DP 总线上有两类节点:主站(Master)和从站(Slave)。主站持有令牌时才有权主动发起报文;从站不能主动发起通信,只能被动响应主站请求。令牌在逻辑环上按主站地址顺序传递,例如主站地址为 2、5、9,则令牌按 2→5→9→2 循环。主站拿到令牌后,在“令牌持有时间”内完成自己的循环数据交换,然后交给下一个主站。
主站与从站之间采用主从轮询:主站依次向从站发送请求帧,从站回送响应帧。对于循环通信,主站周期性地读写从站的输入/输出数据;对于非循环通信,主站按需发起参数化、诊断、报警确认等操作。这样既保证了实时性,又兼顾了诊断与组态需求。
二、报文帧格式
PROFIBUS DP 的报文帧由起始符、地址字节、控制字节、数据单元、FCS 校验和结束符组成。不同帧类型(如无数据固定长度、有数据可变长度、令牌帧、短确认帧)结构略有差异,但核心字段一致。地址字节中,bit0~bit6 表示站地址,bit7 表示方向(0 为主站请求,1 为从站响应)。控制字节用于区分帧类型、序号和功能码。
以常见的“请求/响应”数据帧为例,其结构可简化为:
SD1 | LE | LEr | SD2 | DA | SA | FC | Data Unit | FCS | ED
SD1:起始符(如 0x10、0x68、0xA2 等,取决于帧类型)
LE / LEr:数据长度及重复长度
SD2:起始符重复
DA:目的地址
SA:源地址
FC:帧控制(功能码、序号、请求/响应标志)
Data Unit:用户数据(循环 I/O 或非循环参数)
FCS:帧校验序列
ED:结束符(0x16)
需要特别注意的是:FCS 校验只覆盖地址、控制和数据部分,不包含起始符和结束符。若现场出现偶发丢帧,除了检查终端电阻和屏蔽接地,还应关注帧长度是否超过从站支持的最大长度,以及是否因电磁干扰导致 FCS 错误。
三、循环通信与非循环通信
循环通信是 PROFIBUS DP 的“主干业务”:主站按组态周期,周期性地读取从站输入数据、写入输出数据。这类通信使用固定长度的数据帧,优先级高,保证实时性。典型周期为 1ms~10ms,具体取决于总线速率、从站数量和每个从站的数据量。
非循环通信则用于组态、参数化、诊断、报警确认和从站地址修改等。它不占用固定周期,而是在循环通信的空隙中按需发起。DP-V1 引入的非循环服务(如 MSAC1、MSAC2)允许主站读写从站参数、读取诊断记录,而不影响循环数据交换。DP-V2 进一步支持从站之间的横向通信和时钟同步。
| 通信类型 | 典型用途 | 触发方式 | 对实时性影响 |
|---|---|---|---|
| 循环通信 | 过程输入/输出数据交换 | 主站周期轮询 | 高优先级,周期稳定 |
| 非循环通信 | 参数化、诊断、报警确认 | 主站按需发起 | 低优先级,插入循环空隙 |
| 令牌传递 | 主站之间移交发言权 | 令牌环顺序 | 决定主站轮询窗口 |
四、DP-V0 / V1 / V2 功能差异
DP-V0 是最基础版本,只支持循环数据交换和基本诊断,适合简单远程 I/O。DP-V1 在 V0 基础上增加了非循环通信、扩展诊断、报警处理和从站参数在线修改,适合智能从站和变频器等设备。DP-V2 进一步支持从站间直接通信(DX)、时钟同步、时间戳和冗余,适合运动控制和高精度同步场景。
选型提示:若现场只需读写 I/O,DP-V0 即可;若需要在线读取从站诊断记录、修改参数,必须使用 DP-V1;若涉及多轴同步或从站间快速联动,才考虑 DP-V2。主站和从站必须同时支持对应版本,功能才能生效。
五、案例与排障复盘
某包装线使用 S7-300 作为主站,带 12 个 DP 从站,其中 3 个变频器需要在线读取故障码。初期按 DP-V0 组态,循环通信正常,但无法读取变频器诊断记录。将主站和从站均切换为 DP-V1,并启用非循环服务后,诊断读取正常,循环周期仅增加约 0.3ms,未影响生产节拍。
另一次故障中,总线末端从站偶发掉站。检查发现终端电阻未接入,且屏蔽层单端接地。重新接入终端电阻并改为两端接地后,FCS 错误计数明显下降。这说明数据链路层的稳定性不仅取决于协议,还取决于物理层的终端匹配和接地质量。
常见误区:把“从站不响应”直接归因于从站故障。实际上,令牌未传到该主站、主站轮询顺序错误、地址冲突、帧长度超限、FCS 校验失败,都会表现为从站不响应。排查时应先看主站诊断缓冲区,再结合总线分析仪抓取令牌帧和请求/响应帧。
掌握令牌传递与主从轮询的配合关系,理解帧格式和循环/非循环通信的分工,再结合 DP-V0/V1/V2 的功能边界,就能在组态、调试和排障中快速定位问题层次:是令牌环问题、轮询问题、帧格式问题,还是版本功能不匹配。