工控網首頁
>

應用設計

>

IO-Link 應用層OD

IO-Link 應用層OD

2025/8/7 15:21:36

前言

上回聊到的EVENT狀態機和ISDU狀態機,這倆都屬于OD這個模塊的內容,OD又分為數據鏈路層和應用層兩塊,今天我們就展開聊一下應用層的OD和EVENT部分。

01 應用層的OD模塊狀態機

下圖先看一下主站應用層的OD模塊:

圖片

從這個狀態機,我們看到AL應用層的OD部分,僅僅包含了ISDU和DPP兩方面。

對于index 00和01的讀寫,劃歸到DL Param部分,對于其他的劃歸于ISDU部分,當主站發起AL Service時,協議棧開始構建DL Service,根據index來確定是走左邊,還是走右邊。

當進入await狀態時,不允許第二個AL Service來訪問,否則就會被禁止,直接告知客戶主站正忙。

圖片

再來看下從站AL的OD模塊,如下圖所示:

圖片

從站和主站類似,也有await狀態;對于參數的讀寫分別進入await_AL_Write_rsp_1和await_AL_Read_rsp_2;而對于ISDU的讀寫,則進入Await_AL_RW_rsp_3。

四個狀態如下:

圖片

02 應用層的OD傳輸序列

那么主站和從站的ISDU和DPP是如何交互的呢?

圖片

ISDU的傳輸

? 主站APP發起讀取ISDU參數(Index>1)指令; 

?主站AL層調用DL的DL_ISDUTransport_req函數

? 主站DL層把命令封裝到消息中發送給從站 

? 從站調用DL_ISDUTransport_ind函數對主站的ISDU讀命令進行解析; 

? 解析后上送給AL層進行數據查詢

? 上層的App進行數據讀取,返回給AL層并繼而由物理層發給主站 

? 主站接到從站的回應,解析報文,上送APP層。

DPP的傳輸

? 主站APP發起讀取DPP參數(Inde≤1)指令; 

? 主站AL層面調用DL的DL_ReadParam函數 

? 主站DL層把命令封裝到消息中發送給從站 

? 從站調用DL_ReadParam函數對主站的DPP讀命令進行解析; 

? 解析后上送給AL層進行數據查詢

? 上層的App進行數據讀取,返回給AL并繼而由物理層發給主站 

? 主站接到從站的回應,解析報文,上送APP層

關于AL Abort

圖片

查詢ISDU是有時間限制的,如果查詢從站的ISDU沒有在規定的時間內返回,則主站發送一個Abort命令,終止ISDU的查詢。

03 應用層的EVENT模塊

AL應用層也有單獨的Event處理機制,我們分別看一下主站AL Event和從站的AL Event。

主站AL EVENT

圖片

圖片

從站AL EVENT

圖片

圖片

事件上報過程

圖片

??從站的App創建一個事件,并開始發送請求信息 

??該請求信息從AL傳遞到DL層,并把事件緩存到內存中 

??從站的AL激活EventTrigger服務,置位EventFlag

??主站讀取從站的EventFlag后,開始讀取從站的StatusCode以及相關EventCode 

??主站把相關Event繼續上報給網關,網關應用確認事件消息 

??主站把事件確認消息同步給從站,寫入StatusCode信息,即清除事件標志,等待下一個事件的上報

結語

本篇主要對AL應用層的OD和Event做了介紹,從狀態機看比DL層稍微簡單些,主要管理應用層面的事務,對DL的數據進行管理和控制。

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

睿遠研究院丨IO-Link 事件解讀

睿遠研究院丨IO-Link ISDU詳解

睿遠研究院丨IO-Link OD模塊解析

睿遠研究院丨IO-LinkPD處理模塊

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