張愷鈺,李國利,陳 健,劉 登,時 光
(金陵科技學院機電工程學院,江蘇南京 211169)
多軸步進電機CAN總線控制系統(tǒng)設計
張愷鈺,李國利,陳 健,劉 登,時 光
(金陵科技學院機電工程學院,江蘇南京 211169)
設計了一種基于CAN總線的多軸步進電機運動控制系統(tǒng)。系統(tǒng)由PC機、CAN收發(fā)器、CAN控制器、單片機、步進電機及其驅動器等部分組成。系統(tǒng)由PC機通過CAN總線向各軸步進電機控制器發(fā)送控制命令,實現(xiàn)多軸步進電機的同步運動控制。將各軸步進電機安裝在采摘機械手上進行機械手運動控制試驗,結果表明該系統(tǒng)穩(wěn)定可靠。
CAN總線;步進電機;多軸;運動控制
步進電機是工業(yè)控制及儀表中最常用的控制元件之一,它有輸入脈沖與電機軸轉成比例的特征,在智能機器人、采摘機械手、數據機床中廣泛運用[1]。在運動控制中經常涉及多軸步進電機協(xié)調控制的問題,這就需要建立用于多軸步進電機控制的通信系統(tǒng)。CAN屬于現(xiàn)場總線的范疇,它是一種有效支持分布式控制或實時控制的串行通信網絡,是國際上應用最廣泛的現(xiàn)場總線之一[2]。以PC機為上位機、單片機為控制器,設計了基于CAN總線的多軸步進電機運動控制系統(tǒng)。
1.1 系統(tǒng)構成
系統(tǒng)總體框圖如圖1所示,主要由CAN消息收發(fā)裝置和智能控制部分組成。CAN消息收發(fā)裝置包括PC機、CAN控制器SJA1000和CAN收發(fā)器TJA1050;智能控制部分包括單片機、步進電機驅動器等。
圖1 系統(tǒng)結構
1.2系統(tǒng)主要功能
對于單軸步進電機控制來說,該軸上的位移可通過步進電機的轉動來實現(xiàn),步進電機的轉動采用電機的運動控制策略,其運動過程是加速-勻速-減速的連續(xù)過程。設計要實現(xiàn)的是基于CAN總線的多軸電機運動控制的控制,在單軸步進電機控制的基礎上,利用CAN組成控制網絡實現(xiàn)多軸電機的分布式控制。PC機發(fā)出CAN消息,通過CAN總線傳給各節(jié)點所在的單片機,單片機將信息處理后向步進電機驅動器發(fā)出驅動信號,從而實現(xiàn)步進電機的運動控制。
2.1主控模塊
步進電機的控制芯片采用STC89S52,它是一種低損耗、高性能、CMOS微處理器。STC89S52與CAN控制器收發(fā)器結合使用,能較好的接受控制信息,并且該芯片與步進電機驅動器接口技術成熟。
CAN總線通信接口采用PHLIPS公司生產的SJA1000和TJA1050芯片。SJA1000是獨立的CAN通信控制器,用于完成CAN總線通信協(xié)議的物理層和數據鏈路層的功能。微控制器和SJA1000之間狀態(tài)、控制和命令的交換都是通過在復位模式或工作模式下對這些寄存器的讀寫來完成的[3]。TJA1050為高性能、高速的CAN收發(fā)器,使用它能夠增大通信距離,提高系統(tǒng)的抗干擾能力,并能起到保護總線、降低射頻干擾、實現(xiàn)熱保護的作用。
為了進一步提高通信的抗干擾能力,在CAN控制器和CAN驅動器之間使用高速光耦器件構成隔離保護電路,傳輸介質使用雙絞線連接到SJA1000和TJA1050的CANH和CANL接口。一組CAN控制器、收發(fā)器與單片機組合就是一個節(jié)點,每個節(jié)點可配置唯一的ID號以作為身份標識。而單片機STC89S52負責SJA1000的初始化,控制SJA1000實現(xiàn)數據的接收和發(fā)送通信任務[2]。
2.2 步進電機驅動模塊
圖2 步進電機驅動模塊
步進電機驅動模塊如圖2所示。執(zhí)行器件選用兩相四線的步進電機,驅動器選用MB450A 4.2A/128細分高性能步進電機驅動器,只要向驅動器輸入一定頻率的脈沖就能實現(xiàn)對步進電機的控制。
3.1 上位機界面
上位機控制程序由C++語言編寫。上位機控制程序可以實現(xiàn)基于CAN總線的通信,可以手動發(fā)送CAN消息,也可設置定時自動發(fā)送,同時,能檢測到消息是否發(fā)送成功。
3.2 主控模塊軟件設計
主控模塊工作步驟為:①系統(tǒng)各部分初始化,包括初始化CAN控制器SJA1000。SJA1OOO的初始化設置是在復位模式下進行的。初始化包括工作方式的設置、接收濾波方式的設置、接收屏蔽寄存(AMR)和接收代碼寄存器(ACR)的設置、波特率參數設置和中斷允許寄存器IER的設置等[3]。②判斷SJA1000是否初始化成功,不成功則繼續(xù)初始化,直至成功。③由接收器TJA1050接收上位機發(fā)來的CAN消息。④收到CAN消息,單片機處理,將CAN消息中包含的所需的數據解析,將總步數分解成加速,勻速,減速的部分,以實現(xiàn)運動控制。⑤通過中斷向驅動器發(fā)送相應脈沖,驅動電機。
3.3電機的運動控制實現(xiàn)
在步進電機開環(huán)控制中,為了實現(xiàn)電機的平穩(wěn)快速運動,減小啟動和停止時的沖擊、防止丟步,合理的速度曲線設計是非常重要的[4]。步進電機的控制與調速選用定時器調速方案,用改變定時常數的方法來改變輸出的步進脈沖頻率,達到改變轉速的目的。采用非線性加減速曲線,如圖3所示。由于加減速是非線性的,所以要用離散法把加減速曲線離散化,將離散后所得的轉速序列對應的定時常數序列,并以表格的形式存儲在程序中。在程序運行時,使用查表的方式重裝定時常數,以達到加減速的目的[5]。用此方法能提高系統(tǒng)的運行效率。
圖3 步進電機運動曲線
具體實現(xiàn)方法如圖4。該曲線是近似指數加速曲線,由圖可知,離散后的速度并不是一直上升,而是每升一級都要在該級上保持一段時間,所以實際加速軌跡應該是階梯狀的。如果速度是等間距分布,那么在每個速度級上保持的時間都是不同的。為了便于實現(xiàn),用速度級數N與一個常數C的乘積去模擬,并且保持的時間用步數來代替。因此,速度每升一級,步進電機都要在該速度級上走NC步(其中N為該速度級數),而C的具體值需要根據具體的應用需求,不斷地實驗與調整。同理,減速的實現(xiàn)則是加速實現(xiàn)的逆過程。
圖4 步進電機加速曲線
3.4 步進電機的驅動
步進電機驅動過程如下:①定時器初始化,用于產生驅動步進電機的脈沖。②單片機將收到的CAN消息處理,計算出各軸電機需要加速,勻速,減速的步數。③定時器每產生一個脈沖,加速的總步數Adds減1,直到Adds減為0。勻速的總步數A-ves開始減1,直到Aves減為0,減速的總步數Mins減1,直到Mins減為0,表示電機已經轉動到位。在此過程中,由2.3所述算法來決定在某些時刻改變定時器初值,從而實現(xiàn)電機的運動控制。④關閉定時器,停止電機的轉動。
將步進電機安裝于采摘機械手上進行試驗,采摘機械手包含3個運動關節(jié)和采摘手抓,由四軸步進電機分別控制。試驗采用仿真蘋果樹,控制機械手運動,使機械手爪到達目標果實并抓取果實。試驗時,首先測量目標果實與采摘機械手爪的空間距離,通過機械手運動學逆解方程計算各關節(jié)運動量,上位機通過CAN總線發(fā)送給各個單片機模塊,并驅動關節(jié)各軸步進電機運動使采摘手爪到達目標果實,控制手爪步進電機運動實現(xiàn)果實的抓取如圖5所示。試驗進行10次,每次都能成功采摘果實系統(tǒng)工作穩(wěn)定。但機械手爪末端定位存在誤差,誤差主要來源距離測量誤差和機械手關節(jié)運動誤差。
圖5 機械手抓取果實
設計了一種基于CAN總線的多軸步進電機運動控制系統(tǒng)。系統(tǒng)試驗運行結果表明,系統(tǒng)工作穩(wěn)定。系統(tǒng)具有成本低、工作可靠及操作簡單等特點,適用于諸多工業(yè)現(xiàn)場控制,如機床加工作業(yè)、物料的運送等。
[1] 李峻,李學全,胡德金.步進電機的運動控制系統(tǒng)及其應用[J].微特電機,2002(2):37- 39.
[2] 劉維弋,金遠平.基于CAN總線的通信系統(tǒng)的設計與實現(xiàn)[J].計算機技術與發(fā)展,2007,17(12):207- 209.
[3] 楊晶.CAN總線接口電路設計[J].辦公自動化,2010(1):34- 35.
[4] 王邦繼,劉慶想,周磊,等.步進電機速度曲線的設計與FPGA實現(xiàn)[J].微電機,2012,45(8):67- 71.
[5] 羅健明,葛良全,邱化冬.一種基于TMP93CS41的步進電動機驅動設計方案[J].微電機,2007,40(2):84 -87.
Design of Motion Control of Multidimensional Stepping Motor System Based on CAN Bus
ZHANG Kaiyu,LI Guoli,CHEN Jian,LIU Deng,SHI Guang
(School of Mechanical and Electronic Engineering,Jinling Institute of Technology,Nanjing 211169,China)
A multidimensional stepping motor motion control system based on a CAN bus is designed in this paper.The system is mainly composed of a personal computer(PC),a CAN transceiver,a CAN controller,a microcontroller,a stepper motor and a driver.In this system,control commands are sent by the PC to each stepping motor controller by means of the CAN bus,so that the stepping motors are controlled simultaneously.The system is applied to a picking manipulator,and a number of manipulator motion control experiments are conducted.The experiment and application show that the system is stable and reliable.
CAN bus;stepping motor;multidimensional;Motion Control
TP273
A
1001- 2257(2015)08- 0038- 03
張愷鈺 (1994-),男,江蘇鎮(zhèn)江人,本科,方向為自動化控制技術;李國利 (1973-),男,山東濱州人,碩士,副教授,研究方向為自動化檢測與控制技術。
版權聲明
機械與電子雜志社
2015- 04- 07
2014江蘇省高等學校大學生實踐創(chuàng)新訓練計劃重點項目(201413573007Z)。
各位作者:來稿凡經本刊錄用,如無特殊聲明,即視作投稿者同意授權本刊及本刊合作媒體復制、發(fā)行及進行信息網絡傳播。著作權使用費已包含在本刊所支付的稿酬中。