工控网首页
>

应用设计

>

睿远研究院丨IO-Link OD模块解析

睿远研究院丨IO-Link OD模块解析

2025/6/30 14:48:43

前言

书接上文,这周我们就开始深入解读下OD模块。OD的全称是On-Request Data,即在请求时才会应的报文。OD模块通常分为三个部分,ISDU、Command和Event,这也是我们解读OD状态机的过程中,重点分析的内容。

01 主站的OD数据处理图片

上图是主站的状态机,主站的On-request处理程序是DL-Mode处理模块中“Startup_2”“PreOperate_3”和“Operate_4”状态下的一个从属状态机。它控制其他三个状态机,即ISDU处理模块、command处理模块和Event处理模块的状态机,默认情况下,它始终在ISDU状态。

1 当收到EventFlag时,状态机将切换到Event处理模块,在完整读取Event信息后,它将返回到ISDU处理状态;

2 当收到DL_Control,则状态机将切换到Command处理模块;完成相关命令后,状态机将返回到之前的状态(ISDU或Event状态)

3 当收到DL_Write_DeviceMode命令,也会切换到Command模块,用于处理DL Mode的状态切换,这是1.1.4版本增加的内容

02 从站的OD数据处理

图片

从站对OD的请求重定向4个独立的小模块:

⭐️Param读写模块

该模块主要读写DPP部分的数据,专门走了Page通道

⭐️Command模块

用于切换从站的状态,保持和主站的同步

⭐️ISDU模块

读写ISDU

⭐️Event模块

读写Event

03 DPP&ISDU的处理

DPP即Direct Parameter Page,其实属于ISDU部分,DPP1对应ISDU的Index 0x00,DPP2对应ISDU Index 0x01。

规范中明确如果不支持ISDU,就直接采用DPP1和DPP2进行参数的读写,这是为了方便一些简化版本的协议栈进行简单的IO-Link控制。

那么我们看DPP和ISDU在规范中的定义:

图片

DPP1和DPP2就是从属于ISDU的,只是协议栈规定了DPP走的PAGE通道,其余ISDU走ISDU通道,个人认为,其把简单的东西复杂化了,如果合二为一岂不是更好。图片

其中0x00:MasterCommand主要用于接收主站的各类命令,进入Command模块进行处理:

图片

04 MasterCycleTime&MinCycleTime

MinCycleTime是从站主动上传汇报给主站的循环时间,而MasterCycleTime则是主站最终根据字节大小,从站汇报的循环时间决策出的实际时间,都是采用Timebase|Multiplier的方式,具体如下:

图片

图片图片

05 M-sequence Capability编码格式

这个编码在前面的章节中已经详细介绍,这里就不多说了,直接看一个例子:

图片

这是从站回复的一个示例,这回复的0x21这个数据中,表明了自己分别在Preop和OP模式下的OD字节大小

06 ProcessDataIn& ProcessDataOut

PDIn和PDOut的字段,都是采用是否Byte位和Length来组成,把一个字节的作用抠到了极致。

图片

图片

写在最后  

好了,以上就是本期OD处理模块与DPP主要字节的解析,DPP作为IO-Link的关键参数,包含了IO-Link设备的关键信息。下一期,我们就开始介绍与参数配置相关的ISDU部分,这也是IO-Link技术的核心价值体现。 

审核编辑(
王静
)
投诉建议

提交

查看更多评论
其他资讯

查看更多

睿远研究院丨IO-LinkPD处理模块

睿远研究院丨IO-Link M序列解析

睿远研究院丨IO-Link消息处理模块

睿远研究院丨IO-Link主从状态机解析

睿远研究院丨IO-Link数据链路层解析