南京大學運動空轉研究所 舒志兵、嚴彩忠、黃益群、張海榮
隨著計算機技術的進展,運動控制交流伺服系統在經過廣泛運用的前景下正向著網絡化控制方向發展。本文討論了基于CAN總線和以太網的網絡伺服控制系統的設計原則和實現方法,介紹了一種基于CAN總線和以太網的運動控制系統的硬件和軟件設計。以太網是目前最流行的現場總線接入因特網的方案之一,它在發揮現場總線優點的同時解決了現場總線難以接入因特網的問題。文章以實現CAN現場總線接入因特網為目標,在對CAN協議及TCP/IP協議進行深入研究的基礎上,設計了以太網與CAN總線互聯網關,從而實現以太網與CAN總線的互聯,為實現企業信息網絡與控制網絡集成提供了一種可行的方法。實驗結果表明,該系統控制精度高、響應速度快、低速運行平穩,同時還具有連接簡單、系統可靠和易于實現等優點。
1 引言
制造企業信息化必須實現信息網絡與控制網絡集成,工業網絡承載的信息是多層次的,有位信息、字節信息、幀信息等,信息量大小、反應時間、傳輸速度、實時性要求各不相同,不同的現場總線適用于不同的現場情況,選用什么總線方案要根據實際情況而定。而以太網可能實現全部功能,但在經濟上卻不會很合理。而且以太網難以逾越信號碰撞這個障礙,在系統大、控制點多的情況下問題更為明顯。因此,筆者“現場總線+以太網”的方案。在企業管理層和生產監控層采用以太網,而在下層車間和生產現場采用現場總線CAN總線。
以太網是目前最流行的因特網接入方案之一,它在發揮現場總線優點的同時解決了現場總線難以接入因特網的問題。CAN總線,是一種有效支持分布式控制或實時控制的串行通信局域網絡,由于其高性能、高可靠性、實時性好及其獨特的設計,已廣泛應用于控制系統中的各檢測和執行機構之間的數據通信,已在工控領域興起應用熱潮。而交流伺服電機具有結構緊湊、控制容易、運行穩定、響應快等優異特性,已在數控機床等重要行業中,得到了普遍的應用。通過CAN總線進行數據傳輸與控制,使伺服電機的性能更加穩定,能更好更靈活地地應用于數控系統中。本文提出了一種基于以太網的CAN總線方案,將設備聯網和因特網接入兩個問題合二為一,簡化了解決方案,并實現了以太網與CAN總線的互聯。
2 網絡化系統體系結構
在網絡化伺服驅動器研究方面,美國、德國和日本在技術上處于領先行列。國內的交流伺服研究起步比較晚,到目前為止,還沒有網絡化交流伺服產品問世。筆者對網絡化全數字交流伺服驅動系統進行了研究,研制了基于以太網和CAN總線的網絡化交流伺服控制系統。
基于Ethernet-CAN的網絡化交流伺服體系結構見圖1。控制系統由PC機、基于PC的以太網信息管理終端、嵌入式透明網關(多軸控制器)、交流伺服電機和具有CAN總線接口的交流伺服驅動器組成。其核心部分是嵌入式透明網關(多軸控制器)和帶有CAN總線接口的全數字交流伺服驅動器。
系統總體結構圖如圖1所示:

圖1基于CAN總線和以太網的交流伺服驅動系統體系結構
CAN(Controller Area Network)總線是一個設備互連總線型控制網絡,在CAN總線上可以掛接多達110個設備節點,各設備間可以自主相互通信,實現復雜網絡控制系統。但設備信息層無法直接到達信息管理層,要想設備信息進入信息管理層需通過數據網關。多軸控制器的嵌入式透明網關就是為此而設計的。
透明式網關由通信處理器、CAN總線控制器和以太網控制器三部分組成。通信處理器為核心處理器,它實現了CAN控制網絡與以太網之間的協議轉換。以太網信息管理層的控制指令發送到嵌入式透明網關,將TCP/IP協議包數據轉換為CAN協議形式發送至CAN控制網絡中的指定設備節點,完成信息管理層對現場設備層的控制。同樣地,當CAN網絡上的設備數據(如定時采樣數據或報警信息)要傳輸到信息管理層時,可將數據發送到嵌入式透明網關,再通過網關協議轉換程序將CAN協議數據封裝成 TCP/IP協議的以太網數據幀發送至以太網上的監控計算機。
以太網信息管理終端是一個根據用戶的具體要求而設計的用戶層應用軟件。它可以是一個WIN32監控程序或網絡數據庫(記錄CAN節點設備數據)軟件等;甚至可能是CAN節點設備的服務器軟件,為設備提供較復雜的數據處理工作。
3 系統的硬件設計
在該控制模式下,系統的硬件構件由上位機PC電腦,普通網絡通訊卡(10/100M),多軸控制器,帶有CAN總線接口的交流伺服驅動器和交流伺服電機構成。圖2為系統構成硬件示意圖。

