okdebug

okdebug

开源项目 开源工具包

功能极其全面的工业综合调试工具,集成西门子/三菱PLC、Modbus、OPC UA、串口、TCP/UDP/WebSocket、WebService、数据库读写、标签打印等几十种工业通讯协议与实用工具。

核心特性

  • 多品牌PLC调试
  • OPC UA完整客户端
  • TCP/UDP/WebSocket
  • HTTP/WebService
  • 多数据库支持
  • 标签打印
  • 编码转换/CRC
  • 报文构造器

产品介绍

okdebug 是一款功能极其全面的工业综合调试工具 (瑞士军刀型),由「泛依」开发。集成西门子/三菱 PLC、Modbus、OPC UA、串口、TCP/UDP/WebSocket、WebService、数据库读写、标签打印等几十种工业通讯协议与实用工具于单一界面。遵循 MIT 许可证。

  • 打包来源:`okdebug\bin\Debug`
  • 运行平台:Windows (.NET Framework 4.7.2+ / .NET 6+)
  • 部署方式:`OKDebug.exe` + 大量依赖 DLL 同目录 (非单文件),双击运行
  • 配置文件:`OKDebug.exe.config`、各插件配置

核心功能模块 (按标签页/面板分类)

1. PLC 通讯面板

厂商/协议 支持系列/功能 底层库
三菱 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` + 自研

通用功能

  • 连接管理:多连接标签页、自动重连、心跳、连接池
  • 地址解析:支持 `DB1.DBW0`、`M100`、`D100`、`W100` 等厂商原生格式
  • 批量读写:Excel 导入点表、一键读取/写入、定时轮询
  • 数据监控:实时表格、曲线、报警、导出 CSV
  • 协议分析:原始报文捕获、解析字段显示、错误码对照

2. OPC UA 客户端

  • 标准合规:OPC UA 1.04 (OPC Foundation .NET Standard Library `Opc.Ua.Client`/`Core`/`Configuration`)
  • 功能
  • 服务器发现 (mDNS/LDS/手动 Endpoint)
  • 安全策略:None/Basic128Rsa15/Basic256/Basic256Sha256 + 签名/加密
  • 认证:匿名/用户名密码/证书/X.509
  • 地址空间浏览:树形展示、属性/方法/引用查看
  • 订阅/监控项:数据变更/事件通知、采样率/队列大小/死区配置
  • 历史读取:原始/修正/插值、时间范围/最大返回数
  • 方法调用:输入/输出参数、同步/异步
  • 证书管理:自动生成/导入/信任列表/吊销检查

3. 通用网络调试

协议 客户端/服务端 关键特性
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

4. 串口调试

  • 标准串口参数、HEX/ASCII/文本、时间戳、校验码计算(CRC/LRC/Checksum)
  • 自动发送/循环发送/响应脚本
  • Modbus RTU/ASCII 解析叠加显示

5. 数据库工具

  • 支持:SQL Server (`MySql.Data`/`System.Data.SqlClient`)、MySQL (`MySqlConnector`)、SQLite (`System.Data.SQLite`)、PostgreSQL (`Npgsql`)、Oracle (`Oracle.ManagedDataAccess`)
  • 功能:连接管理、表/视图/存储过程浏览、SQL 编辑器(高亮/智能提示)、执行计划、数据导入导出(CSV/Excel/SQL)、表结构同步、批量脚本执行

6. 标签打印

  • 打印引擎:`Interop.BarTender` (BarTender SDK COM)、ZPL/EPL/TSLP 原始指令发送
  • 模板设计:变量绑定(数据库/变量/计数器/日期)、条形码/二维码(Code128/QR/DataMatrix)、打印预览
  • 批量打印:CSV/数据库数据源驱动、打印日志、重打/补打

7. 实用工具箱

  • 编码转换:HEX/ASCII/Base64/URL/Unicode/UTF-8/GB2312 互转
  • CRC/校验:CRC-8/16/32 (十余种多项式)、LRC、Checksum、Modbus CRC、自定义多项式
  • 报文构造器:模板变量、计数器、时间戳、随机数、脚本表达式
  • 正则测试:多行/忽略大小写/捕获组高亮、替换预览
  • JSON/XML 格式化:树形/文本视图、XPath/XQuery 查询、Schema 验证
  • 单位换算:压力/温度/流量/长度/功率/能量 工程单位互换
  • 计算器:程序员模式(二进制/八进制/十六进制/位运算)、科学模式

依赖与第三方库 (关键)

许可证 用途 版本/风险
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)

首次运行配置

  1. 数据库连接:工具箱 → 数据库 → 新建连接 → 测试 → 保存
  2. PLC 连接:PLC 面板 → 新建 → 选择厂商/系列 → 填 IP/槽/机架 → 连接测试
  3. OPC UA:OPC UA 面板 → 发现服务器 → 选择安全策略/认证 → 连接
  4. 标签打印:安装 BarTender → 设计模板 → 打印面板加载模板 → 绑定变量

适用场景与优势

场景 优势
OPC UA 客户端开发/测试 完整栈支持、证书管理、历史读取、方法调用、订阅监控
协议网关/转换开发调试 同时开启 TCP/UDP/串口/Modbus/OPC UA,实时抓包对比
数据库运维/数据迁移 多库统一管理、SQL 编辑器、导入导出、结构同步
标签打印集成测试 BarTender 模板预览、变量绑定验证、批量打印模拟
现场运维应急包 U 盘携带、覆盖 90% 工业调试场景、配置自带

产品明细图

okdebug

详细使用教程

okdebug 是一款功能极其全面的工业综合调试工具(瑞士军刀型),由「泛依」开发。集成西门子/三菱 PLC、Modbus、OPC UA、串口、TCP/UDP/WebSocket、WebService、数据库读写、标签打印等几十种工业通讯协议与实用工具于单一界面。

  • 运行平台:Windows (.NET Framework 4.7.2+ / .NET 6+)
  • 部署方式:`OKDebug.exe` + 大量依赖 DLL 同目录,双击运行
  • 配置文件:`OKDebug.exe.config`、各插件配置
  • 许可证:MIT(附带 LGPLv3/GPLv2 等依赖许可证合规要求)

第一章:安装与启动

1.1 解压与目录结构


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          ← 本文件

1.2 首次运行

直接双击 `OKDebug.exe` 即可启动程序。首次运行时可能需要初始化配置:

  1. 检查所有依赖 DLL 是否在 OKDebug.exe 同目录
  2. 如缺少 DLL,程序可能无法启动,需从原始打包目录复制
  3. 程序启动后进入主界面

1.3 首次运行配置

顺序 操作 说明
2 PLC 连接 PLC 面板 → 新建 → 选择厂商/系列 → 填 IP/槽/机架 → 连接测试
3 OPC UA OPC UA 面板 → 发现服务器 → 选择安全策略/认证 → 连接
4 标签打印 安装 BarTender → 设计模板 → 打印面板加载模板 → 绑定变量

第二章:PLC 通讯面板

2.1 支持的 PLC 品牌

厂商 支持系列/功能 说明
三菱 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` 库

