直播推薦
企業(yè)動態(tài)
- 上汽集團、智己汽車走訪易格斯:共探工程塑料創(chuàng)新應(yīng)用與汽車產(chǎn)業(yè)升級
- 園區(qū)網(wǎng)絡(luò)難不難,華為F5G-A有新招
- 力安科技受邀參加2025養(yǎng)老機構(gòu)+物業(yè)消防安全管理創(chuàng)新論壇
- 以光惠算,一場圍繞園區(qū)網(wǎng)的“生產(chǎn)力”革命
- 無光,不AI,如何抓住F5G-A萬兆全光園區(qū)的百億商機?
- 電解鋁行業(yè)智能化轉(zhuǎn)型再加速!廣域銘島全廠智能決策中樞正式啟用
- 京東工業(yè)持續(xù)強化拓品增商 2025合作伙伴大會走進廣州
- 電池隔爆高低溫試驗箱:新能源安全測試的“守護者”
推薦展會
在前兩期的《世紀星月刊》中已經(jīng)詳細介紹了Modbus的基本概念和類型,作為工業(yè)控制系統(tǒng)中的一種通用協(xié)議,為很多儀表廠家所使用。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進行集中監(jiān)控。雖然Modbus有其標準的傳輸格式,但在一些細節(jié)方面,各個廠家所支持的Modbus協(xié)議還是有些差別。
過去,在我們?yōu)榭蛻糇鰰r常會發(fā)生這樣的情況,由于儀表支持的Modbus協(xié)議與我們軟件所支持的有一些細微區(qū)別,就會導(dǎo)致世紀星讀出的數(shù)據(jù)與實際數(shù)據(jù)不符合。要解決這個問題,就必須重新定制一個驅(qū)動提供給客戶進行更新,這樣一來,對于客戶或者對于我們?nèi)藛T都會耽誤一定的時間,而且,某些客戶的現(xiàn)場沒有條件上網(wǎng)進行驅(qū)動更新,這樣就給客戶造成了更大的不便。
為解決這一問題,我們在總結(jié)常遇問題的基礎(chǔ)上,對世紀星中的Modbus驅(qū)動進行了改善,可以通過Modbus設(shè)備初始化字設(shè)置直接解決以下三個問題:
1)16位整數(shù)的字節(jié)順序的調(diào)整;
2)32位整數(shù)(或?qū)崝?shù))字順序的調(diào)整;
3)寫單個寄存器時所使用功能碼的選擇。
圖1 Modbus設(shè)備設(shè)置初始化字的格式
如圖1所示,初始化字格式為(XXX),每個X的值為1或者為0,括號為半角符號,當(dāng)初始化字設(shè)置為空時,系統(tǒng)默認為(000)。
*,16位整數(shù)的字節(jié)順序的調(diào)整:
*個X:值為0時,表示16位整數(shù)傳送時高字節(jié)在前,低字節(jié)在后;值為1時,表示16位整數(shù)傳送時低字節(jié)在前,高字節(jié)在后。
例:設(shè)備傳送的16位整數(shù)(即兩個字節(jié)):12H 34H。當(dāng)X值為0時,賦值給變量的數(shù)據(jù)為1234H(十進制數(shù)為4660);當(dāng)X值為1時,賦值給變量的數(shù)據(jù)為3412H(十進制數(shù)為13330)。
第二,32位整數(shù)(或?qū)崝?shù))字順序的調(diào)整:
第二個X:值為0時,表示32位數(shù)據(jù)低字在前,高字在后;值為1時,表示32位數(shù)據(jù)高字在前,低字在后。當(dāng)讀取的數(shù)據(jù)為32位的長整型或浮點數(shù)時,要搭配*個X和第二個X配置讀取數(shù)據(jù)的字節(jié)順序。
以長整型為例:
設(shè)備傳送的32位整數(shù)(即四個字節(jié)):12H 34H 56H 78H。
當(dāng)XX值為00時,賦值給變量的數(shù)據(jù)為56781234H(十進制數(shù)為1450709556);
當(dāng)XX值為01時,賦值給變量的數(shù)據(jù)為12345678H(十進制數(shù)為305419896);
當(dāng)XX值為10時,賦值給變量的數(shù)據(jù)為78563412H(十進制數(shù)為2018915346);
當(dāng)XX值為11時,賦值給變量的數(shù)據(jù)為34127856H(十進制數(shù)為873625686)。
第三,寫單個寄存器時所使用功能碼的選擇:
第三個X:X值為0時,使用06(06H)號功能碼向設(shè)備寫入單字整數(shù)數(shù)據(jù);X值為1時,使用16(10H)號功能碼像設(shè)備寫入單字整數(shù)數(shù)據(jù)。
例如:上位機要將設(shè)備地址為2,寄存器地址為5的16位寄存器設(shè)置為18(12H):
當(dāng)X值為0時,上位機發(fā)送的命令為:02 06 00 05 00 12 19 F5;
*個字節(jié):02,表示設(shè)備地址;
第二個字節(jié):06,為功能碼字節(jié),06號功能碼的作用為預(yù)置單個16位寄存器;
第三第四個字節(jié):0005,表示的是上位機發(fā)送命令所預(yù)置的寄存器的地址;
第五第六個字節(jié):0012H,表示上位機要將地址為5的16位寄存器設(shè)置為18(12H);
第七第八個字節(jié):19 F5,為CRC校驗字節(jié)。
當(dāng)X值為1時,上位機發(fā)送的命令為:02 10 00 05 00 01 02 00 12 70 D3。
*個字節(jié):02,表示設(shè)備地址;
第二個字節(jié):10H(十進制為16),為功能碼字節(jié);
第三第四個字節(jié):0005,表示的是上位機發(fā)送命令所預(yù)置的多個寄存器的起始地址為0005H;
第五第六個字節(jié):0001,表示上位機要進行設(shè)置的寄存器個數(shù);
第七個字節(jié):02,表示后面跟著的2個字節(jié)數(shù)據(jù)是要預(yù)置到寄存器中去的;
緊跟在第七個字節(jié)后的兩個字節(jié)便是要預(yù)置到寄存器中的數(shù)據(jù)了;
zui后兩個字節(jié):9C08,為CRC校驗字節(jié)。
當(dāng)初始化字為空或者三個X值都為0時,世紀星采用原版的Modbus驅(qū)動解析數(shù)據(jù)的方式進行存取數(shù)據(jù)。因此用戶在使用Modbus驅(qū)動進行通信時,可以暫時不設(shè)置初始化字,當(dāng)取出的數(shù)據(jù)與實際的數(shù)據(jù)相差較大時,再參考這篇文章進行調(diào)試,或者可直接世紀星的人員幫助您調(diào)試。
到此,關(guān)于Modbus的內(nèi)容先暫告一段落,謝謝您的關(guān)注。
免責(zé)聲明
- 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://www.tzhjjxc.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
- 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
SAMPE中國第二十屆國際先進復(fù)合材料展覽會
展會城市:北京市展會時間:2025-06-18