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
我们看下报文(从设备收到的)
在这里插入图片描述
如图,红色圈出的是写命令的消息

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

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