《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于CAN總線的分布式位置伺服系統(tǒng)設(shè)計
基于CAN總線的分布式位置伺服系統(tǒng)設(shè)計
呂應(yīng)明1, 袁海文1, 邢軍偉2
1. 北京航空航天大學 自動化科學與電氣工程學院, 北京100191;2. 鄭州大方橋梁機械有限公司, 河南 鄭州450005
摘要: 以帶有CAN接口的PLC為主控制器、以單片機AT89C52和CAN控制器AN82527等構(gòu)成分布式控制終端節(jié)點,設(shè)計了一種基于CAN總線的分布式位置伺服系統(tǒng),已成功應(yīng)用于工程實踐。該系統(tǒng)具有結(jié)構(gòu)簡單、易于實踐、可靠性高等優(yōu)點。
中圖分類號: TP391.9
文獻標識碼: 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)亦稱隨動系統(tǒng),其在軍事、工業(yè)和日常生活中都有著廣泛的應(yīng)用。隨著計算機技術(shù)和現(xiàn)場總線技術(shù)的發(fā)展和成熟,也促使伺服系統(tǒng)的實現(xiàn)方式和體系結(jié)構(gòu)在不斷地發(fā)展,將現(xiàn)場總線應(yīng)用于運動控制,構(gòu)成分布式控制的數(shù)字控制伺服系統(tǒng)日益受到人們的重視?;诂F(xiàn)場總線的分布式伺服系統(tǒng)有很多優(yōu)點,如連線少、可靠性高、易于系統(tǒng)的維護和擴展等。目前,國外的Siemens、ORM EC Systems、Rexroth等公司已經(jīng)有各自的分布式伺服系統(tǒng)產(chǎn)品推出;國內(nèi)有一些單位和學者也進行了該方面的研究,但相關(guān)的論文并不多,更沒有形成系列產(chǎn)品[1]。
    分布式伺服系統(tǒng)中,電機控制性能和多電機間協(xié)調(diào)控制性能的好壞直接影響生產(chǎn)過程質(zhì)量,如何實現(xiàn)系統(tǒng)的高效管理、方便應(yīng)用和實時控制都是需要解決的關(guān)鍵問題。CAN總線是一種有效支持分布式控制或?qū)崟r控制的串行通信局域網(wǎng)絡(luò),以其結(jié)構(gòu)簡單、可靠性高、成本低廉等優(yōu)點非常適合分布式伺服系統(tǒng)中數(shù)據(jù)通信的實現(xiàn)。通過CAN總線進行數(shù)據(jù)傳輸與控制,使伺服電機的性能更加穩(wěn)定,能更好、更靈活地應(yīng)用于分布式運動控制系統(tǒng)中[2]。
1 系統(tǒng)的總體結(jié)構(gòu)和原理
    本文設(shè)計的分布式伺服系統(tǒng)的總體結(jié)構(gòu)如圖1所示。系統(tǒng)由主控制器PLC、CAN總線和現(xiàn)場伺服單元節(jié)點組成。PLC是整個系統(tǒng)的主控制器,除了對各個伺服電機發(fā)送實時控制命令外,還需要接收各驅(qū)動器節(jié)點的工作狀態(tài)信息,并進行判斷給操作人員以提示或報警。系統(tǒng)中所有的伺服電機系統(tǒng)都有各自的CAN接口,都掛接在CAN總線上構(gòu)成如圖1所示的分布式控制系統(tǒng)。系統(tǒng)中若有節(jié)點同時向總線發(fā)送CAN信息時,根據(jù)每條信息的標識符(ID)進行仲裁,決定占用總線的優(yōu)先級,信息的ID越小優(yōu)先級越高。這就是CAN總線的非破壞性總線仲裁機制,由此決定同時發(fā)送到總線上的不同報文對總線的占用權(quán)[3-4]。

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

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

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

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

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

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

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