Modbus主机、从机协议栈从入门到精通

1、介绍

工作的原因,笔者完成了STM32+FreeRTOS操作系统上FreeModbus(基于RS485)主机、从机协议栈的移植工作

FreeModbus是一款开源的Modbus协议,但只有从机代码是开源的,而主机的代码是收费的,网上关于主机的资料又少的可怜,移植的过程一言难尽

So,笔者决定出一个关于FreeModbus主机、从机协议栈的教程,方便大家快速的学习并使用该协议

笔者历时半个月整理了如下学习FreeModbus所需全部相关资料:

文件 说明
freemodbus-v1.6.zip FreeModbusV1.6源码
FreeModbusMasterSlave(Rev1.0.0).zip 笔者移植好测试通过STM32+FreeRTOS+FreeModbus Master Slave代码
ModbusSlave 7.0和ModbusPoll_7.0软件注册码.zip FreeModbus Master Slave调试工具
FreeModbus V1.6 主机使用说明.md FreeModbus 主机使用说明文档
FreeModbus 从机流程图.vsd FreeModbus 从机流程图
FreeModbus 主机流程图.vsd FreeModbus 主机流程图
Modbus应用协议.doc 笔者整理的 FreeModbus 协议文档
FreeModbus Datasheet 笔者搜集 FreeModbus 官方协议文档

2、移植工作

平台 野火H743-Pro开发板
Cpu STM32H743XIH6
Os FreeRTOSV9.0.0
Func FreeModbus主机、从机协议栈

在这里插入图片描述
app下文件:定义数据缓冲区,实现FreeModbus功能回调接口
src下文件:FreeModbus协议栈的源码
port下文件:平台相关文件,移植时根据自己的平台进行修改

主从模式选择通过 “…\FreeModbus\port\prot.h” 中的宏定义实现:

//#define MODBUS_MASTER_MODE //Modbus工作在主机模式
#define MODBUS_SLAVE_MODE      //Modbus工作在从机模式

笔者在移植过程中遇到的大坑:

  1. 在中断服务函数中,调用FreeRTOS提供的函数,必须要用FromISR结尾的函数
  2. 等待协议就绪后(产生事件EV_READY),才能进行通信
  3. 确认自己的RS485收发芯片所支持的最大波特率

3、测试工作

安装笔者提供的Modbus协议调试工具
Modbus Poll:从机调试工具。该软件是主机协议栈
Modbus Slave:主机调试工具,该软件是从机协议栈

Mdobus Poll软件打开如下,使用说明:

Slave ID 设置从机地址
Function 功能码;如读写保持寄存器、读写线圈等
Address 设置读写地址及数量
Scan Rate 周期性触发
Read/Write Disabled 单次触发,通过点击按钮Read/Write Once或按下F6触发一次读写命令

在这里插入图片描述
主机测试工具Modbus Slave使用方法与Modbus Poll大同小异

资料链接:https://download.csdn.net/download/u010650845/40765507

版权声明:本文为CSDN博主「DingUXiu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010650845/article/details/121330063

1、介绍

工作的原因,笔者完成了STM32+FreeRTOS操作系统上FreeModbus(基于RS485)主机、从机协议栈的移植工作

FreeModbus是一款开源的Modbus协议,但只有从机代码是开源的,而主机的代码是收费的,网上关于主机的资料又少的可怜,移植的过程一言难尽

So,笔者决定出一个关于FreeModbus主机、从机协议栈的教程,方便大家快速的学习并使用该协议

笔者历时半个月整理了如下学习FreeModbus所需全部相关资料:

文件 说明
freemodbus-v1.6.zip FreeModbusV1.6源码
FreeModbusMasterSlave(Rev1.0.0).zip 笔者移植好测试通过STM32+FreeRTOS+FreeModbus Master Slave代码
ModbusSlave 7.0和ModbusPoll_7.0软件注册码.zip FreeModbus Master Slave调试工具
FreeModbus V1.6 主机使用说明.md FreeModbus 主机使用说明文档
FreeModbus 从机流程图.vsd FreeModbus 从机流程图
FreeModbus 主机流程图.vsd FreeModbus 主机流程图
Modbus应用协议.doc 笔者整理的 FreeModbus 协议文档
FreeModbus Datasheet 笔者搜集 FreeModbus 官方协议文档

2、移植工作

平台 野火H743-Pro开发板
Cpu STM32H743XIH6
Os FreeRTOSV9.0.0
Func FreeModbus主机、从机协议栈

在这里插入图片描述
app下文件:定义数据缓冲区,实现FreeModbus功能回调接口
src下文件:FreeModbus协议栈的源码
port下文件:平台相关文件,移植时根据自己的平台进行修改

主从模式选择通过 “…\FreeModbus\port\prot.h” 中的宏定义实现:

//#define MODBUS_MASTER_MODE //Modbus工作在主机模式
#define MODBUS_SLAVE_MODE      //Modbus工作在从机模式

笔者在移植过程中遇到的大坑:

  1. 在中断服务函数中,调用FreeRTOS提供的函数,必须要用FromISR结尾的函数
  2. 等待协议就绪后(产生事件EV_READY),才能进行通信
  3. 确认自己的RS485收发芯片所支持的最大波特率

3、测试工作

安装笔者提供的Modbus协议调试工具
Modbus Poll:从机调试工具。该软件是主机协议栈
Modbus Slave:主机调试工具,该软件是从机协议栈

Mdobus Poll软件打开如下,使用说明:

Slave ID 设置从机地址
Function 功能码;如读写保持寄存器、读写线圈等
Address 设置读写地址及数量
Scan Rate 周期性触发
Read/Write Disabled 单次触发,通过点击按钮Read/Write Once或按下F6触发一次读写命令

在这里插入图片描述
主机测试工具Modbus Slave使用方法与Modbus Poll大同小异

资料链接:https://download.csdn.net/download/u010650845/40765507

版权声明:本文为CSDN博主「DingUXiu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010650845/article/details/121330063

生成海报
点赞 0

DingUXiu

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

Modbus主机、从机协议栈从入门到精通

1、介绍 工作的原因,笔者完成了STM32FreeRTOS操作系统上FreeModbus(基于RS485)主机、从机协议栈的移植工作 FreeModbus是一款开源的Modbus协议,但只有从机代码是开源的&#x

stm32f1xx-freemodbus-RTU 移植

STM32F103芯片的 freemodbus RTU的移植和使用。1 示例代码 代码示例上传在 gitee上,仓库地址为freemodbus移植示例 2 freemodbus介绍 Freemodbus是一个奥地利人写的Modb

OV7670摄像头模块资料

OV7670摄像头模块资料 一、实物图和原理图 二、模块简介 OV7670 是 OV( OmniVision)公司生产的 CMOS VGA 图像传感器。该传感器体积小、工作电压低,提供单片 VGA