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