modbus-poll和modbus-slave工具的学习使用——modbus协议功能码2的解析
功能码2的功能是:读从机离散量输入信号的 ON/OFF 状态。可读取1~2000个连续的离散量输入状态,如果离散输入的数量个数不是8的整数倍,则用0填充最后数据字节的剩余位,功能码2的查询信息规定了要读的输入起始地址,以及输入信号的数量。
功能码2只能读取,不能写入,通常是拨码开关等离散信号。
下面通过modbus-poll和modbus-slave工具的进行演示
1、poll端设置:具体解释就不说了,可以详见功能码1的分析篇
2、slave端设置:具体解释就不说了,可以详见功能码1的分析篇
简要说明一下,从机地址是1,功能码设置为2,读取10个数量。主机每隔1s读取一次。
3、点击ok后,就可以通信了,如下图所示。
4、可以在slave端进行数据更新,poll端就会接受到新的数据。如下动画所示:
5、但是注意,poll端不允许设置的:modbus会提示非法操作。
6、点击查询communication之后看到真实的hex通信数据,如下:
Tx:012-01 02 00 00 00 0A F8 0D
Rx:013-01 02 02 68 01 57 B8
Tx:014-01 02 00 00 00 0A F8 0D
Rx:015-01 02 02 68 01 57 B8
Tx:016-01 02 00 00 00 0A F8 0D
Rx:017-01 02 02 68 01 57 B8
Tx:018-01 02 00 00 00 0A F8 0D
Rx:019-01 02 02 68 01 57 B8
tx端的发送数据:
01(从机地址) 02(功能码02) 00(起始地址高位) 00(起始地址低位) 00(寄存器数高位) 0A(寄存器数低位) F8(crc校验低位) 0D (crc校验高位)
rx的发送数据:
01 (从机地址)02(功能码02) 02(寄存器数为2个) 68(0110 1000) 01(0000 0001) 57(crc校验低位) B8 (crc校验高位)
字节数分析如下:
总结:功能码2只能读取,不能写入,数据是根据位来保存的,因此通信效率比较高的。
ps:sreentogif在win7上面不能运行,因此使用了gifcam,但是鼠标没有录制进去,不是很完美。
win10可以用sreentogif。
相关文章
- verdi bin工具
- 这儿有一个使你网页性能提升10倍的工具
- Bootstrap3.0学习第二十一轮(JavaScript插件——工具提示)
- Ajax学习(二):模仿jQuery的Ajax封装工具
- aar上传maven库工具
- 《从零开始学Swift》学习笔记(Day4)——用Playground工具编写Swift
- AllInOneConveter——编码转换工具
- Flink(60):Flink中通用ModelUtil工具类
- 机器学习笔记 - dlib中图像标注工具imglab的win10下安装和使用
- SAP CRM中间件BDOC内容搜索工具
- 单步调试学习NgRx createSelector 工具函数的使用方式
- python:网络安全攻击与防御的工具(附零基础学习资料)
- 【华为云技术分享】【一统江湖的大前端(9)】TensorFlow.js 开箱即用的深度学习工具
- 效率倍增,PyCaret:一个开源、低代码的 Python 机器学习工具
- 硬核提效工具!发现5个应该立即开始学习的Python库
- js工具类的封装
- 使用jq工具在Shell命令行处理JSON数据
- C++ Primer 学习笔记_88_用于大型程序的工具 --异常处理[续1]
- 一脸懵逼学习Hive的安装(将sql语句翻译成MapReduce程序的一个工具)
- 深度学习工具caffe具体安装指南
- 数据分析的理念、流程、方法、工具(下)
- 勒索病毒解密工具汇总
- elasticsearch 工具类
- P100:045-使用Weevely工具上传一句话木马
- 四、Fiddler抓包工具 — Fiddler页面布局之工具栏