摘要:為了在開(kāi)發(fā)帶有IO-Link技術(shù)的設備中提供有效的固件開(kāi)發(fā)環(huán)境。以IO-Link技術(shù)為背景,依據IO-Link技術(shù)協(xié)議設計了固件開(kāi)發(fā)結構。該固件結構具有穩定、可重用等特點(diǎn)?;谠摴碳Y構,用戶(hù)依據不同的需求來(lái)設定相關(guān)的參數就能夠便捷的開(kāi)發(fā)具有IO-Link技術(shù)的設備。
關(guān)鍵詞:自動(dòng)化;IO-Link;技術(shù);協(xié)議棧;固件
在傳統的自動(dòng)控制系統中,現場(chǎng)的測量?jì)x表以及傳感器和執行器遇到故障或者用戶(hù)希望修改此類(lèi)設備的參數時(shí),通常需要應用工程師到現場(chǎng)對設備進(jìn)行維護或設定。而使用了帶有IO-Link技術(shù)的設備,只需要將現場(chǎng)設備直接替換,設備會(huì )自動(dòng)下載相應的參數信息,無(wú)需對新設備進(jìn)行設定。當用戶(hù)需要修改設備參數時(shí),只需要在應用層將參數設定好,系統會(huì )按照IO-Link協(xié)議規范將參數自動(dòng)下載到設備中。IO-Link接口技術(shù)消除了傳感器與執行器上的瓶頸,使得數字量的點(diǎn)對點(diǎn)連接具有對話(huà)能力,他用標準的三線(xiàn)制電纜代替了復雜的接口,并給整個(gè)處理級賦予了一致的參數化和診斷概念[1]。IO-Link技術(shù)從一開(kāi)始提出就注定將會(huì )在自動(dòng)化發(fā)展過(guò)程中留下深深的足跡,它以其特殊的性能受到用戶(hù)的好評,國內外眾多知名的傳感器、執行器和自動(dòng)化設備的制造商已經(jīng)將IO-Link技術(shù)應用到他們的產(chǎn)品中。IO-Link 技術(shù)作為一種將執行器或傳惑器集成于自動(dòng)化系統中的低成本的通信解決方案與公眾見(jiàn)面,目的是把與過(guò)程的最后一米連接做得透明度更高,通信性能更強[2]。
1 IO-Link技術(shù)概述
1.1 IO-Link系統組成
IO-Link是通向執行器和傳感器的最后一步,也被譽(yù)為自動(dòng)化的最后一米技術(shù)[3]。IO-Link技術(shù)是一種將傳統和智能傳感器和執行器集成在自動(dòng)化系統中的低成本通信接口技術(shù),是一種獨立于現場(chǎng)總線(xiàn)的通信接口,它可以實(shí)現傳統傳感器與智能傳感器的混合運行[4]。一般來(lái)說(shuō)IO-Link系統由許多IO-Link設備、傳感器、執行器或者他們的組合通過(guò)標準3線(xiàn)制傳感器/執行器電纜連接到IO-Link主站設備上組成,主站可以是一個(gè)具有不同設計和不同保護等級的設備。IO-Link系統的結構如下圖。
圖1 IO-Link系統結構
一個(gè)IO-Link主站可以有一個(gè)或者多個(gè)端口,每個(gè)端口只能連接一個(gè)IO-Link設備[5]。同樣,也可以將一個(gè)IO-Link設備從站接入IO-Link主站的端口,在IO-Link的從站上接入普通的現場(chǎng)傳感器、執行器。因此IO-link是一種點(diǎn)到點(diǎn)的通信,而不是一種現場(chǎng)總線(xiàn)。
圖2 IO-Link點(diǎn)對點(diǎn)的連接
1.2 IO-Link啟動(dòng)
IO-Link設備初始默認為標準I/O模式啟動(dòng),主站端口可以進(jìn)行組態(tài),端口配置成標準I/O模式時(shí),將作為常規的數字量輸入輸出端口使用,如果配置成通信模式時(shí),主站件檢測端口所連接的IO-Link設備。這個(gè)過(guò)程稱(chēng)為喚醒。IO-Link通訊模式與標準I/O口模式見(jiàn)下圖。
圖3 IO-Link通訊模式與標準I/O口模式
在喚醒期間,IO-Link主站設備發(fā)送特定的信號并等待設備應答。主站設備先嘗試定義的最高波特率,如果不成功則嘗試低一級的波特率。在每一個(gè)傳輸速率下三次嘗試喚醒設備。如果主設備接收到應答(例如設備被喚醒),將會(huì )進(jìn)入通訊模式。首先是交換通信參數,之后將開(kāi)始交換周期性的過(guò)程數據。
如果設備在運行期間被移除,IO-Link主站設備偵聽(tīng)到通信中斷,將會(huì )向控制系統發(fā)出報文,并且周期性的嘗試喚醒設備。如果設備被再次喚醒,如果需要將讀出通訊參數,之后將開(kāi)始周期數據交換。
如果IO-Link主站設備中斷通訊,主站設備和設備都將切換為標準I/O口模式,這也叫做回落。
2 IO-Link協(xié)議概述
IO-Link不能算一種單獨的工業(yè)網(wǎng)絡(luò ),而只是一種簡(jiǎn)單的協(xié)議,利用現有的點(diǎn)對點(diǎn)連接技術(shù)增加網(wǎng)絡(luò )效率,增加設備間的信息交換能力[6]?;趹脧V泛的三線(xiàn)技術(shù),IO-Link協(xié)議使用戶(hù)快速運行現場(chǎng)裝置,維護更加簡(jiǎn)便。僅僅使用一根電纜就可以完成數據傳輸和能量供給,IO-Link協(xié)議簡(jiǎn)化了連接程序,減少電纜投入。而且,允許用戶(hù)從一個(gè)傳感器下載設置的參數提供給替換的傳感器產(chǎn)品,因此不再需要攜帶操作手冊到現場(chǎng)進(jìn)行設置[7]。
基本上,IO-link協(xié)議進(jìn)行交換的有三種數據類(lèi)型:周期性數據(也稱(chēng)為過(guò)程數據)、非周期數據或者服務(wù)性數據、事件型數據。
只有IO-Link主設備發(fā)出請求后,IO-Link設備才發(fā)送數據,IO-Link主設備會(huì )明確地發(fā)出非周期數據和事件的請求,在主設備的空閑報文后才發(fā)送周期數據。
1) 過(guò)程數據(PD-Process data)
設備的過(guò)程數據通過(guò)數據幀周期的傳輸,保證了過(guò)程數據寬度不超過(guò)2個(gè)字節。如果過(guò)程數據長(cháng)度超寬,將會(huì )被分割并通過(guò)幾個(gè)周期來(lái)傳輸。當過(guò)程數據有誤時(shí)將會(huì )輸出診斷信息。
2) 服務(wù)數據(SD-Service data)
服務(wù)數據交換是非周期的,而且是基于IO-Link主設備的請求。首先,IO-Link主設備發(fā)送一個(gè)請求給IO-Link設備,IO-Link設備給予響應。服務(wù)數據可以用來(lái)讀取設備狀態(tài)和參數值,也可以用來(lái)寫(xiě)參數值和發(fā)送指令。
服務(wù)數據和過(guò)程數據可以在一個(gè)報文傳輸,也可以在幾個(gè)報文里傳輸。IO-Link報文結構如下圖。
圖4 IO-Link報文結構
3) 事件型數據
當有事件發(fā)生時(shí),設備首先置位事件標志,事件標志位在過(guò)程數據報文的CKECK/STAT字節的第七位中傳輸。主設備偵聽(tīng)該為且讀出事件報告。如果有事件報告將不允許服務(wù)數據交換。這也就意味著(zhù)設備的狀態(tài)如過(guò)熱、短路等可以通過(guò)事件向PLC或可視化系統報告。
IO-Link主設備可以產(chǎn)生自己的事件和狀態(tài)例如開(kāi)路、通訊中斷、過(guò)載等,并通過(guò)相應的現場(chǎng)總線(xiàn)傳輸事件和狀態(tài)。
3 IO-Link協(xié)議棧解析
3.1 IO-Link協(xié)議棧結構
IO-Link設備協(xié)議棧已經(jīng)完整的封裝好了,并提供了良好的用戶(hù)應用接口程序,協(xié)議棧的結構圖如下。
圖5 IO-Link設備協(xié)議棧結構
協(xié)議棧解析:
1) STACK_Init(const TUnsigned8 *parameter);
設備協(xié)議棧初始化,協(xié)議棧初始化前必須將硬件設備進(jìn)行預設,主要完成內部數據結構的復位。IO-Link設備的類(lèi)型描述、通訊屬性、設備參數和診斷數據設置都在此函數中設定。當IO-Link設備連接后,通過(guò)IODD解析器DTMs(設備管理類(lèi)型器)來(lái)解析IO-Link設備的設備描述,以及對IO-Link設備的控制[8]。另外,配置參數將會(huì )以IO-Link技術(shù)規范中定義的32個(gè)字節方式分配給協(xié)議棧,數組參數將會(huì )作為指針?lè )峙?,協(xié)議棧需要這些參數來(lái)進(jìn)行通信。協(xié)議棧初始化包含了功能預定義的參數,分配協(xié)議棧的參數。初始化幀模式,置位幀緩沖器用于接收新的數據幀。初始化所有事件句柄模式,復位所有狀態(tài),等待事件發(fā)生。
2) STACK_Start(TUnsigned8 Baudrate);
激活I(lǐng)O-Link協(xié)議棧,保存用戶(hù)選用的傳輸速率,所有參數使用設備定義的傳輸速率進(jìn)行交換,同時(shí)選定特定的數據幀格式,使能說(shuō)有必須的外部中斷和串行數據中斷等
3) STACK_Run;
IO-Link協(xié)議棧開(kāi)始運行,周期的進(jìn)行過(guò)程數據和參數交換。
3.2 固件結構設計
具有IO-Link技術(shù)的設備開(kāi)發(fā)可以調用IO-Link協(xié)議棧來(lái)完成,通過(guò)對協(xié)議棧的參數配置、和任務(wù)調度來(lái)進(jìn)行IO-Link數據傳輸。設備的固件主程序包含了以下協(xié)議棧的幾個(gè)接口函數。
main()
{
OLIMEX_EX_Board_GPIO_Config();
/*完成STM32的硬件配置,使能通用定時(shí)器時(shí)鐘,通用IO口配置等工作*/
Debug_UART_Config();//配置用于調試的串行口
STACK_Init(const TUnsigned8 *parameter);
STACK_Start(TUnsigned8 Baudrate);
STACK_Run;
}
在協(xié)議棧的初始化接口函數中還包含了硬件接口、數據幀和時(shí)間等的初始化。在協(xié)議棧的啟動(dòng)接口函數中還包含了硬件接口的標準輸入輸出方式和通訊模式的選擇,數據幀、時(shí)間的規定和硬件外部信息中斷允許等任務(wù)。協(xié)議棧配置與啟動(dòng)后進(jìn)入運行狀態(tài),能夠按照預設的方式與IO_link主站設備保持通訊。IO-Link設備固件結構的詳細結構框圖如下。
圖6 IO-Link固件結構
4 結束語(yǔ)
IO-Link技術(shù)可以在整個(gè)設備范圍向傳感器和執行器提供各種數據,使用IO-Link可以憑直覺(jué)對傳感器層的系統進(jìn)行參數化,設計時(shí)可以對傳感器/執行器功能的穩固性等加以檢查[9]。使用了帶有IO-Link技術(shù)的設備可以增強生產(chǎn)加工設備的可用性、保證生產(chǎn)加工流程和生產(chǎn)數據的暢通無(wú)阻,簡(jiǎn)化工業(yè)現場(chǎng)的布線(xiàn)連接[10]。
IO-Link固件主要是提供了完成IO-Link數據交換的準備以及數據通訊的通道方式的設定等工作,IO-Link設備的開(kāi)發(fā)必須基于IO-Link的協(xié)議棧,它提供了IO-Link數據傳輸的規范,按照文中提出的固件結構,用戶(hù)可以基于協(xié)議棧按照協(xié)議規范來(lái)設定參數,產(chǎn)品設計出符合不同應用場(chǎng)合的不同類(lèi)型的集成IO-Link技術(shù)的工業(yè)自動(dòng)化設備。
參考文獻:
[1] IO-Link可實(shí)現更高的生產(chǎn)率和系統性能——巴魯夫在MOTEK2006展會(huì )上推出新的通訊標準[J]. 世界制造技術(shù)與裝備市場(chǎng), 2007,(02)
[2] IO-Link有助于車(chē)床制造商提高生產(chǎn)率[J]. 現代制造, 2008,(48)
[3] 與時(shí)俱進(jìn)的PROFIBUS和PROFINET[J]. 中國食品工業(yè), 2006,(09)
[4] 任曉明. FA&PA新力量——PROFIBUS和PROFINET最新技術(shù)新聞發(fā)布會(huì )[J]. 機電產(chǎn)品市場(chǎng), 2006,(10)
[5] 盧祁. 中國PROFIBUS&PROFINET協(xié)會(huì )(CPA)第二次會(huì )員大會(huì )[J]. 中國儀器儀表, 2011,(03)
[6] 傅昆. 現場(chǎng)級聯(lián)網(wǎng)技術(shù)的新進(jìn)展[J]. 現代制造, 2006,(29)
[7] 線(xiàn)性傳感器的領(lǐng)導者[J]. 自動(dòng)化博覽, 2010,(05)
[8] 李薇瑾. 設備類(lèi)型管理器及應用[J]. 儀器儀表標準化與計量, 2010,(04)
[9] 利用IO-Link控制現場(chǎng)設備[J]. 現代制造, 2007,(27)
[10] Frank-Josef Heimerl. 聲納傳感器采用IO-Link技術(shù)優(yōu)化生產(chǎn)加工控制[J]. 現代制造, 2009,(22)
摘自《自動(dòng)化博覽》2011年第十期