基于CANopen協議的電動執行機構設計
胥布工,程俊,匡付華
華南理工大學自動化科學與t程學院,廣東廣州510640
摘 要:針對常規型電動執行機構的現場接線方式存在著布線工作量大、操作維護困難、可靠性不高、網絡通信能力差等方面的問題,提出了一種基于CANopen協議的總線型電動執行機構設計方案。在簡要介紹電動執行機構架構的基礎上,首先給出了電動執行機構控制器的硬件設計方法,其中主要介紹了電動執行機構控制單元電路和CAN總線通訊接口電路的設計;接著給出了軟件設計的思路,重點介紹了對象字典的設計及CANopen通訊程序的設計,針對通訊程序設計中的難點,提出了一種基于隊列方式的報文處理模式。最后,在實際工程中成功地應用了所提出的設計方案,應用結果表明這種總線型電動執行機構具有智能化、信息化、數字化等特點,能夠滿足工業控制系統的網絡化發展需求。
關鍵詞:CANopen協議;電動執行機構;對象字典
中圖分類號:TP 273 支獻標識碼:A
1引言
電動執行機構是工業過程控制系統不可缺少的部分,被廣泛用于石油化工、電廠等領域。近年來,伴隨著微電子技術和控制技術的迅速發展,電動執行機構也獲得了快速的發展,國外一些生產廠商在這幾年中相繼推出了常規的、帶現場總線通信協議的總線型電動執行機構。而國內起步晚,目前生產的主要是常規的電動執行機構,它采取傳統的現場接線方式,如每臺電動執行機構至少需要通過7~14根控制線才能將其參數傳遞到控制系統的控制模板上。這種方式安裝、維護代價高,系統的可擴展性差,且易受現場操作人員的技術水平、精神狀態及工作情緒等人為因素的影響,誤操作較多。另外,對于一些有著特殊要求的環境,如易燃易爆、輻射、或人們不易到達的地方,這種傳統控制方式難以勝任;為解決上述問題就要求執行機構向數字化、智能化、網絡化方向發展。鑒于此,本文提出了一種基于CANopen協議的電動執行機構設計方案。
2設計方案概述
CANopen協議是一種在歐洲非常流行的CAN高層協議,該協議清晰、透明、精煉,便于系統配置和功能重構,在工業控制中有著良好的應用前景。本文提出的設計方案是在常規電動執行機構設計中加入CAN總線通訊模塊,使其成為一種具備總線通訊能力的智能電動執行機構。這種智能電動執行機構采取總線控制方式,只需通過2根信號線就能完成所有信息的傳輸,更重要的是由于其具備了總線通訊功能,操作人員只需在控制室就可對執行機構實行遠程控制。
3 電動執行機構硬件設計
電動執行機構硬件設計是建立在了解其基本架構的基礎之上的,為此,在硬件設計前先簡要介紹一下電動執行機構的架構。
1)電動執行機構的架構電動執行機構是根據調節器(或上位機)給出的控制信號產生推力或位移的一種裝置,主要由控制器、伺服電機、位置檢測裝置和減速器四部分組成,其構成如圖l所示。
控制器采集閥位給定信號和位置反饋信號,閥位給定信號由上位調節裝置經總線系統發送,由現場總線接收。減速輸出的信號經位置檢測裝置后形成位置反饋信號送給控制器,控制器輸出經過一個采用晶閘管作為開關元件的繼電器非線性環節去控制電機的運轉,電機帶動減速器來驅動輸出軸產生相應的位移。
2)控制器的硬件設計控制器系統硬件由電動執行機構控制單元和CAN總線接口單元組成,如圖2所示。
整個電動執行機構設計采用模塊化設計,選用LPC2292作為這兩個單元模塊的中央處理器。LPC2292是Philip公司的內嵌有CAN控制器的高性能單片機,工作頻率高達30 MHz,非常適合用于總線控制系統。電動執行機構控制單元含位置檢測電路、電機驅動電路、故障檢測/報警電路及液晶顯示電路。位置檢測電路用導電塑料精密旋轉電位器作為位置傳感器,電機驅動電路由固態繼電器和正反互鎖邏輯電路組成,完成電機的正反轉啟動、停止等控制。故障檢測/報警輸出電路經光電隔離電路采集限位、過熱等報警信號,輸出報警信息;液晶顯示采用l28X128,4級灰度的點陣液晶屏,液晶界面為現場操作人員提供了良好的操作平臺。
CAN通訊接口單元是總線型智能電動執行機構硬件E所特有的,它提供了總線訪問的接口,其電路,如圖3所示。
電路中收發器模塊選用帶隔離功能的CTM1050芯片,通過它可以很好地實現CAN總線上各節點電氣、電源之間的完全隔離和獨立,極大地提高了CAN節點的穩定性和抗干擾性。
4 電動執行機構的軟件設計
電動執行機構較件設計主要包括兩方面:執行機構的控制程序和基于CANopen協議的CAN總線通訊程序。其中,控制程序主要實現閥門的位置控制功能,包含初始化、數據采集、處理及顯示等幾部分,且在常規型電動執行機構中都已實現,不再贅述。本部分將重點介紹基于CAWopen協議的CAN總線通訊程序設計,根據CANopen協議描述,把這部分程序設計分為對象字典的設計和CANopen通訊程序設計兩部分,而后者是難點。
1) CAl\open協議通信機理 CAN協議只定義了物理層和數據鏈路層兩個底層協議,而CANopen協議在其基礎上規定了應用層協議,其通信模型,如圖4所示。
在CANopen的應用層,設備間通過相互交換通信對象進行通信。考慮到工業自動化系統中數據流量的不同需要,CANopen定義了4類標準通信對象,分別為過程數據對象( PDO)、服務數據對象(SDO)、管理對象(NMT)和特殊功能對象;其中,PDO對象主要用于傳輸實時數據,SDO對象用于傳送配置信息,NMT對象用于實現CANopen網絡的管理,而特殊功能對彖提供一些特殊服務。對這些通信對象的訪問都是通過對象字典來實現。
2)對象字典的設計對象字典( Object Dictionan)是CANopen協議的核心,它是一個有序的對象集合,包含了CANopen網絡中設備的所有信息,每個設備的對象字典具有結構相同、內容不同的特點。CANopen設備訪問對象字典時,是通過一個16位索引和一個8位子索引的方式來尋址。由于對象字典包含條目眾多,不可能一一列舉,下面以使用最頻繁的PDO對象為例,從其報文屬性和數據封裝兩方面來介紹PDO對象的建立。根據電動執行機構的控制需求,定義了PDO報文屬性,見表1。
對于在CANopen網絡中作為從節點的電動執行機構來說,TPDO是其發送給主節點的實時數據,而RPDO則是接收來自于主節點發送的數據或命令信息。由表1可知,每個TPDO和RPDO都包含2個對象字典條目:通信參數和映射參數。下面以TPD01為例說明通信參數和映射參數的索引、子索引之間的關系,以及PDO對象的數據封裝過程,詳細流程,如圖5所示。第1個發送PDO通訊參數(支持的子索引的****數目)TPD01使用的CAN_ID(OxiSl)振文觸發類型(OxFF)禁止時間默認值為0)索引6000,子索引1實際傳送的過程數據。
由圖5知,通信參數索引1800h下有5個子索引,分別規定了該PDO使用的COB—ID、傳輸類型、禁止時間及定時器周期等參數;而映射參數索引lAOOh下有2個子索引,它們表示映射到該PDO中的2個對象,例如子索引1中的存放的是60000108h,表示把索引6000h,子索引Oh,長度為8位的數據映射到TPD01的第1個字節,而60000108h里存放的是用戶規定的實際閥位值,當滿足通訊參數中規定的傳輸類型時,實際閥位值就能通過TPD01發送給CAIVopen網絡主節點,從而實現主從節點之間的信息交互。
3) CANopen通訊程序設計 電動執行機構的CANopen通訊程序流程,如圖6所示。
首先,執行機構上電初始化,待初始化完成
后,它發送Boot-up報文,同時其通信狀態由初始化狀態切換到預操作狀態,該狀態下僅能進行SDO通信;在收到NMT主節點的啟動報文后,節點通信狀態由預操作切換到操作狀態,它是系統的正常工作狀態,在該狀態下執行機構應用程序循環調用CANopenstack函數實現CANopen基本通訊。
CANopen基本通訊主要包含以下三方面:實現CAINopen狀態轉換機制、調用CAN報文收發函數處理NMT,PDO,SDO等報文,根據報文處理結果刷新實際輸入和輸出。其中,第二個方面是難點,因為CANopen規定的通訊報文種類較多,如何快速有效地對這些報文進行分類,并調用相應函數處理是保證系統實時的關鍵。為此,在程序設計時采取了一種基于隊列的分塊存取報文處理模式,其基本思想,如圖7所示。
程序中為在CANopen協議里規定的每種報文分配一個專用緩沖區,該緩沖區是應用程序與隊列之間的公用接口;當需要發送報文時,應用程序先把待發送的報文按CANopen協議規定封裝好,再寫入相應緩沖區,然后依次八隊,最后啟動發送命令,報文出隊并發送到總線上。接收報文時采用中斷接收方式,為了減輕總線負載,設置了一個軟件濾波環節,若收到的CAN報文滿足軟件濾波條件時才放入接收隊列中。同時程序在不斷掃描接收隊列,若其中有報文則執行出列,出列后的報文根據其COB-ID,寫入到對應的專用緩沖區中,應用程序從緩沖區中取出報文并進行后續處理。程序中定義了2個隊列:接收隊列和發送隊列,隊列采用順序存儲結構的循環隊列。
具體代碼如下:
為了增強程序的健壯性,在定義循環隊列時,增加了隊列讀、寫的允許標志位。隊列的初始狀態為±ront= rear=O,表示隊列為空,當有新報文人隊時,rear加1;同時若有報文出隊,則front加1:初始時刻RLock= WLock=O,表示隊列處于可讀可寫狀態,報文在人隊過程中保持WLock=1,入隊完成后重置WLock=O,這樣就避免了2條報文同時人隊。RLock用于出隊操作中,使用方法與WLock類似。
報文的發送和接收都有人隊和出隊操作,下面以接收報文的人隊和出隊為例,說明應用程序是如何對隊列進行操作的。當通過中斷方式接收到的報文滿足濾波條件時,將調用函數gCB_ CanBuffer-M8g執行人隊操作,其部分代碼如下:
接收報文八隊的詳細操作流程,如圖8所示。
相對于接收報文八隊流程,其出隊過程要簡單一些。接收報文出隊的詳細操作流程如圖9所示。
程序中通過函數檢測接收隊列,若其中有報文則隊頭元素出列,其部分代碼如下:
采用這種基于隊列分塊存儲報文處理模式有以下兩方面優點:首先,通過隊列緩沖,避免了由于節點收發報文過于頻繁,應用程序來不及處理而產生的丟包現象;其次,存儲區按報文種類來分類,可以讓應用程序快速存取,保證了系統的實時性。
5應用實例
根據以上設計方案,構建了一個基于CANopen協議的電動執行機構現場總線控制系統,系統實物,如圖10所示。
該系統主要由電動執行機構、上位機、PCI_CAN智能通訊接口卡等幾部分組成。其中,上位機和PCI_ CAN通訊卡組合在一起作為CANopen網絡的主節點,執行機構作為從節點,主從節點之間通過PDO來交換實時數據。為實現人機對話,利用vc+ +6.0設計了人機交互界面,如圖11所示。
通過該人機界面不僅可以對每臺電動執行機構的狀態進行實時監控,而且還能對執行機構進行遠程控制、參數標定、功能組態和故障診斷。
在系統運行過程中,對遠程控制精度進行測試。初始時刻,把3臺執衍機構的零點和行程分別調整為0和5 115,其對應閥門的0 0~90度 。上位機通過PDO給3臺執行機構分別發送控制閥位百分之0,百分之25,百分之50,百分之75和********,其預期的角度值分別為0度,22.5度,45度,67.5度,90度,而測試結果,見表2。
測試結果表明,3臺執行機構的閥位給定值和實際值之間雖有一點小偏差,但經計算后發現它們的相對誤差都在百分之1以下,可見遠程控制精度還是很高的,能夠滿足實際控制精度需求。同時,在上述測試過程中,通過測試軟件ZLCCANTest測得發送每條PDO報文的平均時間為2 283 ms,表明系統實時眭較好。另外,經初步成本核算,采用這種控制方式時,硬件成本節約了百分之3. 57。通過這些數據表明本文提出的設計方案是合理可行的。
6、結語
本文針對常規型電動執行機構傳統點對點連接方式存在的弊端,提出了基于CANopen協議的總線型電動執行機構設計方案。該方案通過把CANo—pen協議應用到執行機構的設升當中,使其具備總線通訊功能,合理有效地解決執行機構數據傳輸可靠性、遠程網絡通訊和操作維護困難等方面的問題。通過實際工程應用表明,這種總線型電動執行機構具有智能化、信息化、數字化等特點,實現了高可靠性、低成本的目標,其應用前景一片光明。
|