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