《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線(xiàn)的分布式位置伺服系統(tǒng)設(shè)計(jì)
基于CAN總線(xiàn)的分布式位置伺服系統(tǒng)設(shè)計(jì)
呂應(yīng)明1, 袁海文1, 邢軍偉2
1. 北京航空航天大學(xué) 自動(dòng)化科學(xué)與電氣工程學(xué)院, 北京100191;2. 鄭州大方橋梁機(jī)械有限公司, 河南 鄭州450005
摘要: 以帶有CAN接口的PLC為主控制器、以單片機(jī)AT89C52和CAN控制器AN82527等構(gòu)成分布式控制終端節(jié)點(diǎn),設(shè)計(jì)了一種基于CAN總線(xiàn)的分布式位置伺服系統(tǒng),已成功應(yīng)用于工程實(shí)踐。該系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、易于實(shí)踐、可靠性高等優(yōu)點(diǎn)。
中圖分類(lèi)號(hào): TP391.9
文獻(xiàn)標(biāo)識(shí)碼: A
Design of a distributed position servo system based on CAN bus
LV Ying Ming,YUAN Hai Wen, XING Jun Wei
1. School of Automation Science and Electrical Engineering, Beijing University of Aeronautics and Astronautics, Beijing 100191, China;2. Zhengzhou Dafang Bridge Machine Co. Ltd, Zhengzhou 450005, China
Abstract: This paper introduces a distributed position servo system based on CAN bus, using the PLC with CAN interface the main controller. The distributed control terminals are composed of single-chip AT89C52,CAN controller AN82527,and so on. The system has been used in the product field successfully, and application shows that it is simpler, easier to realize and more reliable.
Key words : CAN bus; servo system; distributed control

    伺服系統(tǒng)(servo system)亦稱(chēng)隨動(dòng)系統(tǒng),其在軍事、工業(yè)和日常生活中都有著廣泛的應(yīng)用。隨著計(jì)算機(jī)技術(shù)和現(xiàn)場(chǎng)總線(xiàn)技術(shù)的發(fā)展和成熟,也促使伺服系統(tǒng)的實(shí)現(xiàn)方式和體系結(jié)構(gòu)在不斷地發(fā)展,將現(xiàn)場(chǎng)總線(xiàn)應(yīng)用于運(yùn)動(dòng)控制,構(gòu)成分布式控制的數(shù)字控制伺服系統(tǒng)日益受到人們的重視?;诂F(xiàn)場(chǎng)總線(xiàn)的分布式伺服系統(tǒng)有很多優(yōu)點(diǎn),如連線(xiàn)少、可靠性高、易于系統(tǒng)的維護(hù)和擴(kuò)展等。目前,國(guó)外的Siemens、ORM EC Systems、Rexroth等公司已經(jīng)有各自的分布式伺服系統(tǒng)產(chǎn)品推出;國(guó)內(nèi)有一些單位和學(xué)者也進(jìn)行了該方面的研究,但相關(guān)的論文并不多,更沒(méi)有形成系列產(chǎn)品[1]。
    分布式伺服系統(tǒng)中,電機(jī)控制性能和多電機(jī)間協(xié)調(diào)控制性能的好壞直接影響生產(chǎn)過(guò)程質(zhì)量,如何實(shí)現(xiàn)系統(tǒng)的高效管理、方便應(yīng)用和實(shí)時(shí)控制都是需要解決的關(guān)鍵問(wèn)題。CAN總線(xiàn)是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信局域網(wǎng)絡(luò),以其結(jié)構(gòu)簡(jiǎn)單、可靠性高、成本低廉等優(yōu)點(diǎn)非常適合分布式伺服系統(tǒng)中數(shù)據(jù)通信的實(shí)現(xiàn)。通過(guò)CAN總線(xiàn)進(jìn)行數(shù)據(jù)傳輸與控制,使伺服電機(jī)的性能更加穩(wěn)定,能更好、更靈活地應(yīng)用于分布式運(yùn)動(dòng)控制系統(tǒng)中[2]。