圖2 基于以太網和CAN總線的多軸分布式控制系統
該運動控制系統通過集中控制器(多軸控制器)分別實現以太網和CAN總線控制。多軸控制器與上位機PC電腦的通訊是通過TCP/IP協議構成以太網。多軸控制器可以作為一臺小型的PC電腦,具有自主式控制系統,同時它可以作為網關,通過TCP/IP與網絡上的電腦相互訪問,實現遠程網絡控制,不僅如此,多軸控制器還具有運動控制板卡的功能,它集成了CAN總線接口、RS232接口,可以實現多種控制方式。
3.1 總線網絡設備接口設計
CAN總線網絡設備接口設計較網關設計簡單。它是在完成設備功能的基礎上加入一個CAN通信控制器接口芯片,實現與CAN總線網絡的連接。
3.2 嵌入式透明網關設計
嵌入式透明網關由CAN控制器協議轉換模塊和以太網控制器協議轉換模塊兩部分組成。在外接100MHz時鐘時,指令執行速度可達100MIPS。它可實現TCP/IP協議棧中的ARP、IP、UDP、TCP、HTTP、SMTP、ICMP等網絡協議。
CAN控制器協議轉換模塊由三部分組成:微控制器SX52、獨立CAN通信控制器DS301、CAN總線收發器82C250。其中SX52為唯一的CPU核心,負責DS301的初始化,通過讀寫DS301內部寄存器實現數據的接收、發送和錯誤處理等。PCA82C250則提供對總線的差動發送能力和對CAN控制器的差動接收能力。
以太網控制器協議轉換模塊主要由微控制器SX52、以太網通信控制器RTL8019AS和隔離濾波器FB2002組成。RTL8019AS是一種高集成度的全雙工10Mbps以太網控制芯片,實現了基于Ethernet協議的MAC層的全部功能,內置16KB的SRAM、雙DMA通道和FIFO完成數據包的接收和發送功能。AT24C64為8KB EEPROM,主要用來保存嵌入式透明SX52網關的配置信息,如網關IP地址、DS402的ID網絡標示符、網絡子網掩碼AMR和總線定時等。這樣,可以靈活方便地修改網關參數,適應不同環境,同時也考慮到以后的擴展。采用隔離濾波器FB2002是為了提高網絡通信的抗干擾能力。
4 系統軟件設計
整個互聯系統的軟件設計可以分為4部分:CAN總線設備接口通信程序、透明網關協議轉換程序和以太網層應用程序設計、系統控制界面的設計、下位機控制設計。其中,CAN總線設備接口通信程序和透明網關協議轉換程序的CAN控制器協議模塊在結構上有較大的相似性,但有可能因采用微控制器不同而導致實現的程序語言相異。因而,在此不作論述,而主要討論后兩個方面的程序設計。
4.1 透明網關協議轉換程序
透明網關協議轉換程序的整體設計思路為:以太網應用層有數據要發送到CAN節點時,首先,數據發送到透明網關由以太網控制器協議轉換模塊從傳輸層數據報文中解析出完整的 CAN據包,存放在數據緩沖區B通知總調度模塊,由它調用CAN控制器協議模塊將 CAN 協議數據包發送到CAN總線上。反過來,當CAN 設備有數據要發送到用戶層時,首先,數據發送到透明網關由 CAN 控制器協議模塊將完整的CAN協議數據包存放在數據緩沖區B通知總調度模塊,由它調用以太網控制器協議轉換模塊將完整的 CAN 協議數據包作為應用層數據封裝起來,再發送到以太網的應用層。
4.1.1 CAN控制器協議模塊
CAN控制器協議轉換模塊程序主要由DS402的通訊部分程序Driver::DriverConnect()、Driver::GetCanService();寄存器讀程序Driver::CANRead();寫程序Driver::CANWrite();初始化程序Driver::CANInit();發送程序Driver::SendCommand();接收程序Driver::GetInf()組成。
選用CAN2.0B協議構建CAN總線控制網絡 ,對DS402的初始化主要完成控制寄存器CR、驗收代碼寄存器ACR、驗收屏蔽寄存器AMR、總線定時寄存器BTRO和輸出控制寄存器OCR的設置。初始化完成后,由總調度模塊監控DS402控制器。
當CAN總線上有數據到達時,它調用接收子程序Driver::GetInf()時,把這一幀數據包存入數據緩沖區B中,然后釋放接收緩沖器。同樣,當有按CAN2.0B協議格式組合成的一幀數據報文在數據緩沖區A中要發送到CAN總線上去時,總調度模塊將調CAN發送子程序Driver::SendCommand()發送。
4.1.2以太網控制器協議轉換模塊
在圖3的透明網關協議轉換程序結構圖中,以太網控制器協議轉換模塊主要負責從UDP數據包中解析出完整CAN協議報文,存入數據緩沖區A。同時,可能將數據緩沖區B中的完整CAN協議報文封裝成UDP數據報,然后將其發送到以太網上。
在通信傳輸層采用UDP協議是考慮到CAN協議數據報為短幀形式(每個數據幀最多為8字節)。如果采用TCP傳輸協議,要傳輸8字節CAN協議數據,要先通過3次握手建立連接,再傳輸數據,之后還要通過握手釋放連接。這樣傳輸效率對有限的網絡資源來說無疑是一種浪費。當然UDP傳輸協議是不可靠的,對于控制網絡來說是不允許的。為了提高通信的可靠性,采用了回傳校驗機制。

