ModbusRTU串口读写报文解析

这篇具有很好参考价值的文章主要介绍了ModbusRTU串口读写报文解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. MODBUS速览

Modbus是一种通信协议,ModubsRTU是它的一种传输模式,通过这个协议能实现串口数据通讯。可以用C#控件读写串口,也可以直接使用开源的串口助手。

为了简化问题,本文只解析报文的格式,且只讨论异常状态读多个保持寄存器写多个保持寄存器

报文分为上行报文和下行报文。下行报文指主机发送给从机的数据。上行报文指从机发送给主机的数据。当主机为计算机,从机为单片机时,主机和从机用USB转485连接时,下行报文就是计算机通过485串口发送给单片机的数据,上行报文就是计算机收到的来自单片机的数据。

1. MODBUS常用下行报文格式

<1>读多个保持寄存器下行报文

Modbus下行[0]报文格式-读取多个寄存器
名称 从机号[1] 功能码 起始地址 寄存器数量 CRC校验码[3]
占用字节 1字节 1字节 2字节 2字节 2字节
例:01 03(读)[2] 例:0x03E8 例:0001

注[0]:

注[1]:Modbus协议规定存在一台主机和不少于一台的从机。从机数目大于1台时,不同的从机通讯口并联,不同的从机号区分开不同的从机。

注[2]:功能码代表对从机发出的请求类型。03表示读多个连续的寄存器,0x16表示写多个连续寄存器。

注[3]:CRC校验码是根据报文计算出的数据,用于核对数据,防止误码。

<2>写多个保持寄存器的下行报文

Modbus下行报文格式-写多个寄存器
名称 从机号 功能码 起始地址 寄存器数目N 字节数目2N 待写入数据 CRC校验码
占用字节 1字节 1字节 2字节 2字节 1字节 2N字节 2字节
例:01

0x10(写)

例:0x07D0 例:02 例:04

2. MODBUS常见异常状态

<1>没有收到上行报文

有时候,通过串口助手发送下行报文后,主机却没有收到报文,常见原因如下。

A. 硬件问题

A1. 接触不良,或者AB线连接错误

A2. 单片机没有上电

应对方案:检查电路

B. 报文问题

B1. 校验码错误

B2. 报文格式错误

应对方案:检查报文

C.软件问题

C1: 单片机程序问题

应对方案:重新烧录程序

<2>收到的数据为异常码

若主机正常地接收到了上行报文,返回的功能码应该与下行报文一致。若出现异常,返回的功能码为原功能码加上0x80。

返回的从机号与下行报文一致。若从机不存在,不返回报文。

例:

下行报文

01 03 00 01 00 02

上行报文(异常)

01 83 02 C0 F1 

3. MODBUS常见上行报文格式

<1>写多个寄存器上行报文

Modbus上行报文格式-写多个寄存器
名称 从机号

功能码文章来源地址https://www.toymoban.com/news/detail-447051.html

起始地址 寄存器数量 CRC校验位
字节数 1 1 2 2 2
例:01 0x10 例:0x07D0 例:0001

<2>读多个寄存器上行报文

Modbus上行报文格式-读多个寄存器
名称 从机号 功能码 字节数2N 读到的数据 CRC校验位
字节数 1 1 1 2N 2
例:01 03 例:0x0A

