TCP串口調(diào)試特工[更新3.1]
[2020.11.24更新]優(yōu)化了代碼顏色顯示,修改了啟動時由于電腦沒有串口引起的錯誤
介紹(附件) TCP串口調(diào)試特工是一款免費的軟件,本人也是一名工控編程愛好者,經(jīng)常使用串口調(diào)試PLC、單片機,試用過各種各樣的串口調(diào)試軟件;趯嶋H需求,結(jié)合各種調(diào)試軟件的優(yōu)點,開發(fā)出TCP串口調(diào)試特工。本軟件除了普通TCP、串口調(diào)試外,主要用以下創(chuàng)新點: 一、串口、TCP相互轉(zhuǎn)發(fā),并可以保存整個通訊過程的數(shù)據(jù); 二、支持保存的通訊數(shù)據(jù)進行主機、從機順序模擬,還原通訊過程 三、可以根據(jù)設(shè)定的腳本進行自動回復通訊,創(chuàng)建自己的協(xié)議測試 四、自帶腳本通訊指令,也可以C#、VB代碼腳本擴展,或者混合使用,方便擴展不同的數(shù)據(jù)處理和測試。 五、功能多多,請參考腳本說明文件
一、 軟件界面說明 二、 一般的TCP、串口調(diào)試 跟其他一般的串口調(diào)試一樣,設(shè)置好參數(shù)后,打開串口或TCP,然后在手工發(fā)送區(qū)里,設(shè)置好數(shù)據(jù)格式是十六進制還是字符,并設(shè)置收發(fā)源是COM、TCP、BOTH中的那種 選擇BOTH里,按發(fā)送1、發(fā)送2會同時發(fā)給COM和TCP,單選其中的COM、TCP時,只發(fā)給所選的。 三、 TCP和串口轉(zhuǎn)發(fā) 勾選TCP參數(shù)設(shè)置里的“轉(zhuǎn)發(fā)串口”,打開串口和TCP,軟件會把收到TCP的信息發(fā)給串口,相反地,收到串口的信息也會轉(zhuǎn)發(fā)給TCP,這樣TCP和串口能相互通訊。主要應(yīng)用如下:
TCP虛擬成串口的軟件,可以下載有人軟件USR-COM,百度即可下載到 創(chuàng)建虛擬的串口組軟件,可以百度下載VSPD 軟件對轉(zhuǎn)發(fā)通訊過程記錄,可保存成文件供監(jiān)控調(diào)試 四、 文件模擬 應(yīng)用一:通過通訊記錄進行模擬其中的一端,進行按順序通訊還原 例如收發(fā)記錄如下: [COM->Receive]Hello,I am COM2 [Send->COM] Hello,I am COM1 [COM->Receive]How old are you [Send->COM] I'm 12 我們設(shè)置模擬里發(fā)送標記為[Send->COM],接收標記為[[COM->Receive]],打開文件,取消自動回復,開始模擬,當收到Hello,I am COM2時,軟件會自動回復Hello,I am COM1,接下來,收到How old are you時,就會回復I'm 12,注意數(shù)據(jù)格式的選擇,模擬的數(shù)據(jù)必須一模一樣。 我們也可以把發(fā)送和接收的標記反過來,由收變成發(fā),模擬另一端 應(yīng)用二:自動回復 根據(jù)收到的內(nèi)容,匹配回復,可以不按順序來模擬 例如收發(fā)記錄如下: [COM->Receive]Hello,I am COM2 [Send->COM] Hello,I am COM1 [COM->Receive]How old are you [Send->COM] I'm 12 我們設(shè)置模擬里發(fā)送標記為[Send->COM],接收標記為[[COM->Receive]],打開文件,勾選自動回復,開始模擬,當收到Hello,I am COM2時,軟件會自動回復Hello,I am COM1,接下來,收到How old are you時,就會回復I'm 12,再收到How old are you,還是自動回復I'm 12。跟應(yīng)用一不同之處是,應(yīng)用一是按順序來的,應(yīng)用二可以隨條件回復 應(yīng)用三:根據(jù)條件和腳本來回復(萬能處理) 可參照例子里的MobusRTU腳本例子(十六進制數(shù)據(jù)),設(shè)置接收標記為[RX],發(fā)送標記為[TX],然后勾選自動回復,十六進制,模擬執(zhí)行。如下腳本執(zhí)行效果,如果收到01 01 開頭,8個長度的數(shù)據(jù),就回復0101 01 02 D0 49,如果收到01 03開頭,8個長度的數(shù)據(jù),就會按照腳本進行數(shù)據(jù)處理,最后用Send:發(fā)送處理后的數(shù)據(jù) [RX]0101[8] //收到01 01開頭,數(shù)據(jù)總長度為8 [TX][SC] //腳本處理回復 Send:01 01 01 02 D0 49 //回復01 01 01 02 D0 49 [/SC] //腳本處理結(jié)束 [RX]01 03[8] //收到0103開頭,數(shù)據(jù)總長度為8 [TX][SC] //腳本處理回復 Mid:%LEN%,%RX%,5,2 //取出收到的內(nèi)容(從第5個數(shù)據(jù)開始,共兩個長度) Set:%TX%,01 03 Tdec:%LEN%,%LEN% Mul:%LEN%,2 Chex:%DATA%,%LEN% Thex:%LEN%,%LEN% Join:%TX%,%LEN% Join:%TX%,%DATA% Set:%CRC%,%TX% CS:Script\crc16.cs //調(diào)用C# CRC16腳本 Join:%TX%,%CRC% //在%TX%里尾部加上校驗的結(jié)果 Send:%TX% //發(fā)送%TX%里的數(shù)據(jù) [/SC] 五、 腳本調(diào)試 參照例子和腳本說明 //VB多行代碼示例,有返回 VEvals:%A%,Test Dim I as integer=5 Dim J as integer=6 %B%=5 return (I*J).ToString() Debug:%A% Debug:%B% //C#多行代碼示例,無返回 CEvals:%A%,Test intI =5; intJ=5; %B%="5"; %A%=(I*J).ToString(); Debug:%A% Debug:%B% //字符模式文字處理范例 Mhex:F //設(shè)置為字符模式 Set:%A%,Hello //把Hello賦值變量%A% Join:%A%,%ENTER% //拼接字符,%A%=%A%+%ENTER% Join:%A%,How are you! //拼接字符,%A%=%A%+"How are you!"
Msgbox:%A% //彈出對話框,內(nèi)容為%A% 五、與C#、VB腳本與串口或TCP交互說明 在C#或VB腳本代碼里,通過讀取或修改varp字典的內(nèi)容,可與本軟件進行交互 C#讀取收到信息: 變量=varp[“%RX%”]; VB讀取收到信息,變量=varp(“%RX%”)
在C#腳本發(fā)送數(shù)據(jù)到串口或TCP,請參考Script\Send.cs 在VB腳本發(fā)送數(shù)據(jù)到串口或TCP,請參考Script\Send.vb
|