Modbus測試小工具

2021-03-06 智慧樓宇技術

由於工作需要,碰到很多客戶調試modbus通訊的問題。針對在空調項目中,Modbus RTU通訊測試,這裡發一個modbus測試小工具小教程。

1,首先是用什麼工具,工欲善其事必先利其器。

1.1 軟體部分這裡推薦兩個小工具:

Modbbus poll(傳送門:https://www.modbustools.com/download.html)

大小只有2mb的工具。

功能強大,(可連結參考其他高手寫的教程

):

Modbus Poll是一個主機仿真器,用來幫助開發人員測試Modbus從設備,或者其它MOdbus協議的測試和仿真。它支持多文檔接口,即,可以同時監視多個從設備/數據域。每個窗口簡單地設定從設備ID,功能,地址,大小和輪詢間隔。你可以從任意一個窗口讀寫寄存器和線圈。如果你想改變一個單獨的寄存器,簡單地雙擊這個值即可。或者你可以改變多個寄存器/線圈值。提供數據的多種格式方式,比如浮點、雙精度、長整型(可以字節序列交換)。

狀態條顯示錯誤信息。

Modscan

大小只有1.3mb的工具。

功能和教程(

參考這裡《Modbus通信測試軟體使用說明與下載地址!》

Modscan和modbus poll都是modbus調試的簡單小工具。其實還有串口助手等其它工具,但是,Modscan和modbus poll對modbus較有針對性。

小編最先使用的是modscan,基本上操作過1次,10分鐘左右能靈活使用。

而modbus poll比modscan功能要稍微強大一點,而沒有失去易用性。所以本文,以介紹modbus poll為例。

1.2 硬體工具也是要準備的,因為Modbus RTU的485接口口,一般電腦都是沒有的。淘寶上有很多usb轉485接口的工具。

這裡推薦我平常使用的帝特D tech usb轉232接口轉換器(http://www.dtech.cn 帝特公司看到這裡,請和我談廣告業務事宜)+ 232轉485接口工具

PS:硬體工具儘量選擇可靠品牌。因為小編用過低價轉換器,識別不出數據停止位的。

1.3 安裝usb轉換器的驅動,一般購買的時候會帶光碟,或書明書、官網上有下載連結。安裝完驅動,連接usb轉換工具,打開設備管理器,確定是否安裝成功,和生成的COM接口。如下圖,生成了COM5,後面步驟要用到。

安裝Modbus poll 工具,安裝完後提示要註冊的,不註冊只能使用30天,大家百度一下怎麼註冊……

1.4 準備好測試設備的modbus點表,或者使用說明書。

上圖,關鍵信息是:

波特率:9600

傳輸方式:RTU

數據位:8

奇偶校驗:無

停止位:2

注意:一般有Even奇校驗或者Oven偶校驗,停止位1;

無奇偶校驗的,一般停止位是2,保持數據長度一致。

點位表,modbus數據有不同類型:

01: Read coil status 讀線圈狀態

02: Read input status 讀輸入狀態

03: Read holding register讀保持寄存器

04: Read input registers 讀輸入寄存器

05: Force single coil 強制單線圈

06: Preset single register 預置單寄存器

15: Force multiple coils 強制多線圈

16: Preset multiple registers 預置多寄存器

17: Report slave ID 報告從設備ID

22: Mask write register 屏蔽寫寄存器

23: Read/Write registers 讀/寫寄存器

注意,選擇測試的數據,應該是比較有代表性的,如溫度。避免選擇測試0,1狀態開關量的數據,因為不容易被識別。

這裡選擇04功能,地址1的室內溫度。

2 連接要測試的設備和usb轉換工具

A,B(+,-)對接,要注意正負。測試時,儘量讀取1個設備,避免接到現場多個設備的通訊線上測試,避免現場線纜問題、某個設備壞了等幹擾測試結果。

可以測試後單個設備後,再接到多個設備的通訊線上測試。

3 Modbus poll的使用

打開modbus poll 後,選擇connection > connecting...

據設備的modbus的協議信息,填寫

協議類型:Serial Port是串口485類型,(其實還支持modbus TCP,這裡不展開了)

串口號:COM6

波特率:9600

傳輸方式:RTU

數據位:8

奇偶校驗:無

停止位:2

然後setup> read/write definition 設定讀寫設備和數據的信息

Slave ID 1 (設備地址1)

function 04(讀取數據類型 應該選04: Read input registers 讀輸入寄存器)

address 1(數據地址1)

quantity 1(同時讀取多少個數據 1)

scan rate 1000(讀取頻率,這裡1000ms是1秒)

然後會出現讀取的情況:

TX=0,Err=0,ID=1,F=03,SR=1000ms。意思是,發送0次命令,錯誤次數,從機ID,功能號,輪詢間隔。

如果通訊出錯,會在窗口第二行顯示錯誤信息,因為沒有連接設備,所以有no connection報警,

4,比較常見的問題有:

a,數據錯位,由於設備寄存器和軟體的起始位可能是0或者1,有可能產生錯1位的問題。可以針對某一兩個數據讀取正確以後,確定全部數據是否錯位(+1或者-1),本文例子中是-1的;

b,試了幾個設備都讀取不到數據,迫不得已時可以嘗試調整modbus 協議的波特率,奇偶校驗,停止位等參數……

如果真碰到工廠文檔出錯,這種萬裡挑一的問題。如本例子,就是很奇特的無奇偶校驗+1停止位。

c,如果真的碰到奇怪的現象,modbus poll工具支持把讀取的數據命令和反饋數據實時寫入excel,Display > Communication...此處是彩蛋,我也是看中這個功能,轉投modbus poll。

d,最後,解答很多人的一個問題。york的主機yvag和fcu溫控器t8600可以通過modbus連起來,聯動工作。為什麼接入第三方智能家居時,不能在這個基礎上,把第三方智能家也連到這跟通訊線上?

原因就是modbus協議,是只能1個modbus主機(master),其它設備都只能是從機(slave)。只有master主機可以發請求指令,從機只能被動發送反饋數據。

york的主機和fcu溫控器t8600聯動的時候,yvag主機是modbus主機,第三方智能家居也是master主機角色,因為master的唯一性,不能接入這個通訊線。

如果,把yvag冷水主機作為從機(改成接入bas模式),fcu溫控器t8600也是從機。這個時候是可以全部接入第三方智能家居系統。然而,由於yvag和t8600都是從機,不能主動互相通訊。聯動的邏輯是需要寫在第三方智能家居系統的。

點擊上方↑↑↑「智慧樓宇技術」關注

智慧樓宇技術

Michael Wong

智慧樓宇科技,包含樓控BA技術,暖通技術,暖通產品,製冷技術,甚至IBMS等相關IT技術…… 也可以參考個人博客: www.michaelwong.tech

長按識別關注

相關焦點

  • Modbus測試工具ModbusPoll與Modbus Slave使用方法
    Modbus測試工具ModbusPoll與Modbus Slave使用方法 一、介紹 Modbus Poll :Modbus主機仿真器,用於測試和調試Modbus從設備。該軟體支持ModbusRTU、ASCII、TCP/IP。
  • 濤哥帶你學習 ModBus TCP 協議 (7) – 調試工具
    本期就給大家介紹幾款濤哥常用的趁手調試工具,以饗讀者。官網地址:https://www.modbustools.com/modbus_poll.html二、Modbus SlaveModbus Slave 可以作為從站(伺服器端)測試 Modbus RTU/ASCII 和 Modbus TCP/IP 以及 Modbus UDP/IP 。
  • Modbus與第三方系統通訊
    我們現在在向大型鍋爐控制上轉型,大型鍋爐都是一爐一機的,針對我們的現在的要求不太合適,我們的特點是需要交換的數據量小最多兩三百點,但是要求速度快。我們目前的通訊方式是用pc和第三方系統通訊然後pc和PLC通訊,pc中用wincc把讀取到的數據轉寫到plc的變量中,wincc中如果腳本執行的速度過快,則影響到wincc的其他的功能,所以目前最快也就是1s的周期。
  • Modbus和TCP有什麼區別?
    【PLC總線通信技能樹】上線了目前已經更新三個課程點擊圖片進入易維通APP小程序開始學習
  • 基於Python的Modbus RTU應用示例
    為何不直接用RS232進行modbus通信呢,因為RS232只支持兩個設備之間一對一的通信,只有將RS232轉換成RS485 才能具備多個設備站點組網的能力,才可以實現遠程多機通信。python代碼中會用到modbus_tk庫,如何安裝modbus_tk請翻看《使用Python操作Ge Fanuc PLC》內容。同時代碼中需要使用到serial模塊,是一個Python操作串行埠的庫,一般安裝python時會默認安裝。
  • 西門子博途的MODBUS RTU通訊實例
    二、案例實現項目背景:本項目採用的S7-1200的擴展modbus卡,作為MODBUS RTU的接口,採集電磁流量計的瞬時流量和累計流量。(3)讀瞬時流量該流量計設置modbus(7)實際結果三、結論    在進行modbus
  • 使用Peach進行模糊測試從入門到放棄
    由於模糊測試技術具有可以充分遍歷所有輸入數據、代碼覆蓋全面、測試自動化、能夠有效地發現軟體中存在的安全問題等特點,受到信息安全中漏洞分析領域的研究人員的廣泛歡迎。目前,Fuzzing技術已經是軟體測試、漏洞挖掘領域的最有效的手段之一。Fuzzing技術特別適合用於發現0Day漏洞,也是眾多黑客或黑帽子發現軟體漏洞的首選技術。
  • 手把手教你寫Modbus-RTU協議(實戰篇)
    因為剛玩公眾號不久,很多關於運營公眾號的一些技巧真的是很匱乏,然而就在昨天早上8點發表了一篇《goto關鍵字的"那些事"》的文章,個人其實是很期待大家都能夠閱讀一下的,畢竟裡面有一些小技巧在關鍵的時候還是能夠幫到大家一把
  • 三菱PLC的另類MODBUS通訊
    前兩天做了一個小的改造項目,需要使三菱Q系列PLC和一塊LED顯示屏進行數據通訊,LED顯示屏經改造後支持RS232和RS485接口的MODBUS協議,PLC側安裝有一塊型號為QJ71C24N-R2的通訊模塊,查此模塊資料可知道此模塊提供兩個RS232物理接口CH1的CH2,可進行基於串口的無協議通訊,唯獨不能支持MODBUS協議。
  • 單片機通信uart和modbus有什麼區別
    modbus簡介   Modbus是由Modicon(現為施耐德電氣公司的一個品牌)在1979年發明的,是全球第一個真正用於工業現場的總線協議。   ModBus網絡是一個工業通信系統,由帶智能終端的可編程序控制器和計算機通過公用線路或局部專用線路連接而成。
  • 工業控制系統安全之——Modbus學習筆記
    五、MODBUS TCP 注意點5.1 主機和從機、服務端和客戶端【在modbus協議中】主機發送modbus請求,從機根據請求內容向主機返迴響應在modbus協議中,主機總是主動方,從機總是被動方。【在網絡應用中】在網絡應用中存在客戶端和伺服器端,客戶端(例如瀏覽器)發送請求到伺服器,伺服器向客戶端返回內容(例如HTML文本)。【在modbus tcp中】主機是客戶端,而從機是伺服器端。千萬不要以為伺服器端重要,主機也重要,所以主機就是伺服器端。
  • ModBus之RTU問題匯總
    四、關於modbus_RTU協議主機發送的命令的一些問題01 讀保持線圈狀態(Read coilstatus)02 讀輸入線圈狀態(Readinput status)03 讀保持寄存器(Readholding register)04 讀輸入寄存器(Readinput register)05 寫單個線圈(Forcesingle coil)06 寫單個寄存器(Presetsingle
  • Modbus 的RTU、ASCII、TCP傻傻搞不清楚?一文最全解讀
    6.1 主機和從機、服務端和客戶端【在modbus協議中】主機發送modbus請求,從機根據請求內容向主機返迴響應。在modbus協議中,主機總是主動方,從機總是被動方。【在網絡應用中】在網絡應用中存在客戶端和伺服器端,客戶端(例如瀏覽器)發送請求到伺服器,伺服器向客戶端返回內容(例如HTML文本)。【在modbus tcp中】主機是客戶端,而從機是伺服器端。千萬不要以為伺服器端重要,主機也重要,所以主機就是伺服器端。
  • 2021年軟體測試工具總結——單元測試工具
    在應用程式中,單元是具有一個或多個輸入和單個輸出的軟體中最小可測試部分。單元測試是一種測試軟體代碼單元的方法,通常包括一個或兩個輸入,產生一個輸出。
  • 2021年軟體測試工具總結——性能測試工具
    >JMeter 是 Apache 組織開發的基於 Java 的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於 Web 應用測試,但後來擴展到其他測試領域。它可以用於測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、資料庫、FTP 伺服器等等。 JMeter 可以用於對伺服器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。
  • 測試工具道場2:自動化測試工具Katalon
    確實,Katalon是一款優秀的自動化測試工具。不過,它在全球的自動化測試工具排行榜中連續數年只是第二,佔據第一位的是Selenium。順便說,老牌商業工具 UFT(QTP)在該榜單上只排到了第三。Katalon Studio 是2015年才推出的一款開源的自動化測試框架,說它是自動化測試工具界的新秀,一點也不為過。
  • 安卓開發測試小工具-adb
    adb的全稱為Android Debug Bridge,它是是Android SDK裡的一個輔助工具,PC可以通過adb工具對手機或模擬器進行各種操作,如安裝軟體、系統升級、運行shell命令等。3.驗證:在運行-cmd-輸入adbADB基本命令在開發或者測試的過程中,我們可以通過 adb 來管理多臺設備,其一般的格式為:adb [-e | -
  • 2021年軟體測試工具總結——模糊測試工具
    American Fuzzy Lop(AFL)AFL是一款開源的模糊測試工具,是當今使用最廣泛的Fuzzer,這個工具在程序執行前對程序源碼進行插樁(instrumentation),以便在程序執行過程中實時獲取程序的執行情況。AFL採用遺傳算法對程序的輸入進行變異能夠在程序運行的時候注入自己的代碼, 然後自動產生測試用例進行模糊測試。
  • 軟體測試工具有哪些?10款常見的軟體測試工具推薦
    軟體測試工具分為自動化軟體測試工具和測試管理工具。自動化軟體測試工具存在的價值是為了提高測試效率,用軟體來代替一些人工輸入。測試管理工具是為了復用測試用例,提高軟體測試的價值。一個好的軟體測試工具和測試管理工具結合起來使用將會使軟體測試效率大大的提高。那麼軟體測試工具有哪些呢?
  • 三菱FX5U通過485接口與IAI電缸進行modbus通訊實例講解
    右側的FX5U是外購設備的控制器,看它的485接口就閒置的,就研究了一下IAI電缸的modbus通訊,下面介紹下怎麼用。PLC編程因為我是IO控制的,接線如下,選擇輸出指令No.1控制器就會走到我示教好的位置1,它是27.23mm的位置主要是靠IO選擇,為了實現方便調試功能,我只要通過modbus通訊實現2個功能就行了。