推荐一款串口TCP协议调试利器-小平TCP串口调试特工

小平TCP串口调试特工
 
介绍(附件)
小平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: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



【2020/11/18更新】
1、增加FData:指令
2、增加SData:指令
3、修正脚本说明文档
新增指令使用方法如下:

FData:表示读取文件数据到%FDATA%变量中,
格式1为: FData:文件,B     //二进制数据模式读取
格式2为: FData:文件,S     //字符数据模式读取
格式3为: FData:文件,B,开始位置     //从开始位置进行二进制数据模式读取
格式4为: FData:文件,S,开始位置   //从开始位置进行字符模式读取
格式5为: FData:文件,B,开始位置,长度  //以二进制数据模式读取部分长度
格式6为: FData:文件,S,开始位置,长度  //以字符模式读取部分长度
注意,数据的第一个位置是从1开始的
文件路径可以是具体的路径或者引用变量
SData:表示保存数据到文件,
格式1为: SData:文件,内容,H    //十六进制数据模式保存到文件
格式2为: SData:文件,内容,S     //字符数据模式保存到文件
格式3为: SData:文件,内容,H,T   //十六进制数据模式保存到文件尾(追加)
格式4为: SData:文件,内容,S,T   //字符数据模式保存到文件尾(追加)
注意,文件路径可以是具体的路径或者引用变量
内容即可以是文本,也可以是变量,十六进制数据用空格隔开
如:31 32 33
示例文档:
Set:%A%,F1:1234  //设置变量%A%=1234
SData:D:\1.txt,%A%,S //保存变量%A%里的内容(字符模式)到D:\1.txt文件
FData:D:\1.txt,S //读取文件D:\1.txt到%FDATA%
Debug:%FDATA%
 
SData:D:\2.txt,%RX%,S //保存收到的内容(字符模式)到D:\1.txt文件
FData:D:\2.txt,S //读取文件D:\1.txt到%FDATA%
Debug:%FDATA%
 
SData:D:\3.txt,F3:12345,S //保存12345(字符模式)到D:\1.txt文件
FData:D:\3.txt,S //读取文件D:\3.txt到%FDATA%
Debug:%FDATA%
 
Set:%A%,31 32 33 34 35 //设置变量%A%=3132 33 34 35(对应ASCII:12345)
SData:D:\1.txt,%A%,H,T  //保存变量%A%里的内容(十六进制模式)追加到D:\1.txt文件尾
FData:D:\1.txt,S //读取文件D:\1.txt到%FDATA%
Debug:%FDATA%
 
Set:%B%,D:\3.txt  //设置变量%B%=D:\2.txt
SData:%B%,%A%,H,T    //保存变量%A%里的内容(十六进制模式)追加到(%B%=D:\2.txt)文件尾
FData:%B%,S //读取文件(%B%)D:\3.txt到%FDATA%
Debug:%FDATA%
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值