基于CANopen協議的電動執行機構設計
針對常規型電動執行機構的現場接線方式存在著布線工作量大、操作維護困難、可靠性不高、網絡通信能力差等方面的問題,提出了一種基于CANopen協議的總線型電動執行機構設計方案。在簡要介紹電動執行機構架構的基礎上,首先給出了電動執行機構控制器的硬件設計方法,其中主要介紹了電動執行機構控制單元電路和CAN總線通訊接口電路的設計;接著給出了軟件設計的思路,重點介紹了對象字典的設計及CANopen通訊程序的設計,針對通訊程序設計中的難點,提出了一種基于隊列方式的報文處理模式。最后,在實際工程中成功地應用了所提出的設計方案,應用結果表明這種總線型電動執行機構具有智能化、信息化、數字化等特點,能夠滿足工業控制系統的網絡化發展需求。
1、引言
電動執行機構是工業過程控制系統不可缺少的部分,被廣泛用于石油化工、電廠等領域。近年來,伴隨著微電子技術和控制技術的迅速發展,電動執行機構也獲得了快速的發展,國外一些生產廠商在這幾年中相繼推出了常規的、帶現場總線通信協議的總線型電動執行機構。而國內起步晚,目前生產的主要是常規的電動執行機構,它采取傳統的現場接線方式,如每臺電動執行機構至少需要通過7~14根控制線才能將其參數傳遞到控制系統的控制模板上。這種方式安裝、維護代價高,系統的可擴展性差,且易受現場操作人員的技術水平、精神狀態及工作情緒等人為因素的影響,誤操作較多。另外,對于一些有著特殊要求的環境,如易燃易爆、輻射、或人們不易到達的地方,這種傳統控制方式難以勝任。為解決上述問題就要求執行機構向數字化、智能化、網絡化方向發展。鑒于此,本文提出了一種基于CAN open協議的電動執行機構設計方案。
2、設計方案概述
CAN open協議是一種在歐洲非常流行的CAN高層協議,該協議清晰、透明、精煉,便于系統配置和功能重構,在工業控制中有著良好的應用前景。本文提出的設計方案是在常規電動執行機構設計中加入CAN總線通訊模塊,使其成為一種具備總線通訊能力的智能電動執行機構。這種智能電動執行機構采取總線控制方式,只需通過2根信號線就能完成所有信息的傳輸,更重要的是由于其具備了總線通訊功能,操作人員只需在控制室就可對執行機構實行遠程控制。
3、電動執行機構硬件設計
電動執行機構硬件設計是建立在了解其基本架構的基礎之上的,為此,在硬件設計前先簡要介紹一下電動執行機構的架構。
1)電動執行機構的架構電動執行機構是根據調節器(或上位機)給出的控制信號產生推力或位移的一種裝置,主要由控制器、伺服電機、位置檢測裝置和減速器四部分組成,其構成如圖1所示。
圖1 電動執行機構的架構
控制器采集閥位給定信號和位置反饋信號,閥位給定信號由上位調節裝置經總線系統發送,由現場總線接口接收。減速輸出的信號經位置檢測裝置后形成位置反饋信號送給控制器,控制器輸出經過一個采用晶閘管作為開關元件的繼電器非線性環節去控制電機的運轉,電機帶動減速器來驅動輸出軸產生相應的位移。
2)控制器的硬件設計控制器系統硬件由電動執行機構控制單元和CAN總線接口單元組成,如圖2所示。
圖2 控制器的硬件結構
整個電動執行機構設計采用模塊化設計,選用LPC2292作為這兩個單元模塊的中央處理器。LPC2292是Philip公司的內嵌有CAN控制器的高性能單片機,工作頻率高達30MHz,非常適合用于總線控制系統。電動執行機構控制單元含位置檢測電路、電機驅動電路、故障檢測/報警電路及液晶顯示電路。位置檢測電路用導電塑料精密旋轉電位器作為位置傳感器,電機驅動電路由固態繼電器和正反互鎖邏輯電路組成,完成電機的正反轉啟動、停止等控制。故障檢測/報警輸出電路經光電隔離電路采集限位、過熱等報警信號,輸出報警信息;液晶顯示采用128*128,4級灰度的點陣液晶屏,液晶界面為現場操作人員提供了良好的操作平臺。
CAN通訊接口單元是總線型智能電動執行機構硬件上所特有的,它提供了總線訪問的接口,其電路,如圖3所示。
圖3 CAN通訊接口電路
電路中收發器模塊選用帶隔離功能的CTM1050芯片,通過它可以很好地實現CAN總線上各節點電氣、電源之間的完全隔離和獨立,極大地提高了CAN節點的穩定性和抗干擾性。
4、電動執行機構的軟件設計
電動執行機構軟件設計主要包括兩方面:執行機構的控制程序和基于CANopen協議的CAN總線通訊程序。其中,控制程序主要實現閥門的位置控制功能,包含初始化、數據采集、處理及顯示等幾部分,且在常規型電動執行機構中都已實現,不再贅述。本部分將重點介紹基于CANopen協議的CAN總線通訊程序設計,根據CANopen協議描述[4-5],把這部分程序設計分為對象字典的設計和CANopen通訊程序設計兩部分,而后者是難點。
1)CANopen協議通信機理
CAN協議只定義了物理層和數據鏈路層兩個底層協議,而CANopen協議在其基礎上規定了應用層協議,其通信模型,如圖4所示。
圖4 CANopen通訊模型
在CAN open的應用層,設備間通過相互交換通信對象進行通信?紤]到工業自動化系統中數據流量的不同需要,CAN open定義了4類標準通信對象,分別為過程數據對象(PDO)、服務數據對象(SDO)、管理對象(NMT)和特殊功能對象;其中,PDO對象主要用于傳輸實時數據,SDO對象用于傳送配置信息,NMT對象用于實現對CANopen網絡的管理,而特殊功能對象提供一些特殊服務。對這些通信對象的訪問都是通過對象字典來實現。
2)對象字典的設計
對象字典(Object Dictionary)是CAN open協議的核心,它是一個有序的對象集合,包含了CAN open網絡中設備的所有信息,每個設備的對象字典具有結構相同、內容不同的特點。
CAN open設備訪問對象字典時,是通過一個16位索引和一個8位子索引的方式來尋址。由于對象字典包含條目眾多,不可能一一列舉,下面以使用最頻繁的PDO對象為例,從其報文屬性和數據封裝兩方面來介紹PDO對象的建立。根據電動執行機構的控制需求,定義了PDO報文屬性,見表1。
表1 PDO報文屬性
對于在CAN open網絡中作為從節點的電動執行機構來說,TPDO是其發送給主節點的實時數據,而RPDO則是接收來自于主節點發送的數據或命令信息。由表1可知,每個TPDO和RPDO都包含2個對象字典條目:通信參數和映射參數。下面以TPDO1為例說明通信參數和映射參數的索引、子索引之間的關系,以及PDO對象的數據封裝過程,詳細流程,如圖5所示。
圖5 映射封裝PDO
由圖5知,通信參數索引1800h下有5個子索引,分別規定了該PDO使用的COB_ID、傳輸類型、禁止時間及定時器周期等參數;而映射參數索引1A00h下有2個子索引,它們表示映射到該PDO中的2個對象,例如子索引1中的存放的是60000108h,表示把索引6000h,子索引01h,長度為8位的數據映射到TPDO1的第1個字節,而60000108h里存放的是用戶規定的實際閥位值,當滿足通訊參數中規定的傳輸類型時,實際閥位值就能通過TPDO1發送給CANopen網絡主節點,從而實現主從節點之間的信息交互。
3)CANopen通訊程序設計
電動執行機構的CANopen通訊程序流程,如圖6所示。
圖6 CANopen通訊流程圖
首先,執行機構上電初始化,待初始化完成后,它發送Boo-tup報文,同時其通信狀態由初始化狀態切換到預操作狀態,該狀態下僅能進行SDO通信;在收到NMT主節點的啟動報文后,節點通信狀態由預操作切換到操作狀態,它是系統的正常工作狀態,在該狀態下執行機構應用程序循環調用CAN open stack函數實現CAN open基本通訊。
CAN open基本通訊主要包含以下三方面:實現CANopen狀態轉換機制、調用CAN報文收發函數處理NMT,PDO,SDO等報文,根據報文處理結果刷新實際輸入和輸出。其中,第二個方面是難點,因為CAN open規定的通訊報文種類較多,如何快速有效地對這些報文進行分類,并調用相應函數處理是保證系統實時性的關鍵。為此,在程序設計時采取了一種基于隊列的分塊存取報文處理模式,其基本思想,如圖7所示。
圖7 基于隊列的報文處理模式