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