okdebug 是一款功能极其全面的工业综合调试工具 (瑞士军刀型),由「泛依」开发。集成西门子/三菱 PLC、Modbus、OPC UA、串口、TCP/UDP/WebSocket、WebService、数据库读写、标签打印等几十种工业通讯协议与实用工具于单一界面。遵循 MIT 许可证。
| 厂商/协议 | 支持系列/功能 | 底层库 |
|---|---|---|
| 三菱 | FX/Q/L/iQ-R (MC 协议 3E/4E 帧、批量读写、位/字设备) | `HslCommunication` |
| 罗克韦尔 | ControlLogix/CompactLogix (CIP/EtherNet/IP、Tag 读写) | `HslCommunication` |
| 欧姆龙 | CJ/CS/NJ (FINS/TCP、内存区读写) | `HslCommunication` |
| 基恩士/台达/松下/信捷/汇川/永宏 | 覆盖主流国产/台系 PLC | `HslCommunication` |
| Modbus | RTU/ASCII/TCP、主站/从站仿真、功能码全覆盖 | `HslCommunication` + 自研 |
通用功能:
| 协议 | 客户端/服务端 | 关键特性 |
|---|---|---|
| UDP | 双向 | 组播/广播、绑定本地端口、数据转发 |
| WebSocket | Client/Server | WS/WSS、自定义 Header/Subprotocol、Ping/Pong、二进制/文本帧 |
| HTTP/HTTPS | Client | REST API 测试、认证(Basic/Bearer/OAuth2)、文件上传/下载、代理 |
| WebService (SOAP) | Client | WSDL 导入、自动生成请求 XML、WS-Security、MTOM |
| 库 | 许可证 | 用途 | 版本/风险 |
|---|---|---|---|
| Opc.Ua.* (OPC Foundation) | MIT / 双许可 | OPC UA 标准栈 | MIT 版本可商用,企业版需授权 |
| Newtonsoft.Json | MIT | JSON | 无 |
| log4net | Apache-2.0 | 日志 | 无 |
| MySql.Data / MySqlConnector | GPLv2 / MIT | MySQL 驱动 | MySql.Data 为 GPLv2,若分发需开源或购买商业授权;建议改用 MySqlConnector (MIT) |
| System.Data.SQLite | MIT | SQLite | 无 |
| RestSharp | Apache-2.0 | HTTP Client | 无 |
| SuperSocket / SuperWebSocket | Apache-2.0 | Socket 服务端框架 | 无 |
| BarTender Interop | 专有 | 标签打印 | 需 BarTender 正版授权 |
| AForge / Accord (如含) | LGPL/BSD | 图像/视频 | 确认具体许可证 |
REM 直接运行 (需所有 DLL 在同目录)
OKDebug.exe
REM 或通过安装包部署 (Installer/setup.exe)
| 场景 | 优势 |
|---|---|
| OPC UA 客户端开发/测试 | 完整栈支持、证书管理、历史读取、方法调用、订阅监控 |
| 协议网关/转换开发调试 | 同时开启 TCP/UDP/串口/Modbus/OPC UA,实时抓包对比 |
| 数据库运维/数据迁移 | 多库统一管理、SQL 编辑器、导入导出、结构同步 |
| 标签打印集成测试 | BarTender 模板预览、变量绑定验证、批量打印模拟 |
| 现场运维应急包 | U 盘携带、覆盖 90% 工业调试场景、配置自带 |
okdebug 是一款功能极其全面的工业综合调试工具(瑞士军刀型),由「泛依」开发。集成西门子/三菱 PLC、Modbus、OPC UA、串口、TCP/UDP/WebSocket、WebService、数据库读写、标签打印等几十种工业通讯协议与实用工具于单一界面。
D:\工业协议\工业工控\可直接运行工具包\okdebug\
├── OKDebug.exe ← 主程序
├── OKDebug.exe.config ← 配置文件
├── HslCommunication.dll ← 多厂商 PLC 协议栈
├── Opc.Ua.Client.dll ← OPC UA 客户端
├── MySql.Data.dll ← MySQL 驱动
├── System.Data.SQLite.dll ← SQLite 驱动
├── Newtonsoft.Json.dll ← JSON 序列化
├── log4net.dll ← 日志框架
├── RestSharp.dll ← HTTP Client
├── SuperSocket.*.dll ← Socket 服务端框架
├── PortSerial.dll ← 串口通讯库
├── Fdb.dll / Futil.dll ← 辅助库
├── ... (其他依赖 DLL)
├── 功能详细介绍.md ← 功能总览
└── 详细使用教程.md ← 本文件
直接双击 `OKDebug.exe` 即可启动程序。首次运行时可能需要初始化配置:
| 顺序 | 操作 | 说明 |
|---|---|---|
| 2 | PLC 连接 | PLC 面板 → 新建 → 选择厂商/系列 → 填 IP/槽/机架 → 连接测试 |
| 3 | OPC UA | OPC UA 面板 → 发现服务器 → 选择安全策略/认证 → 连接 |
| 4 | 标签打印 | 安装 BarTender → 设计模板 → 打印面板加载模板 → 绑定变量 |
| 厂商 | 支持系列/功能 | 说明 |
|---|---|---|
| 三菱 | FX/Q/L/iQ-R (MC 协议 3E/4E 帧) | 批量读写、位/字设备 |
| 罗克韦尔 | ControlLogix/CompactLogix (CIP/EtherNet/IP) | Tag 读写 |
| 欧姆龙 | CJ/CS/NJ (FINS/TCP、内存区读写) | 支持内存区操作 |
| 基恩士/台达/松下/信捷/汇川/永宏 | 覆盖主流国产/台系 PLC | 广泛兼容 |
| Modbus | RTU/ASCII/TCP、主站/从站仿真 | 功能码全覆盖 |
底层库:统一使用 `HslCommunication` 库
支持各厂商原生地址格式:
| 厂商 | 地址格式 | 示例 | 说明 |
|---|---|---|---|
| 三菱 | `M100` | `M100` | 位元件 |
| 三菱 | `D100` | `D100` | 数据寄存器 |
| 欧姆龙 | `W100` | `W100` | 工作寄存器 |
| 通用 | `40001` | `40001` | Modbus 保持寄存器 |
批量读取:
批量写入:
定时轮询:
支持以下发现方式:
| 安全模式 | 说明 |
|---|---|
| Basic128Rsa15 | 基本 128 位 RSA 加密 |
| Basic256 | 基本 256 位加密 |
| Basic256Sha256 | SHA-256 签名加密(推荐) |
| 数据库 | 驱动 | 说明 |
|---|---|---|
| MySQL | MySqlConnector (推荐) / MySql.Data | MySQL 数据库 |
| SQLite | System.Data.SQLite | 嵌入式数据库 |
| PostgreSQL | Npgsql | PostgreSQL 数据库 |
| Oracle | Oracle.ManagedDataAccess | Oracle 数据库 |
支持以下编码互转:
| 校验类型 | 说明 |
|---|---|
| CRC-16 | 16 位循环冗余校验(十余种多项式) |
| CRC-32 | 32 位循环冗余校验 |
| LRC | 纵向冗余校验 |
| Checksum | 累加和校验 |
| Modbus CRC | Modbus 专用 CRC-16 |
| 自定义多项式 | 用户自定义多项式 |
支持以下工程单位互换:
`OKDebug.exe.config` 主要配置项:
如需后台持续运行,可使用 TopShelf 或 .NET Generic Host 配置为 Windows 服务:
OKDebug.exe /service
| 问题 | 原因 | 解决方法 |
|---|---|---|
| `BadImageFormatException` | 平台架构不匹配 | 确认 DLL 与程序同为 x86 或 x64 |
| `FileNotFoundException` | 缺少特定 DLL | 从原始打包目录复制缺失文件 |
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 三菱 PLC 通信失败 | 协议帧格式不匹配 | 检查 MC 协议版本(3E/4E 帧) |
| Modbus CRC 错误 | 波特率或数据位不匹配 | 确认串口参数 |
| 批量读写失败 | 地址超出范围 | 检查地址是否在设备范围内 |
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 证书不受信任 | 未导入服务器证书 | 导入并信任服务器证书 |
| 订阅无数据 | 采样率或队列配置不当 | 调整订阅参数 |
| 连接断开频繁 | 安全策略不匹配 | 确认安全模式和认证方式 |
| 问题 | 原因 | 解决方法 |
|---|---|---|
| SQL Server 认证失败 | 凭据错误或协议不匹配 | 检查连接字符串 |
| SQLite 文件锁定 | 并发访问冲突 | 确保同一时间只有一个写入者 |
| 导入数据乱码 | 编码不匹配 | 确认文件使用 UTF-8 编码 |
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 内存占用高 | 历史数据缓存过大 | 调整缓存大小 |
| 日志文件过大 | 日志级别过低 | 调整日志级别 |
| 多工具同时卡顿 | 资源竞争 | 合理分配各工具的运行时间 |
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 打开连接 | F5 | 测试并连接 |
| 断开连接 | Ctrl+D | 断开当前连接 |
| 批量读取 | Ctrl+R | 批量读取数据 |
| 批量写入 | Ctrl+W | 批量写入数据 |
| 导出 CSV | Ctrl+E | 导出数据 |
| 切换标签页 | Ctrl+Tab | 切换功能面板 |
| 查找 | Ctrl+F | 在当前面板中查找 |
| 清空 | Ctrl+L | 清空当前显示 |
| 设置 | Ctrl+S | 打开设置面板 |
| 功能 | 入口 | 说明 |
|---|---|---|
| OPC UA | 左侧导航 → OPC UA | OPC UA 服务器操作 |
| 串口调试 | 左侧导航 → 串口 | 通用串口调试器 |
| 数据库 | 左侧导航 → 数据库 | 多数据库管理 |
| 标签打印 | 左侧导航 → 打印 | BarTender 标签打印 |
| 工具箱 | 左侧导航 → 工具 | 编码/CRC/正则等工具 |
| 网络调试 | 左侧导航 → 网络 | TCP/UDP/WebSocket 等 |
REM 最简启动
OKDebug.exe
REM 指定配置文件
OKDebug.exe --config=myconfig.xml