《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 基于DeviceNet 協(xié)議的伺服系統(tǒng)設(shè)計(jì)
基于DeviceNet 協(xié)議的伺服系統(tǒng)設(shè)計(jì)
摘要: 隨著電力電子技術(shù)、控制技術(shù),、網(wǎng)絡(luò)技術(shù),、計(jì)算機(jī)技術(shù)的發(fā)展,伺服系統(tǒng)也獲得了前所未有的發(fā)展機(jī)遇,。伺服系統(tǒng)滲透在國(guó)民經(jīng)濟(jì)中的各個(gè)領(lǐng)域,如數(shù)控機(jī)床,激光加工,,機(jī)器人,大規(guī)模集成電路制造,,辦公自動(dòng)化設(shè)備以及軍用武器隨動(dòng)系統(tǒng)等等,。伺服技術(shù)本身的發(fā)展趨勢(shì)是開放化、網(wǎng)絡(luò)化,、智能化伺服系統(tǒng),。
Abstract:
Key words :

隨著電力電子技術(shù)、控制技術(shù),、網(wǎng)絡(luò)技術(shù),、計(jì)算機(jī)技術(shù)的發(fā)展,伺服系統(tǒng)也獲得了前所未有的發(fā)展機(jī)遇。伺服系統(tǒng)滲透在國(guó)民經(jīng)濟(jì)中的各個(gè)領(lǐng)域,,如數(shù)控機(jī)床,,激光加工,機(jī)器人,,大規(guī)模集成電路制造,,辦公自動(dòng)化設(shè)備以及軍用武器隨動(dòng)系統(tǒng)等等。伺服技術(shù)本身的發(fā)展趨勢(shì)是開放化,、網(wǎng)絡(luò)化,、智能化伺服系統(tǒng)。 

 

    DeviceNet作為基于現(xiàn)場(chǎng)總線技術(shù)的工業(yè)標(biāo)準(zhǔn)開放網(wǎng)絡(luò),為簡(jiǎn)單的底層工業(yè)裝置和高層如計(jì)算機(jī),、PLC等設(shè)備之間提供連接,。 DeviceNet應(yīng)用國(guó)際標(biāo)準(zhǔn)的控制局域網(wǎng)(CAN)協(xié)議,具有公開的技術(shù)規(guī)范和價(jià)廉的通信部件,使得其具有比其他現(xiàn)場(chǎng)總線低得多的開發(fā)費(fèi)用。設(shè)備網(wǎng)采用總線供電方式,提供本質(zhì)安全技術(shù),廣泛適用于各種高可靠性應(yīng)用場(chǎng)合,。 

    本文主要研究基于DeviceNet的伺服系統(tǒng)的軟硬件設(shè)計(jì),。通過CAN總線、單片機(jī)和高性能電機(jī)控制器ADMC401進(jìn)行數(shù)據(jù)傳輸與控制,,使伺服電機(jī)的性能更加穩(wěn)定,能更好更靈活地地應(yīng)用于數(shù)控系統(tǒng)中,。 

    CAN總線和DeviceNet協(xié)議的實(shí)現(xiàn) 

    CAN總線協(xié)議及特點(diǎn) 

    控制器局域網(wǎng)CAN為串行通信協(xié)議,能有效地支持具有很高安全等級(jí)的分布實(shí)時(shí)控制,。CAN的應(yīng)用范圍很廣,,從高速的網(wǎng)絡(luò)到低價(jià)位的多路配線都可以使用CAN。在汽車電子行業(yè)中,,使用CAN連接發(fā)動(dòng)機(jī)控制單元,、傳感器、防滑系統(tǒng)等,,其傳輸速度可達(dá)1Mbps,。同時(shí),可以將CAN安裝在卡車本體的電子控制系統(tǒng)里,,諸如車燈組,、電氣車窗等,用以代替接線配線裝置,。由于采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),,CAN總線與一般的通信總線相比,它的數(shù)據(jù)通信具有突出的可靠性,、實(shí)時(shí)性和靈活性,。其特點(diǎn)概括如下[1]: 

    l CAN為多主方式工作,網(wǎng)絡(luò)上任一節(jié)點(diǎn)可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息,,而不分主從; 

    l 在報(bào)文標(biāo)識(shí)符上,,CAN上的節(jié)點(diǎn)分成不同的優(yōu)先級(jí),,可滿足不同的實(shí)時(shí)要求,優(yōu)先級(jí)高的數(shù)據(jù)最快可在134us內(nèi)得到傳輸; 

    l CAN采用非破壞總線仲裁技術(shù),。當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)出信息出現(xiàn)沖突時(shí),,優(yōu)先級(jí)較低的節(jié)點(diǎn)主動(dòng)退出發(fā)送,而最高優(yōu)先級(jí)的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),,從而大大節(jié)省了總線沖突仲裁時(shí)間,。尤其在網(wǎng)絡(luò)負(fù)載很重的情況下,不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓情況(以太網(wǎng)則可能),。 
    
    DeviceNet協(xié)議及特點(diǎn) 

    DeviceNet是在1994年由美國(guó)的Allen Bredly公司開發(fā)的是基于CAN的一種現(xiàn)場(chǎng)總線,,實(shí)現(xiàn)低成本高性能的工業(yè)設(shè)備的網(wǎng)絡(luò)互連。DeviceNet協(xié)議特別為工廠自動(dòng)控制而定制,,它在美國(guó)和亞洲扮演了非常重要的角色,。在歐洲,越來越多的系統(tǒng)方案使用DeviceNet來實(shí)現(xiàn),。 

    DeviceNet規(guī)范在2002年12月被國(guó)家標(biāo)準(zhǔn)化管理委員會(huì)批準(zhǔn)為中國(guó)的國(guó)家標(biāo)準(zhǔn),,于2003年4月開始實(shí)施,。DeviceNet協(xié)議適用于最低層的現(xiàn)場(chǎng)總線,,例如:過程傳感器、執(zhí)行器,、閥組,、電動(dòng)機(jī)起動(dòng)器、條形碼讀取器,、變頻驅(qū)動(dòng)器,、面板顯示器、操作員接口和其他控制單元的網(wǎng)絡(luò),??赏ㄟ^ DeviceNet連接的設(shè)備包括從簡(jiǎn)單的擋光板到復(fù)雜的真空泵各種半導(dǎo)體產(chǎn)品。DeviceNet也是一種串行通信鏈接,,可以減少昂貴的硬接線,。 DeviceNet所提供的直接互連性不僅改善了設(shè)備間的通信,而且同時(shí)提供了相當(dāng)重要的設(shè)備級(jí)診斷功能,,這是通過硬接線I/O接口很難實(shí)現(xiàn)的,。 DeviceNet具有多種特點(diǎn)[2]: 

    l DeviceNet基于CAN技術(shù)用于PLC與現(xiàn)場(chǎng)設(shè)備之間的通信網(wǎng)絡(luò)。它可連接開關(guān),、變頻調(diào)速設(shè)備,、固態(tài)過載保護(hù)裝置、條形碼閱讀器,、I/O和人機(jī)界面等,,傳輸速率為125~500kbps; 

    l DeviceNet使用的通信模式是:消息產(chǎn)生者(Producer)和消息使用者(Consumer),。傳統(tǒng)的通信在消息傳送上采用的技術(shù)式指定數(shù)據(jù)源和目標(biāo)地址。DeviceNet使用的模型更為有效,,它可使控制數(shù)據(jù)同時(shí)到達(dá)控制的每一個(gè)單元,,可以更有效地利用網(wǎng)絡(luò)的頻帶寬度。消息產(chǎn)生者一次發(fā)送的數(shù)據(jù)可被多個(gè)消息使用者使用,,從而更有效的傳送數(shù)據(jù); 

    l DeviceNet使用的通信協(xié)議為11位標(biāo)識(shí)符,,即所有的I/O消息都有自己的11位標(biāo)識(shí)符ID,標(biāo)識(shí)符ID分成四個(gè)消息組,,各有不同用途ID中同時(shí)提供了多重優(yōu)先權(quán),。工作時(shí),總線上的設(shè)備監(jiān)聽網(wǎng)絡(luò)上消息,,當(dāng)設(shè)備辨識(shí)出正確的標(biāo)識(shí)符后,,將接受該消息; 

    l DeviceNet上的每一個(gè)設(shè)備可以隨時(shí)連接或斷開,而不會(huì)影響其他設(shè)備的正常運(yùn)行,。真正的開放性使系統(tǒng)擴(kuò)充和改型非常方便,。 

    控制系統(tǒng)的構(gòu)成 

    為了實(shí)現(xiàn)伺服系統(tǒng)的快速實(shí)時(shí)控制,系統(tǒng)在設(shè)計(jì)上采用了單片機(jī)+DSP雙CPU結(jié)構(gòu)。在設(shè)計(jì)時(shí)將系統(tǒng)控制任務(wù)進(jìn)行了劃分:DSP完成實(shí)時(shí)性要求高的伺服控制任務(wù),FLASH結(jié)構(gòu)的8位單片機(jī)89C51完成實(shí)時(shí)性要求比較低的管理任務(wù),單片機(jī)和DSP之間的通訊采用并行數(shù)據(jù)方式,由FPGA實(shí)現(xiàn),。同時(shí) FPGA還要完成外部I/O信號(hào)管理,、位置脈沖指令信號(hào)處理及計(jì)數(shù)、故障信號(hào)處理等功能,。伺服控制系統(tǒng)的結(jié)構(gòu)如圖1所示,。由圖1可以看出,系統(tǒng)主要有以下幾部分:伺服控制中心ADMC401;外設(shè)接口FPGA+單片機(jī)89C51;主電路以及開關(guān)電源電路[3]。下面分別說明,。

    

    DeviceNet通信接口部分 

    本文所設(shè)計(jì)的DeviceNet接口電路中,,采用AT89C51ED2作為節(jié)點(diǎn)的微處理器,在CAN總線通信接口中,,CAN通信控制器采用SJA1000,,CAN總線驅(qū)動(dòng)器采用82C250。 

    圖2為DeviceNet接口電路原理圖,。從圖2中可以看出,,電路主要由4部分構(gòu)成:微控制器89C51、獨(dú)立CAN通信控制器SJA1000,、 CAN總線收發(fā)器82C250和高速光電耦合器6N137,。微處理器89C51負(fù)責(zé)SJA1000的初始化,通過控制SJA1000實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù),。

    

    為了增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,,SJA1000的TX0和RXO并不是直接與82C250的TXD和RXD相連,而是通過高速光耦 6N137后與82C250相連,,這樣就很好的實(shí)現(xiàn)了總線上各CAN節(jié)點(diǎn)間的電氣隔離,,從而保護(hù)了系統(tǒng)電路以及總線的信號(hào)傳輸,。從整體性能來說,系統(tǒng)設(shè)計(jì)具有很好的通用性和實(shí)用性,。 

    微控制器AT89C51ED2用來實(shí)現(xiàn)通訊的應(yīng)用層協(xié)議,。它具有豐富的內(nèi)存資源,4個(gè)8位I/O端口,、3個(gè)16位定時(shí)/計(jì)數(shù)器,、256字節(jié)暫存 RAM、9個(gè)中斷源,、4個(gè)優(yōu)先級(jí),,此外還有2K EEPROM空間,系統(tǒng)不需要擴(kuò)展外部程序存儲(chǔ)器便可滿足DeviceNet協(xié)議程序的容量要求,。并且能夠在×2模式(6個(gè)時(shí)鐘/機(jī)器周期)下工作運(yùn)行,,本文中的設(shè)計(jì)即是在×2模式下。單片機(jī)通過訪問SJA1000的寄存器來實(shí)現(xiàn)和上位機(jī)的通信,。CAN控制器SJA1000的接收寄存器和發(fā)送寄存器用于暫時(shí)存放接收和發(fā)送的數(shù)據(jù),。單片機(jī)發(fā)送數(shù)據(jù)則通過設(shè)置SJA1000的命令寄存器發(fā)送命令位,接收數(shù)據(jù)是通過中斷方式實(shí)現(xiàn),,SJA1000的INT引腳與AT89C51ED2的INT1引腳相連,,使單片機(jī)能夠?qū)崟r(shí)響應(yīng)CAN的中斷請(qǐng)求。采樣周期2ms由 AT89C51ED2的定時(shí)器中斷產(chǎn)生,。 

    電機(jī)控制部分 

    伺服電機(jī)控制電路部分采用高性能電機(jī)控制器ADMC401,,它是美國(guó)模擬器件公司(ADI)推出DSP芯片中的高檔產(chǎn)品,。ADMC401是面向電機(jī)控制的高性能數(shù)字信號(hào)處理器,它以ADSP-2171為內(nèi)核,,輔以完備的電機(jī)控制外設(shè)。其中包括8路12位A/D轉(zhuǎn)換系統(tǒng),、三相16位PWM產(chǎn)生單元,、兩路輔助PWM輸出及用于位置反饋的增量式碼盤接口。另外ADMC401還包括12路數(shù)字I/O口,、事件捕獲單元及內(nèi)部定時(shí)器等設(shè)施,,為開發(fā)快速、高精度的電機(jī)控制系統(tǒng)提供了完善的硬件設(shè)施,。 

    ADMC401內(nèi)部提供了2K×24位的內(nèi)部程序RAM,、2K×24位的內(nèi)部程序ROM和1K×16位的內(nèi)部數(shù)據(jù)RAM;程序及數(shù)據(jù)RAM的內(nèi)容可由其串口從外部ROM中以同步或異步方式調(diào)入。為了滿足實(shí)際工程的需要,,ADMC401還提供了外部存儲(chǔ)器的擴(kuò)展能力,,用戶最多可以直接尋址片外 14K×24位的程序存儲(chǔ)器和13K×16位的數(shù)據(jù)存儲(chǔ)器[4]。ADMC401是整個(gè)伺服系統(tǒng)的核心,具有高速的運(yùn)算能力,、較高的采樣精度,外設(shè)配置性能和功能較強(qiáng),能勝任實(shí)時(shí)性要求高的伺服控制任務(wù),。本系統(tǒng)用它來實(shí)現(xiàn)矢量變換,、電流環(huán)、速度環(huán),、位置環(huán)控制以及PWM信號(hào)發(fā)生,、各種故障保護(hù)處理等。 

    系統(tǒng)軟件設(shè)計(jì) 

    上位機(jī)軟件設(shè)計(jì) 

    上位機(jī)主控計(jì)算機(jī)是整個(gè)系統(tǒng)的核心,,通過CAN接口卡與CAN總線相連,,負(fù)責(zé)系統(tǒng)的管理、運(yùn)動(dòng)規(guī)劃以及通訊功能,。其上位PC機(jī)軟件設(shè)計(jì)包括網(wǎng)絡(luò)管理,,參數(shù)管理,狀態(tài)管理三個(gè)部分,。 

    l 網(wǎng)絡(luò)管理 設(shè)置CAN接口卡工作波特率和本機(jī)節(jié)點(diǎn)地址,,同時(shí)初始化CAN控制器SJA1000,以及DeviceNet各個(gè)對(duì)象類,,并且檢查此網(wǎng)絡(luò)中是否設(shè)置重復(fù)的節(jié)點(diǎn)地址,。因?yàn)镻C機(jī)的CAN卡初始化要涉及CAN卡與PC機(jī)的聯(lián)系工作,所以要對(duì)CAN通訊適配卡的各個(gè)寄存器進(jìn)行配置,,設(shè)置中斷向量,、通信波特率和濾波接收碼以及中斷屏蔽字等參數(shù),為正常通訊做好準(zhǔn)備工作,。另外此部分還要完成掃描網(wǎng)絡(luò)中的節(jié)點(diǎn),,并與從機(jī)節(jié)點(diǎn)建立連接的功能。 DeviceNet是面向連接的網(wǎng)絡(luò),,兩個(gè)節(jié)點(diǎn)之間首先建立連接然后才能夠通訊,,本設(shè)計(jì)中只采用僅限組2的從設(shè)備建立連接,其建立連接是通過“分配預(yù)定義主/從連接組”來完成的,。 

    l 參數(shù)管理 完成伺服系統(tǒng)的各個(gè)參數(shù)字或者控制字的讀取修改工作,,這些參數(shù)包括伺服電機(jī)的內(nèi)部參數(shù)Kp、Ki,、Kd等以及針對(duì)雷達(dá)系統(tǒng)的參數(shù): 雷達(dá)扇掃中心角度,、扇掃范圍、扇掃速度,、手輪方式中的手輪與天線的轉(zhuǎn)速比,、運(yùn)行模式選擇(第26號(hào)參數(shù),其中0—手輪方式,,1—勻速掃描方式,,2—扇掃方式,4—接收停方式),。一般情況下,,對(duì)各個(gè)控制字參數(shù)的讀寫操作類似于對(duì)各個(gè)參數(shù)的讀寫操作,。在本設(shè)計(jì)中為了簡(jiǎn)化軟件設(shè)計(jì),我們可以對(duì)31號(hào)參數(shù)的讀寫操作來完成對(duì)16個(gè)控制字的讀寫操作,,實(shí)現(xiàn)過程如下:第31號(hào)參數(shù)為控制字參數(shù),,是由16個(gè)控制字按照STA-15至STA-0順序組合而成的一個(gè)整型數(shù),這樣對(duì)控制字參數(shù)的讀寫操作的同時(shí)也就完成了對(duì)16個(gè)控制字的讀寫操作,。 

    l 狀態(tài)管理 能夠反應(yīng)伺服電機(jī)當(dāng)前的運(yùn)動(dòng)狀態(tài),,如實(shí)際位置,速度指令,,力矩反饋,,速度反饋,指令偏差等,。這樣給我們觀察伺服電機(jī)當(dāng)前狀態(tài)提供了一個(gè)直觀方便的平臺(tái),。 

    下位機(jī)軟件設(shè)計(jì) 

    下位機(jī)通信部分的單片機(jī)完成I/O數(shù)據(jù)過程的自動(dòng)控制作業(yè),包括輸入輸出數(shù)據(jù)的解包下發(fā),、打包上傳,,以及故障事件記錄、報(bào)警等工作,。通信卡采用定時(shí)中斷方式與CAN總線的控制卡節(jié)點(diǎn)頻繁地交換各自通信緩沖區(qū)的數(shù)據(jù),,以確保系統(tǒng)I/O數(shù)據(jù)的實(shí)時(shí)性,同時(shí)縮短了整個(gè)系統(tǒng)響應(yīng)時(shí)間,。圖3示出程序框圖,。

    

    下位機(jī)初始化完成后,則進(jìn)入等待中斷狀態(tài),。下位機(jī)的通訊過程是通過單片機(jī)訪問CAN控制器寄存器來實(shí)現(xiàn)的,,單片機(jī)對(duì)CAN控制器的寄存器訪問是作為單片機(jī)的外部存儲(chǔ)器訪問的,每個(gè)寄存器的地址為SJA1000的首地址與SJA1000內(nèi)部相對(duì)地址之和,。單片機(jī)采用中斷方式接收數(shù)據(jù),。CAN控制器 SJA1000接收到上位機(jī)的數(shù)據(jù)并且當(dāng)接收緩沖區(qū)有空余空間時(shí),接收的數(shù)據(jù)被依次放在SJA1000的接收緩沖區(qū)中,,這是有硬件自動(dòng)完成的。當(dāng)調(diào)用清除命令清除接收寄存器中的數(shù)據(jù)后,,F(xiàn)IFO接收緩沖區(qū)會(huì)把數(shù)據(jù)填充到已清空的接收寄存器中,,同時(shí)回答一個(gè)中斷信號(hào)。單片機(jī)把這個(gè)中斷信號(hào)作為單片機(jī)的外部接收中斷,,單片機(jī)響應(yīng)接收中斷后讀出CAN控制器中的接收緩沖區(qū)數(shù)據(jù)并保存,,再清空CAN控制器的接收寄存器。 

    在設(shè)計(jì)本系統(tǒng)軟件時(shí), 開發(fā)工具使用Borland C++語言 ,。因Borland C++是一種可視化,、面向?qū)ο蟮腃++程序設(shè)計(jì)語言快速開發(fā)工具,具有簡(jiǎn)單直觀和功能強(qiáng)大的特點(diǎn),。在Borland C ++集成開發(fā)環(huán)境下,可以方便的編寫PC機(jī)的通訊程序。 

    以PC機(jī)A作為主機(jī),伺服驅(qū)動(dòng)器和PC機(jī)B作為網(wǎng)絡(luò)中的2個(gè)節(jié)點(diǎn),,設(shè)置主機(jī)節(jié)點(diǎn)地址和通訊波特率后,,對(duì)網(wǎng)絡(luò)進(jìn)行掃描建立連接,可以正確掃描到兩個(gè)在線節(jié)點(diǎn),,如圖4是讀取伺服驅(qū)動(dòng)器各個(gè)參數(shù)值,。

    

    結(jié)語 

    從CAN總線以及DeviceNet總線特點(diǎn)可以看出,它較傳統(tǒng)的串行通信,在硬件上可減少走線,、易于系統(tǒng)擴(kuò)充或改型,在軟件上通信更加靈活,、實(shí)時(shí)性更好、糾錯(cuò)能力更強(qiáng),。這表明基于DeviceNet總線的運(yùn)動(dòng)控制系統(tǒng)有廣闊的應(yīng)用前景,。 

    本文所設(shè)計(jì)的運(yùn)動(dòng)控制系統(tǒng)將DeviceNet總線與伺服電機(jī)驅(qū)動(dòng)技術(shù)結(jié)合起來,實(shí)現(xiàn)了控制系統(tǒng)的全數(shù)字化,。實(shí)際運(yùn)行結(jié)果表明:本系統(tǒng)具有可靠性高,、實(shí)時(shí)性好、易于維護(hù)等特點(diǎn),達(dá)到了設(shè)計(jì)所需的要求,。 

    參考文獻(xiàn) 
    [1] 饒運(yùn)濤.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù).北京:北京航空航天大學(xué)出版社,,2003 
    [2] DeviceNet網(wǎng)絡(luò)結(jié)構(gòu),廣州周立功單片機(jī)發(fā)展有限公司,,www.zlgmcu.com 
    [3] 李葉松等.全數(shù)字交流永磁同步電機(jī)伺服系統(tǒng)設(shè)計(jì).電力電子技術(shù),,2002,(6) 
    [4] ADI. Single-Chip ,DSP-Based High Performance Motor Controller ADMC401. Analog Devices ,1999.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。