到了这里,关于ModbusRTU串口读写报文解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java实现Modbus读写数据

    由于当时项目周期赶,引入了一个PLC4X组件,上手快。接下来就是使用这个组件遇到的一些问题: 关闭连接NioEventLoop没有释放导致oom 设计思想是一个设备一个连接,而不是一个网关一个连接 连接断开后客户端无从感知 前两个问题解决方案参考上篇文章,最后一个问题虽然可

    2024年02月09日
    浏览(40)
  • C#串口 Modbus通讯工具类

    一、安装Modbus包 二、创建modbushelper类 1、打开串口 public bool IfCOMOpend; //用于实例内的COM口的状态 public SerialPort OpenedCOM;//用于手动输入的COM转成SERIAL PORT /// summary /// 打开串口 /// /summary /// param name=\\\"COMname\\\"串口名称/param /// param name=\\\"baudRate\\\"波特率/param /// param name=\\\"parity\\\"奇偶校验

    2024年02月22日
    浏览(43)
  • Modbus网关BL101 既实现Modbus转MQTT,还能当串口服务器使用

    随着工业4.0的迅猛发展,人们深刻认识到在工业生产和生活中,实时、可靠、安全的数据传输至关重要。在此背景下,高性能的工业电力数据传输解决方案——协议转换网关应运而生,广泛应用于工业自动化系统、远程监控和物联网应用应用环境中。 钡铼技术始终坚持以用户

    2024年01月23日
    浏览(49)
  • C#、JAVA读写PLC物联网Modbus

    Modbus协议是一种常用于工业自动化领域的通信协议,它使用简单、易实现、可靠的特点得到了广泛应用。物联网中的设备也需要使用Modbus协议进行通信。本文将介绍物联网Modbus通信的相关内容。 一、Modbus协议简介 Modbus协议是一种串行通信协议,它最初由Modicon公司在1979年发布

    2024年02月10日
    浏览(41)
  • C#使用NModbus4读写Modbus数据

       Modbus是一个免费的协议,协议设计简单,有很多成熟的库支持。比如C#版本的NModubs4就很好,入门简单,使用方便。 首先,在工程中使用NuGet添加NModbus4的包。 在使用文件中,添加引用。不同的接口模式,引用对象不同,Modbus Slave TCP模型需要以下几项: 初始化大概有几个

    2024年02月12日
    浏览(36)
  • C# 串口通信(modbus),自动重连

    (1)C#串口通信的例子,需要在线程里面执行。 private void Com2Ups40()         {             try             {                 Logger.Info(\\\"执行函数Com2Ups40()------开始!!!\\\");                 //UpsMaiDiSi = new SerialPortManager();                 serialPort = n

    2024年02月06日
    浏览(36)
  • Python3通过串口服务器读取设备Modbus数据【modbus_rtu_over_tcp】

    工业采集设备支持ModbusRtu 协议,通讯端口为232串口 或485接口,上位机连接采集终端,不方便走线【串口线 、485总线】,利用现有网络,通过串口服务器进行连接。 实现方案: 1、虚拟串口,上位机通过串口直接采集数据, 缺点:需要安装、开启虚拟串口程序,增加不稳定因

    2024年02月11日
    浏览(59)
  • 工程师必备串口数据截取工具modbus命令分析串口数据分析

    工程师必备串口数据截取工具modbus命令分析串口数据分析。 主要功能: ·支持监控COM端口类型:标准电脑端口,内核虚拟COM端口,USB转串口等; ·可以实时监控并采集串口数据; ·可以同时监控多个串行端口; ·监控已经被其他应用程序打开的串口(需要服务启动); ·支持

    2024年02月13日
    浏览(33)
  • 最佳实践 · 塔石串口服务器接入 MODBUS 物联网平台

    串口服务器是为RS-232/RS-485/RS-422终端到TCP/IP之间完成数据转换的通讯接口协议转换器。提供RS-232终端与TCP/IP网络的数据双向透明传输,提供串口转TCP/IP功能,RS-232/RS-485/RS-422转TCP/IP的解决方案。可以让RS-232/RS-485/RS-422串口设备立即联接网络。 串口通讯服务器其实就是串口服务器

    2024年02月16日
    浏览(45)
  • AWTK 开源串口屏开发(17) - 通过 MODBUS 访问数组数据

    在 AWTK 串口屏中,内置了 MODBUS Client Channel 的模型,不用编写代码即可实现在 ListView 中显示数组数据。 MODBUS 协议一次只能读取 125 个 WORD,AWTK-MODBUS Client Channel 支持长数据,自动分成多个请求访问。 不用编写代码,实现对远程设备上数组数据的显示。 从模板创建项目,将

    2024年04月28日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包