乐于分享
好东西不私藏

Modbus 命令行调试神器 kmc v1.8.0 发布:全新架构,让你的 Modbus 瑞士军刀更锋利

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 带来了什么?

更快的响应速度

直接上数据:

操作
v1.7.2
v1.8.0
提升
连接建立
45ms
43ms
4.4%
读取 10 个寄存器
12ms
11ms
8.3%
扫描 100 个地址
850ms
840ms
1.2%
并行读取 3 段
180ms
175ms
2.8%

数字不大?但在工业现场,每一毫秒都是真金白银。当你用 --watch 每秒刷新一次数据,或者用 --ranges 并行采集几十个地址段时,这些毫秒级的优化会累积成体感上的流畅。

全面向后兼容

kmc  v1.8.0 对项目结构做了全面的架构优化,命令行参数也进行了精简设计,同时,考虑到用户的迁移成本,对原有的命令仍通过别名的方式进行了最大化支持。因此,对已经在使用中的kmc 更新,我们仍可以给出重要的承诺:你不需要改任何东西

  • 命令行参数?一个没变
  • ~/.kmcrc 配置文件?照常读取
  • ~/.kmc_history 历史记录?无缝继承。
  • bash/zsh 补全脚本?继续生效。
  • 你写的自动化脚本?不用动一行。

升级就是复制粘贴一个文件的事。

更小的安装包

平台
文件大小
Linux x86_64
7.15 MB
Windows x86_64
9.85 MB

一个微信表情包的大小,装下了 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# 退出

支持上下箭头浏览历史命令,跨会话保存。调试设备时,这个功能能省掉你一半的键盘敲击。

别名在交互模式里同样好使:hriri32fBl——怎么短怎么来。

并行读取:不连续地址段的救星

实际设备的寄存器地址往往不连续——温度在 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
导出数据到 CSV
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.0
基础功能
能读能写,支持四种数据类型
v1.1
体验优化
彩色输出、超时控制、参数验证
v1.2
效率提升
范围语法、批量写入、寄存器探测
v1.3
监控能力
watch 模式、verbose/quiet、自动补全
v1.4
工程化
重试机制、日志记录、配置文件、数据导出
v1.5
可视化
表格显示、延迟统计、网段扫描
v1.6
调试增强
debug 模式、并发扫描(10 倍速)、命令别名
v1.7
交互革命
REPL 模式、命令历史、并行读取(3 倍速)
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

    本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » Modbus 命令行调试神器 kmc v1.8.0 发布:全新架构,让你的 Modbus 瑞士军刀更锋利

    猜你喜欢

    • 暂无文章