1 系統(tǒng)的總體結(jié)構(gòu)和原理
    本文設(shè)計(jì)的分布式伺服系統(tǒng)的總體結(jié)構(gòu)如圖1所示。系統(tǒng)由主控制器PLC、CAN總線(xiàn)和現(xiàn)場(chǎng)伺服單元節(jié)點(diǎn)組成。PLC是整個(gè)系統(tǒng)的主控制器,除了對(duì)各個(gè)伺服電機(jī)發(fā)送實(shí)時(shí)控制命令外,還需要接收各驅(qū)動(dòng)器節(jié)點(diǎn)的工作狀態(tài)信息,并進(jìn)行判斷給操作人員以提示或報(bào)警。系統(tǒng)中所有的伺服電機(jī)系統(tǒng)都有各自的CAN接口,都掛接在CAN總線(xiàn)上構(gòu)成如圖1所示的分布式控制系統(tǒng)。系統(tǒng)中若有節(jié)點(diǎn)同時(shí)向總線(xiàn)發(fā)送CAN信息時(shí),根據(jù)每條信息的標(biāo)識(shí)符(ID)進(jìn)行仲裁,決定占用總線(xiàn)的優(yōu)先級(jí),信息的ID越小優(yōu)先級(jí)越高。這就是CAN總線(xiàn)的非破壞性總線(xiàn)仲裁機(jī)制,由此決定同時(shí)發(fā)送到總線(xiàn)上的不同報(bào)文對(duì)總線(xiàn)的占用權(quán)[3-4]。

2 系統(tǒng)硬件構(gòu)成
2.1 主控制器PLC模塊

    本系統(tǒng)的主控制器PLC選用的是芬蘭EPEC公司生產(chǎn)的EPEC 3G系列控制模塊中的一種,該模塊功能強(qiáng)大,性能優(yōu)越;堅(jiān)固、體積小、耐低溫、抗振動(dòng)、抗強(qiáng)電磁干擾,并具有高壓、過(guò)載、過(guò)熱和輸出短路保護(hù)功能;16位的高性能微處理器和超大容量的內(nèi)存空間使其具有很強(qiáng)的數(shù)字處理能力,可以完成較復(fù)雜的算法;具有豐富的I/O口資源,包括AI、DI、DO和PWM輸出等,還具有CANopen和CAN2.0B 兩個(gè)總線(xiàn)接口,可以與很多標(biāo)準(zhǔn)的CAN總線(xiàn)產(chǎn)品直接連接,而且接線(xiàn)簡(jiǎn)單方便,可靠性高。本系統(tǒng)利用的是該模塊的CAN2.0B總線(xiàn)接口。
2.2 伺服驅(qū)動(dòng)器節(jié)點(diǎn)硬件原理
  本系統(tǒng)目前的工程應(yīng)用是控制油門(mén)閥的開(kāi)度,圖1中的每1個(gè)伺服電機(jī)系統(tǒng)就是一個(gè)集成的直流電動(dòng)推桿,其包括DC 24 V直流電機(jī)、推桿機(jī)構(gòu)和推桿位置傳感器。通過(guò)電機(jī)的正反轉(zhuǎn)帶動(dòng)推桿機(jī)構(gòu)直線(xiàn)運(yùn)動(dòng)從而控制某型號(hào)油門(mén)閥的開(kāi)度大小。
  伺服驅(qū)動(dòng)器的CAN節(jié)點(diǎn)主要由單片機(jī)AT89C52、AD芯片、CAN控制器82527、收發(fā)器PCA82C250和繼電器構(gòu)成,其硬件原理如圖2所示。單片機(jī)從CAN總線(xiàn)上接收PLC發(fā)送的位置給定命令,推桿位置傳感器的反饋電壓信號(hào)經(jīng)AD轉(zhuǎn)換后進(jìn)入單片機(jī),與位置給定量進(jìn)行比較,然后完成推桿位置的閉環(huán)控制算法??刂屏客ㄟ^(guò)單片機(jī)的I/O_1和I/O_2輸出,經(jīng)過(guò)驅(qū)動(dòng)芯片后,I/O_1的信號(hào)控制1個(gè)雙刀雙擲繼電器實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)切換,I/O_1的信號(hào)控制1個(gè)單刀繼電器以控制電機(jī)的啟動(dòng)和停止[5]。

