基于CANopen協(xié)議的電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)

2013-06-27 胥布工 華南理工大學(xué)自動化科學(xué)與工程學(xué)院

  針對常規(guī)型電動執(zhí)行機(jī)構(gòu)的現(xiàn)場接線方式存在著布線工作量大、操作維護(hù)困難、可靠性不高、網(wǎng)絡(luò)通信能力差等方面的問題,提出了一種基于CANopen協(xié)議的總線型電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)方案。在簡要介紹電動執(zhí)行機(jī)構(gòu)架構(gòu)的基礎(chǔ)上,首先給出了電動執(zhí)行機(jī)構(gòu)控制器的硬件設(shè)計(jì)方法,其中主要介紹了電動執(zhí)行機(jī)構(gòu)控制單元電路和CAN總線通訊接口電路的設(shè)計(jì);接著給出了軟件設(shè)計(jì)的思路,重點(diǎn)介紹了對象字典的設(shè)計(jì)及CANopen通訊程序的設(shè)計(jì),針對通訊程序設(shè)計(jì)中的難點(diǎn),提出了一種基于隊(duì)列方式的報(bào)文處理模式。最后,在實(shí)際工程中成功地應(yīng)用了所提出的設(shè)計(jì)方案,應(yīng)用結(jié)果表明這種總線型電動執(zhí)行機(jī)構(gòu)具有智能化、信息化、數(shù)字化等特點(diǎn),能夠滿足工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)化發(fā)展需求。

1、引言

  電動執(zhí)行機(jī)構(gòu)是工業(yè)過程控制系統(tǒng)不可缺少的部分,被廣泛用于石油化工、電廠等領(lǐng)域。近年來,伴隨著微電子技術(shù)和控制技術(shù)的迅速發(fā)展,電動執(zhí)行機(jī)構(gòu)也獲得了快速的發(fā)展,國外一些生產(chǎn)廠商在這幾年中相繼推出了常規(guī)的、帶現(xiàn)場總線通信協(xié)議的總線型電動執(zhí)行機(jī)構(gòu)。而國內(nèi)起步晚,目前生產(chǎn)的主要是常規(guī)的電動執(zhí)行機(jī)構(gòu),它采取傳統(tǒng)的現(xiàn)場接線方式,如每臺電動執(zhí)行機(jī)構(gòu)至少需要通過7~14根控制線才能將其參數(shù)傳遞到控制系統(tǒng)的控制模板上。這種方式安裝、維護(hù)代價(jià)高,系統(tǒng)的可擴(kuò)展性差,且易受現(xiàn)場操作人員的技術(shù)水平、精神狀態(tài)及工作情緒等人為因素的影響,誤操作較多。另外,對于一些有著特殊要求的環(huán)境,如易燃易爆、輻射、或人們不易到達(dá)的地方,這種傳統(tǒng)控制方式難以勝任。為解決上述問題就要求執(zhí)行機(jī)構(gòu)向數(shù)字化、智能化、網(wǎng)絡(luò)化方向發(fā)展。鑒于此,本文提出了一種基于CAN open協(xié)議的電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)方案。

2、設(shè)計(jì)方案概述

  CAN open協(xié)議是一種在歐洲非常流行的CAN高層協(xié)議,該協(xié)議清晰、透明、精煉,便于系統(tǒng)配置和功能重構(gòu),在工業(yè)控制中有著良好的應(yīng)用前景。本文提出的設(shè)計(jì)方案是在常規(guī)電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)中加入CAN總線通訊模塊,使其成為一種具備總線通訊能力的智能電動執(zhí)行機(jī)構(gòu)。這種智能電動執(zhí)行機(jī)構(gòu)采取總線控制方式,只需通過2根信號線就能完成所有信息的傳輸,更重要的是由于其具備了總線通訊功能,操作人員只需在控制室就可對執(zhí)行機(jī)構(gòu)實(shí)行遠(yuǎn)程控制。

3、電動執(zhí)行機(jī)構(gòu)硬件設(shè)計(jì)

  電動執(zhí)行機(jī)構(gòu)硬件設(shè)計(jì)是建立在了解其基本架構(gòu)的基礎(chǔ)之上的,為此,在硬件設(shè)計(jì)前先簡要介紹一下電動執(zhí)行機(jī)構(gòu)的架構(gòu)。

  1)電動執(zhí)行機(jī)構(gòu)的架構(gòu)電動執(zhí)行機(jī)構(gòu)是根據(jù)調(diào)節(jié)器(或上位機(jī))給出的控制信號產(chǎn)生推力或位移的一種裝置,主要由控制器、伺服電機(jī)、位置檢測裝置和減速器四部分組成,其構(gòu)成如圖1所示。

基于CANopen協(xié)議的電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)

