找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 164|回复: 3
打印 上一主题 下一主题
收起左侧

如何用TCP串口软件,手搓一个Modbus RTU Slave模拟器

[复制链接]
跳转到指定楼层
楼主
ID:471574 发表于 2024-9-20 09:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TCP串口调试特工为本人所编写的工具软件,除了实现普通的串口调试软件功能之外,还增加了脚本支持
见以前发的3.1版的贴子,http://www.51hei.com/bbs/dpj-197833-1.html
目前已升级到3.5版了,需要的可以到QQ群761784089 的群文件里下载
3.5版的界面功能如下:


下面开始说制作过程
比如实现Modbus RTU的保存寄存器的03、06、16 指令
1、了解Modbus RTU 协议;

03功能码 –-读保持寄存器的值

主机发送:01 03 00 01 00 01 D5 CA

从机回复:  01 03 02 00 01 79 84


主机解析:01  地址(设备ID);

                03  功能码;

                00 01  代表查询的起始寄存器地址,即从0001寄存器开始查询。

                00 01 查询寄存器数量。

                D5 CA 循环冗余校验。

从机解析:01  地址(设备ID);

                 03  功能码;

                02  代表后面数据的字节数。

                00 01 查询0001寄存器的值。

                79 84 循环冗余校验。

06 功能码 –-写单个保持寄存器

主机发送:01 06 00 02 00 01 E9 CA

从机回复:  01 06 00 02 00 01 E9 CA


主机解析:01  地址(设备ID);

                06  功能码;

                00 02  代表待写入的起始寄存器地址,即从0002寄存器开始写数据。

                00 01 写入的寄存器的值。即给0002寄存器写入0001

                E9 CA 循环冗余校验。

从机解析:01  地址(设备ID);

                06  功能码;

                02  代表后面数据的字节数。

                00 01 查询0001寄存器的值。

                E9 CA 循环冗余校验

16功能码 -- 写多个保持寄存器

主机发送:01 10 00 04 00 03 06 00 01 00 00 00 01 5B 55

从机回复:  01 10 00 04 00 03 C1 C9


主机解析:01  地址(设备ID);

                10  功能码;

                00 04  代表待写入的起始寄存器地址,即从0004寄存器开始写数据。

                00 03 待写入的寄存器的数量。

                06 后面写入数据的字节数。

             0001,0000,0001写入寄存器的值。即给0004,0005,0006寄存器分别写入0001,0000,0001

                5B 55 循环冗余校验。

从机解析:01  地址(设备ID);

                10  功能码;

                00 04  代表待写入的起始寄存器地址,即从0004寄存器开始写数据。

                00 03 待写入的的寄存器的数量。

                C1 C9 循环冗余校验。

2、用TCP串口调试特工编写脚本:
     先说下模拟脚本的格式
     [RX]标识符{判断/预处理脚本1;判断/预处理脚本2;....}
   [TX][SC]
       脚本1
       脚本2
       ...

     [/SC]

如实现 03 指令的Slave


熟悉指令的话,还是很快可以搞好,我的另一个脚本实现了STM32 ISP Bootloader, 模拟MCU烧录回复
http://www.51hei.com/bbs/dpj-237506-1.html
总之功能强大,无限扩展,随你所用
http://www.51hei.com/bbs/dpj-211011-1.html
http://www.51hei.com/bbs/dpj-236447-1.html
我编写的几个好用软件都放在QQ群了,放便大家下载使用

脚本介绍如下附件

相关文件.rar (808.26 KB, 下载次数: 2)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:237471 发表于 2024-9-21 13:41 | 只看该作者
非常感谢,不错的好东西
回复

使用道具 举报

板凳
ID:471574 发表于 2024-9-23 09:53 | 只看该作者
计划用TCP串口特工软件,用脚本功能来实现烧录STM32、GD32的Bin程序,相当于FlyMCU烧录
回复

使用道具 举报

地板
ID:471574 发表于 2024-9-26 08:50 | 只看该作者
写了烧录GD32和STM32的脚本,大家可以测试一下,仅支持BIN文件,主要演示脚本可实现不同功能

烧录BIN文件脚本.rar (1.8 KB, 下载次数: 0)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表