南京大學運動空轉(zhuǎn)研究所 舒志兵、嚴彩忠、黃益群、張海榮
隨著計算機技術的進展,運動控制交流伺服系統(tǒng)在經(jīng)過廣泛運用的前景下正向著網(wǎng)絡化控制方向發(fā)展。本文討論了基于CAN總線和以太網(wǎng)的網(wǎng)絡伺服控制系統(tǒng)的設計原則和實現(xiàn)方法,介紹了一種基于CAN總線和以太網(wǎng)的運動控制系統(tǒng)的硬件和軟件設計。以太網(wǎng)是目前最流行的現(xiàn)場總線接入因特網(wǎng)的方案之一,它在發(fā)揮現(xiàn)場總線優(yōu)點的同時解決了現(xiàn)場總線難以接入因特網(wǎng)的問題。文章以實現(xiàn)CAN現(xiàn)場總線接入因特網(wǎng)為目標,在對CAN協(xié)議及TCP/IP協(xié)議進行深入研究的基礎上,設計了以太網(wǎng)與CAN總線互聯(lián)網(wǎng)關,從而實現(xiàn)以太網(wǎng)與CAN總線的互聯(lián),為實現(xiàn)企業(yè)信息網(wǎng)絡與控制網(wǎng)絡集成提供了一種可行的方法。實驗結(jié)果表明,該系統(tǒng)控制精度高、響應速度快、低速運行平穩(wěn),同時還具有連接簡單、系統(tǒng)可靠和易于實現(xiàn)等優(yōu)點。
1 引言
制造企業(yè)信息化必須實現(xiàn)信息網(wǎng)絡與控制網(wǎng)絡集成,工業(yè)網(wǎng)絡承載的信息是多層次的,有位信息、字節(jié)信息、幀信息等,信息量大小、反應時間、傳輸速度、實時性要求各不相同,不同的現(xiàn)場總線適用于不同的現(xiàn)場情況,選用什么總線方案要根據(jù)實際情況而定。而以太網(wǎng)可能實現(xiàn)全部功能,但在經(jīng)濟上卻不會很合理。而且以太網(wǎng)難以逾越信號碰撞這個障礙,在系統(tǒng)大、控制點多的情況下問題更為明顯。因此,筆者“現(xiàn)場總線+以太網(wǎng)”的方案。在企業(yè)管理層和生產(chǎn)監(jiān)控層采用以太網(wǎng),而在下層車間和生產(chǎn)現(xiàn)場采用現(xiàn)場總線CAN總線。
以太網(wǎng)是目前最流行的因特網(wǎng)接入方案之一,它在發(fā)揮現(xiàn)場總線優(yōu)點的同時解決了現(xiàn)場總線難以接入因特網(wǎng)的問題。CAN總線,是一種有效支持分布式控制或?qū)崟r控制的串行通信局域網(wǎng)絡,由于其高性能、高可靠性、實時性好及其獨特的設計,已廣泛應用于控制系統(tǒng)中的各檢測和執(zhí)行機構之間的數(shù)據(jù)通信,已在工控領域興起應用熱潮。而交流伺服電機具有結(jié)構緊湊、控制容易、運行穩(wěn)定、響應快等優(yōu)異特性,已在數(shù)控機床等重要行業(yè)中,得到了普遍的應用。通過CAN總線進行數(shù)據(jù)傳輸與控制,使伺服電機的性能更加穩(wěn)定,能更好更靈活地地應用于數(shù)控系統(tǒng)中。本文提出了一種基于以太網(wǎng)的CAN總線方案,將設備聯(lián)網(wǎng)和因特網(wǎng)接入兩個問題合二為一,簡化了解決方案,并實現(xiàn)了以太網(wǎng)與CAN總線的互聯(lián)。
2 網(wǎng)絡化系統(tǒng)體系結(jié)構
在網(wǎng)絡化伺服驅(qū)動器研究方面,美國、德國和日本在技術上處于領先行列。國內(nèi)的交流伺服研究起步比較晚,到目前為止,還沒有網(wǎng)絡化交流伺服產(chǎn)品問世。筆者對網(wǎng)絡化全數(shù)字交流伺服驅(qū)動系統(tǒng)進行了研究,研制了基于以太網(wǎng)和CAN總線的網(wǎng)絡化交流伺服控制系統(tǒng)。
基于Ethernet-CAN的網(wǎng)絡化交流伺服體系結(jié)構見圖1??刂葡到y(tǒng)由PC機、基于PC的以太網(wǎng)信息管理終端、嵌入式透明網(wǎng)關(多軸控制器)、交流伺服電機和具有CAN總線接口的交流伺服驅(qū)動器組成。其核心部分是嵌入式透明網(wǎng)關(多軸控制器)和帶有CAN總線接口的全數(shù)字交流伺服驅(qū)動器。
系統(tǒng)總體結(jié)構圖如圖1所示:
圖1基于CAN總線和以太網(wǎng)的交流伺服驅(qū)動系統(tǒng)體系結(jié)構
CAN(Controller Area Network)總線是一個設備互連總線型控制網(wǎng)絡,在CAN總線上可以掛接多達110個設備節(jié)點,各設備間可以自主相互通信,實現(xiàn)復雜網(wǎng)絡控制系統(tǒng)。但設備信息層無法直接到達信息管理層,要想設備信息進入信息管理層需通過數(shù)據(jù)網(wǎng)關。多軸控制器的嵌入式透明網(wǎng)關就是為此而設計的。
透明式網(wǎng)關由通信處理器、CAN總線控制器和以太網(wǎng)控制器三部分組成。通信處理器為核心處理器,它實現(xiàn)了CAN控制網(wǎng)絡與以太網(wǎng)之間的協(xié)議轉(zhuǎn)換。以太網(wǎng)信息管理層的控制指令發(fā)送到嵌入式透明網(wǎng)關,將TCP/IP協(xié)議包數(shù)據(jù)轉(zhuǎn)換為CAN協(xié)議形式發(fā)送至CAN控制網(wǎng)絡中的指定設備節(jié)點,完成信息管理層對現(xiàn)場設備層的控制。同樣地,當CAN網(wǎng)絡上的設備數(shù)據(jù)(如定時采樣數(shù)據(jù)或報警信息)要傳輸?shù)叫畔⒐芾韺訒r,可將數(shù)據(jù)發(fā)送到嵌入式透明網(wǎng)關,再通過網(wǎng)關協(xié)議轉(zhuǎn)換程序?qū)AN協(xié)議數(shù)據(jù)封裝成 TCP/IP協(xié)議的以太網(wǎng)數(shù)據(jù)幀發(fā)送至以太網(wǎng)上的監(jiān)控計算機。
以太網(wǎng)信息管理終端是一個根據(jù)用戶的具體要求而設計的用戶層應用軟件。它可以是一個WIN32監(jiān)控程序或網(wǎng)絡數(shù)據(jù)庫(記錄CAN節(jié)點設備數(shù)據(jù))軟件等;甚至可能是CAN節(jié)點設備的服務器軟件,為設備提供較復雜的數(shù)據(jù)處理工作。
3 系統(tǒng)的硬件設計
在該控制模式下,系統(tǒng)的硬件構件由上位機PC電腦,普通網(wǎng)絡通訊卡(10/100M),多軸控制器,帶有CAN總線接口的交流伺服驅(qū)動器和交流伺服電機構成。圖2為系統(tǒng)構成硬件示意圖。
圖2 基于以太網(wǎng)和CAN總線的多軸分布式控制系統(tǒng)
該運動控制系統(tǒng)通過集中控制器(多軸控制器)分別實現(xiàn)以太網(wǎng)和CAN總線控制。多軸控制器與上位機PC電腦的通訊是通過TCP/IP協(xié)議構成以太網(wǎng)。多軸控制器可以作為一臺小型的PC電腦,具有自主式控制系統(tǒng),同時它可以作為網(wǎng)關,通過TCP/IP與網(wǎng)絡上的電腦相互訪問,實現(xiàn)遠程網(wǎng)絡控制,不僅如此,多軸控制器還具有運動控制板卡的功能,它集成了CAN總線接口、RS232接口,可以實現(xiàn)多種控制方式。
3.1 總線網(wǎng)絡設備接口設計
CAN總線網(wǎng)絡設備接口設計較網(wǎng)關設計簡單。它是在完成設備功能的基礎上加入一個CAN通信控制器接口芯片,實現(xiàn)與CAN總線網(wǎng)絡的連接。
3.2 嵌入式透明網(wǎng)關設計
嵌入式透明網(wǎng)關由CAN控制器協(xié)議轉(zhuǎn)換模塊和以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊兩部分組成。在外接100MHz時鐘時,指令執(zhí)行速度可達100MIPS。它可實現(xiàn)TCP/IP協(xié)議棧中的ARP、IP、UDP、TCP、HTTP、SMTP、ICMP等網(wǎng)絡協(xié)議。
CAN控制器協(xié)議轉(zhuǎn)換模塊由三部分組成:微控制器SX52、獨立CAN通信控制器DS301、CAN總線收發(fā)器82C250。其中SX52為唯一的CPU核心,負責DS301的初始化,通過讀寫DS301內(nèi)部寄存器實現(xiàn)數(shù)據(jù)的接收、發(fā)送和錯誤處理等。PCA82C250則提供對總線的差動發(fā)送能力和對CAN控制器的差動接收能力。
以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊主要由微控制器SX52、以太網(wǎng)通信控制器RTL8019AS和隔離濾波器FB2002組成。RTL8019AS是一種高集成度的全雙工10Mbps以太網(wǎng)控制芯片,實現(xiàn)了基于Ethernet協(xié)議的MAC層的全部功能,內(nèi)置16KB的SRAM、雙DMA通道和FIFO完成數(shù)據(jù)包的接收和發(fā)送功能。AT24C64為8KB EEPROM,主要用來保存嵌入式透明SX52網(wǎng)關的配置信息,如網(wǎng)關IP地址、DS402的ID網(wǎng)絡標示符、網(wǎng)絡子網(wǎng)掩碼AMR和總線定時等。這樣,可以靈活方便地修改網(wǎng)關參數(shù),適應不同環(huán)境,同時也考慮到以后的擴展。采用隔離濾波器FB2002是為了提高網(wǎng)絡通信的抗干擾能力。
4 系統(tǒng)軟件設計
整個互聯(lián)系統(tǒng)的軟件設計可以分為4部分:CAN總線設備接口通信程序、透明網(wǎng)關協(xié)議轉(zhuǎn)換程序和以太網(wǎng)層應用程序設計、系統(tǒng)控制界面的設計、下位機控制設計。其中,CAN總線設備接口通信程序和透明網(wǎng)關協(xié)議轉(zhuǎn)換程序的CAN控制器協(xié)議模塊在結(jié)構上有較大的相似性,但有可能因采用微控制器不同而導致實現(xiàn)的程序語言相異。因而,在此不作論述,而主要討論后兩個方面的程序設計。
4.1 透明網(wǎng)關協(xié)議轉(zhuǎn)換程序
透明網(wǎng)關協(xié)議轉(zhuǎn)換程序的整體設計思路為:以太網(wǎng)應用層有數(shù)據(jù)要發(fā)送到CAN節(jié)點時,首先,數(shù)據(jù)發(fā)送到透明網(wǎng)關由以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊從傳輸層數(shù)據(jù)報文中解析出完整的 CAN據(jù)包,存放在數(shù)據(jù)緩沖區(qū)B通知總調(diào)度模塊,由它調(diào)用CAN控制器協(xié)議模塊將 CAN 協(xié)議數(shù)據(jù)包發(fā)送到CAN總線上。反過來,當CAN 設備有數(shù)據(jù)要發(fā)送到用戶層時,首先,數(shù)據(jù)發(fā)送到透明網(wǎng)關由 CAN 控制器協(xié)議模塊將完整的CAN協(xié)議數(shù)據(jù)包存放在數(shù)據(jù)緩沖區(qū)B通知總調(diào)度模塊,由它調(diào)用以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊將完整的 CAN 協(xié)議數(shù)據(jù)包作為應用層數(shù)據(jù)封裝起來,再發(fā)送到以太網(wǎng)的應用層。
4.1.1 CAN控制器協(xié)議模塊
CAN控制器協(xié)議轉(zhuǎn)換模塊程序主要由DS402的通訊部分程序Driver::DriverConnect()、Driver::GetCanService();寄存器讀程序Driver::CANRead();寫程序Driver::CANWrite();初始化程序Driver::CANInit();發(fā)送程序Driver::SendCommand();接收程序Driver::GetInf()組成。
選用CAN2.0B協(xié)議構建CAN總線控制網(wǎng)絡 ,對DS402的初始化主要完成控制寄存器CR、驗收代碼寄存器ACR、驗收屏蔽寄存器AMR、總線定時寄存器BTRO和輸出控制寄存器OCR的設置。初始化完成后,由總調(diào)度模塊監(jiān)控DS402控制器。
當CAN總線上有數(shù)據(jù)到達時,它調(diào)用接收子程序Driver::GetInf()時,把這一幀數(shù)據(jù)包存入數(shù)據(jù)緩沖區(qū)B中,然后釋放接收緩沖器。同樣,當有按CAN2.0B協(xié)議格式組合成的一幀數(shù)據(jù)報文在數(shù)據(jù)緩沖區(qū)A中要發(fā)送到CAN總線上去時,總調(diào)度模塊將調(diào)CAN發(fā)送子程序Driver::SendCommand()發(fā)送。
4.1.2以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊
在圖3的透明網(wǎng)關協(xié)議轉(zhuǎn)換程序結(jié)構圖中,以太網(wǎng)控制器協(xié)議轉(zhuǎn)換模塊主要負責從UDP數(shù)據(jù)包中解析出完整CAN協(xié)議報文,存入數(shù)據(jù)緩沖區(qū)A。同時,可能將數(shù)據(jù)緩沖區(qū)B中的完整CAN協(xié)議報文封裝成UDP數(shù)據(jù)報,然后將其發(fā)送到以太網(wǎng)上。
在通信傳輸層采用UDP協(xié)議是考慮到CAN協(xié)議數(shù)據(jù)報為短幀形式(每個數(shù)據(jù)幀最多為8字節(jié))。如果采用TCP傳輸協(xié)議,要傳輸8字節(jié)CAN協(xié)議數(shù)據(jù),要先通過3次握手建立連接,再傳輸數(shù)據(jù),之后還要通過握手釋放連接。這樣傳輸效率對有限的網(wǎng)絡資源來說無疑是一種浪費。當然UDP傳輸協(xié)議是不可靠的,對于控制網(wǎng)絡來說是不允許的。為了提高通信的可靠性,采用了回傳校驗機制。
圖3 透明網(wǎng)關協(xié)議轉(zhuǎn)換程序結(jié)構圖
4.2 CAN總線現(xiàn)場節(jié)點軟件設計
CAN現(xiàn)場智能節(jié)點作為CAN總線控制網(wǎng)絡監(jiān)控節(jié)點,主要完成以下幾項任務:①向交流伺服驅(qū)動器(Bassoon)傳送上位控制命令;②接受上位機通過以太網(wǎng)發(fā)送來的控制信息;③接受現(xiàn)場設備輸入并進行相應的處理。檢測輸入與控制輸出在交流伺服驅(qū)動器中完成,接收和發(fā)送數(shù)據(jù)等通信功能在中斷服務程序中完成。
CAN信息發(fā)送程序:該程序是由CAN控制器自動完成的,用戶只需將發(fā)送的數(shù)據(jù)送到CAN發(fā)送緩存器即可。節(jié)點以一定的時間間隔向CAN網(wǎng)絡主動發(fā)送信息。
CAN接收信息處理程序:該程序同樣是由CAN控制器自動完成的,接收程序只需從接收緩存器中讀取接收的數(shù)據(jù),再進行相應的處理即可。接收程序采用中斷方式,這是便于用戶隨時控制節(jié)點的狀態(tài)。
(1)上位機的軟件開發(fā)
CAN驅(qū)動器為PC機的系統(tǒng)總線和CAN總線(高速串行)提供一個互連通道,在CAN驅(qū)動器上,面向PC系統(tǒng)開辟了一個2Kb的高速雙口RAM,直接映射到主機內(nèi)存空間,可以實現(xiàn)CAN與主機PC的高速數(shù)據(jù)交換。
上位機的通信程序應具有的功能有:
① 程序開始
上位機首先采用廣播的方法,向下位機發(fā)送起動指令,隨后發(fā)送第一個指令數(shù)據(jù),用一幀發(fā)送;
② 第一個指令發(fā)送之后,上位機可以處理其他數(shù)據(jù);
③ 當下位機收到上位機的數(shù)據(jù)包后,它也立即向上位機發(fā)送一組數(shù)據(jù)。
圖4為CAN總線信號控制流程圖,數(shù)據(jù)的內(nèi)容包含電機運行的實際情況,數(shù)據(jù)到達上位機之后,采用中斷的形式,使上位機轉(zhuǎn)入中斷服務子程序,接收下位機傳來的數(shù)據(jù)。上位機根據(jù)下位機傳來的數(shù)據(jù)信號,實時判斷各電機的位置,從而根據(jù)預先設定的速度協(xié)調(diào)各電機的運動,依次向下位機發(fā)送運動指令;
④ 上位機如果想停止下位機的工作,可以通過鍵盤中止和結(jié)束指令兩種方式。向下位機發(fā)送停止指令。
圖 6-19 CAN總線信號控制流程圖
(2)下位機軟件的開發(fā)
整個系統(tǒng)的時序由下位機確定,當下位機接到起動命令后開始對動力機構進行控制。通常定時器的定時周期為2 ms,在2 ms內(nèi)完成任務有:數(shù)據(jù)接收、A/D轉(zhuǎn)換、控制策略運算、D/A轉(zhuǎn)換和向上位機發(fā)送數(shù)據(jù)。
總結(jié)上面的思想,編制控制器的程序主要考慮的方而有:
①上位機的指令到達下位機之后.采用中斷的形式.使下位機轉(zhuǎn)入通信中斷服務子程序.首先處理上位機的指令.然后執(zhí)行A/D ,控制算法、D/A等相應的模塊.最后向上位機提供必要的參數(shù)。
②數(shù)據(jù)傳輸所使用的中斷優(yōu)先級高于定時中斷的優(yōu)先級.以保證上位機的指令可以及時地送達下位機。
③實質(zhì)是以下位的時序為主的.實現(xiàn)上位機周期地尋找下位機的地址.發(fā)送速度和位置指令.并隨后接收所需參數(shù)。
④實現(xiàn)同步控制。
圖5為CAN軟件程序的下位機程序流程圖:
5 結(jié)論
本文提出的以太網(wǎng)和CAN總線相結(jié)合的網(wǎng)絡化交流伺服控制系統(tǒng)為交流伺服的網(wǎng)絡化研究和應用作出了一次有益的新探索。CAN總線可以很好地滿足現(xiàn)場總線運動控制系統(tǒng)對實時響應的較高要求,同時使用CAN總線還使得系統(tǒng)具有很好的擴展性能。當需要更多軸運動控制時,只需要簡單地再增加新運動控制單元,把新的運動控制單元作為新的CAN總線節(jié)點掛接到CAN總線上就可以形成一個分布式多軸運動控制系統(tǒng),而且無需在硬件上對原有的運動控制單元做任何的修改,在擴展距離上同樣也不會受到限制,這樣為將來向多軸或多點的分布式運動控制網(wǎng)絡發(fā)展打下堅實的基礎。實驗結(jié)果表明,在軸數(shù)不多、速度不是特別快的條件下,能夠保證一定的加工質(zhì)量。本研究實現(xiàn)了3-4軸聯(lián)動,對于多軸聯(lián)動同樣適合。只是隨著軸數(shù)增加,網(wǎng)絡性能呈現(xiàn)下降趨勢。文獻給出了網(wǎng)絡性能指標變換趨勢圖,從中可以看出網(wǎng)絡負載加重,通信速度明顯變慢,對系統(tǒng)的精度和速度都有影響?;谝蕴W(wǎng)和CAN總線的分布式運動控制系統(tǒng)無論在系統(tǒng)穩(wěn)定性、成木還是可操作性上都滿足當初設計的要求,取得了較好的效果。