Modbus 命令行调试神器 kmc v1.8.0 发布:全新架构,让你的 Modbus 瑞士军刀更锋利
发布日期: 2026-03-12
版本类型: 架构优化重构
项目作者: krchlry
作者邮箱: kangrongtju@foxmail.com
先说结论
如果你正在用 kmc,升级到 v1.8.0 只需要一步——替换可执行文件,完事。所有命令、配置、历史记录,原封不动。
如果你还没用过 kmc,这篇文章会告诉你,为什么一个 7MB 的命令行工具,能替代你桌面上那个又大又慢的 Modbus 调试软件。
kmc 是什么?
一句话:一个跑在终端里的 Modbus 客户端。
没有安装包,没有运行时依赖,没有注册登录。下载一个文件,赋予执行权限,开干。
bash复制代码
# 就这么简单kmc --host 192.168.1.131 --start 0 --count 10
不到 1秒钟,你就能看到设备寄存器里的数据。
v1.8.0 带来了什么?
更快的响应速度
直接上数据:
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数字不大?但在工业现场,每一毫秒都是真金白银。当你用 --watch 每秒刷新一次数据,或者用 --ranges 并行采集几十个地址段时,这些毫秒级的优化会累积成体感上的流畅。
全面向后兼容
kmc v1.8.0 对项目结构做了全面的架构优化,命令行参数也进行了精简设计,同时,考虑到用户的迁移成本,对原有的命令仍通过别名的方式进行了最大化支持。因此,对已经在使用中的kmc 更新,我们仍可以给出重要的承诺:你不需要改任何东西。
-
命令行参数?一个没变 -
~/.kmcrc 配置文件?照常读取 -
~/.kmc_history 历史记录?无缝继承。 -
bash/zsh 补全脚本?继续生效。 -
你写的自动化脚本?不用动一行。
升级就是复制粘贴一个文件的事。
更小的安装包
|
|
|
|---|---|
|
|
|
|
|
|
一个微信表情包的大小,装下了 Modbus 调试的全部武器。
如果你是第一次听说 kmc
下面是 kmc 从 v1.0.0 到 v1.8.0 积累的完整能力。不是功能清单的堆砌——是真实场景下你会用到的东西。
读写:Modbus 的基本功
支持 Modbus TCP 协议的四种数据类型,覆盖绝大多数工业设备:
bash复制代码
# 保持寄存器(最常用)kmc --host 192.168.1.131 --start 0 --count 10# 输入寄存器kmc --host 192.168.1.131 --input --start 0 --count 10# 线圈(开关量)kmc --host 192.168.1.131 --coil --start 0 --count 16# 离散输入kmc --host 192.168.1.131 --discrete --start 0 --count 16
嫌参数长?用别名:
bash复制代码
kmc --type hr --start 0 --count 10 # hr = Holding Registerskmc --type ir --start 0 --count 10 # ir = Input Registerskmc --type co --start 0 --count 16kmc --type di --start 0 --count 16
写入同样简单:
bash复制代码
# 写单个寄存器kmc --host 192.168.1.131 --write 100 500# 批量写入kmc --host 192.168.1.131 --write-holds 100 "500,600,700"# 控制线圈kmc --host 192.168.1.131 --write-coil 0 1
数据格式:不只是 int16
工业设备的数据五花八门。温度可能是浮点数,累计量可能是 32 位整数,状态字可能要看十六进制。kmc 全都支持:
bash复制代码
# 32 位整数(两个寄存器拼一个值)kmc --start 0 --count 10 --format int32# IEEE 754 浮点数kmc --start 0 --count 10 --format float# 十六进制原始值kmc --start 0 --count 10 --hex# 小端序设备?没问题kmc --start 0 --count 10 --format float --byte-order little
交互模式:像 Shell 一样操作设备
这是 kmc v1.7.0 引入的杀手级功能。连上设备后,进入一个 REPL 环境,想读就读,想写就写,不用反复敲连接参数:
bash复制代码
kmc --interactive --host 192.168.1.131kmc> read 0 10 # 读保持寄存器kmc> read 0 10 input # 读输入寄存器kmc> read 0 10 --format float --table # 浮点数 + 表格显示kmc> write 100 500 # 写单个值kmc> write 100 500,600,700 # 批量写入kmc> slave # 查看当前 slave 并扫描寄存器kmc> slave 100 # 切换到 slave 100kmc> status # 查看会话统计kmc> exit# 退出
支持上下箭头浏览历史命令,跨会话保存。调试设备时,这个功能能省掉你一半的键盘敲击。
别名在交互模式里同样好使:hr、ir、i32、f、B、l——怎么短怎么来。
并行读取:不连续地址段的救星
实际设备的寄存器地址往往不连续——温度在 0-9,压力在 100-109,流量在 500-509。串行读三次太慢,并行一次搞定:
bash复制代码
# 三个地址段并行读取,性能提升 3 倍kmc --ranges "0-9,100-109,500-509" --host 192.168.1.131# 配合表格显示,一目了然kmc --ranges "0-9,100-109" --table# 交互模式下也能用kmc> ranges 0-9,100-109,500-509
设备发现:四合一扫描
面对一个陌生的网络环境,kmc 帮你快速摸清家底:
bash复制代码
# 扫描网段内所有 Modbus 设备(并发,10 倍速)kmc --scan-network 192.168.1.0/24# 扫描设备支持的 slave IDkmc --host 192.168.1.131 --scan-slaves 1-247# 探测寄存器有效范围(二分查找,16 次定位 65536 地址空间)kmc --host 192.168.1.131 --scan-registers holding# 扫描端口——设备不一定跑在 502 上kmc --host 192.168.1.131 --scan-ports 500-510
这里特别提一下此版本新增的端口扫描功能,打通了设备发现的最后 1 个环节,现在,kmc 已经完整支持网段扫描、端口扫描、从站扫描、寄存器扫描 4 大设备场景。
端口扫描在实际项目中特别实用。很多现场设备为了避免冲突,会把 Modbus 服务挪到 503、504 甚至更高的端口。与其一个个试,不如一条命令扫出来:
bash复制代码
# 扫描单个端口kmc --host 192.168.1.131 --scan-ports 502# 扫描端口范围,并发检测kmc --host 192.168.1.131 --scan-ports 500-520 --workers 20
交互模式下更方便:
bash复制代码
kmc> scan network 192.168.1.0/24kmc> scan slaves 1-247kmc> scan holdingkmc> scan ports 500-510
监控与导出:数据不只是看一眼
bash复制代码
# 持续监控,每 2 秒刷新kmc --host 192.168.1.131 --start 0 --count 10 --watch 2# 原地刷新模式(类似 Linux watch 命令)kmc --host 192.168.1.131 --start 0 --count 10 --watch 2 --watch-mode refresh# 表格显示,带 Unicode 边框kmc --host 192.168.1.131 --start 0 --count 10 --table# 导出 CSV,接入 Excel 分析kmc --host 192.168.1.131 --start 0 --count 100 --export data.csv# 导出 JSON,接入自动化流水线kmc --host 192.168.1.131 --start 0 --count 100 --export data.json# 安静模式,只输出纯数据,方便脚本处理kmc --host 192.168.1.131 --start 0 --count 10 --quiet
调试利器:从用户层到协议层
bash复制代码
# 详细模式:时间戳、连接详情、响应时间kmc --host 192.168.1.131 --start 0 --count 5 --verbose# 调试模式:pymodbus 底层日志、原始报文、PDU 解析kmc --host 192.168.1.131 --start 0 --count 5 --debug# 延迟统计:连接/读取/写入的响应时间分布kmc --host 192.168.1.131 --start 0 --count 10 --stats# 全开,排查疑难杂症kmc --host 192.168.1.131 --start 0 --count 5 --debug --verbose --log debug.log
配置文件:告别重复参数
把常用连接保存到 ~/.kmcrc,用别名一键调用:
ini复制代码
# ~/.kmcrc[default]host = 192.168.1.131port = 502slave_id = 1timeout = 5[factory-plc]host = 10.0.1.50port = 502slave_id = 1[temp-sensor]host = 10.0.1.100port = 502slave_id = 2
bash复制代码
# 使用默认配置kmc --start 0 --count 10# 使用指定配置kmc @factory-plc --start 0 --count 10kmc @temp-sensor --input --start 0 --count 10 --format float
还支持项目级配置(.kmcrc)覆盖用户级配置,团队协作时特别有用。
真实场景速查
|
|
|
|---|---|
|
|
kmc --host IP --start 0 --count 10 |
|
|
kmc --host IP --input --range 100-101 --format float |
|
|
kmc --host IP --write-coil 0 1 |
|
|
kmc --host IP --write-holds 200 "1500,2000,2500" |
|
|
kmc --host IP --start 0 --count 10 --watch 2 --table |
|
|
kmc --host IP --scan-registers holding |
|
|
kmc --scan-network 192.168.1.0/24 |
|
|
kmc --host IP --scan-ports 500-510 |
|
|
kmc --ranges "0-9,100-109,500-509" --host IP |
|
|
kmc --host IP --start 0 --count 100 --export data.csv |
|
|
kmc --interactive --host IP |
|
|
kmc --host IP --start 0 --count 5 --debug --verbose |
跨平台,零依赖
kmc 是编译好的单文件可执行程序,支持:
- Linux x86_64(Ubuntu、CentOS、Debian……)
- Windows x86_64(Win10、Win11)
- macOS(Intel & Apple Silicon)
不需要安装依赖,不需要运行时环境。复制到 /usr/local/bin/ 或系统 PATH,就是全部的安装过程。
从 v1.0 到 v1.8:一路走来
回头看看 kmc 的成长轨迹,每个版本都在解决真实的痛点:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| v1.8 | 性能打磨 | 全面优化,更快更稳,100% 兼容 |
18 个版本,从一个简单的读写工具,长成了一把功能完备的 Modbus 瑞士军刀。
接下来
kmc v1.9.0 正在规划中,重点方向:
- Tab 补全增强: 交互模式下命令和参数的智能补全
- 配置命令统一:config init/show/edit/list 一站式管理
- 多地址段显示优化: 分段表格,更清晰的数据呈现
试用/反馈/联系作者
本软件当前开放免费试用,如有相关需求,请留言、私信或者邮件留下您的个人邮箱地址及操作系统,作者将于两个工作日内通过邮件发送使用邀请!
如果你在使用过程中遇到问题或有任何建议,欢迎:
-
微信公众号 @长河落日圆私信、留言 -
发送邮件: kangrongtju@foxmail.com -
有问题?有建议?有吐槽?欢迎提 Issue,每一条都会认真看。

重要预告:kmc 用户交流群将于近日限时开放,敬请关注!
倾听用户心声,我们需要你的反馈!
为了更好地了解用户需求,打造更优秀的 Modbus 工具,作者决定于近日择机开放 kmc 用户交流群(限时开放,名额有限)。
加入交流群,你将获得:
✅ 第一时间获取新版本发布通知✅ 直接与开发者交流,提出功能建议✅ 分享使用经验,学习最佳实践✅ 获得技术支持,解决使用问题✅ 参与 Beta 测试,体验新功能✅ 影响产品路线图,你的需求可能成为下一个版本的核心功能
如何加入,请持续关注后续推送!
kmc v1.8.0 —— 少打几个字,多读几个寄存器。
#命令行#Terminal#Modbus#kmc#调试#神器#物联网#Iot#瑞士军刀#AI#软件#开发#一人产品#储能#微网#SCADA#Windows#Linux#macos
夜雨聆风