鄭天江,宋孫浩,楊亞威,張 馳,楊桂林
(中科院 寧波材料技術與工程研究所,寧波 315201)
運動控制技術是現代工業化進程中必不可少的元素,不管是數控領域,還是新興的裝備制造乃至機器人領域,都離不開運動控制,運動控制器已經深入了現代化工業的每個角落。高速、高精度始終是運動控制技術追求的目標。傳統的運動控制器的核心器件主要是基于單片機(MCU)或者數字信號處理器(DSP)等嵌入式芯片開發,受嵌入式芯片的運算速度和功能的限制,部分復雜的運動規劃、高速實時多軸插補、誤差補償[1]和更復雜的運動學、動力學計算無法在裝備了傳統運動控制器的數控設備或機器人設備上實現,這就要求我們新型的運動控制器的核心處理器具有更快的處理速度、更高的運算精度和更多任務的處理能力。隨著工業PC技術的發展, 功能越來越強大、可靠性越來越高、價格越來越低廉、體積越來越小巧,是現代運動控制器及運動控制系統發展的必然趨勢。
開放式運動控制器的研究始于1987年,美國空軍在政府的資助下發表了著名的“NGC(下一代控制器)研究計劃”[2]。從1996年開始,美國幾個大型研究機構對NGC計劃分別發表了相應的內容,美國通用、福特和克萊斯勒等公司提出和研究了 “OMAC(開放式、模塊化體系結構控制器)”,其目的是用更開放、更加模塊化的控制結構使制造系統更加具有柔性、更加敏捷。目前,國外的一些公司已經有了相關的產品,例如softservo公司[3]針對數控加工領域開發了4軸的運動控制器,貝福自動化公司則主推Ethercat[4]相關的自動化運動控制產品,包括嵌入式系統的硬件、軟件平臺以及工控PC。近年來,一些人試圖已經開始探尋將網絡服務直接嵌入到運動器中[5],例如張艷瓊[6]等人研究了基于Web service的工業控制系統,企圖利用Internet的開放性來實現遠程的工業數據交互,和多平臺的接入等特點。
前面提到的運動控制器及相關產品已經開始向開放式PC和網絡化的方向靠近,但還是存在一些缺點和不足,例如采用計算機標準總線的運動控制器由于存在金手指鏈接,單邊固定等缺點,不宜長期工作;采用嵌入式系統的運動控制器其資源和配置以及運算能力有限;本文基于以上原因實現了基于工控機和網絡設備的運動控制器,通過將所有運動控制算法運行在實時的工控機內核上實現快速的實時運算,并且通過實時以太網的應用實現了工控機與現場設備的實時聯網。與此同時在工控機上搭載了因特網接口,可以實現多平臺和多點的動態接入和控制。
如圖1所示,運動控制器搭載網絡服務通過網關連接到工廠的局域網或廣域網絡;而針對多軸的電機控制方面,控制器搭載實時的通訊網絡(并口,Can或者Ethercat),I/O端子板實現將收到的數據翻譯成現場的I/O控制量(如,數字量輸入輸入出,模擬量輸入輸出以及PWM等),這樣通過Linux實時系統和相應的實時傳輸協議便可實現一個控制器控制多軸的電機同時運行;運動控制器與運動控制器之間可以通過網關進行網內的數據交換。

圖1 運動控制器的整體架構圖
圖2是運動控制器軟件結構框圖,控制器以PC和實時Linux技術(RTAI或者Preempt-RT)構成的實時操作系統(RTOS)為基礎開發平臺,操作系統中的程序分為實時和非實時兩種類型,其中實時以太網驅動等程序的運的優先級最高,此外,硬件驅動、運動學和動力學計算、軌跡規劃和網絡服務等內容也在實時進程中實現;而對系統實時性要求不高的內容,例如代碼解釋等,則是在非實時的進程中實現。人機交互方面,通過網絡節點上的用戶可以通過網絡GUI的服務實現遠程的訪問和多點的接入。

圖2 運動控制器軟件結構圖
1)搭建Web服務
對于Web的工作原理簡要介紹如圖3所示,Web服務器作為服務端存放相應的服務網頁并提供服務,將Web服務器融合到運動控制器中,所以運動控制器的數據可以與Web服務器進行實時通訊。Web客戶端發出瀏覽網頁和下載文件等命令申請,申請成功后,由服務器直接傳輸所需要的文本和數據到客戶端。
針對服務器的搭建,我們采用Apache等方式來配置。Apache是開源的Web服務器軟件,是最常用的Web服務器之一。其主要特點是:簡單、速度快、性能穩定;它可以運行于所有計算機平臺,包括UNIX/LINUX系統;集成代理服務器和Perl編程腳本;對用戶的訪問會話過程跟蹤;可對服務器日志定制;還支持虛擬主機及HTTP認證等等。同時在服務器端還需要配置MySQL服務器和PHP應用程序服務器等軟件,其中MySQL是關系型數據庫管理系統,而PHP是網站流行的Web程序開發語言。三者的結合是用來配置Web服務器的標準組合。

