陳 凱
摘要:本文提出了一套基于Modbus協(xié)議的總線控制系統(tǒng),分析了Modbus協(xié)議的特點,介紹了Modbus協(xié)議的內(nèi)容及通信過程,給出了系統(tǒng)的軟件實現(xiàn)方法。文中試圖將現(xiàn)場總線理論應(yīng)用于電火花加工機床,并最終通過使用Modbus協(xié)議實現(xiàn)各設(shè)備之間的互聯(lián)。
關(guān)鍵詞:Modbus 現(xiàn)場總線 電火花 RTU
中圖分類號:G201文獻(xiàn)標(biāo)識碼:A文章編號:1006-8937(2009)03-0074-01
國內(nèi)的大多數(shù)電火花設(shè)備由于實時性等方面的要求,控制系統(tǒng)均是基于dos環(huán)境設(shè)計,這種系統(tǒng)能滿足電加工的基本要求,但也大大影響了人機交互的改進以及遠(yuǎn)程通信等現(xiàn)代控制的要求。模塊化結(jié)構(gòu)可裁減性強,便于滿足不同用戶的需求,是系統(tǒng)深入發(fā)展的良好基礎(chǔ)。專業(yè)化的信號采集設(shè)備及檢測裝置成為系統(tǒng)穩(wěn)定和可靠運行的保障。應(yīng)用網(wǎng)絡(luò)技術(shù),可做到信息處理綜合化、智能化。與此同時,VB、VC以及各種組態(tài)軟件的發(fā)展為人機界面及總線控制的發(fā)展的提供了良好的開發(fā)環(huán)境,使我們能夠設(shè)計出更為合理及人性化的系統(tǒng)。
1控制系統(tǒng)結(jié)構(gòu)
現(xiàn)場總線控制系統(tǒng)一般采用上位計算機結(jié)合下位智能儀表來實現(xiàn)控制功能。在本系統(tǒng)中,由于系統(tǒng)的檢測裝置簡單易用,因此采用微控制器來讀取信號并最終傳輸給上位機。一般來說,總線系統(tǒng)主要包括變送器,總線和檢測站。在本套系統(tǒng)中,微控制器和檢測裝置成為智能儀表即變送器,它作為從機使用,但確是系統(tǒng)的核心部件,而上位機即檢測站主要完成人機交互的任務(wù)以及一些優(yōu)化、復(fù)雜計算和控制的功能。個性化的人機界面以及標(biāo)準(zhǔn)化的總線結(jié)構(gòu)設(shè)計,可方便的擴展系統(tǒng)的控制功能。
整套系統(tǒng)結(jié)構(gòu)圖如圖1所示,系統(tǒng)最主要包括一個服務(wù)器,一臺pc機,三個微控制器及相關(guān)檢測設(shè)備。
2 Modbus協(xié)議
Modbus協(xié)議是OSI模型第七層上的應(yīng)用層報文傳輸協(xié)議,它在連接至不同類型總線或網(wǎng)絡(luò)的設(shè)備之間提供客戶機/服務(wù)器通信。互聯(lián)網(wǎng)組中已經(jīng)保留TCP/IP系統(tǒng)端口502用以訪問Modbus,Modbus協(xié)議已經(jīng)成為一種流行的工業(yè)控制傳輸標(biāo)準(zhǔn)。
2.1協(xié)議內(nèi)容
Modbus協(xié)議定義了消息與格式和內(nèi)容的公共格式,主要采用命令/應(yīng)答方式,每一種命令報文都對應(yīng)著一種應(yīng)答報文,命令報文由主站發(fā)出,當(dāng)從站收到后,就發(fā)出相應(yīng)的應(yīng)答報文進行相應(yīng)。Modbus的信息幀包括站點、字節(jié)長度、功能碼、操作地址、操作數(shù)據(jù)、CRC校驗值等。
2.2通信過程
Modbus主從節(jié)點之間通信過程大致為:
從節(jié)點通過特定的端口與主節(jié)點建立連接,等待接收主節(jié)點發(fā)送的請求幀信號。
主節(jié)點根據(jù)實際需要達(dá)到的目的選擇合適的功能,將其對應(yīng)的功能代碼保存在ADU的功能代碼域,把必要的參數(shù)和子功能代碼保存在數(shù)據(jù)域中,并將傳輸標(biāo)志、協(xié)議標(biāo)志、數(shù)據(jù)長度等存放在標(biāo)志域中,從而組成一個完整的數(shù)據(jù)幀發(fā)送到從節(jié)點。
從節(jié)點對收到的請求幀經(jīng)過錯誤檢測后,根據(jù)協(xié)議的規(guī)定將其分解成基本功能單元,并按照功能代碼的要求完成特定的操作,最后還要返回一個功能回應(yīng)信號。如果請求幀或某一步操作出錯,就返回一個錯誤報告。完備的出錯應(yīng)答是Modbus的一個特點,這有利于通信主節(jié)點判斷通信的錯誤原因,從保證通信可靠進行,提高通信成功率。
3 軟件實現(xiàn)
軟件實現(xiàn)時包括:初始化關(guān)鍵字,包括波特率設(shè)置,數(shù)據(jù)位數(shù),停止位數(shù),奇偶校驗?zāi)J降?總線上所有的master及slave的以上設(shè)置應(yīng)完全一致,Modbus編程主要需處理好校驗碼的生成及數(shù)據(jù)包開始標(biāo)志的檢測。
3.1地址定義
通信程序必須處理好數(shù)據(jù)報開始的標(biāo)志,因為每次主機發(fā)送數(shù)據(jù)時,所有的從機都會接收到信息,但只有地址相同的從機才會響應(yīng),因此地址的判別至關(guān)重要。在兩個數(shù)據(jù)包之間Modbus協(xié)議將提供3.5幀的空閑時間,此時,總線上所有的從機要做好接收準(zhǔn)備,一旦主機有數(shù)據(jù)包發(fā)出,從機立刻接受此數(shù)據(jù)。這當(dāng)中的第1幀即為地址幀。從機記錄該地址并判斷是否執(zhí)行該功能。通常,程序中會設(shè)置一個3.5幀計時器,當(dāng)線路上有數(shù)據(jù)時計時器不計數(shù),一旦線路空閑則計時器計數(shù)開始,直至該計時器停止計數(shù),這時線路上開始有數(shù)據(jù)包發(fā)出,這第一幀數(shù)據(jù)即為地址幀。值得注意的是,3.5幀時間并非常數(shù),應(yīng)根據(jù)傳輸速率及幀校驗方式而定。
3.2功能碼定義
客戶所請求的服務(wù)和服務(wù)器所提供的服務(wù)均通過功能碼(Function Code)標(biāo)識。Modbus 功能碼分三種,即公共功能碼、用戶自定義功能碼和保留功能碼,公共功能碼是已定義的功能碼,保證其唯一性,包含現(xiàn)存已定義的公共指配功能碼和未來使用的未指配保留功能碼。用戶定義功能碼有兩個定義范圍,即65至72和十進制100至110,用戶沒有Modbus組織的任何批準(zhǔn)就可以選擇和實現(xiàn)一個功能碼。保留功能碼是一些公司對傳統(tǒng)產(chǎn)品通常使用的功能碼,并且對公共使用是無效的功能碼。
3.3校驗碼的生成
根據(jù)傳輸模式的不同,系統(tǒng)需要產(chǎn)生不同的校驗碼(check sum),ASCII模式采用LRC校驗(Longitudinal Redundancy Check)而RTU采用CRC校驗(Cyclical Redundancy Check),實現(xiàn)這兩種方法的函數(shù)均可以在相關(guān)資料中找到。
4總結(jié)
通過上述系統(tǒng),希望能與先進控制設(shè)備實現(xiàn)對接,從而提高系統(tǒng)的改進速度,使機床整體性能得到提升。Modbus這項協(xié)議在電火花加工機床的廣泛應(yīng)用,并在加工中取得了很好的效果,提高了整體機床的自動化程度。
參考文獻(xiàn):
[1] 仲吉武.電火花精密整形與ELID精密磨削試驗研究[D].天津大學(xué),2006.
[2] 朱小襄.Modbus通信協(xié)議及編程[J].電子工程師,2005.
[3]宗福來.電火花線切割變厚度加工自適應(yīng)控制技術(shù)的研究[D].哈爾濱工業(yè)大學(xué),2006.
[4] 楊大勇.電火花成形加工數(shù)控系統(tǒng)的研究[J].電加工與模具,2003,(1).
[5] 鮑吉龍,葉平.工業(yè)監(jiān)控系統(tǒng)的網(wǎng)絡(luò)化發(fā)展[J].微計算機信息,2006,(6).
[6] 陽憲惠.現(xiàn)場總線技術(shù)及其應(yīng)用[M].北京:清華大學(xué)出版社,2000.