2.2 连接管理

  • 多连接标签页:同时管理多个 PLC 连接
  • 自动重连:断开后自动尝试重连
  • 心跳检测:定时发送心跳包维持连接
  • 连接池:复用已建立的连接,减少握手开销

2.3 地址格式

支持各厂商原生地址格式:

厂商 地址格式 示例 说明
三菱 `M100` `M100` 位元件
三菱 `D100` `D100` 数据寄存器
欧姆龙 `W100` `W100` 工作寄存器
通用 `40001` `40001` Modbus 保持寄存器

2.4 批量读写操作

批量读取

  1. 在 PLC 面板中新建连接并连接成功
  2. 输入多个地址(如 `DB1.DBW0, DB1.DBD4, M100`)
  3. 点击 「批量读取」
  4. 查看结果表格

批量写入

  1. 选中多个地址
  2. 输入写入值
  3. 点击 「批量写入」
  4. 确认写入结果

定时轮询

  1. 设置轮询周期(如 100ms)
  2. 添加需要轮询的地址列表
  3. 启动定时轮询,数据实时更新

2.5 数据监控

  • 实时表格:显示所有监控点的当前值
  • 曲线视图:实时数据趋势图
  • 报警功能:超限自动报警
  • 导出 CSV:监控数据导出为 CSV 文件

2.6 协议分析

  • 原始报文捕获:查看底层通信原始数据
  • 解析字段显示:自动解析协议字段
  • 错误码对照:常见错误码参考表

第三章:OPC UA 客户端

3.1 标准合规

  • 标准:OPC UA 1.04
  • 底层库:OPC Foundation .NET Standard Library (`Opc.Ua.Client`/`Core`/`Configuration`)

3.2 服务器发现

支持以下发现方式:

  • mDNS:多播 DNS 自动发现
  • LDS:本地发现服务器
  • 手动 Endpoint:手动输入 Endpoint URL

3.3 安全策略

安全模式 说明
Basic128Rsa15 基本 128 位 RSA 加密
Basic256 基本 256 位加密
Basic256Sha256 SHA-256 签名加密(推荐)

3.4 认证方式

  • 匿名:无需认证
  • 用户名密码:最简单的认证方式
  • 证书/X.509:基于数字证书的强认证

