com0com 虚拟串口:没有设备也能调中控程序

2026-08-25
com0com(虚拟串口对) 又称 com0com、虚拟串口、虚拟串口对、null-modem emulator、虚拟COM口
分类
协议调试
平台
Windows
许可证
GPL-2.0
许可证说明
开源项目,源码与安装包都发布在 SourceForge 项目页,无独立 GitHub 仓库,因此不参与本站的自动跟版。
是否开源
开源
收费模式
免费
适用工序
中控与协议、系统集成与交付
支持协议
RS232、RS485
选型结论:设备还没进场就想把中控程序调通,或者一个串口要同时给中控和监控两个程序用,虚拟串口是唯一的软办法;代价是它属于内核驱动,装不上时你要跟 Windows 的驱动签名机制打交道。
官方下载
获取最新版(具体版本号以官网页面为准)
前往官网下载 ↗
本站网盘镜像
镜像版本 3.0.0.0 | 镜像于 2026-09-02
提取码:dbtz
网盘下载 ↗

⚠️ 网盘镜像为人工上传备份,版本可能滞后于上方「官方下载」的最新版,请以官方版本号为准。

在商业项目里用 com0com(虚拟串口对),先看授权

按 GPL-2.0 发布,商业项目里使用不收费。要留意的同样是分发环节——它随交付物装进甲方设备、或被打包进你自己的安装程序,属于 GPL 意义上的分发,需要提供许可证文本并按 GPL 要求提供源码获取途径。自用调试不触发这一条。

以上以厂商许可协议与定价页原文为准;条款会变动,签合同前请以官方当前版本为准。

它到底解决什么

有两个场景,展厅项目上几乎每年都会撞见。

第一个:程序写完了,设备还在路上。 中控界面已经画好、指令表也拿到了,但那台投影机要下周才到场。这时候程序能不能跑,你说不清——按钮点下去没反应,你不知道是程序错了还是本来就没设备。项目排期一旦卡在这里,后面的联调时间会被压得很紧。

第二个:一个串口,两个程序都要用。 前面讲过串口的独占特性:同一时刻只能有一个程序打开它。可现场偏偏有这种需求——中控要发指令,同时监控系统要读设备状态。真接两根线是最干净的办法,但设备只有一个串口,这条路走不通。

com0com 提供的思路是:在系统里凭空造出一对串口。比如它给你造出 COM10 和 COM11,这两个口在系统看来是真的,任何程序都能打开它们;而它俩背靠背连在一起——往 COM10 里写的每一个字节,会原样从 COM11 冒出来,反之亦然。相当于系统内部拉了一根看不见的串口线。

有了这一对,上面两个问题就有了解法:中控程序连 COM10,你自己拿调试助手连 COM11 假扮设备,程序就能跑起来了。

展厅哪道工序会用到它

方案与开发阶段用得最多。 中控程序的逻辑部分——按钮响应、指令时序、开关机流程、异常重试——这些跟真设备其实没多大关系,完全可以在办公室里用虚拟串口对调完。等设备到场,只剩下「指令内容对不对」这一件事要验,联调时间能省下大半。

售前演示也常用。 给甲方演示中控界面,总不能扛一台投影机去。虚拟串口对接一个假设备,点开机就能在日志里看到指令发出去了,演示效果和真机一样。

培训场合同理。 新人学中控,人手一台设备不现实,虚拟串口让每个人都能在自己笔记本上练完整流程。

怎么获取与安装

项目主页 com0com.sourceforge.net 提供源码和安装包。它是开源项目,许可证是 GPL-2.0。

安装这一步需要单独说,因为它是这个工具最容易卡住人的地方:虚拟串口不是普通应用程序,它是一个内核级的驱动。Windows 对内核驱动有签名要求,未经过微软签名的驱动,系统默认拒绝加载。所以安装时可能出现两种结果——顺利装上,或者装完了但设备管理器里那对串口带着感叹号、根本不能用。

遇到后者,别急着换工具,先看清楚系统给的提示是不是签名相关。处理这类问题有几条路:找带签名的构建版本、或者按微软文档在测试模式下加载驱动。但要注意,让系统接受未签名驱动本质上是降低了这台机器的安全基线,办公室的开发机上这么做可以接受,交付给甲方的工程机上不建议。

最短可用路径

  1. 装好之后打开它的配置界面(安装目录里有 GUI 版和命令行版两个)。
  2. 添加一个串口对,界面上会出现两个口,默认名字可能是 CNCA0 和 CNCB0。
  3. 把名字改成 COM 开头的编号,比如 COM10、COM11。这一步很重要——很多老的中控软件、播控软件只认 COM 加数字的口名,看到 CNCA0 会直接不认。
  4. 改完之后到设备管理器里确认这两个口正常出现、没有感叹号。
  5. 拿两个调试助手窗口各连一个口,互相发一句,能收到就通了。

