技術頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網 > 技術頻道 > 應用方案 > 世紀星標準Modbus協(xié)議驅動揭秘——設備初始化字設置技巧

世紀星標準Modbus協(xié)議驅動揭秘——設備初始化字設置技巧

時間:2010-05-24 16:07:04來源:wuyue

導語:?雖然Modbus有其標準的傳輸格式,但在一些細節(jié)方面,各個廠家所支持的Modbus協(xié)議還是有些差別。

   在前兩期的《世紀星月刊》中已經詳細介紹了Modbus的基本概念和類型,作為工業(yè)控制系統(tǒng)中的一種通用協(xié)議,為很多儀表廠家所使用。有了它,不同廠商生產的控制設備可以連成工業(yè)網絡,進行集中監(jiān)控。雖然Modbus有其標準的傳輸格式,但在一些細節(jié)方面,各個廠家所支持的Modbus協(xié)議還是有些差別。
      過去,在我們?yōu)榭蛻糇黾夹g支持時常會發(fā)生這樣的情況,由于儀表支持的Modbus協(xié)議與我們軟件所支持的有一些細微區(qū)別,就會導致世紀星讀出的數(shù)據(jù)與實際數(shù)據(jù)不符合。要解決這個問題,就必須重新定制一個驅動提供給客戶進行更新,這樣一來,對于客戶或者對于我們技術支持人員都會耽誤一定的時間,而且,某些客戶的現(xiàn)場沒有條件上網進行驅動更新,這樣就給客戶造成了更大的不便。
      為解決這一問題,我們在總結常遇問題的基礎上,對世紀星中的Modbus驅動進行了改善,可以通過Modbus設備初始化字設置直接解決以下三個問題:
  1)16位整數(shù)的字節(jié)順序的調整;
  2)32位整數(shù)(或實數(shù))字順序的調整;
  3)寫單個寄存器時所使用功能碼的選擇。

      初始化字格式為(XXX),每個X的值為1或者為0,括號為半角符號,當初始化字設置為空時,系統(tǒng)默認為(000)。
      第一,16位整數(shù)的字節(jié)順序的調整:
      第一個X:值為0時,表示16位整數(shù)傳送時高字節(jié)在前,低字節(jié)在后;值為1時,表示16位整數(shù)傳送時低字節(jié)在前,高字節(jié)在后。
      例:設備傳送的16位整數(shù)(即兩個字節(jié)):12H 34H。當X值為0時,賦值給變量的數(shù)據(jù)為1234H(十進制數(shù)為4660);當X值為1時,賦值給變量的數(shù)據(jù)為3412H(十進制數(shù)為13330)。
      第二,32位整數(shù)(或實數(shù))字順序的調整:
      第二個X:值為0時,表示32位數(shù)據(jù)低字在前,高字在后;值為1時,表示32位數(shù)據(jù)高字在前,低字在后。當讀取的數(shù)據(jù)為32位的長整型或浮點數(shù)時,要搭配第一個X和第二個X配置讀取數(shù)據(jù)的字節(jié)順序。


      以長整型為例:
      設備傳送的32位整數(shù)(即四個字節(jié)):12H 34H 56H 78H。
      當XX值為00時,賦值給變量的數(shù)據(jù)為56781234H(十進制數(shù)為1450709556);
      當XX值為01時,賦值給變量的數(shù)據(jù)為12345678H(十進制數(shù)為305419896);
      當XX值為10時,賦值給變量的數(shù)據(jù)為78563412H(十進制數(shù)為2018915346);
      當XX值為11時,賦值給變量的數(shù)據(jù)為34127856H(十進制數(shù)為873625686)。
      第三,寫單個寄存器時所使用功能碼的選擇:
      第三個X:X值為0時,使用06(06H)號功能碼向設備寫入單字整數(shù)數(shù)據(jù);X值為1時,使用16(10H)號功能碼像設備寫入單字整數(shù)數(shù)據(jù)。
      例如:上位機要將設備地址為2,寄存器地址為5的16位寄存器設置為18(12H):
      當X值為0時,上位機發(fā)送的命令為:02 06 00 05 00 12 19 F5;
      第一個字節(jié):02,表示設備地址;
      第二個字節(jié):06,為功能碼字節(jié),06號功能碼的作用為預置單個16位寄存器;
      第三第四個字節(jié):0005,表示的是上位機發(fā)送命令所預置的寄存器的地址;
      第五第六個字節(jié):0012H,表示上位機要將地址為5的16位寄存器設置為18(12H);
      第七第八個字節(jié):19 F5,為CRC校驗字節(jié)。
      當X值為1時,上位機發(fā)送的命令為:02 10 00 05 00 01 02 00 12 70 D3。
      第一個字節(jié):02,表示設備地址;
      第二個字節(jié):10H(十進制為16),為功能碼字節(jié);
      第三第四個字節(jié):0005,表示的是上位機發(fā)送命令所預置的多個寄存器的起始地址為0005H;
      第五第六個字節(jié):0001,表示上位機要進行設置的寄存器個數(shù);
      第七個字節(jié):02,表示后面跟著的2個字節(jié)數(shù)據(jù)是要預置到指定寄存器中去的;
      緊跟在第七個字節(jié)后的兩個字節(jié)便是要預置到指定寄存器中的數(shù)據(jù)了;
      最后兩個字節(jié):9C08,為CRC校驗字節(jié)。
      當初始化字為空或者三個X值都為0時,世紀星采用原版的Modbus驅動解析數(shù)據(jù)的方式進行存取數(shù)據(jù)。因此用戶在使用Modbus驅動進行通信時,可以暫時不設置初始化字,當取出的數(shù)據(jù)與實際的數(shù)據(jù)相差較大時,再參考這篇文章進行調試,或者可直接聯(lián)系我們世紀星的技術支持人員幫助您調試。

標簽:

點贊

分享到:

上一篇:PLC在成方機上的應用

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.surachana.com)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯(lián)網或業(yè)內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯(lián)系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業(yè)自動化與智能制造的全媒體“互聯(lián)網+”創(chuàng)新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號