找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1342|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

如何用TCP串口軟件,手搓一個(gè)Modbus RTU Slave模擬器

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:471574 發(fā)表于 2024-9-20 09:41 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
TCP串口調(diào)試特工為本人所編寫的工具軟件,除了實(shí)現(xiàn)普通的串口調(diào)試軟件功能之外,還增加了腳本支持
見以前發(fā)的3.1版的貼子,http://www.torrancerestoration.com/bbs/dpj-197833-1.html
目前已升級(jí)到3.5版了,需要的可以到QQ群761784089 的群文件里下載
3.5版的界面功能如下:


下面開始說制作過程
比如實(shí)現(xiàn)Modbus RTU的保存寄存器的03、06、16 指令
1、了解Modbus RTU 協(xié)議;

03功能碼 –-讀保持寄存器的值

主機(jī)發(fā)送:01 03 00 01 00 01 D5 CA

從機(jī)回復(fù):  01 03 02 00 01 79 84


主機(jī)解析:01  地址(設(shè)備ID);

                03  功能碼;

                00 01  代表查詢的起始寄存器地址,即從0001寄存器開始查詢。

                00 01 查詢寄存器數(shù)量。

                D5 CA 循環(huán)冗余校驗(yàn)。

從機(jī)解析:01  地址(設(shè)備ID);

                 03  功能碼;

                02  代表后面數(shù)據(jù)的字節(jié)數(shù)。

                00 01 查詢0001寄存器的值。

                79 84 循環(huán)冗余校驗(yàn)。

06 功能碼 –-寫單個(gè)保持寄存器

主機(jī)發(fā)送:01 06 00 02 00 01 E9 CA

從機(jī)回復(fù):  01 06 00 02 00 01 E9 CA


主機(jī)解析:01  地址(設(shè)備ID);

                06  功能碼;

                00 02  代表待寫入的起始寄存器地址,即從0002寄存器開始寫數(shù)據(jù)。

                00 01 寫入的寄存器的值。即給0002寄存器寫入0001

                E9 CA 循環(huán)冗余校驗(yàn)。

從機(jī)解析:01  地址(設(shè)備ID);

                06  功能碼;

                02  代表后面數(shù)據(jù)的字節(jié)數(shù)。

                00 01 查詢0001寄存器的值。

                E9 CA 循環(huán)冗余校驗(yàn)

16功能碼 -- 寫多個(gè)保持寄存器

主機(jī)發(fā)送:01 10 00 04 00 03 06 00 01 00 00 00 01 5B 55

從機(jī)回復(fù):  01 10 00 04 00 03 C1 C9


主機(jī)解析:01  地址(設(shè)備ID);

                10  功能碼;

                00 04  代表待寫入的起始寄存器地址,即從0004寄存器開始寫數(shù)據(jù)。

                00 03 待寫入的寄存器的數(shù)量。

                06 后面寫入數(shù)據(jù)的字節(jié)數(shù)。

             0001,0000,0001寫入寄存器的值。即給0004,0005,0006寄存器分別寫入0001,0000,0001

                5B 55 循環(huán)冗余校驗(yàn)。

從機(jī)解析:01  地址(設(shè)備ID);

                10  功能碼;

                00 04  代表待寫入的起始寄存器地址,即從0004寄存器開始寫數(shù)據(jù)。

                00 03 待寫入的的寄存器的數(shù)量。

                C1 C9 循環(huán)冗余校驗(yàn)。

2、用TCP串口調(diào)試特工編寫腳本:
     先說下模擬腳本的格式
     [RX]標(biāo)識(shí)符{判斷/預(yù)處理腳本1;判斷/預(yù)處理腳本2;....}
   [TX][SC]
       腳本1
       腳本2
       ...

     [/SC]

如實(shí)現(xiàn) 03 指令的Slave


熟悉指令的話,還是很快可以搞好,我的另一個(gè)腳本實(shí)現(xiàn)了STM32 ISP Bootloader, 模擬MCU燒錄回復(fù)
http://www.torrancerestoration.com/bbs/dpj-237506-1.html
總之功能強(qiáng)大,無限擴(kuò)展,隨你所用
http://www.torrancerestoration.com/bbs/dpj-211011-1.html
http://www.torrancerestoration.com/bbs/dpj-236447-1.html
我編寫的幾個(gè)好用軟件都放在QQ群了,放便大家下載使用

腳本介紹如下附件

相關(guān)文件.rar (808.26 KB, 下載次數(shù): 2)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:237471 發(fā)表于 2024-9-21 13:41 | 只看該作者
非常感謝,不錯(cuò)的好東西
回復(fù)

使用道具 舉報(bào)

板凳
ID:471574 發(fā)表于 2024-9-23 09:53 | 只看該作者
計(jì)劃用TCP串口特工軟件,用腳本功能來實(shí)現(xiàn)燒錄STM32、GD32的Bin程序,相當(dāng)于FlyMCU燒錄
回復(fù)

使用道具 舉報(bào)

地板
ID:471574 發(fā)表于 2024-9-26 08:50 | 只看該作者
寫了燒錄GD32和STM32的腳本,大家可以測(cè)試一下,僅支持BIN文件,主要演示腳本可實(shí)現(xiàn)不同功能

燒錄BIN文件腳本.rar (1.8 KB, 下載次數(shù): 0)

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表