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