3. 总线基础(二):Profinet协议原理精讲——RT与IRT、等时同步、GSDML文件解析
好,咱们接着聊Profinet。上一章我们把Profinet的物理层和基本通信模型讲清楚了。这一章,我打算深入它的核心——RT和IRT,还有那个让很多工程师头疼的等时同步,以及GSDML文件到底该怎么看。
说实话,Profinet这玩意儿,刚接触时觉得它跟Ethernet/IP差不多,都是工业以太网。但用久了你会发现,它骨子里藏着不少西门子的“私货”。尤其是IRT,那才是真正拉开差距的地方。
3.1 RT(实时通信)—— 够用就好
RT,全称Real-Time,实时通信。这是Profinet最基础的实时通道。
它的原理其实不复杂。标准以太网帧里,Profinet把优先级标签(VLAN Tag)的优先级位设成了7,也就是最高优先级。交换机看到这个标签,就会优先转发。这样一来,数据包的延迟就能控制在1ms以内。
RT的特点:
- 循环周期:典型值1ms~10ms。我见过很多产线,1ms的周期足够用了。
- 适用场景:普通运动控制、IO控制、变频器通信。
- 硬件要求:普通工业交换机就行,不需要专用ASIC。
3.2 IRT(等时实时通信)—— 精准到微秒
IRT,Isochronous Real-Time,等时实时通信。这才是Profinet的杀手锏。
为什么叫“等时”?说白了,就是每个周期的时间点都是严格固定的。比如你设了1ms周期,那么第1ms、第2ms、第3ms……数据到达的时间误差不能超过1微秒。
IRT是怎么做到的?
它靠的是“时间槽”机制。Profinet IRT把通信周期分成了两部分:
- 红色时间槽:专门给IRT数据用。这段时间里,交换机只转发IRT帧,其他数据统统靠边站。
- 绿色时间槽:给RT和标准TCP/IP数据用。
你想想看,这样一来,IRT数据就像上了高速专用车道,永远不会被堵住。
IRT的典型参数:
| 参数 | RT | IRT |
|---|---|---|
| 最小周期 | 1ms | 31.25μs |
| 抖动 | ±100μs | ±1μs |
| 硬件要求 | 普通交换机 | 专用ASIC |
| 适用场景 | 普通控制 | 高速运动控制、CNC |
3.3 等时同步—— 让所有设备步调一致
等时同步,英文叫Isochronous Mode。它是IRT的基础。
简单说,就是让总线上的所有设备都共享同一个时间基准。Profinet用的是IEEE 1588精确时间协议(PTP)的变种。
同步过程:
- 主站(PLC)发送同步报文,记录发送时间T1。
- 从站(伺服驱动器)收到报文,记录接收时间T2。
- 主站再发一个跟随报文,告诉从站T1是多少。
- 从站算出延迟:Delay = (T2 - T1) / 2。
- 从站调整自己的本地时钟,跟主站对齐。
嗯,这里要注意:这个计算假设了链路是对称的。实际上,有些交换机上下行延迟不一样,会导致误差。所以,我建议在关键链路上用支持透明时钟的交换机。
3.4 GSDML文件解析—— 设备的“身份证”
GSDML,全称General Station Description Markup Language。说白了,就是一个XML文件,描述了设备的所有通信能力。
你想想看,PLC怎么知道一个伺服驱动器支持哪些功能?就是靠读这个文件。
GSDML文件里有什么?
- 设备信息:厂商、型号、版本号。
- 通信接口:支持RT还是IRT?最小周期多少?
- 模块/子模块:每个槽位可以插什么模块。
- 参数记录:可以配置哪些参数,取值范围是多少。
- 诊断信息:设备能上报哪些故障。
一个典型的GSDML片段:
<?xml version="1.0" encoding="UTF-8"?>
<ISO15739Profile>
<DeviceIdentity VendorName="Siemens" DeviceID="1234"/>
<DeviceFunction>
<RT_Class>RT_CLASS_3</RT_Class>
<MinDeviceInterval>1</MinDeviceInterval>
</DeviceFunction>
<ModuleList>
<Module ID="1" Name="4DI_4DO">
<SubModule ID="1" Name="Input">
<IOData Length="4"/>
</SubModule>
</Module>
</ModuleList>
</ISO15739Profile>
<RT_Class>标签。如果是RT_CLASS_1,那只能做RT;如果是RT_CLASS_3,才能支持IRT。另外,<MinDeviceInterval>决定了设备最快能跑多快。
怎么用GSDML文件?
- 从设备厂商官网下载GSDML文件。
- 在PLC编程软件(如TIA Portal)中导入。
- 软件自动解析,生成设备配置界面。
- 你只需要拖拽模块、设置参数就行。
3.5 知识体系总览
为了让你更直观地理解这一章的内容,我画了一张图。它把RT、IRT、等时同步和GSDML的关系串起来了。
这张图你看懂了吗?从上往下,Profinet分为RT和IRT两条路。IRT依赖等时同步,而等时同步又需要GSDML文件来描述设备能力。一环扣一环,缺一不可。
好了,这一章的内容就到这里。RT和IRT的区别、等时同步的原理、GSDML文件的解析方法,我都讲清楚了。下一章,我们会聊EtherCAT,那又是一个完全不同的世界。