3 系統(tǒng)軟件設(shè)計(jì)
  系統(tǒng)CAN總線(xiàn)網(wǎng)絡(luò)的通信協(xié)議是按照CAN2.0B標(biāo)準(zhǔn)設(shè)計(jì)的,采用11位標(biāo)識(shí)符的標(biāo)準(zhǔn)幀格式,初始波特率為250 Kb/s(可修改),各節(jié)點(diǎn)的數(shù)據(jù)發(fā)送方式都采用廣播式,接收數(shù)據(jù)時(shí)采用報(bào)文標(biāo)識(shí)符過(guò)濾的方式從總線(xiàn)上接收本地所需要的數(shù)據(jù)。
3.1 PLC控制程序
  系統(tǒng)選用的PLC的軟件開(kāi)發(fā)環(huán)境是CoDeSys,它是德國(guó)3S公司開(kāi)發(fā)的一種可視化PLC編程環(huán)境,支持IEC11311-3標(biāo)準(zhǔn)的指令表、梯形圖、功能模塊圖、順序流程圖、結(jié)構(gòu)化文本、連續(xù)功能圖等6種編程語(yǔ)言,用戶(hù)可在同1個(gè)項(xiàng)目中選擇不同的語(yǔ)言編寫(xiě)程序。CoDeSys以工程文件的形式組織程序的各個(gè)對(duì)象。1個(gè)工程文件包含PLC程序里的所有對(duì)象:POUs(Program Organization Units)、數(shù)據(jù)類(lèi)型和資源。1個(gè)POUs包括主程序(PLC_PRG)、子程序(PRG)、功能塊(FB)、函數(shù)(FUN)及語(yǔ)句,其中主程序必須命名為PLC_PRG。子程序可以調(diào)用函數(shù)和功能塊,但函數(shù)和功能塊不能調(diào)用子程序,且當(dāng)程序在線(xiàn)運(yùn)行時(shí),子程序中的中間變量值是可視的。另外,CoDeSys還具有豐富的庫(kù)文件資源,編程過(guò)程中可以靈活調(diào)用,大大節(jié)省了軟件開(kāi)發(fā)時(shí)間。
    根據(jù)CoDeSys程序編寫(xiě)的特點(diǎn),系統(tǒng)的PLC程序是用結(jié)構(gòu)化文本語(yǔ)言編寫(xiě)的。程序的主要功能是把由AI口輸入的油門(mén)控制腳踏板的模擬電壓進(jìn)行一定調(diào)理后通過(guò)CAN總線(xiàn)發(fā)送給各個(gè)被控節(jié)點(diǎn),并從CAN總線(xiàn)上接收各節(jié)點(diǎn)的狀態(tài)信息,進(jìn)行判斷后對(duì)操作人員給出提示或報(bào)警信號(hào)。PLC的CAN總線(xiàn)通信初始化的主要設(shè)置有:波特率等相關(guān)參數(shù)、報(bào)文濾波參數(shù)、創(chuàng)建接收?qǐng)?bào)文的數(shù)據(jù)緩存區(qū)等,這些設(shè)置都可以直接調(diào)用CAN2.0的庫(kù)函數(shù)實(shí)現(xiàn),十分方便。PLC在發(fā)送數(shù)據(jù)時(shí),調(diào)用庫(kù)函數(shù)CAN_IITX(),設(shè)置ID、DLC等參數(shù),把數(shù)據(jù)打包給每幀數(shù)據(jù)段的相應(yīng)字節(jié)即可;接收數(shù)據(jù)時(shí),需要先調(diào)用庫(kù)函數(shù)CAN_II_GET_MSG()創(chuàng)建接收數(shù)據(jù)緩存區(qū),設(shè)置OBJ、ID等參數(shù)(OBJ是緩存初始化序號(hào), ID是接收數(shù)據(jù)的標(biāo)識(shí)符),實(shí)現(xiàn)報(bào)文過(guò)濾。然后調(diào)用庫(kù)函數(shù)GET_MSG(),其參數(shù)MESSAGE必須與緩存區(qū)初始化序號(hào)OBJ相等,才能讀入相應(yīng)緩存區(qū)的數(shù)據(jù)。函數(shù)GET_MSG()讀數(shù)據(jù)是分字節(jié)讀取的,可以很容易實(shí)現(xiàn)數(shù)據(jù)的字節(jié)操作和位操作,可為數(shù)據(jù)的計(jì)算和處理提供方便。順序循環(huán)執(zhí)行PLC程序,本系統(tǒng)設(shè)計(jì)的循環(huán)周期為10 ms,可以滿(mǎn)足控制系統(tǒng)實(shí)時(shí)性的要求。
