modbus-poll,modbus-slave用法(有關功能碼和讀寫)

最近在做modbus協議模擬,沒啥基礎,功能碼到底是怎麼設的看了好多都沒說清楚。
記錄下吧…來看看到底它怎麼讀寫的!

需要知道的前提

poll是主站,即控制者
slave是從站,即響應者
從站是不能主動給主站發消息的

安裝就不說了

很重要!!看下這個圖,01 03的功能碼才能又讀又寫!!!
功能碼指的是address的範圍而不是真的功能!!
在這裏插入圖片描述

讀取

首先我們實現一下主站讀取從站的數據
先看從站的配置
點擊setup->slave defination
在這裏插入圖片描述
這裏的function不是功能碼!不是功能碼!不是功能碼!(重要的事說三遍)
我之前在想爲什麼只有這4種好少啊,但這個其實只是設備寄存器或線圈的不同地址!

我們可以隨便選,不過主從站要一致!地址要一致!前兩個是0-1值,後兩個就隨意了

這裏用4做下示範吧(證明它不是寫數據。。。)
其他配置都默認就行不用改!

然後connection->connect,我這裏測試modbus TCP/IP的,需要串口通信的自行搜索吧。
ok之後等待主站連接
在這裏插入圖片描述
好再看主站配置,同樣setup進來,功能選4(其實可以從3x看出來是地址爲3x處的寄存器)
在這裏插入圖片描述
然後connect連接,什麼都不用改
然後他們就愉快的開始交流了~
可以隨便改改從設備寄存器的值試試看
在這裏插入圖片描述

來看下報文
Display->communication(下圖是在主站看到的)
在這裏插入圖片描述
rx即對端報文,我設置了一個自動增加,可以看到傳回來的數據都在自動增加
tx是主設備報文,不停發送查詢指令

寫入

寫入的功能在哪裏呢
首先把功能碼改成03,主從都改
主設備!
改個寄存器的值
在這裏插入圖片描述
點擊send
我們看下報文(從設備收到的)
在這裏插入圖片描述
如圖,紅色圈出的是寫命令的消息

結束!撒花★,°:.☆( ̄▽ ̄)/$:.°★

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章