睿遠(yuǎn)研究院丨IO-Link OD模塊解析
前言
書接上文,這周我們就開始深入解讀下OD模塊。OD的全稱是On-Request Data,即在請求時才會應(yīng)的報文。OD模塊通常分為三個部分,ISDU、Command和Event,這也是我們解讀OD狀態(tài)機(jī)的過程中,重點(diǎn)分析的內(nèi)容。
01 主站的OD數(shù)據(jù)處理
上圖是主站的狀態(tài)機(jī),主站的On-request處理程序是DL-Mode處理模塊中“Startup_2”“PreOperate_3”和“Operate_4”狀態(tài)下的一個從屬狀態(tài)機(jī)。它控制其他三個狀態(tài)機(jī),即ISDU處理模塊、command處理模塊和Event處理模塊的狀態(tài)機(jī),默認(rèn)情況下,它始終在ISDU狀態(tài)。
1 當(dāng)收到EventFlag時,狀態(tài)機(jī)將切換到Event處理模塊,在完整讀取Event信息后,它將返回到ISDU處理狀態(tài);
2 當(dāng)收到DL_Control,則狀態(tài)機(jī)將切換到Command處理模塊;完成相關(guān)命令后,狀態(tài)機(jī)將返回到之前的狀態(tài)(ISDU或Event狀態(tài))
3 當(dāng)收到DL_Write_DeviceMode命令,也會切換到Command模塊,用于處理DL Mode的狀態(tài)切換,這是1.1.4版本增加的內(nèi)容
02 從站的OD數(shù)據(jù)處理
從站對OD的請求重定向4個獨(dú)立的小模塊:
??Param讀寫模塊
該模塊主要讀寫DPP部分的數(shù)據(jù),專門走了Page通道
??Command模塊
用于切換從站的狀態(tài),保持和主站的同步
??ISDU模塊
讀寫ISDU
??Event模塊
讀寫Event
03 DPP&ISDU的處理
DPP即Direct Parameter Page,其實(shí)屬于ISDU部分,DPP1對應(yīng)ISDU的Index 0x00,DPP2對應(yīng)ISDU Index 0x01。
規(guī)范中明確如果不支持ISDU,就直接采用DPP1和DPP2進(jìn)行參數(shù)的讀寫,這是為了方便一些簡化版本的協(xié)議棧進(jìn)行簡單的IO-Link控制。
那么我們看DPP和ISDU在規(guī)范中的定義:
DPP1和DPP2就是從屬于ISDU的,只是協(xié)議棧規(guī)定了DPP走的PAGE通道,其余ISDU走ISDU通道,個人認(rèn)為,其把簡單的東西復(fù)雜化了,如果合二為一豈不是更好。
其中0x00:MasterCommand主要用于接收主站的各類命令,進(jìn)入Command模塊進(jìn)行處理:
04 MasterCycleTime&MinCycleTime
MinCycleTime是從站主動上傳匯報給主站的循環(huán)時間,而MasterCycleTime則是主站最終根據(jù)字節(jié)大小,從站匯報的循環(huán)時間決策出的實(shí)際時間,都是采用Timebase|Multiplier的方式,具體如下:
05 M-sequence Capability編碼格式
這個編碼在前面的章節(jié)中已經(jīng)詳細(xì)介紹,這里就不多說了,直接看一個例子:
這是從站回復(fù)的一個示例,這回復(fù)的0x21這個數(shù)據(jù)中,表明了自己分別在Preop和OP模式下的OD字節(jié)大小
06 ProcessDataIn& ProcessDataOut
PDIn和PDOut的字段,都是采用是否Byte位和Length來組成,把一個字節(jié)的作用摳到了極致。
寫在最后
好了,以上就是本期OD處理模塊與DPP主要字節(jié)的解析,DPP作為IO-Link的關(guān)鍵參數(shù),包含了IO-Link設(shè)備的關(guān)鍵信息。下一期,我們就開始介紹與參數(shù)配置相關(guān)的ISDU部分,這也是IO-Link技術(shù)的核心價值體現(xiàn)。

提交
睿遠(yuǎn)研究院丨IO-LinkPD處理模塊
睿遠(yuǎn)研究院丨IO-Link M序列解析
睿遠(yuǎn)研究院丨IO-Link消息處理模塊
睿遠(yuǎn)研究院丨IO-Link主從狀態(tài)機(jī)解析
睿遠(yuǎn)研究院丨IO-Link數(shù)據(jù)鏈路層解析