標(biāo)題: 如何用TCP串口軟件,手搓一個(gè)Modbus RTU Slave模擬器 [打印本頁(yè)]

作者: zyhlove813    時(shí)間: 2024-9-20 09:41
標(biāo)題: 如何用TCP串口軟件,手搓一個(gè)Modbus RTU Slave模擬器
TCP串口調(diào)試特工為本人所編寫(xiě)的工具軟件,除了實(shí)現(xiàn)普通的串口調(diào)試軟件功能之外,還增加了腳本支持
見(jiàn)以前發(fā)的3.1版的貼子,http://www.torrancerestoration.com/bbs/dpj-197833-1.html
目前已升級(jí)到3.5版了,需要的可以到QQ群761784089 的群文件里下載
3.5版的界面功能如下:


下面開(kāi)始說(shuō)制作過(guò)程
比如實(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  代表查詢(xún)的起始寄存器地址,即從0001寄存器開(kāi)始查詢(xún)。

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

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

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

                 03  功能碼;

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

                00 01 查詢(xún)0001寄存器的值。

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

06 功能碼 –-寫(xiě)單個(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  代表待寫(xiě)入的起始寄存器地址,即從0002寄存器開(kāi)始寫(xiě)數(shù)據(jù)。

                00 01 寫(xiě)入的寄存器的值。即給0002寄存器寫(xiě)入0001

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

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

                06  功能碼;

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

                00 01 查詢(xún)0001寄存器的值。

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

16功能碼 -- 寫(xiě)多個(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  代表待寫(xiě)入的起始寄存器地址,即從0004寄存器開(kāi)始寫(xiě)數(shù)據(jù)。

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

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

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

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

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

                10  功能碼;

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

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

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

2、用TCP串口調(diào)試特工編寫(xiě)腳本:
     先說(shuō)下模擬腳本的格式
     [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)大,無(wú)限擴(kuò)展,隨你所用
http://www.torrancerestoration.com/bbs/dpj-211011-1.html
http://www.torrancerestoration.com/bbs/dpj-236447-1.html
我編寫(xiě)的幾個(gè)好用軟件都放在QQ群了,放便大家下載使用

腳本介紹如下附件

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




作者: lxh2002    時(shí)間: 2024-9-21 13:41
非常感謝,不錯(cuò)的好東西
作者: zyhlove813    時(shí)間: 2024-9-23 09:53
計(jì)劃用TCP串口特工軟件,用腳本功能來(lái)實(shí)現(xiàn)燒錄STM32、GD32的Bin程序,相當(dāng)于FlyMCU燒錄
作者: zyhlove813    時(shí)間: 2024-9-26 08:50
寫(xiě)了燒錄GD32和STM32的腳本,大家可以測(cè)試一下,僅支持BIN文件,主要演示腳本可實(shí)現(xiàn)不同功能

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






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1