IO-Link是獨立于任何現場總線,適用于工業控制最底層的簡單傳感器和執行器的工業通信接口。IO-Link系統包含IO-Link設備(如傳感器、執行器)、IO-Link主站和標準傳感器用電纜,系統結構如圖1所示。例如,當一個兼容EtherNet/IP的遠程IO模塊作主站時,除了標準的I/O信號,該模塊通過脈沖調制過程發送和接收配置數據、診斷數據或增強的過程數據,然后打包到EtherNet/IP數據報文中,最后傳送給網絡主控站,通常是一臺PLC。上述應用中,遠程I/O與IO-Link設備的連接與傳統離散設備保持相同,IO-Link的優勢主要在于更大的信息交換能力,這是以前標準I/O設備無法實現的。IO -Link的另一個好處是不依賴于任何現場總線,通過任何遵守IO-Link協議的I/O模塊(包括本地I/O 和遠程I/O),IO-Link傳感器或執行器便可被集成到任何現場總線系統中。
圖1 IO-Link系統結構
為了對IO-Link系統結構、通信機制以及開發應用做進一步研究,可設計開發IO-Link從機工具包,包括IO-Link通用開發模塊、IO-Link分析工具以及IO-Link從機協議棧。IO-Link通用開發模塊是進行該項工作的基礎,也是IO-Link主站與設備信號間的橋梁。IO-Link分析工具可以幫助開發人員和測試人員分析通訊細節,從而找出并解決問題。IO-Link從機協議棧是一個固件庫,它提供硬件抽象層和應用程序接口,開發者可以利用它方便快速地在各種微處理器平臺上開發IO-Link從機產品。本文研究的IO-Link從站只針對數字(按鍵)信號輸入和數字信號輸出(指示燈),IO-Link通用開發模塊的設計只需在此基礎上進行擴展,使之具備處理模擬信號的能力。
1 系統結構
圖2是IO-Link從機工具包及演示系統的結構示意圖。
圖2 IO-Link從機工具包及演示系統的結構圖
本文所使用的IO-Link主站模塊USB IO-Link Master可將IO-Link設備與PC機相連,這樣可通過IO-Link Device Tool軟件配置并測試IO-Link設備或演示設備功能。IO-Link設備必須通過一個設備描述文件(IODD文件)來描述,它包括一組XML文本文件和PNG 圖形文件,這些文件包含設備的識別、通信特點、參數、過程數據和診斷數據的信息。圖2中橢圓虛線內的部分是IO-Link三線電纜,L+/I-是24 V 直流電源,C/Q為信號線,用來傳輸過程數據、診斷數據、配置數據等。IO-Link通用開發模塊主要由數據收發器和微處理器構成,它可對傳感器的輸入信號進行處理并將信息傳遞給IO-Link主站,也可接收并處理來自主站的數據信息,傳遞給執行器。IO-Link分析工具可以幫助開發人員查看、記錄、分析數據,了解通訊細節,該部分設計本文不作論述。
2 IO-Link通訊模式簡介
IO-Link設備可以工作在SIO模式(標準I/O模式)或IO-Link模式(通訊模式)。上電后,設備總是工作在SIO模式。主站的端口有不同的配置方式,如果配置為SIO 模式,主站把該端口視為標準數字輸入,如果配置為通訊模式,主站會自動識別可通訊的裝置,進行通訊。
2.1 數據類型
IO-Link通訊的3種基本數據類型為:周期性數據(或過程數據PD)、非周期性數據(或服務數據SD)、事件(Event)。
設備的過程數據(PD)以一個數據幀的形式周期性地傳輸,而服務數據(SD)只有在主站發出請求后才會進行交換,圖3為典型的IO-Link報文結構。當事件(Event)發生時,設備的“事件標志”置位,主站檢測到該置位后讀出報告的事件(讀取過程中不能交換服務數據),于是,污染、過熱、短路等事件或設備狀態便可通過主站傳送給PLC或可視化的軟件。
圖3 IO-Link報文結構
2.2 參數數據交換
由于服務數據(SD)必須經由PLC請求才能傳送,于是定義了SPDU(服務協議數據單元)。在主站中,讀寫服務的請求編寫到SPDU并通過IO-Link接口傳送給設備。
SPDU一般結構如圖4所示,其排列順序與傳輸順序一致。SPDU中的各元素可根據服務種類采取不同的形式。SPDU允許訪問希望進行傳輸的數據對象,Index用于指定遠程IO-Link設備上被請求的數據對象的地址。IO-Link中有一個名詞叫直接參數頁(direct parameter page),其中存放了最小周期時間、供應商ID、主站命令等參數信息,直接參數頁中可訪問的數據對象可以有選擇地通過SPDU來提供。
圖4 SPDU 一般結構
3 IO-Link從站硬件設計
IO-Link從站的系統結構如圖5所示,主要包括數據收發器HMT7742、微控制器AT-mega328P、信號輸入輸出通道、電壓電流監測模塊以及過流保護模塊等。
圖5 IO-Link從站結構圖
HMT7742是一款IO-Link從機收發器芯片,是外接傳感器或執行器的MCU與支持IO-Link通信的24 V信號線間的橋梁,當IO-Link設備與主站相連時,主站會進行通信初始化并與MCU交換數據,HMT7742則充當通信的物理層。
由于MCU 的輸出端口控制的3盞指示燈(額定電壓為24 V)是由IO-Link電源線供電的,因此需監測電源線上的電流,以便在電流超過某設定好的閾值后觸發適當的更正措施,如將指示燈從IO-Link電源線上切除。電流監測模塊使用的是INA194電流檢測放大器,作為一款高測電流檢測器,INA194直接連接至電源,可檢測所有的下行故障,擁有非常高的共模抑制比以及較大的帶寬和響應速度,可將感應電阻上的電壓放大5O倍輸出到MCU 內部電壓比較器的正向輸入端AIN0,當AIN0的電壓值超過反向輸入端設置的閾值時,控制PB0輸出低電平,即可將指示燈LAMP從IO-Link電源線上切除,實現過流保護功能。該部分電路如圖6所示。
圖6 電流監測與過流保護電路
4 IO-Link從站軟件設計
軟件設計基于IO-Link設備通信協議棧,IO-Link設備通信協議棧提供通用應用程序接口(API函數),這為IO-Link從站開發模塊的設計提供了便利。
軟件設計主要包括初始化模塊和一個與IO-Link通信相關的主循環模塊,主程序流程如圖7所示。
圖7 主流程圖
在圖8所示的初始化程序中,棧初始化、SP-DU數值初始化、直接參數頁面初始化是通過分別調用API函數實現的。
圖8 初始化程廳流程圖
圖9為主循環流程圖,每隔1 ms執行一次主循環,每過255 ms觸發一次看門狗。在運行了IO-Link從機協議棧以后,就可以檢測主站發送的有效輸出過程數據并將它傳遞給應用模塊(3盞指示燈),并根據按鍵的狀態設置輸入過程數據,并將數據傳遞給主站。另外,若發生了對直接參數頁面的寫訪問或有SPDU標識符置位,都要運行相應的處理程序。
圖9 主循環流程圖
5 實驗結果及結論
實驗構建了圖2所示的系統,并通過IO-Link Device Tool軟件測試系統功能,圖10即為顯示過程數據和參數的界面。程序中設置過程數據為一個字節,格式如圖l1所示。由圖l1可知,輸入過程數據的Bit7為故障診斷位,當IO-Link電源線上的電壓和電流均正常時,該位為0,否則置1;Bit5至Bit0分別表示6個按鍵的狀態。輸出過程數據的Bit2至Bit0分別代表3盞指示燈的狀態。
圖10 過程數據和參數顯示界面
圖11 過程數據的格式
當電壓和電流正常時,如果沒有按鍵按下,輸入過程數據為63(0011 1111)(見圖10 a),如果只有按鍵1被按下,輸入過程數據為62(00111110),以此類推。當電壓或電流不在規定的范圍內,如果沒有按鍵按下,輸入過程數據為一65(1011 1111)。若進行圖10b所示的操作,可將獲取的按鍵狀態取反后送給主站。這樣,當無按鍵按下且電壓電流正常時,輸入過程數據為0(00000000),若電壓或電流不在規定的范圍內,輸入過程數據為一128(1000 0000)。
過程輸出數據的Bit2至Bit0可分別用來控制3盞燈的狀態,若電壓電流正常,當輸出過程數據為1(0000 0001)時,只有指示燈1亮,當輸出過程數據為27(0000 0111)時,3盞燈全亮。以此類推。但是當電流超過了一定范圍,硬件電路將實現過流保護,將指示燈從IO-Link電源線上切除,此時輸出過程數據將不能控制指示燈的狀態,直到排除故障重新上電。
IO-Link從機工具包對于IO-Link系統結構、通信機制以及開發應用的研究有著重要意義。本文設計的IO-Link從站是IO-Link主站與設備信號間的橋梁,也是IO-Link從機工具包的基礎和核心。本文構建的基于IO-Link從站的演示系統形象地展示了IO-Link通信的特點與優勢,對于了解和深入研究IO-Link通信系統有著重要的意義。
-
傳感器
+關注
關注
2550文章
51041瀏覽量
753098 -
微處理器
+關注
關注
11文章
2259瀏覽量
82405 -
總線
+關注
關注
10文章
2878瀏覽量
88055
發布評論請先 登錄
相關推薦
評論