3.5 地址空间浏览

  • 树形展示:以节点树形式展示 OPC UA 服务器地址空间
  • 属性查看:查看每个节点的 DataType、Value、Timestamp 等属性
  • 方法调用:浏览可用的方法节点并调用
  • 引用关系:查看节点间的引用关系

3.6 订阅与监控

  • 数据变更通知:订阅数据变化事件
  • 事件通知:订阅服务器事件
  • 采样率:可配置采样频率
  • 队列大小:设置历史数据队列深度
  • 死区配置:设置变化死区阈值

3.7 历史读取

  • 原始/修正/插值:三种历史数据模式
  • 时间范围:指定查询的时间区间
  • 最大返回数:限制返回数据量

3.8 证书管理

  • 自动生成:自动生成客户端证书
  • 导入/导出:导入已有证书或导出证书
  • 信任列表:管理受信任的服务器证书
  • 吊销检查:检查证书是否被吊销

第四章:通用网络调试

4.1 TCP 调试

  • 双向通信:客户端/服务端模式
  • 多连接:同时管理多个 TCP 连接
  • 心跳保活:定时发送心跳包
  • 自动重连:断开后自动重连
  • 数据格式:HEX / ASCII / 文本显示
  • 脚本自动发送:配置脚本自动发送数据

4.2 UDP 调试

  • 组播/广播:支持组播和广播通信
  • 绑定本地端口:指定本地监听端口
  • 数据转发:将接收到的数据转发到其他端口

4.3 WebSocket 调试

  • 客户端/服务端:支持两种模式
  • WS/WSS:支持 WebSocket 和 Secure WebSocket
  • 自定义 Header:可设置自定义请求头
  • SubProtocol:支持子协议协商
  • Ping/Pong:心跳保活机制
  • 二进制/文本帧:支持两种帧类型

4.4 HTTP/HTTPS 调试

  • REST API 测试:发送 GET/POST/PUT/DELETE 请求
  • 认证方式:Basic / Bearer / OAuth2
  • 文件上传/下载:支持二进制文件传输
  • 代理配置:支持 HTTP 代理

4.5 WebService (SOAP) 调试

  • WSDL 导入:导入 WSDL 文件自动生成请求 XML
  • 自动生成请求:根据 WSDL 自动构建 SOAP 请求
  • WS-Security:支持 WS-Security 安全标准
  • MTOM:支持 MTOM 附件传输

第五章:串口调试

5.1 基本功能

  • 标准串口参数:波特率、数据位、校验、停止位、流控
  • 数据格式:HEX / ASCII / 文本
  • 时间戳:每条数据附带精确时间戳
  • 校验码计算:CRC / LRC / Checksum 计算

5.2 自动发送

  • 自动发送:按设定间隔自动发送数据
  • 循环发送:反复发送同一组数据
  • 响应脚本:根据接收到的数据自动回复

5.3 Modbus RTU/ASCII 叠加

  • 串口调试器支持 Modbus RTU/ASCII 协议解析
  • 自动识别 Modbus 帧结构
  • 叠加显示解析后的功能码、地址、数据等字段

第六章:数据库工具

6.1 支持的数据库

数据库 驱动 说明
MySQL MySqlConnector (推荐) / MySql.Data MySQL 数据库
SQLite System.Data.SQLite 嵌入式数据库
PostgreSQL Npgsql PostgreSQL 数据库
Oracle Oracle.ManagedDataAccess Oracle 数据库

6.2 数据库功能

  • 连接管理:新建、编辑、测试、保存连接
  • 对象浏览:表、视图、存储过程、函数浏览
  • SQL 编辑器:高亮、智能提示、自动补全
  • 执行计划:查看 SQL 执行计划
  • 数据导入导出:CSV / Excel / SQL 格式
  • 表结构同步:比较和同步表结构
  • 批量脚本执行:一次性执行多条 SQL 语句

6.3 使用步骤

  1. 新建连接:工具箱 → 数据库 → 新建连接
  2. 填写信息:选择数据库类型、填写连接字符串
  3. 测试连接:点击「测试」按钮确认连接正常
  4. 保存:保存连接配置
  5. 浏览对象:在对象树中浏览数据库对象
  6. 执行 SQL:在 SQL 编辑器中编写并执行查询
  7. 导入/导出:使用数据导入导出功能

第七章:标签打印

7.1 打印引擎

  • BarTender SDK (COM):主要打印引擎
  • ZPL/EPL/TSLP 原始指令:直接发送打印机指令

7.2 模板设计

  • 变量绑定:支持数据库变量、变量、计数器、日期绑定
  • 条形码:Code128、QR Code、DataMatrix 等
  • 二维码:支持多种二维码格式
  • 打印预览:实时预览打印效果

