伺服電機(jī)遠(yuǎn)程控制,基于CANopen的伺服控制模式的實(shí)現(xiàn)
針對(duì)伺服電機(jī)遠(yuǎn)程控制接線復(fù)雜、控制單一、可靠性不高等問(wèn)題, 提出利用CANopen通信協(xié)議、驅(qū)動(dòng)子協(xié)議實(shí)現(xiàn)伺服電機(jī)控制的新方法。分析CANopen協(xié)議的對(duì)象字典和報(bào)文格式,詳細(xì)介紹了CANopen伺服控制狀態(tài)機(jī)各步驟的轉(zhuǎn)換以及實(shí)現(xiàn)CANopen協(xié)議下PP、PV、HM 3鐘伺服控制模式的報(bào)文設(shè)置。利用CAN卡和伺服驅(qū)動(dòng)設(shè)備以及伺服驅(qū)動(dòng)設(shè)備以及PC機(jī)構(gòu)建了實(shí)驗(yàn)平臺(tái), 在上位機(jī)界面通過(guò)報(bào)文設(shè)置成功實(shí)現(xiàn)了基于CANopen協(xié)議的伺服電機(jī)的PP、PV、HM的三種模式的控制。實(shí)臉結(jié)果表明利用協(xié)議的報(bào)文設(shè)置控制電機(jī)簡(jiǎn)單易操作,通訊數(shù)據(jù)快速、可靠, 用戶通過(guò)上位機(jī)可以很好的實(shí)現(xiàn)對(duì)伺服電機(jī)的監(jiān)控。
![伺服電機(jī)遠(yuǎn)程控制,基于CANopen的伺服控制模式的實(shí)現(xiàn) 伺服電機(jī)遠(yuǎn)程控制,基于CANopen的伺服控制模式的實(shí)現(xiàn)](https://0.rc.xiniu.com/g2/M00/1D/8B/CgAGfFxrYHyAZFKtAAIjsSS7Ir4699.jpg)
整個(gè)控制系統(tǒng)由PC機(jī)、CANopen上位機(jī)、USBCAN適配器、伺服驅(qū)動(dòng)設(shè)備構(gòu)成。CANopen通訊部分由DS301協(xié)議實(shí)現(xiàn),伺服控制部分由DSP402協(xié)議實(shí)現(xiàn)伺服驅(qū)動(dòng)設(shè)備作為的從節(jié)點(diǎn), 具有CANopen通訊功能, 負(fù)責(zé)電機(jī)的電流、轉(zhuǎn)速、位置等控制對(duì)象, 它通過(guò)通信接口與總線相連, 將信息傳送給計(jì)算機(jī)的上位機(jī)界面;上位機(jī)界面則根據(jù)從站的反饋信息通過(guò)USBCAN適配器對(duì)伺服驅(qū)動(dòng)設(shè)備實(shí)現(xiàn)控制。
伺服控制模式:CANopen驅(qū)動(dòng)及運(yùn)動(dòng)控制設(shè)備子協(xié)議DSP402對(duì)特性的描述要求非常準(zhǔn)確,它不僅定義了驅(qū)動(dòng)器的運(yùn)行模式, 還定義了用于控制驅(qū)動(dòng)器的狀態(tài)機(jī)。驅(qū)動(dòng)器狀態(tài)機(jī)通過(guò)對(duì)象字典中的控制字6040來(lái)控制,并通過(guò)狀態(tài)字6041來(lái)讀取驅(qū)動(dòng)器的狀態(tài)。
系統(tǒng)軟硬件實(shí)現(xiàn)
1)系統(tǒng)硬件搭建:本設(shè)計(jì)采用USBCAN和伺服驅(qū)動(dòng)設(shè)備和PC機(jī)來(lái)搭建硬件平臺(tái)。伺服驅(qū)動(dòng)控制芯片采用的是DSP的芯片。系統(tǒng)硬件搭建按以下步驟進(jìn)行。首先在TI的開(kāi)發(fā)環(huán)境中配置好的相關(guān)參數(shù), 并建立DS301工程項(xiàng)目, 完成CANopen協(xié)議通信程序的調(diào)試運(yùn)行。項(xiàng)目調(diào)試成功之后下載到驅(qū)動(dòng)器中, 在上位機(jī)界面中設(shè)置報(bào)文,測(cè)試SDO、PDO、NMT等通訊對(duì)象。測(cè)試結(jié)果正確則系統(tǒng)硬件搭建完成。
2)系統(tǒng)軟件設(shè)計(jì):整個(gè)伺服控制的軟件設(shè)計(jì)在CCS中建立, 主要包括永磁同步電機(jī)的閉環(huán)控制程序和CANopen協(xié)議找的實(shí)現(xiàn)兩大部分。初始化部分程序主要完成DSP系統(tǒng)的初始化以及CANopen通訊的初始化。
初始化主要完成的工作如下:
初始化相關(guān)變量, 使能全局中斷, 進(jìn)人伺服電機(jī)編碼器霍爾傳感器反饋UVW三路信號(hào)來(lái)判斷電機(jī)初始電角度位置。
初始化通訊的主要完成的工作如下:
設(shè)置從站節(jié)點(diǎn)地址和CAN通信波特率, 初始化各通對(duì)象, 完成各路的預(yù)定義映射, 最后進(jìn)入通信處理程序。
3)伺服控制報(bào)文設(shè)置:CANopen報(bào)文結(jié)構(gòu)由11位的COB-ID以及最多8字節(jié)的數(shù)據(jù)域構(gòu)成。在上位機(jī)界面中通過(guò)NMT報(bào)文設(shè)置控制從站進(jìn)入預(yù)作狀態(tài)或者運(yùn)行狀態(tài), 再通過(guò)SDO報(bào)文設(shè)置伺服控制的各個(gè)參數(shù)( 速度、位置等)以及狀態(tài)機(jī)的各個(gè)狀態(tài)可以使電機(jī)按照不同控制模式運(yùn)轉(zhuǎn)起來(lái), 最后通過(guò)將電機(jī)的當(dāng)前參數(shù)映射到PDO中, 讀取PDO報(bào)文的值得到電機(jī)當(dāng)前值, 將其與設(shè)置值對(duì)比得到控制結(jié)果的正確性。控制報(bào)文全部由SDO實(shí)現(xiàn)。
系統(tǒng)控制模式驗(yàn)證
本系統(tǒng)的上位機(jī)界面由USBCAN的上位機(jī)界面及電機(jī)的監(jiān)控界面兩部分構(gòu)成, 其中USBCAN的上位機(jī)界面作為CANopen報(bào)文數(shù)據(jù)監(jiān)控界面,電機(jī)的監(jiān)控界面用VB2008開(kāi)發(fā)。在上位機(jī)界面中通信波特率選用1Mbps伺服電機(jī)Node-ID設(shè)置為1,心跳周期為1s,TPDO發(fā)送周期為100ms,同時(shí)設(shè)置好電機(jī)電流環(huán)、位置環(huán)、速度環(huán)的參數(shù),將設(shè)置的報(bào)文依次輸入上位機(jī)界面的SDO控制,電機(jī)啟動(dòng)并運(yùn)行到報(bào)文中的設(shè)定值,電機(jī)手動(dòng)遙控器顯示值與設(shè)定值一致, 同時(shí)上位機(jī)界面中報(bào)文顯示值也與設(shè)定值一致, 成功實(shí)現(xiàn)了伺服控制的控制在上位機(jī)界面中設(shè)置好報(bào)文值, 電機(jī)啟動(dòng)。電機(jī)先加速運(yùn)行, 達(dá)到設(shè)定的目標(biāo)速度值后開(kāi)始勻速運(yùn)行, 直至達(dá)到設(shè)定的目標(biāo)位置值就不再變化。上位機(jī)過(guò)程數(shù)據(jù)與電機(jī)監(jiān)控曲線變化一致。如果需要改變電機(jī)的位置值, 在上位機(jī)界面中依次輸人新的控制報(bào)文, 電機(jī)會(huì)根據(jù)設(shè)定值正轉(zhuǎn)或者反轉(zhuǎn), 繼續(xù)運(yùn)行到新的位置。
PV模式電機(jī)首先加速到設(shè)定的目標(biāo)速度值, 然后按照設(shè)疋值勾速運(yùn)打。如果需要改變運(yùn)行的速度, 同樣可在上位機(jī)界面中輸人新的速度值,加速時(shí)的變化如上所述。減速控制時(shí), 電機(jī)減速直至速度為則停止。上位機(jī)數(shù)據(jù)變化與電機(jī)監(jiān)控曲線變化一致速度控制曲線
HM模式電機(jī)先加速到設(shè)定速度,然后尋找原點(diǎn)位置,找到原點(diǎn)后,電機(jī)回零,減速直至這時(shí)分別在上位機(jī)界面以及電機(jī)的手動(dòng)遙控器伺服電機(jī)中査看電機(jī)的當(dāng)前位置值, 都可以看到電機(jī)的當(dāng)前設(shè)為說(shuō)明電機(jī)回零操作完成。
以上實(shí)踐證明:系統(tǒng)運(yùn)行可靠, 數(shù)據(jù)準(zhǔn)確易分析,機(jī)先加速運(yùn)行, 達(dá)到設(shè)定的目標(biāo)速度值后開(kāi)始勻速實(shí)時(shí)性好, 協(xié)議棧程序易植入。該方法可以擴(kuò)展適用于多電機(jī)控制系統(tǒng), 而且的CANopen通信協(xié)議棧適用于所有設(shè)備, 工程應(yīng)用非常廣泛。華科星免費(fèi)提供伺服電機(jī)選型與技術(shù)支持!
![伺服電機(jī)遠(yuǎn)程控制,基于CANopen的伺服控制模式的實(shí)現(xiàn) 伺服電機(jī)遠(yuǎn)程控制,基于CANopen的伺服控制模式的實(shí)現(xiàn)](https://0.rc.xiniu.com/g2/M00/32/D2/CgAGfFyv-RiAXWh_AASojEz0XGA687.jpg)