李向如,俞建定,汪沁
(寧波大學信息科學與工程學院,浙江寧波315211)
基于CANopen協(xié)議的機械手的實現(xiàn)
李向如,俞建定,汪沁
(寧波大學信息科學與工程學院,浙江寧波315211)
CANopen協(xié)議是由CAN-in-Automation(CiA)定義的標準,并且在以CAN為基礎的工業(yè)系統(tǒng)領域中占著主導地位。本文以五軸機械手的設計實現(xiàn)為背景,結合CANopen協(xié)議在汽車電子和工業(yè)控制領域中的廣泛應用,實現(xiàn)了對多電機系統(tǒng)的實時控制。文中提供的以CAN總線控制多個伺服電機的設計方法,使得硬件電路的設計得到很大簡化,同時也使得通信效率和可靠性得到大幅提升。本方案在實際運行中已經(jīng)得到充分的驗證,對工業(yè)控制領域有著實際的應用指導意義。
CAN;CANopen;多電機系統(tǒng)控制;現(xiàn)場總線
CAN(Controller Area Network,控制器局域網(wǎng))總線是由德國Bosch公司設計的,是一種技術先進、可靠性高、成本低的網(wǎng)絡通信控制方式。它在離散控制領域得到了廣泛應用,是唯一成為國際標準的現(xiàn)場總線[1]。由于CAN只定義了OSI網(wǎng)絡模型中的第一層(物理層)和第二層(數(shù)據(jù)鏈路層),沒有應用層,所以需要高層協(xié)議來具體定義CAN報文的使用。CANopen協(xié)議是基于CAL協(xié)議的擴展,是目前基于CAN的高層通信協(xié)議的一種。CANopen是由CAN-in-Automation(CiA)定義的標準,并且在以CAN為基礎的工業(yè)系統(tǒng)領域中占著主導地位[2]。CANopen專門為不同的接口設備應用子協(xié)議定義了行規(guī)(DSP4),其中CiA402是針對驅動裝置和運動控制裝置的設備規(guī)范。本文就是根據(jù)CANopen協(xié)議在伺服驅動設備上的應用進行展開討論的。
CANopen的參考模型如圖1所示。由此圖可以看出CANopen是以CAN為基礎的,CAN數(shù)據(jù)鏈路層提供具有標示符的報文的廣播服務,所以報文不是發(fā)送到某一個遠程節(jié)點的特定的應用程序。實際上,每個應用程序只需要根據(jù)報文的標示符決定是否接受通信對象所攜帶的數(shù)據(jù),這種特性決定了CAN網(wǎng)絡是一種基于報文的協(xié)議,而CANopen協(xié)議中的服務對象就是CAN網(wǎng)絡中傳輸?shù)腃AN報文。
CANopen的設備模型如圖2所示。從圖中可以看出,一個CAN設備主要分為三部分:通信接口、對象字典、應用程序。通信接口主要定義了四種不同種類的通信對象:服務數(shù)據(jù)對象、過程數(shù)據(jù)對象、網(wǎng)絡管理對象和特殊功能對象,用來實現(xiàn)通信、網(wǎng)絡管理和緊急情況處理等功能[3]。這四類通信對象(COB)都是由一個或多個報文實現(xiàn)的。過程數(shù)據(jù)對象(PDO消息)用來傳輸實時的數(shù)據(jù);服務數(shù)據(jù)對象(SDO服務器消息和SDO客戶端消息)用來配置網(wǎng)絡參數(shù)和訪問節(jié)點的對象字典,建立兩個CANopen設備之間的客戶/服務器的關系;網(wǎng)絡管理對象(NMT)負責網(wǎng)絡的啟動和監(jiān)控設備;特殊功能對象是指同步(SYNC)、時間標記對象、緊急事件、節(jié)點保護。
圖2 CANopen設備模型
CANopen對象字典(Object Dictionary,OD)是CANopen協(xié)議最為核心的概念。對象字典就是通過網(wǎng)絡讀取一組提前定義好的對象,相當于一個參數(shù)列表,每一個對象是用一個16位的索引和8位的子索引來定位。為了允許訪問數(shù)據(jù)結構中的單個元素,同時也定義了一個8位的子索引。對象字典是所有數(shù)據(jù)結構的集合,這些數(shù)據(jù)結構涉及設備的應用程序、通信以及狀態(tài)機,也是通信接口與應用程序之間的接口。
CANopen由一系列稱為子協(xié)議的文檔組成,這些子協(xié)議主要分為3類,分別是通信子協(xié)議、制造商自定義子協(xié)議和設備子協(xié)議。子協(xié)議描述對象字典中的每個對象的功能、名字、索引、子索引、數(shù)據(jù)類型、讀寫屬性,以及這個對象是否必須等待,從而保證不同制造商的同類設備能夠相互兼容。根據(jù)這些協(xié)議生產(chǎn)CANopen設備能夠實現(xiàn)不同廠商產(chǎn)品之間的互操作,大大降低了系統(tǒng)通信的開發(fā)難度[4-6]。
機械手主要有三部分組成:手部、運動機構、控制系統(tǒng)。手部是指用來抓取物體的部件;運動機構使手部完成各種規(guī)定動作;控制系統(tǒng)通過對各個電機的控制來完成所需要的規(guī)定動作,同時通過接收反饋的信息形成閉環(huán)控制??刂葡到y(tǒng)是機械手實現(xiàn)的關鍵部分,本文主要設計實現(xiàn)的是控制系統(tǒng)。
由圖3可以看出,該系統(tǒng)主要由4部分組成:手持
隨著現(xiàn)場總線在工業(yè)控制領域中越來越廣泛的應用,以及控制系統(tǒng)向著網(wǎng)絡化、開放性的方向發(fā)展,所以本文也采用總線的方式進行設計??刂葡到y(tǒng)與外部設備的通信分別采用以太網(wǎng)總線和CAN總線。本文設計的系統(tǒng)結構如圖3所示。器、控制電路、電機驅動器及電機。其運行過程大致是手持器通過以太網(wǎng)接口把相應的動作指令發(fā)給控制電路,該過程采用LWIP協(xié)議;然后控制電路在接收到指令之后,開始解析指令,再通過CAN接口給伺服電機驅動器發(fā)送指令,該過程采用CANopen協(xié)議;伺服驅動器在得到指令后開始驅動電機,在電機到達指定位置后停止。整個系統(tǒng)運行過程中,如何實現(xiàn)對5個電機的實時控制是整個系統(tǒng)的關鍵。為保證數(shù)據(jù)在傳輸過程中的可靠性和實時性,系統(tǒng)在設計時采用了CAN接口和以太網(wǎng)接口[7]。
3.1 CANopen通信的硬件設計
由圖3可以看出,CANopen通信是在控制電路和電機驅動器之間實現(xiàn)的。CANopen只是一個應用層的規(guī)范協(xié)議,與具體總線的物理實現(xiàn)無關。由圖1 CANopen的參考模型可以看出,CANopen是以CAN為基礎的,所以CANopen的硬件實現(xiàn)實際是CAN總線的設計實現(xiàn)。電機驅動器自身支持CANopen協(xié)議,所以硬件實現(xiàn)的關鍵是控制電路能符合CANopen協(xié)議。CAN的硬件實現(xiàn)包括兩個部分:與OSI模型中數(shù)據(jù)鏈路層和物理層分別對應的CAN控制器和CAN收發(fā)器的實現(xiàn)。本文采用基于Cortex-M4內核的STM32系列芯片作為控制電路的MCU,該芯片內有CAN控制器,并且完全支持CAN協(xié)議2.0。CAN收發(fā)器選用CTM1050T,其內部集成了CAN隔離及收發(fā)器件,將CAN控制器的邏輯電平轉換為CAN總線的差分電平,同時具有隔離功能機ESD保護作用。CAN通信硬件結構如圖4所示[8]。
圖4 CAN通信硬件結構示意圖
3.2 CANopen通信程序設計
CAN通信硬件設計完成后能夠實現(xiàn)設備之間的報文通信,但是仍需對傳輸?shù)臄?shù)據(jù)內容進行定義,主要包括數(shù)據(jù)內容的傳輸格式以及數(shù)據(jù)讀取規(guī)則。本部分主要介紹控制電路與伺服電機驅動器之間CAN通信程序的設計,程序采用CANopen協(xié)議中的服務數(shù)據(jù)對象SDO(Service Data Object)數(shù)據(jù)傳輸機制。采用該機制是因為SDO為每個消息都生成一個應答,這樣可以保證數(shù)據(jù)傳輸?shù)臏蚀_性。同時通過每5 ms查詢一次的方式來確保數(shù)據(jù)傳輸?shù)膶崟r性。CANopen通信程序設計流程圖如圖5所示。首先對控制電路的CAN接口進行配置,選擇波特率,完成CAN接口的初始化。電機驅動器節(jié)點的配置是通過驅動器的面板進行設定,把各節(jié)點配置為可操作模式,然后再根據(jù)傳送過來的數(shù)據(jù)對伺服驅動器進行相應的配置。在整個通信過程中,由于伺服電機驅動器內部集成標準的CANopen協(xié)議,所以控制電路所發(fā)的數(shù)據(jù)要按照CANopen協(xié)議中的規(guī)定發(fā)送才能被伺服電機驅動器識別。同時這也簡化了控制電路關于CANopen協(xié)議方面的程序設計,使得研發(fā)周期大大縮短。
圖5 CANopen通信程序流程圖
CANopen是一個應用層的規(guī)范協(xié)議,與具體總線的物理實現(xiàn)無關。CANopen已經(jīng)發(fā)展成具有高度靈活性的標準化嵌入式網(wǎng)絡,基于它提出和實現(xiàn)的對象字典、設備規(guī)范等概念對現(xiàn)場總線技術的發(fā)展起到了重要作用。本文主要設計實現(xiàn)了基于CANopen協(xié)議的五軸機械手控制系統(tǒng),為CANopen協(xié)議在多電機控制系統(tǒng)的設計提供了一種方案,對工業(yè)控制領域具有實際的應用意義。
[1]鄔寬明.CAN總線原理和應用系統(tǒng)設計[M].北京:北京航空航天大學出版社,1996.
[2]李澄,趙輝,聶保錢.基于CANopen協(xié)議實現(xiàn)多電機系統(tǒng)實時控制[J].微電機,2009,42(9):53-56.
[3]呂京建,張宏韜.CAN總線的淺析-CANopen協(xié)議[J].電子產(chǎn)品世界,2002(17):25-27.
[4]CAN in Automation.Application Layer and Communication Profile[S].CiA Draft Standard 301 Version 4.02,2002.
[5]王峰.基于嵌入式系統(tǒng)的CANopen協(xié)議分析研究[D].天津:天津理工大學,2010.
[6]夏勇,葉曉東,趙江海.基于CANopen協(xié)議的數(shù)字伺服控制[J].電氣自動化,2014,36(1):57-59.
[7]趙建光,楊建武,孫樹文.基于CANopen協(xié)議的I/O從站的開發(fā)與應用[J].微計算機信息,2007,23(8):9-11.
[8]史久根,張培仁,陳真勇.CAN現(xiàn)場總線系統(tǒng)設計技術[M].北京:國防工業(yè)出版社,2004.
The realization of robot based on CANopen protocol
Li Xiangru,Yu Jianding,Wang Qin
(Information Science and Engineering Institute,Ningbo University,Ningbo 315211,China)
CANopen protocol is a standard defined by CAN-in-Automation(CiA),and occupies a leading position in the CAN-based industrial sector.In this paper,based on design and implemention of five-axis robot,combined with the widely applications of CANopen protocol in the field of automotive electronics and industrial control,the real-time control of multi-motor system is achieved.CAN bus design method provided herein controlling multiple servo motors,making the hardware design is greatly simplified,and also making the efficiency and reliability of communication increased dramatically.The provided scheme in the actual operation has been fully validated for industrial control applications with practical guidance.
CAN;CANopen;multi-motor system control;fieldbus
TN919
A
1674-7720(2015)13-0007-02
2015-03-31)
李向如(1989-),男,碩士研究生,主要研究方向:嵌入式系統(tǒng)與應用。
俞建定(1968-),男,高級實驗師,主要研究方向:嵌入式系統(tǒng)與應用、通信與通信系統(tǒng)。