3.2 單片機(jī)程序
    單片機(jī)的主程序流程如圖3所示,包括單片機(jī)與82527的初始化程序和各子程序。對(duì)反復(fù)執(zhí)行的程序段利用主程序調(diào)用子程序的方式實(shí)現(xiàn)。子程序主要有閉環(huán)控制子程序、故障處理子程序和參數(shù)修改子程序[6]。

    系統(tǒng)的閉環(huán)控制采用的是Bang-Bang算法。該算法是一種時(shí)間最優(yōu)控制,且算法簡(jiǎn)單,便于單片機(jī)實(shí)現(xiàn),又能滿(mǎn)足系統(tǒng)控制精度的要求。設(shè)精度允許的推桿位置誤差帶為[-Δ1,Δ2],當(dāng)前偏差為e(t),-Δ1≤e(t)≤Δ2時(shí),可認(rèn)為推桿當(dāng)前位置即為給定要求的位置。若把控制量u(t)歸一化處理,則此算法可以表示為:
  
   由于伺服電機(jī)正轉(zhuǎn)和反轉(zhuǎn)時(shí)推桿運(yùn)動(dòng)的慣性不同,所以正、反向最大誤差允許值Δ2和Δ1一般是不相等的。圖4是Bang-Bang算法子程序流圖。

    故障處理程序處理的故障包括CAN通信中斷故障、位置反饋斷線(xiàn)故障、電機(jī)堵轉(zhuǎn)故障等,通過(guò)對(duì)這些故障的自動(dòng)處理或給出提示信息提高了系統(tǒng)的可靠性。控制器在不同場(chǎng)合使用時(shí),對(duì)一些參數(shù)的要求也不相同,如控制器CAN報(bào)文的ID、通信波特率、控制死區(qū)、位置標(biāo)定等參數(shù)的值都可以通過(guò)CAN總線(xiàn)報(bào)文進(jìn)行人工修改。本設(shè)計(jì)選用的X5045芯片帶有512字節(jié)的E2PROM,可由單片機(jī)對(duì)其存儲(chǔ)空間進(jìn)行串行讀寫(xiě),因此,X5045芯片除了實(shí)現(xiàn)單片機(jī)的上電復(fù)位和看門(mén)狗功能外,還可把需要進(jìn)行修改的參數(shù)存放在其E2PROM空間中。對(duì)故障處理和參數(shù)修改子程序的具體編寫(xiě)這里不再詳述。
