
ModbusSlave是一个可编程的,开发人员友好的Modbus从站模拟器。
它可以模拟任意数量的Modbus从站,而无需处理手动GUI设置。
如果你需要自动化Modbus测试,这个工具是你不二选择。
入门比任何其他模拟器都要快,这要归功于它简单的配置API。
使用JSON文件进行配置可以自动化测试和跟踪配置更改。
使用HTTP API在运行时以图解方式更改配置。
可以显示和存储Modbus网络上发生的一切,使诊断更容易。
模拟同一网络上任意数量的从属设备。
您可以配置任何从站返回Modbus异常代码而不是寄存器值。
无需安装。您可以从USB驱动器在任何Windows PC上运行。
模拟RTU或TCP从站。或者运行两个UnSlave实例来支持两者。
跨平台
多个平台可以运行。Windows/Linux版本都有。
配置文档即说明书
一目了然
System.IO.Ports封装
没有引用其他第三方的通讯库,没有版权

运行效果

其实看到这里基本就会用了。
详细说明
下面是一个配置示例,其中一个Modbus从节点正在侦听COM1:

需要初始值就在3这里设置,比如上图,HR0的初始值是1,HR1的初始值是2.....。默认情况下,每个其他寄存器的值为0或false。Modbus协议定义了四种类型的寄存器:
要使在TCP模式下运行,请在Node.json中指定mode属性,如下所示:
要激活TCP,只需将模式更改为TCP。串行端口设置将被忽略,将作为Modbus TCP节点运行:

为了模拟Modbus异常响应,请使用类似于以下的配置:
"1": {
"isOnline": true,
"registers": {
"HR0": 1,
"HR1": { exception: 4 }
}
}此配置意味着任何读取或写入保持寄存器1的请求将导致代码为4的Modbus异常。代码4意味着从机无法响应。
这方面的知识请参考:[Modbus] 协议中文完整版

使用API,您可以在运行时更新所有模拟从机的状态,或添加新的,而无需更改配置文件和重新启动仿真软件。
软件提供了一个带有JSON负载的RESTful API。您可以在所有API调用中使用PUT或POST。
默认情况下禁用API。在尝试进行API调用之前,请确保在JavaScript. json中启用它:
"api":{
"enable":true,
"port":9000
}
...在第一次运行API时,系统会要求您提供绑定到网络套接字的权限。回答“是”以使用API。

如果配置正确并且API已启动,您将看到类似于以下内容的控制台消息:
INFO: HTTP API Listening at http://localhost:9000/以下示例演示了可能的API调用。
在本例中,我们将从设备1的线圈100设置为true:
PUT /slaves/1/registers/C100
content-type:application/json
{
"value": true
}
在本例中,我们将从机1的保持寄存器100设置为十进制168:
PUT /slaves/1/registers/HR100
content-type:application/json
{
"value": 168
}
在这个例子中,我们设置从站1,被主站访问C100时返回异常代码2。
PUT /slaves/1/registers/C100
content-type:application/json
{
"exception": 2
}
在本例中,我们将slave1设置为离线。它将不再回应主人。
PUT /slaves/1
content-type:application/json
{
"isOnline": false
}
日志记录功能包括:
下面是一个日志文件的示例:

您可以使用Modbus指南来了解每个帧的含义。
要更改日志详细程度,请编辑logger.json中的级别设置。要启用记录到文件,请将文件设置为true:
{
"level":"trace",
"file":true
}可能的详细级别:
trace-最详细的日志默认情况下,软件将从其工作目录中加载名为js.json的配置文件。要使用不同的配置文件,请在运行Unslave时指定其文件路径:
.\ModbusSlave.exe test.json