基于Modbus協(xié)議與MCX314的自動(dòng)鉆孔系統(tǒng)設(shè)計(jì)
摘要:Modbus協(xié)議由于其開(kāi)放性、透明性、成本低、易于開(kāi)發(fā)等優(yōu)點(diǎn),在工業(yè)領(lǐng)域被廣泛使用。MCX314運(yùn)動(dòng)控制芯片具有高精度的可控性以及接口簡(jiǎn)單、編程方便等特點(diǎn),因此在工業(yè)生產(chǎn)中常被用于伺服電機(jī)的精確控制。介紹了Modbus串口協(xié)議的通信原理以及MCX314運(yùn)動(dòng)控制芯片的應(yīng)用,并結(jié)合兩者開(kāi)發(fā)出探作簡(jiǎn)單、控制精確、帶有良好人機(jī)交互界面的自動(dòng)鉆孔系統(tǒng),該系統(tǒng)以C8051系列單片機(jī)為核心微處理器與上位機(jī)通信并對(duì)運(yùn)動(dòng)芯片進(jìn)行控制,實(shí)現(xiàn)了通過(guò)觸摸屏對(duì)多個(gè)鉆孔機(jī)同時(shí)進(jìn)行操作的一對(duì)多控制,并在工業(yè)生產(chǎn)中通過(guò)測(cè)試。
關(guān)鍵詞:Modbus;觸摸屏;MCX314;自動(dòng)鉆孔
0 引言
在工業(yè)生產(chǎn)中經(jīng)常需要對(duì)各類器材進(jìn)行鉆孔、啄鉆,或者進(jìn)行螺絲攻牙等操作。由于此類操作工作量大、動(dòng)作繁瑣,通過(guò)人工操控效率低、精度不足,因此有必要通過(guò)一個(gè)具有良好人機(jī)交互方式的自動(dòng)鉆孔系統(tǒng)對(duì)鉆頭動(dòng)作進(jìn)行控制,實(shí)現(xiàn)鉆孔操作的簡(jiǎn)單化與自動(dòng)化。
在鉆孔過(guò)程中需要經(jīng)常觀察系統(tǒng)運(yùn)行狀態(tài)或者對(duì)運(yùn)行參數(shù)進(jìn)行修改,通過(guò)觸摸屏良好的人機(jī)交互方式可以方便快捷地實(shí)現(xiàn)這一目的?,F(xiàn)今多數(shù)觸摸屏控制是基于板載操作系統(tǒng)的平臺(tái)上,如ARM-Linux,WinCE,μC/OS等,但此類操作平臺(tái)價(jià)格較高,且開(kāi)發(fā)流程復(fù)雜,不適用于在工業(yè)中大規(guī)模生產(chǎn)使用。
本文基于Modbus串口協(xié)議的威倫觸摸屏與通用型C8051系列單片機(jī)作為硬件平臺(tái),結(jié)合MCX314運(yùn)動(dòng)控制芯片,實(shí)現(xiàn)了一個(gè)結(jié)構(gòu)簡(jiǎn)單、成本低、有良好人機(jī)交互且控制精度高的自動(dòng)鉆孔系統(tǒng)。
1 自動(dòng)鉆孔系統(tǒng)架構(gòu)
為實(shí)現(xiàn)良好的人機(jī)交互,系統(tǒng)通過(guò)觸摸屏實(shí)時(shí)顯示鉆頭運(yùn)行狀態(tài),包括位置,轉(zhuǎn)速,鉆孔速度等參數(shù),同時(shí)可以對(duì)轉(zhuǎn)速,鉆孔速度,鉆孔深度,攻牙牙距等參數(shù)進(jìn)行設(shè)置,設(shè)置完成后通過(guò)觸摸屏上的按鍵分別進(jìn)行自動(dòng)鉆孔、自動(dòng)攻牙、啄鉆等操作。
系統(tǒng)中,鉆頭運(yùn)行距離以毫米為基本單位,要求達(dá)到小數(shù)點(diǎn)后2位的精度,也即10-2mm,對(duì)鉆孔速度則以10-2mm/s為最小調(diào)節(jié)精度。最高轉(zhuǎn)速200 r/s,最大鉆孔深度為200 mm。攻牙過(guò)程中,牙距值范圍為0.01~1.99。同時(shí)要求提供可設(shè)定次數(shù)的啄鉆操作。
人機(jī)交互界面采用臺(tái)灣威倫電子公司開(kāi)發(fā)的MT6100i觸摸屏,使用Modbus協(xié)議與微處理器C8051系列單片機(jī)進(jìn)行通信。微處理器通過(guò)總線方式對(duì)MCX314運(yùn)動(dòng)控制芯片進(jìn)行控制與參數(shù)讀取。MCX314芯片通過(guò)光電耦合驅(qū)動(dòng)伺服電機(jī),帶動(dòng)鉆頭,整體系統(tǒng)框架如圖1所示。
2 系統(tǒng)主控板硬件設(shè)計(jì)
主控板以微控制器為核心,實(shí)現(xiàn)對(duì)運(yùn)動(dòng)控制芯片的控制以及與觸摸屏的串口通信,并對(duì)運(yùn)動(dòng)控制芯片的輸出脈沖進(jìn)行光電耦合,作為伺服電機(jī)的驅(qū)動(dòng)輸入。
2.1 主控板硬件框圖
主控板主要由微處理器C8051F040和MCX314運(yùn)動(dòng)控制芯片構(gòu)成,兩者通過(guò)16位數(shù)據(jù)/地址總線方式通信,MCU通過(guò)讀寫(xiě)運(yùn)動(dòng)控制芯片內(nèi)部寄存器對(duì)其輸出脈沖的開(kāi)關(guān)、速率和脈沖量等進(jìn)行設(shè)置,并經(jīng)過(guò)光電耦合電路驅(qū)動(dòng)伺服電機(jī)做出不同的動(dòng)作。主控板提供RS 232的串行接口作為MCU與觸摸屏的通信接口,通過(guò)Modbus協(xié)議由觸摸屏控制MCU對(duì)運(yùn)動(dòng)控制芯片發(fā)送指令以及讀取數(shù)據(jù)。同時(shí)還提供E2PROM作為參數(shù)存儲(chǔ)模塊,可將設(shè)定的運(yùn)行參數(shù)保存起來(lái),系統(tǒng)啟動(dòng)時(shí)先讀取E2PROM獲取參數(shù),而無(wú)需每次開(kāi)機(jī)都重新設(shè)置參數(shù)。主控板框圖如圖2所示。
2.2 主拉芯片C8051F040
C8051F040單片機(jī)是美國(guó)Cygnal公司生產(chǎn)的完全集成的混合信號(hào)系統(tǒng)級(jí)芯SoC,具有64 KB FLASH、4 352 B RAM,CAN控制器2.0,2個(gè)串行接口,5個(gè)16位定時(shí)器,12位A/D轉(zhuǎn)換器,8位A/D轉(zhuǎn)換器及12位D/A轉(zhuǎn)換器等,它內(nèi)部還帶有JTAG接口,在使用JTAG調(diào)試時(shí),所有的模擬和數(shù)字外設(shè)都可全功能運(yùn)行,使調(diào)試變得非常方便。
2.3 運(yùn)動(dòng)控制芯片MCX314
MCX314是日本NOVA公司研制的DSP運(yùn)動(dòng)控制專用芯片,通過(guò)它可以控制由步進(jìn)電機(jī)驅(qū)動(dòng)器或由脈沖型伺服電機(jī)驅(qū)動(dòng)的4軸的位置、速度和插補(bǔ),從而進(jìn)行定位控制、插補(bǔ)驅(qū)動(dòng)、任意兩軸的圓弧插補(bǔ),脈沖速度范圍在1 pps~4 Mpps,可滿足絕大多數(shù)的高速驅(qū)動(dòng)的需求。在MCX314中對(duì)應(yīng)于每軸電機(jī)都有4個(gè)在驅(qū)動(dòng)過(guò)程中使之減速停止/立即停止的外部輸入信號(hào)。通過(guò)對(duì)這些輸入信號(hào)的分配可以進(jìn)行原點(diǎn)附近的高速檢
索、原點(diǎn)檢索、編碼器Z相檢索等,該芯片還有輸入位置控制信號(hào)、報(bào)警信號(hào)和編碼器信號(hào),而且,在驅(qū)動(dòng)過(guò)程中還可以實(shí)時(shí)讀取控制器運(yùn)動(dòng)軌跡的理論位置、實(shí)際位置、驅(qū)動(dòng)速度、加速度、加減速度狀態(tài)等。
MCX314運(yùn)動(dòng)控制芯片的性能指標(biāo)如下:
(1)能夠同時(shí)控制4個(gè)軸的伺服電機(jī)或步進(jìn)電機(jī);
(2)輸出的驅(qū)動(dòng)速度范圍是從1 pps~4 Mpps;
(3)脈沖輸出頻率的精確度大于±0.1%(在CLK=16 MHz時(shí));
(4)圓?。本€插補(bǔ)中,坐標(biāo)范圍是從當(dāng)前位置到-8 388 607~+8 388 607間;
(5)圓?。本€插補(bǔ)中,插補(bǔ)精度是±0.5 LSB;
(6)圓?。本€插補(bǔ)中,插補(bǔ)速度范圍是從1 pps~4 Mpps;
(7)連續(xù)插補(bǔ)的最大驅(qū)動(dòng)速度是2 MHz。
為達(dá)到系統(tǒng)對(duì)速度及位置精度的控制要求,設(shè)計(jì)中采用了10-3mm/p的下鉆電機(jī)與10-3rad/p的轉(zhuǎn)動(dòng)電機(jī)。
3 軟件設(shè)計(jì)
3.1 系統(tǒng)軟件流程
系統(tǒng)軟件包括觸摸屏軟件與MCU程序。其中觸摸屏軟件設(shè)計(jì)包括操作界面與各寄存器地址分配,通過(guò)威倫電子公司的配套組態(tài)軟件Easy Builder系列可以方便地完成這部分軟件的設(shè)計(jì)與下載。本系統(tǒng)中觸摸屏參數(shù)設(shè)置為:PLC類型為Modbus RTU,通信口類型設(shè)置為RS 232/2W,波特率、數(shù)據(jù)位個(gè)數(shù)、效驗(yàn)位、停止位個(gè)數(shù)設(shè)置與MCU系統(tǒng)一致。MCU通過(guò)串口中斷接收觸摸屏指令,進(jìn)而控制運(yùn)動(dòng)芯片,其程序主要包括MCU初始化與運(yùn)動(dòng)芯片初始化、串口中斷程序、MCX314運(yùn)動(dòng)芯片讀/寫(xiě)驅(qū)動(dòng)、鉆孔/攻牙/啄鉆操作函數(shù)以及E2PROM讀寫(xiě)程序。MCU主函數(shù)流程如圖3所示,串口中斷程序流程如圖4所示。
3.2 Modbus協(xié)議
Modbus協(xié)議是MODICON公司1979年為自己的PLC產(chǎn)品而推出的一個(gè)開(kāi)放式現(xiàn)場(chǎng)總線通信協(xié)議,是應(yīng)用于電子控制器上的一種通用語(yǔ)言,是一種有效支持控制器之間以及控制器經(jīng)網(wǎng)絡(luò)(如以太網(wǎng))與其他設(shè)備之間通信的協(xié)議,現(xiàn)已成為一種通用工業(yè)標(biāo)準(zhǔn),不同廠商生產(chǎn)的控制設(shè)備可以通過(guò)該協(xié)議連成工業(yè)網(wǎng)絡(luò),集中監(jiān)控。
Modbus協(xié)議定義了一種通用的消息結(jié)構(gòu),描述了控制器請(qǐng)求訪問(wèn)其他設(shè)備的一個(gè)過(guò)程,包括如何回應(yīng)來(lái)自其他設(shè)備的請(qǐng)求,以及怎樣偵測(cè)錯(cuò)誤并記錄,并制定了消息域和內(nèi)容的公共格式。當(dāng)在此網(wǎng)絡(luò)上通信時(shí),每個(gè)控制器都擁有一個(gè)惟一的地址,并識(shí)別按地址發(fā)來(lái)的消息,最終決定要產(chǎn)生何種動(dòng)作。如果需要回應(yīng),則控制器將生成反饋信息并按此協(xié)議格式回應(yīng)。
3.3 Modbus RTU通信模式
Modbus協(xié)議包括2種傳輸模式,即ASCII碼和RTU模式??刂破骺梢栽O(shè)置為2種傳輸模式中的任何一種在標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò)上通信。本設(shè)計(jì)采用RTU傳輸模式。
當(dāng)控制器設(shè)備選用RTU模式通信時(shí),消息中的每個(gè)字節(jié)包含2個(gè)4位的十六進(jìn)制字符。這種方式的主要優(yōu)點(diǎn)是:在同樣的波特率下,能夠比ASCII碼方式傳送更多的數(shù)據(jù)。Modbus RTU主機(jī)消息幀結(jié)構(gòu)如表1所示。
其中,地址碼代表從機(jī)地址,設(shè)置為0,表示廣播消息。功能碼表示主機(jī)指令,包括讀/寫(xiě)控釗狀態(tài)、讀/寫(xiě)寄存器等。數(shù)據(jù)區(qū)則為讀/寫(xiě)寄存器地址及讀取位數(shù)。RTU模式采用CRC校驗(yàn)。
相應(yīng)的從機(jī)返回消息幀結(jié)構(gòu)與主機(jī)消息幀結(jié)構(gòu)類似,但是附加了數(shù)據(jù)字節(jié)長(zhǎng)度,如表2所示。
3.4 MCX314運(yùn)動(dòng)控制芯片控制
MCU通過(guò)16位數(shù)據(jù)/地址總線與MCX314進(jìn)行通信,可選擇8位/16位數(shù)據(jù)總線格式。本設(shè)計(jì)采用了8位數(shù)據(jù)總線格式,在16位總線中分配8位為數(shù)據(jù)線,4位為地址線,4位為時(shí)序控制線。
MCX314是寄存器控制型芯片,對(duì)其所有操作都基于寄存器的讀/寫(xiě),按照其發(fā)送時(shí)序,先發(fā)送地址,后讀取數(shù)據(jù),其基本讀/寫(xiě)函數(shù)實(shí)現(xiàn)如下:
讀8位寄存器函數(shù)(寫(xiě)寄存器函數(shù)與其類似,只需寫(xiě)完置位P7):
MCX314內(nèi)部寄存器均為16位,基于以上讀8位寄存器函數(shù)實(shí)現(xiàn)讀16位寄存器函數(shù)(寫(xiě)寄存器函數(shù)類似):
由于程序分別在串口中斷與主函數(shù)處理指令過(guò)程中調(diào)用MCX314讀/寫(xiě)寄存器函數(shù),可能導(dǎo)致函數(shù)重入,造成寄存器讀/寫(xiě)數(shù)據(jù)紊亂,因此在函數(shù)內(nèi)部定義標(biāo)志位,設(shè)計(jì)讀/寫(xiě)函數(shù)為原子操作,防止函數(shù)重入。
基于以上讀/寫(xiě)寄存器函數(shù)可對(duì)MCX314進(jìn)行一系列操作控制,包括寫(xiě)入數(shù)據(jù)、讀取數(shù)據(jù)、驅(qū)動(dòng)指令與插補(bǔ)指令。在本設(shè)計(jì)中,寫(xiě)入數(shù)據(jù)及讀取數(shù)據(jù)分別對(duì)應(yīng)參數(shù)設(shè)置與系統(tǒng)狀態(tài)的實(shí)時(shí)顯示;驅(qū)動(dòng)指令用于鉆孔運(yùn)動(dòng)與啄鉆運(yùn)動(dòng);插補(bǔ)指令用于限定牙距的螺絲攻牙運(yùn)動(dòng)。通過(guò)上述指令實(shí)現(xiàn)以下系統(tǒng)操作函數(shù),即運(yùn)動(dòng)芯片初始化函數(shù)、原點(diǎn)搜尋運(yùn)動(dòng)函數(shù)、定距手動(dòng)鉆孔函數(shù)、自動(dòng)鉆孔函數(shù)、啄鉆函數(shù)、手動(dòng)攻牙函數(shù)、自動(dòng)攻牙函數(shù)等。
4 結(jié)語(yǔ)
利用Modbus串口協(xié)議開(kāi)放、透明、開(kāi)發(fā)容易等優(yōu)點(diǎn),結(jié)合MCX314運(yùn)動(dòng)控制芯片的高精度可控性,以及編程方便的總線接口方式,設(shè)計(jì)出成本低、操作簡(jiǎn)單、人機(jī)交互界面友好的觸摸屏自動(dòng)鉆孔系統(tǒng)。本系統(tǒng)對(duì)位置與速度控制可分別精確至1×10-3mm與1×10-3mm/s,最高速度分別為4 000 mm/s與4 000 rad/s,最大鉆孔深度可達(dá)8 000 mm,達(dá)到了工業(yè)生產(chǎn)中進(jìn)行自動(dòng)鉆孔或螺絲攻牙的性能指標(biāo),并在工業(yè)生產(chǎn)中通過(guò)初步測(cè)試,工作穩(wěn)定。由于Modbus協(xié)議具有網(wǎng)絡(luò)控制能力,在實(shí)際工業(yè)生產(chǎn)中可并聯(lián)多個(gè)鉆孔系統(tǒng)共用一個(gè)觸摸屏,通過(guò)觸摸屏同時(shí)控制不同系統(tǒng)進(jìn)行不同操作,或者采用廣播模式控制多個(gè)系統(tǒng)進(jìn)行同一操作,進(jìn)一步實(shí)現(xiàn)低成本和自動(dòng)化。
伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理
評(píng)論