7.3 批量打印

  1. 数据源:CSV 或数据库作为数据源
  2. 模板加载:加载设计好的标签模板
  3. 变量绑定:将数据源字段绑定到模板变量
  4. 执行打印:点击「批量打印」
  5. 打印日志:记录每次打印操作
  6. 重打/补打:支持重新打印和补打

7.4 注意事项

  • 需要 BarTender 正版授权:使用前需安装 BarTender 软件
  • Interop.BarTender DLL:分发包中不包含 BarTender SDK
  • 运行时动态检测:程序运行时检测 BarTender 是否可用

第八章:实用工具箱

8.1 编码转换

支持以下编码互转:

  • HEX ↔ ASCII
  • Base64 ↔ 原始数据
  • URL 编码/解码
  • Unicode / UTF-8 / GB2312 互转

8.2 CRC/校验计算

校验类型 说明
CRC-16 16 位循环冗余校验(十余种多项式)
CRC-32 32 位循环冗余校验
LRC 纵向冗余校验
Checksum 累加和校验
Modbus CRC Modbus 专用 CRC-16
自定义多项式 用户自定义多项式

8.3 报文构造器

  • 模板变量:使用变量替换报文中的动态部分
  • 计数器:自动递增计数器
  • 时间戳:自动插入当前时间
  • 随机数:生成随机数填充
  • 脚本表达式:使用脚本动态计算字段值

8.4 正则测试

  • 多行匹配
  • 忽略大小写
  • 捕获组高亮
  • 替换预览

8.5 JSON/XML 格式化

  • 树形/文本视图切换
  • XPath / XQuery 查询
  • Schema 验证

8.6 单位换算

支持以下工程单位互换:

  • 压力、温度、流量
  • 长度、功率、能量

8.7 计算器

  • 程序员模式:二进制、八进制、十六进制、位运算
  • 科学模式:三角函数、对数、指数等

第九章:高级配置与部署

9.1 配置文件说明

`OKDebug.exe.config` 主要配置项:

  • 日志级别:控制日志输出详细程度
  • 数据库连接字符串:默认数据库连接配置
  • 插件参数:各功能模块的默认参数
  • 网络设置:超时时间、重试次数等

9.2 部署建议

  1. 所有 DLL 必须在同目录:确保程序能正确加载所有依赖
  2. 检查 HslCommunication DLL:LGPLv3 合规分发
  3. 替换 MySql.Data 为 MySqlConnector:避免 GPLv2 传染
  4. 移除 BarTender Interop DLL:仅保留接口代码
  5. 生成 `THIRD-PARTY-LICENSES.md`:列出所有第三方许可证

9.3 作为服务运行(可选)

如需后台持续运行,可使用 TopShelf 或 .NET Generic Host 配置为 Windows 服务:


OKDebug.exe /service

9.4 日志管理

  • 使用 `log4net` 进行结构化日志记录
  • 日志文件按日期滚动
  • 建议保留最近 30 天日志
  • 日志级别根据需要调整

第十章:常见问题与故障排除

10.1 启动问题

问题 原因 解决方法
`BadImageFormatException` 平台架构不匹配 确认 DLL 与程序同为 x86 或 x64
`FileNotFoundException` 缺少特定 DLL 从原始打包目录复制缺失文件

10.2 PLC 连接问题

问题 原因 解决方法
三菱 PLC 通信失败 协议帧格式不匹配 检查 MC 协议版本(3E/4E 帧)
Modbus CRC 错误 波特率或数据位不匹配 确认串口参数
批量读写失败 地址超出范围 检查地址是否在设备范围内

10.3 OPC UA 问题

问题 原因 解决方法
证书不受信任 未导入服务器证书 导入并信任服务器证书
订阅无数据 采样率或队列配置不当 调整订阅参数
连接断开频繁 安全策略不匹配 确认安全模式和认证方式

10.4 数据库问题

问题 原因 解决方法
SQL Server 认证失败 凭据错误或协议不匹配 检查连接字符串
SQLite 文件锁定 并发访问冲突 确保同一时间只有一个写入者
导入数据乱码 编码不匹配 确认文件使用 UTF-8 编码

10.5 性能问题

问题 原因 解决方法
内存占用高 历史数据缓存过大 调整缓存大小
日志文件过大 日志级别过低 调整日志级别
多工具同时卡顿 资源竞争 合理分配各工具的运行时间

附录:快捷键与操作速查

通用快捷键

操作 快捷键 说明
打开连接 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

技术栈

C# .NET Framework 4.7.2+ HslCommunication Opc.Ua.* SuperSocket RestSharp Newtonsoft.Json

相关产品

×