• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      淺談Modbus協議在智能儀表中的實現路徑

      2019-10-17 11:50:16王新王鳳翔王燕郭學亮
      中國設備工程 2019年19期
      關鍵詞:智能儀表波特率字節(jié)

      王新,王鳳翔,王燕,郭學亮

      (中煤科工集團唐山研究院有限公司,河北 唐山 063012)

      工業(yè)自動化程度越來越高,Modbus 串行通信協議以其先進性、開放性、成熟性的特點得到了廣泛應用,當前PLC(可編程邏輯控制器)及組態(tài)軟件都支持此協議。智能儀表作為自動化控制的源頭,支持此協議,將大大降低自動化工程設計人員的開發(fā)難度。

      1 Modbus 協議簡介

      Modbus 協議是定義在OSI 網絡模型第7 層(應用層)的報文發(fā)送協議,它可以在不同類型的總線或網絡上連接的設備之間進行“客戶端/服務器”式的通信,它是主從式的串行通信協議。Modbus 協議利用RS485 或RS232 總線進行數據傳輸,同一條總線上只允許1 臺主機,從機數量從1 臺最多至247 臺,并且從機的地址是唯一的。Modbus 協議由主機發(fā)送命令及從機返回數據組成,有兩種傳輸模式:Modbus-RTU模式及Modbus-ASCII 模式。

      1.1 Modbus-RTU 模式

      數據以數值型式傳輸,其幀格式如下:

      主機發(fā)送命令(表1)。

      表1

      從機返回數據(表2)。

      1.2 Modbus-ASCII 模式

      數據以16 進制數值再轉換為ASCII 碼型式傳輸,傳輸為字符‘0’~‘9’及字符‘A’~‘F’(即實際數據為16進制0x30~0x39 及0x41~0x46),其幀格式如下:

      表2

      表3

      表4

      主機發(fā)送命令(表3)。

      從機返回數據(表4)。

      Modbus 數據幀通過RS485 或RS232 總線進行串行通信,數據以字節(jié)型式傳輸,傳輸時低位在前,高位在后,串行通信采用固定波特率進行數據傳輸,常用波特率為2400bps、4800bps、9600bps、19200bps 等,本例中波特率采用最常用的9600bps(即每秒傳輸9600 位,每位傳輸時間約為104.167μs),8 位數據位,無校驗位,1 位停止位,則每個字節(jié)數據為10 位,每秒傳輸960 個字節(jié)。

      2 單片機選用及編程注意事項

      本例所用的智能儀表主芯片為TI 公司生產的MSP430F5438 超低功耗Flash 型單片機,擁有4 路USCI_A 型模塊可進行UART 串行通信,本例為了同時實現RTU 通信及ASCII 通信,使用USCI_A1 模塊進行RTU 模式編程,USCI_A3 模塊進行ASCII 模式編程,系統(tǒng)主時鐘采用12MHz晶振,其優(yōu)點是通信波特率在(600~19200)bps 范圍內,時鐘分頻為整數,不需要做步進調整,不會產生誤碼。數據接收采用中斷方式,接收完畢后,單片機對接收數據進行處理,判斷是否為本機命令(由從機地址碼區(qū)分),進行校驗驗證數據準確性,數據正確則根據命令返回相應數據,否則丟棄準備下一次接收。

      在編程中應當注意以下幾點:

      (1)Modbus 的寄存器地址為1~9999,但實際發(fā)送數據為起始地址減1,例如從起始地址1 開始返回數據,則發(fā)送數據為0x00、0x00(ASCII 為0x30、0x30、0x30、0x30)。

      (2)Modbus 協議規(guī)定16 位數據采用高字節(jié)優(yōu)先傳輸,以本文的儀表通信為例,主機向地址為1的從機發(fā)送命令讀取起始地址為1 開始連續(xù)2 個寄存器數據,則發(fā)送命令為:

      RTU 模 式:0x01 0x03 0x00 0x00 0x00 0x02 0xC4 0x0B(8 字節(jié))

      返回數據:0x01 0x03 0x04 0x81 0x0A 0x43 0x34 0xC2 0xEA(9 字節(jié))

      返回的四字節(jié)數據為float 型,由于Modbus 協議高字節(jié)先傳輸,所以數據實際為0x4334810A,即為浮點數180.504059。

      ASCII 模 式:0x3A 0x30 0x31 0x30 0x33 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x32 0x46 0x41 0x0D 0x0A(17 字節(jié))

      返回數據:0x3A 0x30 0x31 0x30 0x33 0x30 0x38 0x38 0x31 0x30 0x41 0x34 0x33 0x33 0x34 0x46 0x32 0x0D 0x0A(19 字節(jié))

      返回的8 個字節(jié)數據代表一個float 型數據,數據需先進行16 進制處理為0x81 0x0A 0x43 0x34,再進行高低字節(jié)調換為0x4334810A,即浮點數180.504059。

      (3)以上為正常的4 字節(jié)數據處理方式,還有一種數據傳輸方式稱為互換模式,即將存儲器中存儲的4 字節(jié)數據完全按照從最高字節(jié)到最低字節(jié)輸出,例如,內存中的數據為0x0A(最低位)0x81 0x34 0x43(最高位),則輸出為0x43 0x34 0x81 0x0A。某些智能儀表采用此種方式傳輸數據。

      (4)Modbus 協議規(guī)定幀與幀之間的時間間隔應>3.5個位周期,數據傳輸位間隔應<1.5 個位周期,以9600bps通信速率為例,則幀間隔應>364.585μs,位間隔<165.25μs。編程時應充分考慮數據處理所占時間,必要時增加延時。

      3 與上位機通信

      本例中以PC 機為主機,采用Modscan32 這款成熟的Modbus 通信測試軟件進行數據收發(fā),智能儀表作為從機接收PC 機命令,根據命令返回相應數據,PC 機和智能儀表之間通過RS485 總線連接。部分調試界面,見圖1、圖2。

      圖2 Modbus-ASCII 通信界面

      通過以上調試界面,實現了PC 機和智能儀表之間的modbus 通信,說明單片機嵌入式程序編寫是正確的。

      4 結語

      Modbus 協議是工業(yè)控制領域中最通用、最開放的通信協議之一,得到了眾多廠商的支持。通過Modbus 協議,不同廠商的設備可以方便地連成工業(yè)網絡,進行相互通信。Modbus 的兩種傳輸模式相比,ASCII 方式更直觀,但傳輸相同數據需要的字節(jié)數更多,效率低;RTU 模式傳輸字節(jié)數少,效率更高,更適用于測控系統(tǒng)中數據的實時傳輸。

      猜你喜歡
      智能儀表波特率字節(jié)
      No.8 字節(jié)跳動將推出獨立出口電商APP
      智能儀表的抗干擾和故障診斷研究
      CAN 總線波特率自適應程序設計
      智能制造(2020年5期)2020-07-03 06:24:00
      No.10 “字節(jié)跳動手機”要來了?
      智能儀表技術及工業(yè)自動化應用發(fā)展分析
      數碼世界(2018年6期)2018-12-25 10:43:02
      基于FPGA的異步串行通信波特率容錯設計
      電子測試(2018年7期)2018-05-16 06:27:18
      智能儀表在動態(tài)稱重系統(tǒng)中的應用
      智能儀表在工業(yè)自動化控制中的運用研究
      電子制作(2017年14期)2017-12-18 07:08:00
      簡談MC7字節(jié)碼
      C*Core芯片SCI串口波特率容限優(yōu)化
      封丘县| 卢氏县| 成武县| 连城县| 会泽县| 永安市| 镇宁| 大城县| 巴彦县| 镇康县| 会东县| 阳西县| 西青区| 通许县| 镇坪县| 兴国县| 牟定县| 景德镇市| 麻江县| 玉山县| 钟山县| 长沙市| 新巴尔虎左旗| 新晃| 清丰县| 巴马| 游戏| 宜君县| 邛崃市| 平舆县| 阿巴嘎旗| 阿克| 哈巴河县| 饶阳县| 阜新市| 十堰市| 大同市| 湄潭县| 松江区| 巴青县| 毕节市|