现场调试设备最头疼的是什么?跑现场。设备在千里之外,串口参数要改一个,人就得飞过去。
研华的 VCOM(Virtual COM)功能就是为了解决这个问题——它把网关的物理串口通过网络”搬运”到你电脑上的虚拟串口,你坐在办公室就能像在现场一样调试设备。
听起来很美好,但用的时候有个致命的坑——串口独占。这个坑不知道坑了多少人,我自己也踩过。这篇就把 VCOM 的原理、用法和那个大坑一次讲清楚。
一、VCOM 是什么?
VCOM 全称 Virtual COM(虚拟串口),它的核心功能就一句话:把网关(如 ECU-1051)的物理串口通过网络绑定到 PC 的虚拟串口。
PC 上的软件操作虚拟串口时,数据会通过网络透传到网关的物理串口,反之亦然。对你 PC 上的软件来说,就像直接连着设备的串口一样,完全感知不到中间隔了一层网络。
数据流向是这样的:
PC 串口软件 ↔ 虚拟串口(COM11) ↔ 网络(TCP/UDP) ↔ 网关物理串口 ↔ 实际串口设备
二、工作原理
VCOM 的实现分两端:
设备端(网关)
- 在网关上启用 VCOM 服务
- 网关开始监听网络端口:
- TCP 9031 —— 用于 TCP 模式连接
- UDP 6565 —— 用于 UDP 模式连接
- 网关将其物理串口(如 COM1、COM2)暴露给网络
PC 端
- 安装 EdgeLink VCOM Manager 软件(随 EdgeLink Studio 一起安装)
- 搜索局域网内的网关设备
- 选择要绑定的网关物理串口 → PC 上自动生成一个虚拟串口(如 COM11)
- 绑定完成后,PC 软件打开 COM11 即可透传数据
TCP vs UDP 模式
| 模式 | 端口 | 特点 | 适用场景 |
|---|---|---|---|
| TCP | 9031 | 可靠传输,有连接确认 | 推荐默认使用 |
| UDP | 6565 | 延迟更低,但不保证送达 | 对实时性要求高、可容忍丢包的场景 |
🔧 建议:除非你有特殊的低延迟需求,否则一律用 TCP 模式。串口调试对数据完整性要求高,UDP 丢一个字节就可能导致整帧数据作废。
三、主要用途
VCOM 适用于以下场景:
- 远程维护:通过 VPN 连接到网关后,用 VCOM 远程配置现场设备的串口参数
- 固件升级:通过虚拟串口远程给现场设备刷固件
- 远程调试:在办公室用串口调试工具(如 Modbus Poll、串口助手)远程调试现场设备
- 程序下载:通过 VCOM 远程给 PLC 下载程序(部分品牌 PLC 支持串口编程)
适用场景特征
VCOM 适合非连续、对延迟不敏感的维护任务。比如:
- ✅ 偶尔改个设备参数
- ✅ 定期升级固件
- ✅ 故障排查时临时读取数据
不推荐作为长期、高频的远程串口服务器使用。如果你需要 7×24 小时持续采集串口数据,应该直接在网关上配置 Modbus RTU 采集任务,而不是通过 VCOM 把串口透传到 PC 上采集。原因下面讲。
四、那个致命的坑:串口独占
这是 VCOM 最重要的限制,也是最容易踩的坑。
问题描述
串口是独占资源——同一时间只能被一个控制者使用。如果网关的物理串口已经被本地程序(如 EdgeLink 的 Modbus RTU 采集任务)占用,启用 VCOM 绑定后,本地采集程序会立即停止采集,直到 VCOM 解绑。
反过来也一样:如果 VCOM 正在使用某个串口,你在 EdgeLink 中配置该串口的采集任务也不会生效。
为什么会这样?
这不是 EdgeLink 的 bug,而是串口硬件的物理特性。一个物理串口在任何时刻只能有一个进程独占打开。VCOM 远程控制串口时,它会接管这个串口,本地程序自然就被踢出去了。
实际影响
想象这个场景:
- 你的网关正在通过 COM1 采集 20 台电表的数据,数据正常上传到云端
- 某天你需要远程修改其中一台电表的参数
- 你打开 VCOM Manager,绑定 COM1
- 瞬间,20 台电表的数据采集全部停止
- 云端数据出现断档
- 你改完参数,解绑 VCOM
- 采集恢复
如果你的系统对数据连续性有要求(比如电力监控、能耗统计),这个断档是不可接受的。
解决方案
| 方案 | 做法 | 优缺点 |
|---|---|---|
| 方案A:错峰操作 | 在数据采集允许中断的时段(如维护窗口期)使用 VCOM | 简单,但需要协调时间 |
| 方案B:专用调试串口 | 预留一个串口不配置采集任务,专门用于 VCOM 调试 | 需要多一个串口资源 |
| 方案C:Modbus TCP 替代 | 通过网关的北向 Modbus TCP Server 端口直接读写 Tag 值,不需要占用串口 | 最推荐,不影响采集 |
💡 最佳实践:如果只是要读取或修改某个 Tag 值,完全不需要动串口。通过 EdgeLink 的 RESTful API 或 Modbus TCP Server 接口,可以在线读写 Tag 值,不影响任何正在运行的采集任务。具体方法见本系列的 API 文章。
五、VCOM 配置步骤
5.1 网关端配置
- 打开 EdgeLink Studio,连接到网关
- 找到”系统设置” → “网络和 Ethernet” → “网络设置”
- 找到 VCOM 相关设置,启用 VCOM 服务
- 保存并下载到网关
5.2 PC 端配置
- 确保已安装 EdgeLink VCOM Manager(随 EdgeLink Studio 安装)
- 确保 PC 与网关在同一局域网,或通过 VPN 连通
- 打开 VCOM Manager
- 搜索局域网内的设备
- 选择目标网关和要绑定的物理串口
- 点击”绑定”,PC 上会自动生成一个虚拟串口(如 COM11)
- 打开你的串口软件,选择 COM11,设置与现场设备一致的串口参数
- 开始调试
5.3 使用完毕
- 在 VCOM Manager 中解绑虚拟串口
- 确认网关的本地采集任务恢复正常(在 EdgeLink 在线监控中检查 Tag 质量值)
⚠️ 重要提醒:使用完 VCOM 后一定要记得解绑!很多人调试完关掉串口软件就走了,忘了在 VCOM Manager 中解绑,结果网关的采集任务一直处于停止状态,直到有人发现数据断档才想起来。
六、排错指南
验证数据通道是否通畅
当 VCOM 绑定成功但数据收发异常时,按以下步骤排查:
第一步:验证虚拟串口是否正常
在 PC 上用串口调试工具(如 SSCOM、串口调试助手)打开虚拟串口,发送一帧已知数据。如果能正常发送且没有报错,说明虚拟串口驱动正常。
第二步:验证物理通道
用一个 RS485 转 USB 模块并接在网关的物理串口上监听。PC 端通过 VCOM 发送数据时,监听端应该能收到相同的数据。如果监听端收不到,说明 VCOM 到网关的通道有问题。
第三步:分离测试
- 先解绑 VCOM,在 EdgeLink 中配置该串口的 Modbus 采集任务,确认本地采集正常——这排除了串口硬件和接线问题
- 再绑定 VCOM,用串口工具直接操作虚拟串口,发送 Modbus 请求帧,看设备是否正常回复
第四步:检查接线
- RS485 的 A(D+)和 B(D-)是否接对
- GND 是否共地连接(虽然 RS485 是差分信号,但共地能提高抗干扰能力)
- 终端电阻是否正确安装(总线两端各一个 120Ω)
常见问题速查表
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| VCOM Manager 搜不到设备 | 不在同一局域网/防火墙阻断 | 检查网络连通性,确认 PC 和网关在同一网段 |
| 绑定成功但虚拟串口无法打开 | 驱动未正确安装/串口被其他程序占用 | 重新安装 VCOM 驱动,检查是否有其他程序占用了该 COM 口 |
| 数据收不到 | 串口参数不匹配/接线错误 | 核对波特率等参数,检查 RS485 A/B 接线 |
| 数据时有时无 | 网络不稳定/线路干扰 | 检查网络质量,使用 TCP 模式而非 UDP |
| 采集任务停止 | VCOM 占用了串口(串口独占) | 解绑 VCOM,采集任务会自动恢复 |
| 虚拟串口编号冲突 | COM11 已被其他设备占用 | 在 VCOM Manager 中手动指定其他编号 |
七、VCOM vs 其他远程方案对比
| 对比维度 | VCOM 虚拟串口 | Modbus TCP Server | RESTful API |
|---|---|---|---|
| 占用串口 | 是(独占) | 否 | 否 |
| 影响采集任务 | 是 | 否 | 否 |
| 适用场景 | 设备级调试(改参数、刷固件) | Tag 级读写 | Tag 级读写、系统管理 |
| 操作粒度 | 串口原始数据 | 寄存器/Tag 级 | Tag 级 |
| 延迟 | 较高(经过网络透传) | 低 | 低 |
| 推荐度 | ⭐⭐(维护用) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
小结
VCOM 是一个好用的远程调试工具,但不是日常运行方案。
记住三个要点:
- VCOM 会独占串口,使用时本地采集会停止——用完一定解绑
- 适合非连续的维护操作,不适合长期数据采集
- 如果只是读写 Tag 值,用 Modbus TCP Server 或 RESTful API 更好,不影响采集
实际项目中,我的建议是:VCOM 留着偶尔调试用,日常运行全走网关本地采集 + 北向上传。这样既保证了数据连续性,又保留了远程维护的能力。
官方文档
上一篇:[EdgeLink 网关 Modbus 配置:从南到北打通数据流] 下一篇:[EdgeLink SimpleMQTT 连接 EMQX:从配置到验证全流程]
