功能码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。

modbus-poll和modbus-slave工具的学习使用——modbus协议功能码2的解析的更多相关文章

  1. modbus-poll和modbus-slave工具的学习使用——modbus协议功能码3的解析(及欧姆龙温控器调试笔记)

    最近的项目中使用到了欧姆龙的温控器,里面有很多的通信方式,我们使用的常见的modbus——RTU方式,其他方式我们不使用,其中通信手册上面有很多通信的实例,欧姆龙modbus还区分4字节模式和2字节模 ...

  2. modbus-poll和modbus-slave工具的学习使用——modbus协议功能码1的解析

    一.数据解析 上一文介绍了modbus工具的基本使用情况,但是还没用说明modbus中的协议的具体意义, 1.左边是slave,id=1,说明地址是1,f=01说明是功能码01,功能码是一个字节,说明 ...

  3. Modbus仿真器 Modbus Poll 和Modbus Slave详细图文教程

    Modbus Poll 是Witte Software公司开发的的Modbus主机仿真器,用于测试和调试Modbus从设备.软件支持ModbusRTU.ASCII.TCP/IP协议.支持多设备监控,可 ...

  4. Modbus测试工具 :Modbus Poll,Modbus Slave

    源:http://blog.sina.com.cn/s/blog_49352090010138e7.html Modbus测试工具 :Modbus Poll,Modbus Slave

  5. Modbus软件开发实战指南 之 开发自己的Modbus Poll工具 - 1

    在开发Modbus程序的过程中,也可以发现经常需要使用诸如Modbus Poll和Modbus Slave等辅助调试工具, 用于验证MODBUS通讯消息是否正确.但是,Modbus Poll和Modb ...

  6. Modbus软件开发实战指南 之 开发自己的Modbus Poll工具 - 2

    接上一篇文章的内容. 看了前面需求提到的复杂的命令行解析功能,很多人立马开始发怵,其实大可不必. 我们都知道,Linux下的程序往往都提供了复杂的命令行参数处理机制,因为这是与 其他程序或用户进行交互 ...

  7. Modbus tcp 格式说明 通讯机制 附C#测试工具用于学习,测试

    前言: 之前的博客介绍了如何用C#来读写modbus tcp服务器的数据,文章:http://www.cnblogs.com/dathlin/p/7885368.html 当然也有如何创建一个服务器文 ...

  8. Modbus软件开发实战指南 之 开发自己的Modbus Poll工具 - 3

    Modbus-RTU 一.数据分析       两个设备(单片机)通讯,用的是Modbus协议.      在单片机中拿出一部分内存(RAM)进行两个设备通讯,例如: 说明: OX[20]   代表是 ...

  9. Modbus调试利器 Modbus Poll

    Modbus Poll是一个非常不错的工具,支持TCP/串口 下载地址:http://pan.baidu.com/share/link?shareid=2880213929&uk=248325 ...

随机推荐

  1. PHP设计模式 - 备忘录模式

    备忘录模式又叫做快照模式(Snapshot)或 Token 模式,备忘录模式的用意是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以在合适的时候将该对象恢复到原先 ...

  2. Versioning information could not be retrieved from the NuGet package repository. Please try again later.

    Versioning information could not be retrieved from the NuGet package repository. Please try again la ...

  3. C++生成和解析XML文件

    1.xml 指可扩展标记语言(EXtensible Markup Language) 2.xml 是一种标记语言,类似html 3.xml 的设计宗旨是传输数据,而非显示数据 4.xml 标签没有被预 ...

  4. UnicodeEncodeError: 'ascii' codec can't encode characters in position 18-22: ordinal not in range(128)

    文件,放在site-package \Python27\Lib\site-packages     sitecustomize.py # -*- coding: utf-8 -*- import sy ...

  5. 精通Spring Boot

    原 精通Spring Boot—— 第二十一篇:Spring Social OAuth 登录简介 1.什么是OAuth OAuth官网介绍是这样的: An open protocol to allow ...

  6. easyUi——datetimebox绑定数据失效

    在做easy-ui时候,绑定数据不管在怎么写,都绑定不上去,最后发现是因为 标签的ID没有写,尴尬了,记录一下,防止后期出错. ui代码 <script type="text/java ...

  7. C#类型成员:构造函数

    一.构造函数 构造函数是类的特殊方法,它永远不会返回值(即使是void),并且方法名和类名相同,同样支持重载.在使用new关键字创建对象时构造函数被间接调用,为对象初始化字段和属性的值. 无参构造函数 ...

  8. kafka消费者问题

    [] 2019-12-17 15:40:01 - [INFO] [AbstractCoordinator:542 coordinatorDead] Marking the coordinator 机器 ...

  9. MySQL-By孙胜利-sifangku.com

    一.数据库基本概念 数据库:信息存储的仓库,包括一系列的关系措施! 表:一个数据库中可以有若干张表(形式上你可以看出我们日常生活中建立的表) 字段:表里面的信息会分若干个栏目来存,这些栏目呢,我们在数 ...

  10. token jwt配置

    1. token jwt配置 1.1. pom <!-- token验证 --> <dependency> <groupId>io.jsonwebtoken< ...