在工作中,当我们采集采用RS485主从式半双工通讯的传感器时,会接触到Modbus协议。有时我们手上没有实物,只能通过协议文档手册,编写完代码后,自己用RS485来模拟发送验证。下面就说说如何快速组装数值发送验证,以及解析数值。

标准Modbus协议结构如下:

主机发送读寄存器协议数据结构形式为:

设备地址           1字节

读寄存器命令   1字节

寄存器地址       2字节

读寄存器个数   2字节

CRC校验(低字节在前,高字节在后)   2字节

例(主机发送数据到传感器):01 03 00 12 00 02 64 0E

解析:

01    表示设备地址

03    表示读寄存器指令

00 12 表示寄存器的起始地址

00 02 表示读取两个寄存器

64 0E 表示CRC校验码

从机返回寄存器是数据结构形式为:

设备地址   1字节

读寄存器命令   1字节

读取字节个数   N字节

XX *N   N个所读取字节数据

CRC校验(低字节在前,高字节在后)

例(传感器发送回给主机):01 03 04 41 E6 28 F6 91 BE

解析:

01          表示设备地址

03          表示读寄存器指令

04          表示有四个16进制数据

41 E6 28 F6  表示传感器的有效数据

91 BE       表示CRC校验码

1.若厂家对传感器的数据存储采用标准单精度浮点数方式,则对于一串采集回来的16进制数据,要转成浮点数是比较麻烦的,可以看下先用科学计数法方式存储计算:

方式1:如解析上述的返回值41 E6 28 F6

计算 41 E6 28 F6 (采用科学计数法方式存储计算)

转为二进制:01000001111001100010100011110110‬

红色’0’:表示符号位,1为负,0为正

10000011:表示指数位,转为十进制为2^0+2^1+2^7=131 131-127=4 说明指数位为4

则表示为((1.11001100010100011110110)*2^4)=11100. 1100010100011110110=

2^2+2^3+2^4. 2^-1+2^-2+…..=28.77

即41 E6 28 F6 转为十进制为28.77

方式2:采用工具快速转换,如下图所示

有了该工具,想要自己模拟发送任意数值的modbus协议数据,也是非常方便的。

比如主机发送了01 03 00 12 00 02 64 0E 采集命令,想要模拟传感器数值为12.34

通过工具转换如下:

则可组装modbus协议数据为01 03 04 41 45 70 A4 , 对于后面两位crc校验可以采用如下工具,可以得到:

可知组装的完整mobdus协议数据为01 03 04 41 45 70 A4 DB A1

2.若厂家对传感器的数据处理是采用16进制转整数方式处理,就像如下图所示:

这种形式的16进制传感器数据,可以采用电脑的计算器快速计算得到。

如计算00 9B

16进制模拟负值,可以采用计算器

如模拟-50,计算器输入如下0-50

再点击计算器上的xor

则16进制FF CE 则表示负数-50

RS485 Modbus协议解析相关推荐

  1. Modbus协议解析--小白一看就懂的协议

    文章目录 提问三连 1.什么是Modbus? 2.Modbus用来干什么? 3.Modbus的内容是什么? 3.1 Modbus-RTU+Modbus-ASCII 3.1.1 Modbus-RTU协议 ...

  2. 工业modbus协议解析和转换

    1 什么是Modbus协议? Modbus 协议是应用于电子控制器上的一种通用语言.通过此协议,控制器相互之间.控制器经由网络(例如以太网)和其它设备之间可以通信.它已经成为一通用工业标准.有了它,不 ...

  3. 二、ModBus协议解析

    0x01 初识ModBus Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气)于1979年为使用可编程逻辑控制器(PLC)通信而发表的.现在的Modbus协议已经成为工业领域通信 ...

  4. Modbus介绍与协议解析

    一.Modbus介绍 Modbus是一种通讯协议,主要应用于电子控制器上的一种通用语言.Modbus支持多种电气接口,如RS232.RS485.TCP/IP等.多数Modbus设备通信是通过串口或TC ...

  5. STM32物联网项目-RS485通信(Modbus协议)

    RS485通信(Modbus协议) 协议介绍 RS485介绍:http://t.csdn.cn/bOuFX Modbus协议:http://t.csdn.cn/mgioX CubeMX配置 RS-48 ...

  6. 【Modbus 】Modbus 协议

    Modbus 协议简介 Modbus协议是一项应用层报文传输协议,包括ASCII.RTU.TCP三种报文类型. 标准的Modbus协议物理层接口有RS232.RS422.RS485和以太网接口,采用m ...

  7. modbus 协议基础知识

    Modbus的内容是什么 协议种类 Modbus-RTU+Modbus-ASCII Modbus-TCP Modbus-Plus 通讯过程: Modbus是主从方式通信,也就是说,不能同步进行通信,总 ...

  8. RS485通信和Modbus协议

    在工业控制.电力通讯.智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换.最初采用的方式是 RS232 接口,由于工业现场比较复杂,各种电气设备会在环境中产生比较多的电磁干扰,会导致信号传输错 ...

  9. Matlab Simulink RS-485 Modbus RTU协议串口通信实录

    目录 一.目标实现 二.基本原理 三.过程实录 一.基本原理 一.目标实现 最近需要进行一个大型试验,需要实现:通过上位机来实时收集波高仪数据并经过一系列复杂算法来控制下位机(IO模块即继电器)从而控 ...

  10. Modbus通信协议+Modbus串口调试工具+Java版协议解析源码

    网络与串口二合一调试助手TCPCOM: https://download.csdn.net/download/liuyuan_java/87454762 Modbus调试工具,模拟串口调试工具 htt ...

最新文章

  1. 网站的 计算机主机作用是什么意思,网关是什么意思?网关的作用是什么?
  2. jquery技巧总结
  3. 018 Android加固之实现dex加载器
  4. 回答一位朋友关于 SAP SRM 行业 转 CRM 行业的咨询
  5. 推荐系统遇上深度学习(七)--NFM模型理论和实践
  6. es通过mapping创建索引出错
  7. python classmethod 与 staticmethod
  8. python脚本性能分析
  9. java基本运算方法总结(ing)
  10. PostgreSQL如何自动更新时间戳?
  11. python制作fnt字体打包工具
  12. 关于H5页面在微信端的分享
  13. mysql 3306_允许远程链接mysql,开放3306端口
  14. Windows离线语音识别服务端
  15. word文档图片画红线_在Word中巧妙绘制漂亮分割线的方法
  16. Java List 过滤重复数据
  17. LaTeX公式-Katex解析
  18. AT89C51单片机流水灯c语言程序及详解(扫盲教程)
  19. ASP导出Word带页眉页脚,中文不乱码
  20. C语言—猜数字游戏的实现

热门文章

  1. 一步一步实现 iOS 微信自动抢红包(非越狱)
  2. 单片机定时器实验报告C语言,51单片机定时器实验报告.doc
  3. CUDA库之NPP(二):NPP实现YUV转BGR
  4. 使用Gson 解析json文件
  5. jtopo 比例尺功能
  6. 2020-06-15
  7. Win7系统用键盘替代鼠标的小技巧
  8. UA OPTI570 量子力学 角动量 公式与结论总结
  9. dbv oracle驱动,Oracle的DBV工具
  10. 软件设计模式与体系结构 期末课后题