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

1、介绍

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

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

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

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

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

2、移植工作

平台野火H743-Pro开发板
CpuSTM32H743XIH6
OsFreeRTOSV9.0.0
FuncFreeModbus主机、从机协议栈

在这里插入图片描述
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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部