要选的编号有个小讲究:避开系统里已经存在的编号。物理串口线常占 COM3、COM4 这些小号,虚拟口往后排到 COM10 以上,可以省掉一次冲突排查。

展厅工程里真正要改的那几个设置

波特率在虚拟串口上是摆设。 这是使用中最容易造成误判的一点:虚拟口两端设成不同波特率,数据照样能通——因为根本没有真实的电信号,波特率无从生效。所以用虚拟串口验证过的程序,不代表波特率配对了。等接上真设备,波特率不对该出的问题一个都不会少。心里要清楚这一条,别把虚拟口测通当成万事大吉。

流控(RTS/CTS)的行为要留意。 虚拟口对握手信号的模拟不一定和真实硬件完全一致,如果你的设备协议依赖硬件流控,这部分还是得在真设备上验。展厅设备用硬件流控的不算多,但矩阵和一些老工控设备里有。

成对使用,不要单开。 两个口必须一起存在才有意义,删的时候也是成对删。留下孤立的虚拟口在系统里,日后排查串口问题时会平添混乱。

关于串口本身的电气与协议基础,看RS232 和 RS485 到底差在哪。真机接上之后开始乱码或者收不到数据,那已经是物理层的事,虚拟串口帮不了忙,对应的排查见RS232 串口乱码排查

踩坑与排错清单

现象 多半是什么原因 怎么处理
装完设备管理器里有黄色感叹号 驱动签名没过 看清系统给的具体提示,按签名相关的路子处理;甲方工程机上不建议强行绕过
中控软件的端口列表里看不到虚拟口 口名不是 COM+数字格式 到配置界面把口名改成 COM10 这类
两个口互发收不到 有一端没真正打开,或者被另一个程序占着 先确认两个窗口的连接开关都按下了
真设备接上后不通,虚拟口时明明是通的 波特率、数据位、校验位在虚拟口上不生效,掩盖了配置错误 拿设备手册重新核对这几项,虚拟口上的测试结果对此不作数
系统升级后虚拟口消失 驱动被系统更新清掉或屏蔽 重装;生产环境本来就不该依赖它
删掉了口但系统里还有残留 卸载不彻底 用它自带的卸载/删除功能清,不要直接删文件

什么时候别用它

别把它留在交付系统里。 调试期的脚手架要在交付前拆掉。留着的后果是:日后现场出故障,排查的人看到系统里有个来路不明的虚拟串口驱动,会先怀疑它,白白多绕一圈。

别用它验证物理层。 线序接反、屏蔽层没接地、485 总线缺终端电阻、距离太远信号衰减——这些是展厅串口故障里占比最高的一类,虚拟串口一个都复现不了。它验证的是「程序逻辑对不对」,不是「线接得对不对」。

别在不允许装驱动的机器上折腾。 有些甲方的工程机有安全基线要求,装内核驱动这件事要走审批。碰上这种情况,直接找真设备或者用两台机器加一根交叉串口线,比争取权限快。

如果你需要的是监听真实串口上跑的数据而不是造一个假串口,那是另一件事,用 Serial Port Monitor。如果只是想手动发几条指令验证设备,sscom 就够了,不必装驱动。

与本站方案的衔接

虚拟串口能解决的是「开发期没有设备」,解决不了「交付后设备很多」。展厅项目真正的成本在后者:十几台设备、几十条指令、开闭馆时序、异常重试与告警,这些靠调试工具堆不出来。

企服君中控 SoftControl 的思路是把设备驱动做成可复用的资产,新项目只做界面编排,不重写指令逻辑。对每年要交付多个展厅的集成商来说,这部分复用带来的工期节省是可以量化的——授权与年费方式见集成商年费方案

同类工具的分工,见指令到底发没发?六款调试工具怎么分工

📄 来源 / 自校链接

本文为公开资料整理,非亲测。关键参数与代码请结合实物与下列官方来源验证。

做展厅项目,软件授权不必每次重走采购

企服君有九款自研展厅软件。集成商年费一次备好全年额度,接到项目直接激活;已激活项目的授权永久有效。

留言讨论

评论发布后会被人工复核,违规内容将被删除。

    还没有人评论,来说说你的看法

    如果发表没有反应,可以前往联系我们告诉我们。

    这个页面有问题?

    提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。