圖1 電動執(zhí)行機(jī)構(gòu)的架構(gòu)

  控制器采集閥位給定信號和位置反饋信號,閥位給定信號由上位調(diào)節(jié)裝置經(jīng)總線系統(tǒng)發(fā)送,由現(xiàn)場總線接口接收。減速輸出的信號經(jīng)位置檢測裝置后形成位置反饋信號送給控制器,控制器輸出經(jīng)過一個(gè)采用晶閘管作為開關(guān)元件的繼電器非線性環(huán)節(jié)去控制電機(jī)的運(yùn)轉(zhuǎn),電機(jī)帶動減速器來驅(qū)動輸出軸產(chǎn)生相應(yīng)的位移。

  2)控制器的硬件設(shè)計(jì)控制器系統(tǒng)硬件由電動執(zhí)行機(jī)構(gòu)控制單元和CAN總線接口單元組成,如圖2所示。

基于CANopen協(xié)議的電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)

圖2 控制器的硬件結(jié)構(gòu)

  整個(gè)電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)采用模塊化設(shè)計(jì),選用LPC2292作為這兩個(gè)單元模塊的中央處理器。LPC2292是Philip公司的內(nèi)嵌有CAN控制器的高性能單片機(jī),工作頻率高達(dá)30MHz,非常適合用于總線控制系統(tǒng)。電動執(zhí)行機(jī)構(gòu)控制單元含位置檢測電路、電機(jī)驅(qū)動電路、故障檢測/報(bào)警電路及液晶顯示電路。位置檢測電路用導(dǎo)電塑料精密旋轉(zhuǎn)電位器作為位置傳感器,電機(jī)驅(qū)動電路由固態(tài)繼電器和正反互鎖邏輯電路組成,完成電機(jī)的正反轉(zhuǎn)啟動、停止等控制。故障檢測/報(bào)警輸出電路經(jīng)光電隔離電路采集限位、過熱等報(bào)警信號,輸出報(bào)警信息;液晶顯示采用128*128,4級灰度的點(diǎn)陣液晶屏,液晶界面為現(xiàn)場操作人員提供了良好的操作平臺。

  CAN通訊接口單元是總線型智能電動執(zhí)行機(jī)構(gòu)硬件上所特有的,它提供了總線訪問的接口,其電路,如圖3所示。

基于CANopen協(xié)議的電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)

圖3 CAN通訊接口電路

  電路中收發(fā)器模塊選用帶隔離功能的CTM1050芯片,通過它可以很好地實(shí)現(xiàn)CAN總線上各節(jié)點(diǎn)電氣、電源之間的完全隔離和獨(dú)立,極大地提高了CAN節(jié)點(diǎn)的穩(wěn)定性和抗干擾性。

4、電動執(zhí)行機(jī)構(gòu)的軟件設(shè)計(jì)

  電動執(zhí)行機(jī)構(gòu)軟件設(shè)計(jì)主要包括兩方面:執(zhí)行機(jī)構(gòu)的控制程序和基于CANopen協(xié)議的CAN總線通訊程序。其中,控制程序主要實(shí)現(xiàn)閥門的位置控制功能,包含初始化、數(shù)據(jù)采集、處理及顯示等幾部分,且在常規(guī)型電動執(zhí)行機(jī)構(gòu)中都已實(shí)現(xiàn),不再贅述。本部分將重點(diǎn)介紹基于CANopen協(xié)議的CAN總線通訊程序設(shè)計(jì),根據(jù)CANopen協(xié)議描述[4-5],把這部分程序設(shè)計(jì)分為對象字典的設(shè)計(jì)和CANopen通訊程序設(shè)計(jì)兩部分,而后者是難點(diǎn)。

  1)CANopen協(xié)議通信機(jī)理

  CAN協(xié)議只定義了物理層和數(shù)據(jù)鏈路層兩個(gè)底層協(xié)議,而CANopen協(xié)議在其基礎(chǔ)上規(guī)定了應(yīng)用層協(xié)議,其通信模型,如圖4所示。

基于CANopen協(xié)議的電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)