圖3 透明網關協議轉換程序結構圖
4.2 CAN總線現場節點軟件設計
CAN現場智能節點作為CAN總線控制網絡監控節點,主要完成以下幾項任務:①向交流伺服驅動器(Bassoon)傳送上位控制命令;②接受上位機通過以太網發送來的控制信息;③接受現場設備輸入并進行相應的處理。檢測輸入與控制輸出在交流伺服驅動器中完成,接收和發送數據等通信功能在中斷服務程序中完成。
CAN信息發送程序:該程序是由CAN控制器自動完成的,用戶只需將發送的數據送到CAN發送緩存器即可。節點以一定的時間間隔向CAN網絡主動發送信息。
CAN接收信息處理程序:該程序同樣是由CAN控制器自動完成的,接收程序只需從接收緩存器中讀取接收的數據,再進行相應的處理即可。接收程序采用中斷方式,這是便于用戶隨時控制節點的狀態。
(1)上位機的軟件開發
CAN驅動器為PC機的系統總線和CAN總線(高速串行)提供一個互連通道,在CAN驅動器上,面向PC系統開辟了一個2Kb的高速雙口RAM,直接映射到主機內存空間,可以實現CAN與主機PC的高速數據交換。
上位機的通信程序應具有的功能有:
① 程序開始
上位機首先采用廣播的方法,向下位機發送起動指令,隨后發送第一個指令數據,用一幀發送;
② 第一個指令發送之后,上位機可以處理其他數據;
③ 當下位機收到上位機的數據包后,它也立即向上位機發送一組數據。
圖4為CAN總線信號控制流程圖,數據的內容包含電機運行的實際情況,數據到達上位機之后,采用中斷的形式,使上位機轉入中斷服務子程序,接收下位機傳來的數據。上位機根據下位機傳來的數據信號,實時判斷各電機的位置,從而根據預先設定的速度協調各電機的運動,依次向下位機發送運動指令;
④ 上位機如果想停止下位機的工作,可以通過鍵盤中止和結束指令兩種方式。向下位機發送停止指令。

圖 6-19 CAN總線信號控制流程圖
(2)下位機軟件的開發
整個系統的時序由下位機確定,當下位機接到起動命令后開始對動力機構進行控制。通常定時器的定時周期為2 ms,在2 ms內完成任務有:數據接收、A/D轉換、控制策略運算、D/A轉換和向上位機發送數據。
總結上面的思想,編制控制器的程序主要考慮的方而有:
①上位機的指令到達下位機之后.采用中斷的形式.使下位機轉入通信中斷服務子程序.首先處理上位機的指令.然后執行A/D ,控制算法、D/A等相應的模塊.最后向上位機提供必要的參數。
②數據傳輸所使用的中斷優先級高于定時中斷的優先級.以保證上位機的指令可以及時地送達下位機。
③實質是以下位的時序為主的.實現上位機周期地尋找下位機的地址.發送速度和位置指令.并隨后接收所需參數。
④實現同步控制。
圖5為CAN軟件程序的下位機程序流程圖:
5 結論
本文提出的以太網和CAN總線相結合的網絡化交流伺服控制系統為交流伺服的網絡化研究和應用作出了一次有益的新探索。CAN總線可以很好地滿足現場總線運動控制系統對實時響應的較高要求,同時使用CAN總線還使得系統具有很好的擴展性能。當需要更多軸運動控制時,只需要簡單地再增加新運動控制單元,把新的運動控制單元作為新的CAN總線節點掛接到CAN總線上就可以形成一個分布式多軸運動控制系統,而且無需在硬件上對原有的運動控制單元做任何的修改,在擴展距離上同樣也不會受到限制,這樣為將來向多軸或多點的分布式運動控制網絡發展打下堅實的基礎。實驗結果表明,在軸數不多、速度不是特別快的條件下,能夠保證一定的加工質量。本研究實現了3-4軸聯動,對于多軸聯動同樣適合。只是隨著軸數增加,網絡性能呈現下降趨勢。文獻給出了網絡性能指標變換趨勢圖,從中可以看出網絡負載加重,通信速度明顯變慢,對系統的精度和速度都有影響。基于以太網和CAN總線的分布式運動控制系統無論在系統穩定性、成木還是可操作性上都滿足當初設計的要求,取得了較好的效果。