Modbus笔记

Modbus分为:
  • ModbusRTU
  • ModbusASCII
  • ModbusTCP

ModbusRTU

RTU
远程终端单元
DTU
数据传输单元

Modbus设备分为

  • Master(Client) 发请求
  • Slave(Server)响应 , Modbus支持 247 个Slave,但RS485协议限定为32 个

ModbusRTU请求格式

开头地址段功能码数据段校验码结尾
空闲大于等于3.5个字符时间地址段8位功能码8位 根据功能码不同而不同CRC16 低高8位或高低8位空闲大于3.5个字节时间

Modbus功能码 04 读输入寄存器

开头地址段功能码数据段校验码结尾
省略比如1(Hex01)4(Hex04)寄存器开始地址高8位,寄存器开始地址低8位,寄存器数量高8位,寄存器数量低8位,...(寄存器数量*8*2 , 最大125个寄存器)CRC低8位,CRC高8位省略
功能码04 数据段示例
读取从1A地址开始的125(最大)个寄存器
功能码04
寄存器开始地址高8位00
寄存器开始地址低8位1A
连续的寄存器数量高8位00
连续的寄存器数量低8位7D
CRC校验码低8位YY
CRC校验码高8位XX

ModbusTCP

Tcp就是在Rtu之前加了6字节,并去掉Rtu最后的CRC
6字节中:
1,2字节是自定义序号, 比如设为 66 88 , 返回的开头也就是 66 88
3,4字节固定为 00 00 表示协议为Modbus
5,6字节表示后面的长度有多少字节

用功能吗03示例

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
freemodbus 是一款开源的Modbus通信协议栈,用于实现Modbus通信协议的开发。通过学习freemodbus,我收获了许多知识和技能。 首先,在学习freemodbus时,我了解到了Modbus通信协议的基本原理和工作方式。Modbus是一种常用的串行通信协议,主要用于工业自动化领域中设备之间的通信。它使用简单的请求-响应机制进行数据传输,包括读取和写入寄存器等功能。通过freemodbus的学习,我了解到了Modbus通信协议的组成结构、数据帧格式以及常用的功能码等。 其次,通过实践freemodbus的使用,我学会了如何在嵌入式系统中实现Modbus通信功能。freemodbus提供了一系列的接口函数,可以方便地实现Modbus主站和从站的功能,并支持多种串口通信方式,如RS485、TCP等。学习过程中,我熟悉了freemodbus的API函数的使用方法,掌握了创建、初始化和配置Modbus通信对象的技巧。 另外,通过使用freemodbus,我学到了一些调试和排错的技巧。在实际应用中,由于硬件、软件等多种因素的影响,可能会出现通信故障或数据错误的情况。通过freemodbus的调试工具和相关的日志输出,我学会了如何在开发过程中定位和解决各种问题,提高了软件开发的技能和经验。 总体来说,学习freemodbus是一次非常有益的经历。通过这个学习过程,我不仅掌握了Modbus通信协议的原理和应用,还提高了嵌入式软件开发的能力。我相信,在今后的工作中,我可以更好地应用freemodbus开发各种工业自动化设备和系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kfepiza

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值