Modbus Slave 从站模拟器:能模拟 32 个从站,$129 永久授权
需要一台(或一整条总线的)假从机来开发上位机时最省事的选择,能模拟 32 个从站设备/地址区并用 Excel 驱动数据;代价是商业授权,本站不提供下载。
- 授权
- 商业软件 闭源 单用户永久授权 $129,含免费无限期支持与维护升级;3-9 套 $119/套,10 套以上 $109/套。
- 平台
- Windows
- 协议
- Modbus RTU、Modbus ASCII、Modbus TCP
- 官网
- https://www.modbustools.com/
- · 设备还没到货或拿不到,但上位机、SCADA、网关的轮询逻辑得先写完先测完
- · 需要一次造出一整条多机总线,验证轮询节奏、超时重试与地址分配
- · 只想验证一台真实从站设备的寄存器读写对不对(那要的是主站工具,不是从站模拟器)
- · 简单到一问一答就够、且不接受商业授权的临时场合
- 文件名
- Modbus Slave(商业付费软件,本站不提供下载)
- 版本
- 以官网为准
- SHA256
- 待补(尚未实际核对,不填占位值)
- 核对于
- 2026-09-02
本站不托管安装包,上方为官方渠道直链。下载后请自行核对 SHA256,与上表不一致说明文件被改动过。
先把这篇和 Modbus Poll 那篇的分工说清楚:Poll 是主站模拟器,你手里有设备、想读它;Slave 是从站模拟器,你手里没有设备、但得让程序以为有。两者是同一家 Witte Software 的配套产品,价格和条款一模一样($129 单用户永久授权),值不值的账在 Poll 那篇里算过了,这里不重复。
这篇只回答一个问题:你为什么会需要一个假的从站。
主站和从站,谁先开口
Modbus 是一主多从。整条线上只有主站有开口权,从站永远是被动的——主站不问,从站一个字节都不会发。从站按 1 到 247 的地址寻址,主站在报文头上写谁的地址,那台从站才应答,其余的装没听见。
这个不对称决定了调试工具必须分成两类。你拿主站工具去连另一台主站,两边都在等对方先说话,结果就是干瞪眼;你拿从站模拟器去连一台真实从站,两边都不主动问,同样什么都不会发生。
所以第一步是搞清楚:你写的程序是哪一头。
如果你在写上位机、组态、SCADA、数据采集服务,或者写一台协议网关的北向接口——你的程序是主站。它需要的是一个能应答的对端。这个对端本该是现场那台电表、变频器、温控器,但很多时候你根本拿不到它。
三种拿不到设备的情况
第一种,设备还没到货。 项目立项了,采购在走流程,硬件三周后才到,但软件工期不等人。你总不能干等三周,等设备到了再开始写通信层。
第二种,设备在客户现场。 这是最常见也最难受的一种。设备装在几百公里外的配电房里,产线上还在跑,你没法把它拆下来带回办公室。远程调试意味着每改一行代码就要联系现场的人配合,一天试不了几轮。
第三种,你要造的场景真实设备造不出来。 这一种最容易被低估。你的程序要处理从站不应答(超时)、应答异常码、寄存器返回越界值、通信中途断开又恢复——这些都是异常路径,恰恰是最容易出 bug 的地方。你去哪里找一台"会按你的要求出故障"的真实设备?没有。你只能自己造一个。
模拟器解决的就是这三件事:把对端变成一个你能完全控制的东西。
32 个从站意味着什么
官方对 Modbus Slave 的描述是 "a slave simulator for simulating 32 slave devices/address areas",即一次可以模拟 32 个从站设备或地址区。
这个数字的价值不在于"数量多",在于它能复现你办公室里复现不了的拓扑。
现实中的一条 485 总线是什么样?一个楼层的配电室里挂十几块电表,一条产线上挂几十个温控表和传感器,地址从 1 排到 30 几。你的主站程序要按顺序轮询它们,处理每一台的超时和重试,还得保证一台设备卡住不会拖垮整条线的采集周期。
而你办公室的桌上只有一台样机。于是轮询逻辑里那些真正会出问题的地方,你一个都测不到:
- 轮询节奏:30 台设备一圈轮完要多久?你设的采集周期够不够?某台超时后是跳过还是重试三次再跳,会不会把整圈时间拖爆?
- 超时处理:单台不应答时,你的程序是标记这一台离线继续往下走,还是整个采集任务卡死?
- 地址冲突:现场施工把两台设备拨成了同一个地址,总线上会同时应答,报文互相踩踏。你的程序看到这种混乱数据会怎样?
- 部分离线:一半设备在线一半掉线,你的数据表里是留空、留旧值,还是写了 0 让上层误以为是真实读数?
有了 32 个从站,你在办公室里就能把一整条总线搭出来,把上面这些路径挨个走一遍。这比等到现场调试时再发现问题,代价小得不是一个量级。
用 Excel 驱动寄存器数据
官方另一句值得注意的描述是 "OLE Automation support for easy interface to your Excel spreadsheet"——支持 OLE 自动化,能和 Excel 表格对接。
这条容易被当成锦上添花的小功能,其实它把模拟器从"手动点几下"变成了"可编程的测试夹具"。
手动改寄存器值是这样的:你在界面上双击某个地址,敲进去一个数,看主站读到什么。测三五个值还行,测一百个就没人干得下去。
接上 Excel 之后思路完全变了。你把测试数据摆在表格里——一列地址,一列值,一列期望结果——让表格去驱动模拟器的寄存器。于是这几件事变得可行:
- 批量测试用例:把几十上百组输入摆在表里,一次跑完,不用手工敲。
- 造边界值:有符号数的 -32768 和 32767、无符号数的 65535、温度的负值、流量的零值。这些边界值在真实设备上你几乎没机会触发,但用户现场一定会遇到。表格里排一排,全试一遍。
- 跑回归:通信层改过之后,把同一张表再跑一次,看结果有没有变。这是纯手动调试永远做不到的。
顺带说一句,用表格排数据时最容易翻车的是寄存器编号和报文地址常差 1。文档上写"40001 号保持寄存器",报文里实际填的地址往往是 0。你在 Excel 里排地址列的时候,先在模拟器上用功能码 03(读保持寄存器,日常用得最多的一个)读一次确认对齐关系,再往下排,否则整张表的数据全错一位。
同样要留神的还有 32 位量:一个 32 位的浮点数或长整型要拆成两个 16 位寄存器存,而高低字、高低字节的组合有四种字序。主站和从站字序对不上,读出来的数会变成天文数字或者接近零的怪值。模拟器的好处是你可以把四种都试一遍,直接看哪种能对上,不用靠猜。
免费方案能顶到哪一步
不是所有场景都得掏这笔钱。
如果你的主站程序现在只需要"有个东西会回话",那 UartAssist 和 SCOMM 都带自动应答规则:设置成收到 A 就回 B,把主站发的那条读请求整包填进去,把你想要的应答整包填进去,就能顶替一台从机。免费,五分钟配好,验证"我的串口发出去了、我的解析代码能收回来"这一层完全够用。
但这个方案有明确的天花板,你迟早会撞上:
- 规则是静态的。收到 A 永远回 B。而真实从站的应答是有状态的——你写了个值进去,下次读应该读回新值。自动应答做不到这件事,你的写逻辑等于没测。
- 造不出 32 台设备。要模拟一整条总线,意味着要为每台设备的每个功能码各写一条规则,几十条规则手工维护,比买软件贵得多。
- CRC 得自己算。每改一次应答内容,校验字节就得重算一遍。改十次算十次。可以用 CRC / Modbus 校验计算器顶一阵,但这本身就说明你已经在做模拟器该做的事了。
所以判断标准很直白:你要验证的是"通没通",免费方案够;你要验证的是"逻辑对不对",就该上模拟器了。
最后
Modbus Slave 是商业付费软件,本站只做内容介绍,不提供下载,也不讨论任何非官方渠道。要用请到 modbustools.com 走官方购买,授权是永久的,含免费无限期的支持与维护升级。
先想清楚你缺的是哪一头:缺一台会应答的设备,看这篇;缺一个能主动去问的主站,那要的是 Modbus Poll 或者免费开源的 QModMaster。
本文为公开资料整理,非亲测。关键参数与代码请结合实物与下列官方来源验证。
- Modbus Slave 官网(Witte Software,载明可模拟 32 个从站设备/地址区、支持 OLE 自动化对接 Excel) ↗
modbustools.com
- 官方订购页(载明 $129 单用户永久授权与批量阶梯价) ↗
modbustools.com/order.html
延伸阅读
和它配套的主站工具是 Modbus Poll,定价结构与值不值的账在那篇里算过了。 只是想在简单场景里省下这笔钱,可以用 UartAssist 或 SCOMM 的自动应答规则临时扮演一台从机。 报文对不上先算校验,用 CRC / Modbus 校验计算器把字节粘进去直接验; 多机总线的收发方向与终端电阻见 RS-485 差分总线。 其余同类见软件与工具库。
- Modbus Poll 工业通信·Modbus工具
- UartAssist 工业通信·串口调试
- SCOMM 工业通信·串口调试