孫 旋,蔣文凱,廖文琦
(1.桂林理工大學 機械與控制工程學院,桂林 541004;2.桂林理工大學 土木與建筑工程學院,桂林 541004)
?
基于CANopen協議的伺服驅動器從站實現
孫 旋1,蔣文凱1,廖文琦2
(1.桂林理工大學機械與控制工程學院,桂林541004;2.桂林理工大學土木與建筑工程學院,桂林 541004)
摘 要:針對伺服驅動器的多機應用要求實時性高、數據量大等特點,提出了基于CANopen總線協議的解決方案,采用了以F28M35H52C為主控制器的伺服驅動器硬件平臺,著重分析并實現了CANopen協議中的協議結構、數據格式以及DS-301和DS-402子協議,使用臺達CANopen主站設備與伺服驅動器建立CANopen網絡實驗環(huán)境。實驗結果表明CANopen協議在伺服驅動器中可成功實現伺服驅動器的多機控制。
關鍵詞:F28M35H52C;CANopen;現場總線;伺服驅動器
F28M35H52C是TI公司推出的Concerto系列的雙核微處理器,主機子系統CPU采用ARM公司的Cortex-M3內核,最高主頻可達100MHz,主機子系統負責穩(wěn)健的通信,具有非常完整的外設,如以太網、CAN、I2C、USB、UART等,主機子系統實現了開發(fā)人員的生態(tài)環(huán)境,負責操作系統、中間件、軟件(SW)基礎結構[1]??刂谱酉到y采用的是TI的C28x微處理器,最高主頻可達150MHz,主要完成對伺服電機的控制,兩個子系統設計了共享的片上RAM以及IPC通信,相互之間可以快速交換數據,這比以往的單獨的DSP或者DSP+FPGA的架構性能更加優(yōu)越。
CAN(Controller Area Network)稱為控制器局域網,屬于總線式通訊網絡。它是20世紀80年代初德國BOSCH公司提出為解決汽車內部眾多控制器與測量設備之間的數據交換而開發(fā)的一種串行數據通信總線,是一種有效支持分布式控制系統或實時控制的串行通信網絡[2],具有高可靠性、高性能等優(yōu)點。CANopen協議是CIA協會基于CAN總線定義的應用層協議之一,在各種控制系統中得到了廣泛應用[3]。目前廣泛應用于伺服驅動器、儀器儀表等大量設備中。
圖1 伺服驅動器硬件框圖
eQEP(Enhanced Quadrature Encoder Pulse)增強型正交編碼脈沖接口連接增量式編碼器進行測速,eCAP(Enhanced Capture)接口連接霍爾位置傳感器在上電瞬間檢測電機轉子所在的扇區(qū)位置,也可測速?;魻栯娏鱾鞲衅鳈z測電機的相電流,電機的三相電流只需檢測任意其中的兩相的電流,通過計算可獲取剩余的一相電流。F28M35H52C有兩個CAN控制器,最高波特率為1MBit/s,電路圖如圖2所示。
常用的120Ω終端電阻根據需要可外接在P201接線端子的2、3腳,采用了6N137高速光耦進行隔離。
圖2 CAN通信電路圖
2.1OD 對象字典
對象字典(OD Object Dictionary)是CANopen 的核心概念,網絡中每個節(jié)點都有一個對象字典。對象字典描述了本設備和它的通信行為的所有參數,它是一個有序的對象組,每個對象采用一個16位的索引(index)和一個8位的子索引(subindex)來確定該對象的訪問入口地址[7]。主站通過對象詞典中索引號為0x1018的參數來識別設備,每個從站設備都必須有一個相對應的EDS (Electronic data sheet)文件。EDS文件定義了設備所有與CANopen協議相關的參數。
2.2CANopen報文結構
CAN報文中,仲裁域用來區(qū)分幀類型的優(yōu)先級,而在CANopen報文中,除了區(qū)分幀類型的優(yōu)先級外還需區(qū)分報文的種類。在CANopen協議中,11位仲裁位稱為 COB-ID(Communication Object Identifier),分為兩部分。高4位仲裁位為功能碼(Function Code),主要用于區(qū)分報文類型;低7位仲裁位為節(jié)點地址(Node-ID),Node-ID取值范圍為1-127。如果Node-ID為0,則廣播至所有CANopen從站。
表1 CANopen報文結構
CANopen協議通過功能碼的不同定義了不同類型的報文,主要有以下類型報文:NMT(Network Management Object)報文、PDO(Process Data Object)報文、SDO(Service Data Object)報文、SYNC(Synchronisation Object)報文、EMCY(Emergency Object)報文、心跳(Heartbeat)報文等。
2.3網絡管理對象(NMT)
NMT(Network Management)網絡管理基于主從結構(Master/Slaver),這就要求在網絡中有一個節(jié)點專門作為NMT管理者,即NMT主站,其他為從站[8]。
表2 NMT報文結構
主站通過發(fā)送NMT報文控制著CANopen網絡中每一個從站設備的節(jié)點狀態(tài),從站設備只需根據NMT報文在不同的狀態(tài)間切換即可。
圖3 NMT狀態(tài)機
圖3表明了在不同狀態(tài)下所支持的報文類型A:NMT B:Heartbeat C:SDO D:Emergency E:PDO F:Boot-up。相關切換命令如表3所示。
從站設備在上電或者復位后,設備會首先進入Initialization狀態(tài)。在Initialization狀態(tài)中從站設備主要執(zhí)行一些初始化程序,初始化程序完成后從站設備會發(fā)送一條Boot-Up報文,然后自動進入Pre-Operational狀態(tài),此后從站的節(jié)點狀態(tài)完全由主站控制。
NMT還提供了差錯控制服務,主要用于檢測網絡中的設備是否在線和設備的當前狀態(tài)。主要有節(jié)點保護報文(Node Guarding)和心跳報文(Heartbeat),節(jié)點保護報文是主站周期性發(fā)送遠程幀給從站,從站回復當前節(jié)點狀態(tài)給主站。心跳報文是從站周期性發(fā)送心跳報文給主站,主站如果在超過規(guī)定時間內沒收到從站發(fā)過來的報文,就認為該從站通信出現錯誤。一般情況下,從站通信出現錯誤,主站會發(fā)送NMT報文使該從站復位,通過SDO協議再次配置從站的對象詞典。一個從站設備必須選擇節(jié)點保護報文和心跳報文中一種的報文。
表4 心跳報文結構
設備節(jié)點的不同狀態(tài)由節(jié)點狀態(tài)一下的相應的值表示。
表5 心跳報文含義
2.4服務數據對象(SDO)
SDO(Service Data Object)報文主要用來訪問設備的對象字典,對CANopen網絡中的設備進行配置。SDO主要有為加速傳送、分段傳送和塊傳送這三種傳送機制,其發(fā)送的報文必須得到接收者的確認。
2.5過程數據對象(PDO)
PDO(Process Data Object)報文不需要接收者的確認,主要用來傳輸實時性較高的數據,例如伺服驅動器中的電流、速度、位置等。PDO采用生產者/消費者通信方式,數據從一個生產者傳到一個或多個消費者,數據長度限制在8個字節(jié)之內[9]。報文主要通對象詞典中的映射參數和通訊參數來描述。
2.6特殊功能對象
特殊功能對象主要包括緊急對象(E M C Y Emergency Object)和同步對象(SYNC Synchronisation Object)。伺服驅動器作為EMCY的生產者,當設備發(fā)生故障時,會發(fā)送EMCY報文。例如:驅動器過載,過流,欠壓等故障。SYNC報與PDO傳輸密切相關,例如在運動控制中,通過設置PDO的傳輸類型為同步傳輸,可以實現多個設備數據的同步。同一個CANopen網絡中只允許一個激活的SYNC報文生產者。
2.7CANopen設備子協議分析DS-402[10]
DS-402子協議主要描述了運動控制設備相關規(guī)范。主要利用控制字(0x6040)和狀態(tài)字(0x6041)控制和觀測伺服驅動器的運行狀況,狀態(tài)機如圖4所示。
圖4 狀態(tài)機
圖4[10]表明了狀態(tài)機、控制字、狀態(tài)字之間的關系,控制字控制著狀態(tài)機的切換,狀態(tài)字反映了當前的驅動器的狀態(tài)。
CANopen協議的實現:
CANopen軟件主要包含CAN接收中斷程序、定時中斷程序及主程序三部分;在CAN接收中斷程序中,讀取CAN數據并放置在一個環(huán)形隊列中,環(huán)形隊列中的數據解析在主程序中完成;定時器中斷用于計時,以確定心跳包、PDO等報文所需的精準時間;主程序中完成了大部分的CANopen協議。Cortex-M3端流程圖如圖5所示。
圖5 Cortex-M3端流程圖
采用臺達CANopen主站DVPCOPM-SL、伺服驅動器及USB轉CAN工具建立CANopen測試網絡,如圖6所示。
圖6 測試網絡圖
通過CANopenBuilder軟件配置主站DVPCOPM需要完成導入EDS文件、在線掃描設備、配置主站參數等主要操作。按照圖6連接好設備后,使用CANopenBuilder軟件在線掃描設備,結果如圖7所示。
圖7 在線掃描結果
圖7中,主站已經掃描到一個設備,006為從站設備的節(jié)點地址,GuilinServo為設備生產廠商名稱。使用USB轉CAN工具監(jiān)控CAN總線的數據,如圖8所示。
圖8表明節(jié)點地址為6的伺服驅動器已經工作在“操作”狀態(tài),伺服驅動器的各種類型報文與CANopen主站通信正常,表明該設計成功。
圖8 上位機軟件監(jiān)控的數據
在CANopen Builder軟件環(huán)境中進行了主從站的通訊調試,主從站之間沒有報文丟失的現象,進行了參數設置、正常運行及急停試驗,試驗表明以F28M35H52C為主控制器的伺服驅動器硬件設計方案,實現了CANopen協議中DS-301和DS-402子協議,成功完成多伺服驅動器控制功能。對在CANopen網絡下的多伺服驅動器的應用有借鑒與指導意義。
參考文獻:
[1] 張立偉.基于F28M35的全電腦針織橫機伺服驅動器的研究[D].杭州:杭州電子科技大學,2014.
[2] 王桂榮,錢劍敏.CAN總線和基于CAN總線的高層協議[J].計算機測量與控制,2003,05:391-394.
[3] 孫樹文,楊建武,張慧慧,趙建光.基于CANopen協議的分布式控制系統I/O從站設計[J].計算機測量與控制,2007,12:1705-1707.
[4] Texas Instruments Inc..F28M35Hx Concerto Microcontroller[EB]. 2011:153-160.
[5] Texas Instruments Inc. Concerto F28M35x Technical Reference Manual[Z].2011.
[6] CAN in Automation. Application Layer and Communication Profile[Z].CiA Draft Standard 301,Version 4.02,2002.
[7] 馬成才.基于CANopen協議的交流伺服驅動器從站研究[D].南京:南京航空航天大學,2012.
[8] 楊曉航.CANopen從站通訊模塊的開發(fā)與應用[D].南京理工大學,2014.
[9] 王碩,李恩,趙曉光.CANopen協議在高空作業(yè)車控制系統中的應用[J].制造業(yè)自動化,2011,33(2).
[10] CAN in Automation.CiA Draft Standard Proposal DSP-402 CANopen Device Profile for Drives and Motion Control[S]. Version 1.1,1998,10.
Implementation of the slave station for servo driver based on CANopen protocol
SUN Xuan1, JIANG Wen-kai1, LIAO Wen-qi2
中圖分類號:TM3
文獻標識碼:A
文章編號:1009-0134(2016)05-0009-05
收稿日期:2016-01-19
作者簡介:孫旋(1970 -),男,湖北人,碩士,研究方向為結構的強度效驗、疲勞性分析及可靠性分析;PZT壓電材料在鋼結構損傷檢測的應用研究;信號的檢測、分析及其數據處理。