圖3 網頁的申請與瀏覽過程
2)SSH遠程登錄控制
SSH為建立在應用層和傳輸層基礎上的安全協議。SSH是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用SSH協議可以有效防止遠程管理過程中的信息泄露問題。在Linux的操作系統上建立和鏈接SSH服務是非常簡單方便的,并且用戶可以通過不同終端進行訪問。首先在運動控制器上安裝SSH協議,在加入實時內核補丁的ubuntu操作系統下,安裝SSH協議是非常方便的,只需要在聯網狀態下終端輸入apt-get install SSH,系統便可以自動安裝SSH服務。同理,在另外一臺終端安裝SSH服務之后便可以采用SSH+IP地址+用戶名來實現兩臺計算機的互訪。這樣便實現了采用局域網中任意一臺機器來控制開放式的運動控制器。
由于運動控制器必須要保證設備的實時性,因此我們首先需要研究操作系統和通訊系統的實時性,只有解決了這兩大核心問題,系統的精度和控制速度才能夠提高并且適應現場的不同設備。本文主要采用以實時的Linux操作系統為基礎,首先調查和研究Linux操作系統對外圍設備的實時性表現,同時研究基于Linux下的現場實時總線的技術和通信標準。
1)操作系統的實時性研究
由于標準的Linux內核是采用內核層和用戶層分離的接口,普通用戶無法直接更改內核進程,因此需要采取一些特殊的辦法來提高其實時性,比如說瘦內核方法、超微內核方法、資源內核方法和實時內核補丁等等。
圖4(a)~(d)顯示了普通內核和帶實時內核補丁的Linux操作系統的實時性的表現,本測試在每個操作系統上分別運行了5個線程,針對每個線程的實時性進行了捕捉(圖中max:表示最大延遲,Avg表示平均延遲,單位均為ns),結果發現采用普通Linux操作系統內核的最大延遲比較大(最大延遲為1000ns以上),并且在干擾情況下,內核的穩定性得不到保證(最大延遲跳動比較大)。采用實時內核則穩定性和實時性大大提高了(最大延遲在10ns左右)。

圖4 Linux實時內核測試
2)通訊系統的性能研究
上位機要想控制現場設備,那么通訊過程是必不可少的,我們采用linuxcnc作為上位機的控制軟件,通過編寫實時進程下的hal驅動和內核模塊文件來實現實時的運動控制功能。這里我們采用了三種通訊模式開發了相關的通訊系統軟件和硬件來控制下位機的電機及IO設備:基于并口通訊,基于Canopen通訊和基于Ethercat通訊。
基于并口的通訊:由于并口相對于其他方式來說,其開發過程比較簡單,成本低廉,因此我們首先采用并口進行測試,但其局限性在與,通訊距離比較短,通訊速率比較慢。通過重寫Linux內核并口驅動程序,通訊方式采用EPP模式,并且下位機采用單片機模擬并口,下位機根據接收到的值發出相應的模擬量或者數字量來控制現場設備。
采用并口通訊實現開放式運動控制系統的設備如圖5所示,主要包括了工控機,并口轉接板和I/O端子板,在Linux系統實時系統下,我們選取了系統中斷為1ms,通訊協議中,每發送一個16位的過程數據,需要在上位機發送四次8位數據,由于EPP通訊模式的速率大約在1Mbyte左右,因此我們每個1ms的通訊間隔可以發送和讀寫大約30個16位的數據。數據編碼方式如表1所示。

表1 數據編碼方向
其中h0h7組成8位數據頭,c0~c7代表數據的代碼號,用來識別設備編號和數據等,d0~d15代表實際數據。

圖5 采用并口通訊實現的開放式運動控制系統
通過實驗驗證,在這樣的方式下,我們每一路并口最多只能實時控制2兩路電機。我們可以通過PCI的并口擴展卡來實現多路電機的同時控制。因此,在控制軸數不多,廉價的場合,采用并口來實現是可行的。如果需要增加更多路的控制,我們可以使用PCI或者PCIE轉并口轉接來實現。
基于Canopen的通訊:由于普通電腦上并沒有Can通訊的硬件,因此我們需要研發基于Can的PCI通訊卡,采用Can總線通訊主要特點是,抗干擾能力強可以同時接入多個控制設備傳輸距離相對來說比較遠,Linux系統下,我們選擇了凌華公司的PCI-7841(PCI轉CAN卡)進行測試,編寫基于Can總線的程序比較簡單,基于socketcan的方式,首先創建一個套接字,然后綁定端口,然后發送數據,其主要程序如下:

