伺服系統(servo system)亦稱隨動系統,其在軍事、工業和日常生活中都有著廣泛的應用。隨著計算機技術和現場總線技術的發展和成熟,也促使伺服系統的實現方式和體系結構在不斷地發展,將現場總線應用于運動控制,構成分布式控制的數字控制伺服系統日益受到人們的重視。基于現場總線的分布式伺服系統有很多優點,如連線少、可靠性高、易于系統的維護和擴展等。目前,國外的Siemens、ORM EC Systems、Rexroth等公司已經有各自的分布式伺服系統產品推出;國內有一些單位和學者也進行了該方面的研究,但相關的論文并不多,更沒有形成系列產品。 分布式伺服系統中,電機控制性能和多電機間協調控制性能的好壞直接影響生產過程質量,如何實現系統的高效管理、方便應用和實時控制都是需要解決的關鍵問題。CAN總線是一種有效支持分布式控制或實時控制的串行通信局域網絡,以其結構簡單、可靠性高、成本低廉等優點非常適合分布式伺服系統中數據通信的實現。通過CAN總線進行數據傳輸與控制,使伺服電機的性能更加穩定,能更好、更靈活地應用于分布式運動控制系統中。 1 系統的總體結構和原理 本文設計的分布式伺服系統的總體結構如圖1所示。系統由主控制器PLC、CAN總線和現場伺服單元節點組成。PLC是整個系統的主控制器,除了對各個伺服電機發送實時控制命令外,還需要接收各驅動器節點的工作狀態信息,并進行判斷給操作人員以提示或報警。系統中所有的伺服電機系統都有各自的CAN接口,都掛接在CAN總線上構成如圖1所示的分布式控制系統。系統中若有節點同時向總線發送CAN信息時,根據每條信息的標識符(ID)進行仲裁,決定占用總線的優先級,信息的ID越小優先級越高。這就是CAN總線的非破壞性總線仲裁機制,由此決定同時發送到總線上的不同報文對總線的占用權。 2 系統硬件構成 2.1 主控制器PLC模塊 本系統的主控制器PLC選用的是芬蘭EPEC公司生產的EPEC 3G系列控制模塊中的一種,該模塊功能強大,性能優越;堅固、體積小、耐低溫、抗振動、抗強電磁干擾,并具有高壓、過載、過熱和輸出短路保護功能;16位的高性能微處理器和超大容量的內存空間使其具有很強的數字處理能力,可以完成較復雜的算法;具有豐富的I/O口資源,包括AI、DI、DO和PWM輸出等,還具有CANopen和CAN2.0B 兩個總線接口,可以與很多標準的CAN總線產品直接連接,而且接線簡單方便,可靠性高。本系統利用的是該模塊的CAN2.0B總線接口。 2.2 伺服驅動器節點硬件原理 本系統目前的工程應用是控制油門閥的開度,圖1中的每1個伺服電機系統就是一個集成的直流電動推桿,其包括DC 24 V直流電機、推桿機構和推桿位置傳感器。通過電機的正反轉帶動推桿機構直線運動從而控制某型號油門閥的開度大小。 伺服驅動器的CAN節點主要由單片機AT89C52、AD芯片、CAN控制器82527、收發器PCA82C250和繼電器構成,其硬件原理如圖2所示。單片機從CAN總線上接收PLC發送的位置給定命令,推桿位置傳感器的反饋電壓信號經AD轉換后進入單片機,與位置給定量進行比較,然后完成推桿位置的閉環控制算法。控制量通過單片機的I/O_1和I/O_2輸出,經過驅動芯片后,I/O_1的信號控制1個雙刀雙擲繼電器實現電機的正反轉切換,I/O_1的信號控制1個單刀繼電器以控制電機的啟動和停止。 3 系統軟件設計 系統CAN總線網絡的通信協議是按照CAN2.0B標準設計的,采用11位標識符的標準幀格式,初始波特率為250 Kb/s(可修改),各節點的數據發送方式都采用廣播式,接收數據時采用報文標識符過濾的方式從總線上接收本地所需要的數據。 3.1 PLC控制程序 系統選用的PLC的軟件開發環境是CoDeSys,它是德國3S公司開發的一種可視化PLC編程環境,支持IEC11311-3標準的指令表、梯形圖、功能模塊圖、順序流程圖、結構化文本、連續功能圖等6種編程語言,用戶可在同1個項目中選擇不同的語言編寫程序。CoDeSys以工程文件的形式組織程序的各個對象。1個工程文件包含PLC程序里的所有對象:POUs(Program Organization Units)、數據類型和資源。1個POUs包括主程序(PLC_PRG)、子程序(PRG)、功能塊(FB)、函數(FUN)及語句,其中主程序必須命名為PLC_PRG。子程序可以調用函數和功能塊,但函數和功能塊不能調用子程序,且當程序在線運行時,子程序中的中間變量值是可視的。另外,CoDeSys還具有豐富的庫文件資源,編程過程中可以靈活調用,大大節省了軟件開發時間。 根據CoDeSys程序編寫的特點,系統的PLC程序是用結構化文本語言編寫的。程序的主要功能是把由AI口輸入的油門控制腳踏板的模擬電壓進行一定調理后通過CAN總線發送給各個被控節點,并從CAN總線上接收各節點的狀態信息,進行判斷后對操作人員給出提示或報警信號。PLC的CAN總線通信初始化的主要設置有:波特率等相關參數、報文濾波參數、創建接收報文的數據緩存區等,這些設置都可以直接調用CAN2.0的庫函數實現,十分方便。PLC在發送數據時,調用庫函數CAN_IITX(),設置ID、DLC等參數,把數據打包給每幀數據段的相應字節即可;接收數據時,需要先調用庫函數CAN_II_GET_MSG()創建接收數據緩存區,設置OBJ、ID等參數(OBJ是緩存初始化序號, ID是接收數據的標識符),實現報文過濾。然后調用庫函數GET_MSG(),其參數MESSAGE必須與緩存區初始化序號OBJ相等,才能讀入相應緩存區的數據。函數GET_MSG()讀數據是分字節讀取的,可以很容易實現數據的字節操作和位操作,可為數據的計算和處理提供方便。順序循環執行PLC程序,本系統設計的循環周期為10 ms,可以滿足控制系統實時性的要求。 3.2 單片機程序 單片機的主程序流程如圖3所示,包括單片機與82527的初始化程序和各子程序。對反復執行的程序段利用主程序調用子程序的方式實現。子程序主要有閉環控制子程序、故障處理子程序和參數修改子程序。 系統的閉環控制采用的是Bang-Bang算法。該算法是一種時間最優控制,且算法簡單,便于單片機實現,又能滿足系統控制精度的要求。設精度允許的推桿位置誤差帶為[-Δ1,Δ2],當前偏差為e(t),-Δ1≤e(t)≤Δ2時,可認為推桿當前位置即為給定要求的位置。若把控制量u(t)歸一化處理,則此算法可以表示為: 由于伺服電機正轉和反轉時推桿運動的慣性不同,所以正、反向最大誤差允許值Δ2和Δ1一般是不相等的。圖4是Bang-Bang算法子程序流圖。 故障處理程序處理的故障包括CAN通信中斷故障、位置反饋斷線故障、電機堵轉故障等,通過對這些故障的自動處理或給出提示信息提高了系統的可靠性。控制器在不同場合使用時,對一些參數的要求也不相同,如控制器CAN報文的ID、通信波特率、控制死區、位置標定等參數的值都可以通過CAN總線報文進行人工修改。本設計選用的X5045芯片帶有512字節的E2PROM,可由單片機對其存儲空間進行串行讀寫,因此,X5045芯片除了實現單片機的上電復位和看門狗功能外,還可把需要進行修改的參數存放在其E2PROM空間中。對故障處理和參數修改子程序的具體編寫這里不再詳述。 4 實驗結果及分析 本系統實現1個腳踏板同時對2個油門閥的控制,腳踏板電位器輸出的電壓信號經主控制器PLC的模擬量輸入口進行A/D轉換,再通過CAN總線接口發給2個伺服驅動節點,控制油門閥的開度快速精確跟蹤腳踏板的運動變化。在實際應用過程中,PLC還用于整車的其他控制功能。由于通信線使用的是普通雙絞線的特征阻抗120 Ω,所以需要在CAN總線兩端的CANH和CANL之間各加1個120 Ω的終端電阻,使總線阻抗匹配,以較好地抑制干擾。 經過實驗,系統能夠達到以下要求: (1)在波特率250 Kb/s、總線長度100 m的情況下,各節點之間通信正常,2個伺服驅動節點能正常工作。 (2)推桿的有效運動長度約為50 mm,5 s內可實現全程運動,可滿足油門閥調節快速性的要求。 (3)圖5是調試過程中通過CodeSys開發環境的變量觀察窗口繪出的2個推桿運動的階躍響應曲線,其中圖5(a)是控制推桿伸出的情況,圖5(b)是縮回的情況。圖中,x表示位置給定量的階躍變化,y1、y2分別表示2個推桿位置對階躍給定的動態響應曲線。由圖可以看出,2個推桿的位置均能及時跟隨給定量的變化,并能達到控制精度的要求。 本文設計的分布式直流電動伺服系統已經應用在某大型工程運輸車的油門閥控制中,其工作穩定可靠,與氣動油門相比,大大提高了油門控制的響應速度和系統的可靠性。該系統的伺服驅動節點結構簡單、成本低廉,CAN總線網絡的應用使整個系統具有很強的通用性和可擴展性,根據應用需要可以方便地增減驅動節點的數量,實現更多軸和多點的伺服控制系統,并進一步實現多電機的協同控制。 |