SuperCom 详细使用教程
概述
SuperCom 是一款超级串口调试工具,由 SuperStudio 团队开发(GitHub: https://github.com/SuperStudio/SuperCom),当前版本 4.6。定位为长时间串口日志采集、SQLite 本地存储、可视化分析的工业级上位机。基于 C# WPF (.NET Framework 4.7.2) + AvalonEdit 语法高亮编辑器。遵循 GPL-3.0 许可证。
- 运行方式:绿色版双击 `SuperCom.exe` 即可;安装版运行 `Installer\setup.exe`
- 运行框架:.NET Framework 4.7.2 (WPF)
- 数据存储:SQLite (`user_data.sqlite`)
- 目录结构:包含 `app_config.json`、`superupdate.ini`、`plugins/`、`x64/`、`x86/`、`logs/`、`backup/` 等
快速开始
1. 绿色版启动
# 确保 x64/x86 目录和 DLL 文件完整
cd D:\工业协议\工业工控\可直接运行工具包\SuperCom
SuperCom.exe
首次运行自动初始化 SQLite 数据库、创建必要目录、加载插件。
2. 安装版启动
Installer\setup.exe
# 向导安装后,从开始菜单或桌面快捷方式运行
3. 连接串口
- 启动程序后,在主界面选择 "多会话串口监控"
- 添加新标签页,选择目标 COM 口
- 配置波特率、数据位、停止位、校验、流控
- 点击 "打开" 开始监听
核心功能详解
多会话串口监控
- 多端口同时监听:标签页 / 停靠窗口管理 N 个 COM 口
- 参数配置:波特率(自定义)、数据位/停止位/校验/流控、读取超时/缓冲区大小
- 编码支持:HEX / ASCII / UTF-8 / GB2312 / 自定义 CodePage
- 时间戳:精度 μs、绝对/相对/会话起始
- 自动重连:拔插/断电检测 → 指数退避重连
长期日志采集与 SQLite 存储
- 全量入库:每帧数据实时 INSERT SQLite(WAL 模式、批量事务、索引优化)
- 分表策略:按天/按会话/按设备自动分表(`logs_YYYYMMDD`、`session_`)
- 容量管理:
- 最大库大小默认 10GB → 自动归档最旧分表到 `backup/`(压缩 `.sqlite.gz`)
- 保留天数默认 365 天 → 自动清理
- 磁盘空间低于 1GB → 暂停写入、报警
SQL 查询界面
- 点击 "查询" 面板
- 使用 AvalonEdit 高亮编辑器输入 SQL
- 支持可视化查询构建器(时间范围/端口/方向/关键字/长度范围)
- 结果网格支持虚拟化、导出 CSV/Excel/JSON/Parquet
协议解析与插件系统
- 内置协议:Modbus RTU/ASCII/TCP、DL/T645、自定义帧(帧头/长度/校验/帧尾)
- 插件架构:`plugins/` 目录,`check_plugins/` 验证
- 接口:`IProtocolPlugin`、`IExportPlugin`、`IUIExtensionPlugin`
- 热加载:运行时扫描 `plugins/*.dll`
- 示例插件:Modbus 解析器、CSV/InfluxDB 导出、报警脚本
可视化分析面板
| 图表类型 |
交互 |
| 通信统计 |
帧率/吞吐/错误率/校验失败率时间序列 |
| 协议分布 |
饼图/柱状图 |
| 热力图 |
时段×端口×帧率/错误率矩阵 |
发送与自动化
发送队列
脚本引擎
- 支持 C# Script (Roslyn) / Lua (MoonSharp) / Python (IronPython)
- AvalonEdit 高亮编辑器
触发器
- 时间触发:Cron 表达式
- 数据触发:收到特定帧/字段值满足条件
- 外部触发:HTTP/WebSocket/文件系统/命名管道
宏录制/回放
- 点击 "开始录制"
- 执行操作序列
- 点击 "停止录制"
- 导出脚本或直接回放
终端模拟
- VT100/ANSI/xterm-256color 终端模拟器(AvalonEdit 适配)
- Telnet/SSH 客户端(Renci.SshNet 集成)
- 文本协议模板:AT 指令集、Modbus ASCII、自定义请求/响应正则
配置说明
app_config.json 主要配置
{
"DefaultPortSettings": { "BaudRate": 115200, "DataBits": 8, "Parity": "None", "StopBits": "One" },
"Database": { "MaxSizeGB": 10, "RetentionDays": 365, "WALMode": true },
"Plugins": { "AutoLoad": true, "Directory": "plugins" },
"UI": { "Theme": "Dark", "Language": "zh-CN", "FontFamily": "Consolas", "FontSize": 10 }
}
superupdate.ini 更新配置
BeforeUpdateDelay=5
AfterUpdateDelay=1
UpDateFileDir=TEMP
AppName=SuperCom.exe
配置文件说明
| 文件 |
说明 |
| `superupdate.ini` |
自动更新配置 |
| `user_data.sqlite` |
主数据库(日志/配置/会话) |
| `writereg.reg` |
注册表写入配置 |
目录结构
SuperCom/
├─ SuperCom.exe # 主程序
├─ app_config.json # 应用配置
├─ superupdate.ini # 自动更新配置
├─ user_data.sqlite # 主数据库
├─ AvalonEdit/ # 语法高亮编辑器依赖
├─ x64/ / x86/ # 本地运行时库
├─ plugins/ # 插件 DLL
├─ logs/ # 文本日志归档
├─ app_logs/ # 应用运行日志
├─ monitor_data/ # 监控导出缓存
├─ backup/ # 归档压缩库
└─ Installer/
└─ setup.exe # 安装程序
键盘快捷键
| 快捷键 |
功能 |
| `Ctrl+Shift+T` |
新建标签页 |
| `Ctrl+S` |
发送数据 |
| `Ctrl+L` |
清空接收区 |
| `Ctrl+F` |
搜索/过滤 |
| `Ctrl+Q` |
退出程序 |
| `F1` |
帮助文档 |
| `F5` |
刷新串口列表 |
| `Ctrl+Shift+S` |
保存会话 |
常用操作流程
场景一:生产线长期串口日志采集
- 绿色版部署到工控机,确保 `x64/` 目录和 DLL 完整
- 配置 `app_config.json` 设置数据库容量和保留天数
- 连接目标设备串口,打开监控
- 程序自动将所有数据写入 SQLite
- 定期使用 SQL 查询面板分析历史数据
- 数据超过保留期限后自动归档到 `backup/`
场景二:协议逆向分析
- 连接目标设备串口
- 使用 AvalonEdit 编辑器编写脚本
- 捕获收发数据,观察原始/解析双栏同步
- 利用插件系统加载自定义协议解析器
- 导出分析结果为 CSV/JSON
场景三:自动化测试
- 编写 C#/Lua 脚本定义测试流程
- 配置触发器(时间/数据条件)
- 启动录制宏
- 观察实时波形和统计面板
- 生成测试报告
故障排查
| 现象 |
可能原因 |
解决方案 |
| 数据库异常 |
SQLite 损坏/磁盘空间不足 |
检查 `backup/` 目录,清理空间,使用备份恢复 |
| 插件加载失败 |
DLL 依赖缺失/版本不匹配 |
检查 `check_plugins/` 目录,重新安装插件 |
| 连接断开 |
串口设备异常/驱动问题 |
检查设备连接,查看 `app_logs/` 运行日志 |
| 日志写入停止 |
磁盘空间低于 1GB |
清理磁盘或修改 `MaxSizeGB` 配置 |
| 更新失败 |
网络不通/权限不足 |
检查 `superupdate.ini` 配置,以管理员运行 |
注意事项
- 运行依赖:必须保留 `x64/` 和 `x86/` 目录及所有 DLL 文件
- 版本说明:v4.5 后作者推荐后继项目 SuperConnectX
- 磁盘空间:确保充足空间用于 SQLite 数据库和日志归档