首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >多功能Modbus Slave从站模拟器

多功能Modbus Slave从站模拟器

作者头像
科控物联
发布2026-03-19 14:29:17
发布2026-03-19 14:29:17
1290
举报

Modbus从站模拟器

ModbusSlave是一个可编程的,开发人员友好的Modbus从站模拟器。

它可以模拟任意数量的Modbus从站,而无需处理手动GUI设置。

如果你需要自动化Modbus测试,这个工具是你不二选择。

极速上手

入门比任何其他模拟器都要快,这要归功于它简单的配置API。

JSON配置

使用JSON文件进行配置可以自动化测试和跟踪配置更改。

HTTP API

使用HTTP API在运行时以图解方式更改配置。

扩展日志记录

可以显示和存储Modbus网络上发生的一切,使诊断更容易。

无限从站

模拟同一网络上任意数量的从属设备。

模拟异常

您可以配置任何从站返回Modbus异常代码而不是寄存器值。

便携式

无需安装。您可以从USB驱动器在任何Windows PC上运行。

串口/RTU + TCP

模拟RTU或TCP从站。或者运行两个UnSlave实例来支持两者。

跨平台

多个平台可以运行。Windows/Linux版本都有。

配置文档即说明书

一目了然

System.IO.Ports封装

没有引用其他第三方的通讯库,没有版权

运行效果

其实看到这里基本就会用了。

详细说明

  • 配置Modbus RTU从站

下面是一个配置示例,其中一个Modbus从节点正在侦听COM1

需要初始值就在3这里设置,比如上图,HR0的初始值是1,HR1的初始值是2.....。默认情况下,每个其他寄存器的值为0false。Modbus协议定义了四种类型的寄存器:

  • 线圈(C)
  • 离散输入(DI)
  • 保留寄存器(HR)
  • 输入寄存器(IR)

模拟Modbus TCP从机

要使在TCP模式下运行,请在Node.json中指定mode属性,如下所示:

要激活TCP,只需将模式更改为TCP。串行端口设置将被忽略,将作为Modbus TCP节点运行:

模拟Modbus协议异常

为了模拟Modbus异常响应,请使用类似于以下的配置:

代码语言:javascript
复制
"1": {
    "isOnline": true,
    "registers": {
        "HR0": 1,
        "HR1": { exception: 4 }
    }
}

此配置意味着任何读取或写入保持寄存器1的请求将导致代码为4的Modbus异常。代码4意味着从机无法响应。

这方面的知识请参考:[Modbus] 协议中文完整版

使用HTTP API

使用API,您可以在运行时更新所有模拟从机的状态,或添加新的,而无需更改配置文件和重新启动仿真软件。

软件提供了一个带有JSON负载的RESTful API。您可以在所有API调用中使用PUTPOST

启用API

默认情况下禁用API。在尝试进行API调用之前,请确保在JavaScript. json中启用它:

代码语言:javascript
复制
"api":{
    "enable":true,
    "port":9000
}
...

在第一次运行API时,系统会要求您提供绑定到网络套接字的权限。回答“是”以使用API。

如果配置正确并且API已启动,您将看到类似于以下内容的控制台消息:

代码语言:javascript
复制
INFO: HTTP API Listening at http://localhost:9000/

以下示例演示了可能的API调用。

设置线圈值

在本例中,我们将从设备1的线圈100设置为true

代码语言:javascript
复制
PUT /slaves/1/registers/C100

content-type:application/json

{
    "value": true
}

设置寄存器值

在本例中,我们将从机1的保持寄存器100设置为十进制168

代码语言:javascript
复制
PUT /slaves/1/registers/HR100

content-type:application/json

{
    "value": 168
}

设置异常响应

在这个例子中,我们设置从站1,被主站访问C100时返回异常代码2

代码语言:javascript
复制
PUT /slaves/1/registers/C100

content-type:application/json

{
    "exception": 2
}

在线/离线Slave Online/Offline

在本例中,我们将slave1设置为离线。它将不再回应主人。

代码语言:javascript
复制
PUT /slaves/1

content-type:application/json

{
    "isOnline": false
}

数据帧记录

日志记录功能包括:

  • 记录到控制台
  • 记录到文本文件
  • 不同级别的日志详细程度

下面是一个日志文件的示例:

您可以使用Modbus指南来了解每个帧的含义。

要更改日志详细程度,请编辑logger.json中的级别设置。要启用记录到文件,请将文件设置为true

代码语言:javascript
复制
{
    "level":"trace",
    "file":true
}

可能的详细级别:

  • trace-最详细的日志
  • info -仅显示最重要的消息
  • error -隐藏除错误以外的所有消息

指定配置文件

默认情况下,软件将从其工作目录中加载名为js.json的配置文件。要使用不同的配置文件,请在运行Unslave时指定其文件路径:

代码语言:javascript
复制
.\ModbusSlave.exe test.json
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Modbus从站模拟器
    • 极速上手
    • JSON配置
    • HTTP API
    • 扩展日志记录
    • 无限从站
    • 模拟异常
    • 便携式
    • 串口/RTU + TCP
    • 模拟Modbus TCP从机
    • 模拟Modbus协议异常
    • 使用HTTP API
      • 启用API
      • 设置线圈值
      • 设置寄存器值
      • 设置异常响应
      • 在线/离线Slave Online/Offline
    • 数据帧记录
    • 指定配置文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档