通過實驗發現,采用Canopen的通訊模式,其1ms內的實時收發數據量跟并口的差不多,但是其穩定性和傳輸距離遠遠高于并口。另一方面,由于需要專門設計PCI轉Can卡,成本要高一些。
基于Ethernet的通訊:傳統的運動控制器通過RS232、485等方式來進行運動控制器與現場設備間的通訊,這類系統的功能和性能受到了諸多的限制,除了通訊距離短、接線方式繁瑣、通訊速率低等,最顯著的缺點是能夠控制的軸的數目不多。通過實時以太網的技術引入,解決了運動控制此類迫在眉睫的問題。
以太網的實時通訊方式,目前有比較多的種類,例如:一些人直接使用prof i bus DP和world FIP協議取代傳統的UDP協議通過較高級的協議層禁止即載波監聽多路訪問/沖突檢測機制存取過程,并使用時間片或輪詢過程來取代它;或者部分方案采用專用交換機,并采用精確的時間控制方式分配以太網數據包。上述方案不可避免地遇到總線傳輸的延遲問題,而Beckhoff公司推出的EtherCAT總線通過從站中的實體硬件實現了部分系統的功能從而解決了關鍵的實時性問題,數據可以實時地被插入到在經過該從站的報文中。因此采用EtherCAT通訊協議,不僅能夠提高控制系統的通訊速率,而且也能保證系統的實時性。

圖6 Ethercat開放式運動控制系統
在實驗過程中我們通過直接在Linux操作系統上搭載EtherCAT總線的Master節點實現上位機與EtherCAT現場模塊的通信。既保證了距離和實時性,又不需要另外在PC機上加上PCI硬件,因此是比較合理的方案。圖6顯示了采用Ethercat的網絡化開放式運動控制系統,我們自主開發了基于倍福公司ET1100和基于MSP430單片機的從站模塊,通過單片機配合ET1100芯片實現與主節點通訊并將其轉化為控制驅動器所需的I/O信號。經測試,網絡傳輸速率根據不同的電腦性能有所變化,一般1ms內可以發送接收至少300個16位數據因此通訊速率比前兩者都快。因此選用Ethercat方案是實現控制器的穩定性和高速性能的保證。
兩自由度Delta機器人是工業機器人的一種,它以簡單的結構和高速的運動學性能受到了廣泛的青睞,主要應用于包裝行業。其結構特點是:其右端手臂采用兩個平行四桿機構使末端執行器始終保持水平。
如圖7所示,本Delta機器人在設計左右的往復行程為1m,抓取速度每分鐘60次,采用了國產的伺服電機和行星齒輪減速機構,我們分別采用并口,canopen和Ethercat方式來實現了平面并聯Delta機器人,由于此機器人只需要實現2軸聯動,所需要控制和傳遞的參數比較少,所以我們的三種通訊方案均能夠保證其控制的實時性和精度。同時通過采用SSH的方式,我們實現了局域網內部的多平臺網絡化監控和遠程監控。

圖7 兩自由度Delta并聯機器人
本文提出了基于網絡的開放式運動控制系統的設計,該控制器通過采用工控PC和自制的運動控制通訊卡,將控制信號實時地轉化為現場電機軸的控制信號,其他的軟件可以直接在PC上實現,不需要下位機的參與。由于PC機具有強大的計算能力,能夠輕松實現復雜的機器人運動學算法,并且其算法的移植性強,因此是實現開網絡化和開放式的必要條件。本運動控制器通過采用實時的操作系統內核和實時的通訊方式來保證整個系統的實時性。經驗證,此開放式運動控制器很輕松的實現了基于遠程控制的平面兩自由度Delta并聯機器人,并且通過算法的移植能夠很容易地實現各種具有多軸運動特征的機器人。同時,它還具有多平臺的兼容性和遠程控制的特征。
[1] 吳孜越,胡東方,楊丙乾.運動控制器在國內的應用及發展[J].機床與液壓,2007(07):234-236.
[2] 郗志剛,周宏甫.運動控制器的發展與現狀[J].電氣傳動自動化,2005(03):10-14.
[3] System S S.http://www.softservo.com/[EB/OL].(2013-12-23)http://www.softservo.com/.
[4] 倍福自動化.http://www.beckhoff.com.cn/[EB/OL].http://www.beckhoff.com.cn/.
[5] 研華公司.基于瀏覽器的HMI/SCADA軟件WebAccess[EB/OL].http://webaccess.advantech.com.cn/.
[6] 張艷瓊,蔡瑞英.基于Web Service的工業控制系統研究[J].微計算機信息,2008(24):58-60.