标题: 如何用TCP串口软件,手搓一个Modbus RTU Slave模拟器 [打印本页]

作者: zyhlove813    时间: 2024-9-20 09:41
标题: 如何用TCP串口软件,手搓一个Modbus RTU Slave模拟器
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)




作者: lxh2002    时间: 2024-9-21 13:41
非常感谢,不错的好东西
作者: zyhlove813    时间: 2024-9-23 09:53
计划用TCP串口特工软件,用脚本功能来实现烧录STM32、GD32的Bin程序,相当于FlyMCU烧录
作者: zyhlove813    时间: 2024-9-26 08:50
写了烧录GD32和STM32的脚本,大家可以测试一下,仅支持BIN文件,主要演示脚本可实现不同功能

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






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1