Modbus協(xié)議是MODICON公司1979年為自己的PLC產(chǎn)品而推出的一個開放式現(xiàn)場總線通信協(xié)議,是應(yīng)用于電子控制器上的一種通用語言,是一種有效支持控制器之間以及控制器經(jīng)網(wǎng)絡(luò)(如以太網(wǎng))與其他設(shè)備之間通信的協(xié)議,現(xiàn)已成為一種通用工業(yè)標(biāo)準(zhǔn),不同廠商生產(chǎn)的控制設(shè)備可以通過該協(xié)議連成工業(yè)網(wǎng)絡(luò),集中監(jiān)控。
Modbus協(xié)議定義了一種通用的消息結(jié)構(gòu),描述了控制器請求訪問其他設(shè)備的一個過程,包括如何回應(yīng)來自其他設(shè)備的請求,以及怎樣偵測錯誤并記錄,并制定了消息域和內(nèi)容的公共格式。當(dāng)在此網(wǎng)絡(luò)上通信時,每個控制器都擁有一個惟一的地址,并識別按地址發(fā)來的消息,最終決定要產(chǎn)生何種動作。如果需要回應(yīng),則控制器將生成反饋信息并按此協(xié)議格式回應(yīng)。
3.3 Modbus RTU通信模式
Modbus協(xié)議包括2種傳輸模式,即ASCII碼和RTU模式。控制器可以設(shè)置為2種傳輸模式中的任何一種在標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò)上通信。本設(shè)計采用RTU傳輸模式。
當(dāng)控制器設(shè)備選用RTU模式通信時,消息中的每個字節(jié)包含2個4位的十六進制字符。這種方式的主要優(yōu)點是:在同樣的波特率下,能夠比ASCII碼方式傳送更多的數(shù)據(jù)。Modbus RTU主機消息幀結(jié)構(gòu)如表1所示。
![c.jpg](/uploads/allimg/111219/10312C3E-0.jpg)
其中,地址碼代表從機地址,設(shè)置為0,表示廣播消息。功能碼表示主機指令,包括讀/寫控釗狀態(tài)、讀/寫寄存器等。數(shù)據(jù)區(qū)則為讀/寫寄存器地址及讀取位數(shù)。RTU模式采用CRC校驗。
相應(yīng)的從機返回消息幀結(jié)構(gòu)與主機消息幀結(jié)構(gòu)類似,但是附加了數(shù)據(jù)字節(jié)長度,如表2所示。
![d.jpg](/uploads/allimg/111219/10312B925-1.jpg)
3.4 MCX314運動控制芯片控制
MCU通過16位數(shù)據(jù)/地址總線與MCX314進行通信,可選擇8位/16位數(shù)據(jù)總線格式。本設(shè)計采用了8位數(shù)據(jù)總線格式,在16位總線中分配8位為數(shù)據(jù)線,4位為地址線,4位為時序控制線。
MCX314是寄存器控制型芯片,對其所有操作都基于寄存器的讀/寫,按照其發(fā)送時序,先發(fā)送地址,后讀取數(shù)據(jù),其基本讀/寫函數(shù)實現(xiàn)如下:
讀8位寄存器函數(shù)(寫寄存器函數(shù)與其類似,只需寫完置位P7):
![e.jpg](/uploads/allimg/111219/10312CK3-2.jpg)
MCX314內(nèi)部寄存器均為16位,基于以上讀8位寄存器函數(shù)實現(xiàn)讀16位寄存器函數(shù)(寫寄存器函數(shù)類似):
![f.jpg](/uploads/allimg/111219/10312A132-3.jpg)
由于程序分別在串口中斷與主函數(shù)處理指令過程中調(diào)用MCX314讀/寫寄存器函數(shù),可能導(dǎo)致函數(shù)重入,造成寄存器讀/寫數(shù)據(jù)紊亂,因此在函數(shù)內(nèi)部定義標(biāo)志位,設(shè)計讀/寫函數(shù)為原子操作,防止函數(shù)重入。
基于以上讀/寫寄存器函數(shù)可對MCX314進行一系列操作控制,包括寫入數(shù)據(jù)、讀取數(shù)據(jù)、驅(qū)動指令與插補指令。在本設(shè)計中,寫入數(shù)據(jù)及讀取數(shù)據(jù)分別對應(yīng)參數(shù)設(shè)置與系統(tǒng)狀態(tài)的實時顯示;驅(qū)動指令用于鉆孔運動與啄鉆運動;插補指令用于限定牙距的螺絲攻牙運動。通過上述指令實現(xiàn)以下系統(tǒng)操作函數(shù),即運動芯片初始化函數(shù)、原點搜尋運動函數(shù)、定距手動鉆孔函數(shù)、自動鉆孔函數(shù)、啄鉆函數(shù)、手動攻牙函數(shù)、自動攻牙函數(shù)等。
4 結(jié)語
利用Modbus串口協(xié)議開放、透明、開發(fā)容易等優(yōu)點,結(jié)合MCX314運動控制芯片的高精度可控性,以及編程方便的總線接口方式,設(shè)計出成本低、操作簡單、人機交互界面友好的觸摸屏自動鉆孔系統(tǒng)。本系統(tǒng)對位置與速度控制可分別精確至1×10-3mm與1×10-3mm/s,最高速度分別為4 000 mm/s與4 000 rad/s,最大鉆孔深度可達8 000 mm,達到了工業(yè)生產(chǎn)中進行自動鉆孔或螺絲攻牙的性能指標(biāo),并在工業(yè)生產(chǎn)中通過初步測試,工作穩(wěn)定。由于Modbus協(xié)議具有網(wǎng)絡(luò)控制能力,在實際工業(yè)生產(chǎn)中可并聯(lián)多個鉆孔系統(tǒng)共用一個觸摸屏,通過觸摸屏同時控制不同系統(tǒng)進行不同操作,或者采用廣播模式控制多個系統(tǒng)進行同一操作,進一步實現(xiàn)低成本和自動化。
用戶評論
共 0 條評論