串口调试工具、方法和步骤
串口调试工具、方法和步骤

串口是工业自动化系统中非常重要的通讯方式,自问世至今,以RS232、RS485为主的串口通讯方式,在工业自动化通讯系统始终占据非常重要的地位。对自动化工程师来说,与串口打交道,进行编程、调试是必不可少的。以下就串口调试中一些常用的工具、方法和步骤进行介绍。
1. 虚拟串口工具VSPD(Virtual Serial Port Driver)
串口是基于硬件的物理设备,一般用于计算机和现场控制器、控制器与控制器、控制器与仪表等设备之间的通讯和数据交换,但工业设备一般都安装在工业现场,需要到现场才可以进行调试。为了验证程序的正确性,在进行实际调试前可以使用虚拟串口工具进行一些模拟和测试,VSPD是Windows系统下最好用的虚拟串口工具之一。
安装虚拟串口工具VSPD,右键单击VSPD.exe,选择以管理员身份运行,选择默认语言English(暂无中文版),选择安装路径(需要记住安装路径,后续步骤要用)。


安装完成后,复制安装目录下的vspdctl.dll
文件并粘贴到前面的安装文件夹下,覆盖目标文件即可完成安装。

VSPD可以成对创建相互连通的虚拟串口。两个串口分别用来模拟相互连接的串口设备(例如,一个串口模拟主站,另一个模拟从站),在VSPD中选择确认虚拟串口的名称并选择Add pair
以成对添加串口。

添加完成后在VSPD中可以看到虚拟串口(virtual ports下,设备的物理串口列举在Physical ports下),在Windows的设备管理器中也能看到Virtual ports虚拟串口。在卸载VSPD前,务必通过Delete ports
删除虚拟串口。
2. Modbus 协议调试工具
Modbus RTU
是使用串口通讯最广泛的协议之一,市面上有大量的Modbus协议调试工具,本文推荐使用Modscan32
和Modsim32
,其中,Modscan32
作为Modbus
主站(模拟上位机软件),Modsim32
用来模拟Modbus
从站,也就是模拟工业现场的Modbus
设备。
2.1 Modsim32的使用
初次打开ModSim32是需要新建一个虚拟设备,

Modsim32支持同时新建多台模拟设备,新建完成后,输入从站的地址(Device id),寄存器起始地址(Address)和寄存器数量(Length),配置完成后点击Connect连接串口,本例以COM3和COM4为一对虚拟串口为例,将ModSim32创建的虚拟设备连接到COM4,输入串口的波特率等参数。当然,ModSim32也支持通过物理串口模拟Modbus设备。

本例新建了设备id为1和2两台虚拟设备并都连接在虚拟串口COM4上,ModSim32支持设置寄存器值,可以通过固定值、随机值和递增、递减四种方式设置寄存器值。双击某个寄存器,可以设置其对应值,如果要设置固定值,只需要修改Value值并选择Update按钮进行更新,如果要进行更高级的模拟,需要点击Auto Simulation
,选择Random
(随机)或者Increment
(递增)Decrement
(递减)方式,并且配置最大最小值。

模拟完成后,选择Disconnect
断开串口连接,Modsim配置可以保存在文件中,以免进行复杂的模拟时,每次打开Modsim32都需要逐个重新配置。

2.2 ModScan32的使用
Modscan32的使用与Modsim32非常类似,新建模拟文件,配置要访问的从站设备id地址与寄存器范围,连接并配置串口参数,本例要与前节的Modsim32进行通讯,因此连接第一节VSPD创建的成对串口的另一个(COM3),并保证两个串口参数一致。

连接完成后,Modscan32就可以与前节的Modsim32创建的modbus设备进行通讯了。

如果要修改某个线圈或者寄存器地址,只要双击该地址并进行设置即可,在Modscan中修改后,在Modsim中可以看到修改后的参数值。退出Modscan32前,需要先断开连接。

需要特别注意的是,Modsim32每个文件仅能同时模拟一个寄存器范围,例如,要同时模拟一个Modbus设备的01线圈和03保持寄存器,需要新建两个设备并进行配置,在modscan32中才可以正常访问。


3. 其他串口调试工具
串口调试软件很多,本例介绍其中几个常用的工具。
3.1 串口调试软件ComMonitor
右键使用管理员模式打开该软件,本例中同时打开两个软件实例,分别打开COM3和COM4,设置同样的串口参数,从一个串口发送,可以在另一个串口的接收区看到发送的内容。

该串口调试软件相对同类软件功能较为完善,支持16进制和字符串形式发送和接收数据(如果在接收区看不到数据,首先需要检查发送和接收区是16进制格式还是字符串格式,三个发送区的格式需要分别设置。
串口协议往往需要进行CRC校验,本软件集成了CRC校验功能,在发送数据前可以点击校验并选择对应的校验算法进行校验。该软件还支持定时循环发送的功能,可以满足大部分日常调试使用。

3.2 串口调试助手SSCOM
串口调试助手是一款功能更精简的串口调试软件,本文同样打开两个连接COM3和COM4的实例进行收发测试。类似地,需要注意区分发送和接收的数据格式是字符串还是16进制数。

3.3 开源工具Serial Studio
和前述软件不同,Serial Studio是一款基于C++开发的,开源的串口调试软件,他支持不同操作系统,不仅支持串口,也支持以太网和MQTT协议,Serial Studio软件需要安装后使用。
使用串口时,选择并设置串口参数,然后点击右上角连接按钮进行连接。类似的,可以发送或者接收串口数据。由于Serial Studio汉化并不太好,在设定界面设置语言为英文可能更方便一些。

关注公众号:维思自动化,发送 串口通讯,获取本文提到的工具软件资料。