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