圖4 CANopen通訊模型

  在CAN open的應(yīng)用層,設(shè)備間通過相互交換通信對象進(jìn)行通信?紤]到工業(yè)自動化系統(tǒng)中數(shù)據(jù)流量的不同需要,CAN open定義了4類標(biāo)準(zhǔn)通信對象,分別為過程數(shù)據(jù)對象(PDO)、服務(wù)數(shù)據(jù)對象(SDO)、管理對象(NMT)和特殊功能對象;其中,PDO對象主要用于傳輸實(shí)時(shí)數(shù)據(jù),SDO對象用于傳送配置信息,NMT對象用于實(shí)現(xiàn)對CANopen網(wǎng)絡(luò)的管理,而特殊功能對象提供一些特殊服務(wù)。對這些通信對象的訪問都是通過對象字典來實(shí)現(xiàn)。

  2)對象字典的設(shè)計(jì)

  對象字典(Object Dictionary)是CAN open協(xié)議的核心,它是一個(gè)有序的對象集合,包含了CAN open網(wǎng)絡(luò)中設(shè)備的所有信息,每個(gè)設(shè)備的對象字典具有結(jié)構(gòu)相同、內(nèi)容不同的特點(diǎn)。

  CAN open設(shè)備訪問對象字典時(shí),是通過一個(gè)16位索引和一個(gè)8位子索引的方式來尋址。由于對象字典包含條目眾多,不可能一一列舉,下面以使用最頻繁的PDO對象為例,從其報(bào)文屬性和數(shù)據(jù)封裝兩方面來介紹PDO對象的建立。根據(jù)電動執(zhí)行機(jī)構(gòu)的控制需求,定義了PDO報(bào)文屬性,見表1。

表1 PDO報(bào)文屬性

基于CANopen協(xié)議的電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)

  對于在CAN open網(wǎng)絡(luò)中作為從節(jié)點(diǎn)的電動執(zhí)行機(jī)構(gòu)來說,TPDO是其發(fā)送給主節(jié)點(diǎn)的實(shí)時(shí)數(shù)據(jù),而RPDO則是接收來自于主節(jié)點(diǎn)發(fā)送的數(shù)據(jù)或命令信息。由表1可知,每個(gè)TPDO和RPDO都包含2個(gè)對象字典條目:通信參數(shù)和映射參數(shù)。下面以TPDO1為例說明通信參數(shù)和映射參數(shù)的索引、子索引之間的關(guān)系,以及PDO對象的數(shù)據(jù)封裝過程,詳細(xì)流程,如圖5所示。

基于CANopen協(xié)議的電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)

圖5 映射封裝PDO

  由圖5知,通信參數(shù)索引1800h下有5個(gè)子索引,分別規(guī)定了該P(yáng)DO使用的COB_ID、傳輸類型、禁止時(shí)間及定時(shí)器周期等參數(shù);而映射參數(shù)索引1A00h下有2個(gè)子索引,它們表示映射到該P(yáng)DO中的2個(gè)對象,例如子索引1中的存放的是60000108h,表示把索引6000h,子索引01h,長度為8位的數(shù)據(jù)映射到TPDO1的第1個(gè)字節(jié),而60000108h里存放的是用戶規(guī)定的實(shí)際閥位值,當(dāng)滿足通訊參數(shù)中規(guī)定的傳輸類型時(shí),實(shí)際閥位值就能通過TPDO1發(fā)送給CANopen網(wǎng)絡(luò)主節(jié)點(diǎn),從而實(shí)現(xiàn)主從節(jié)點(diǎn)之間的信息交互。

  3)CANopen通訊程序設(shè)計(jì)

  電動執(zhí)行機(jī)構(gòu)的CANopen通訊程序流程,如圖6所示。

基于CANopen協(xié)議的電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)

圖6 CANopen通訊流程圖

  首先,執(zhí)行機(jī)構(gòu)上電初始化,待初始化完成后,它發(fā)送Boo-tup報(bào)文,同時(shí)其通信狀態(tài)由初始化狀態(tài)切換到預(yù)操作狀態(tài),該狀態(tài)下僅能進(jìn)行SDO通信;在收到NMT主節(jié)點(diǎn)的啟動報(bào)文后,節(jié)點(diǎn)通信狀態(tài)由預(yù)操作切換到操作狀態(tài),它是系統(tǒng)的正常工作狀態(tài),在該狀態(tài)下執(zhí)行機(jī)構(gòu)應(yīng)用程序循環(huán)調(diào)用CAN open stack函數(shù)實(shí)現(xiàn)CAN open基本通訊。

  CAN open基本通訊主要包含以下三方面:實(shí)現(xiàn)CANopen狀態(tài)轉(zhuǎn)換機(jī)制、調(diào)用CAN報(bào)文收發(fā)函數(shù)處理NMT,PDO,SDO等報(bào)文,根據(jù)報(bào)文處理結(jié)果刷新實(shí)際輸入和輸出。其中,第二個(gè)方面是難點(diǎn),因?yàn)镃AN open規(guī)定的通訊報(bào)文種類較多,如何快速有效地對這些報(bào)文進(jìn)行分類,并調(diào)用相應(yīng)函數(shù)處理是保證系統(tǒng)實(shí)時(shí)性的關(guān)鍵。為此,在程序設(shè)計(jì)時(shí)采取了一種基于隊(duì)列的分塊存取報(bào)文處理模式,其基本思想,如圖7所示。

基于CANopen協(xié)議的電動執(zhí)行機(jī)構(gòu)設(shè)計(jì)

圖7 基于隊(duì)列的報(bào)文處理模式