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
|