4 實(shí)驗(yàn)結(jié)果及分析
    本系統(tǒng)實(shí)現(xiàn)1個(gè)腳踏板同時(shí)對(duì)2個(gè)油門(mén)閥的控制,腳踏板電位器輸出的電壓信號(hào)經(jīng)主控制器PLC的模擬量輸入口進(jìn)行A/D轉(zhuǎn)換,再通過(guò)CAN總線(xiàn)接口發(fā)給2個(gè)伺服驅(qū)動(dòng)節(jié)點(diǎn),控制油門(mén)閥的開(kāi)度快速精確跟蹤腳踏板的運(yùn)動(dòng)變化。在實(shí)際應(yīng)用過(guò)程中,PLC還用于整車(chē)的其他控制功能。由于通信線(xiàn)使用的是普通雙絞線(xiàn)的特征阻抗120 Ω,所以需要在CAN總線(xiàn)兩端的CANH和CANL之間各加1個(gè)120 Ω的終端電阻,使總線(xiàn)阻抗匹配,以較好地抑制干擾。
   經(jīng)過(guò)實(shí)驗(yàn),系統(tǒng)能夠達(dá)到以下要求:
   (1)在波特率250 Kb/s、總線(xiàn)長(zhǎng)度100 m的情況下,各節(jié)點(diǎn)之間通信正常,2個(gè)伺服驅(qū)動(dòng)節(jié)點(diǎn)能正常工作。
   (2)推桿的有效運(yùn)動(dòng)長(zhǎng)度約為50 mm,5 s內(nèi)可實(shí)現(xiàn)全程運(yùn)動(dòng),可滿(mǎn)足油門(mén)閥調(diào)節(jié)快速性的要求。
   (3)圖5是調(diào)試過(guò)程中通過(guò)CodeSys開(kāi)發(fā)環(huán)境的變量觀(guān)察窗口繪出的2個(gè)推桿運(yùn)動(dòng)的階躍響應(yīng)曲線(xiàn),其中圖5(a)是控制推桿伸出的情況,圖5(b)是縮回的情況。圖中,x表示位置給定量的階躍變化,y1、y2分別表示2個(gè)推桿位置對(duì)階躍給定的動(dòng)態(tài)響應(yīng)曲線(xiàn)。由圖可以看出,2個(gè)推桿的位置均能及時(shí)跟隨給定量的變化,并能達(dá)到控制精度的要求。

   本文設(shè)計(jì)的分布式直流電動(dòng)伺服系統(tǒng)已經(jīng)應(yīng)用在某大型工程運(yùn)輸車(chē)的油門(mén)閥控制中,其工作穩(wěn)定可靠,與氣動(dòng)油門(mén)相比,大大提高了油門(mén)控制的響應(yīng)速度和系統(tǒng)的可靠性。該系統(tǒng)的伺服驅(qū)動(dòng)節(jié)點(diǎn)結(jié)構(gòu)簡(jiǎn)單、成本低廉,CAN總線(xiàn)網(wǎng)絡(luò)的應(yīng)用使整個(gè)系統(tǒng)具有很強(qiáng)的通用性和可擴(kuò)展性,根據(jù)應(yīng)用需要可以方便地增減驅(qū)動(dòng)節(jié)點(diǎn)的數(shù)量,實(shí)現(xiàn)更多軸和多點(diǎn)的伺服控制系統(tǒng),并進(jìn)一步實(shí)現(xiàn)多電機(jī)的協(xié)同控制。
參考文獻(xiàn)
[1]   敖慶榮,袁坤. 伺服系統(tǒng)[M].北京:航空工業(yè)出版社,2006.
[2]   杜尚豐,曹曉鐘,徐津,等. CAN總線(xiàn)測(cè)控技術(shù)及其應(yīng)用[M].北京:電子工業(yè)出版社,2007.
[3]   趙君,劉衛(wèi)國(guó),譚博. 基于CAN總線(xiàn)的分布式多電機(jī)控制研究[J]. 測(cè)控技術(shù),2008(8).
[4]   王寶仁,張承瑞,史大光. 基于CAN總線(xiàn)的分布式伺服系統(tǒng)通信協(xié)議的研究[J]. 組合機(jī)床與自動(dòng)化加工技
術(shù),2007(2).
[5]  何立民. 單片機(jī)高級(jí)教程-應(yīng)用與設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2000.
[6]  初憲武,汪玉鳳,王麗. 基于82527的CAN總線(xiàn)智能傳感器節(jié)點(diǎn)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2002(12).
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。