9 个重大版本更新
0.10.0 | 2022年2月3日 |
---|---|
0.8.0 | 2022年1月11日 |
0.7.0 | 2021年12月10日 |
#776 在 硬件支持
每月 22 次下载
145KB
1.5K SLoC
另一个 Modbus 模拟器
一个使用纯 Rust 开发的 Modbus 客户端/服务器模拟器,支持基于 YAML 的配置和行为定义。
YAMS 支持通过 YAML 文件进行 Modbus 设备配置和行为定义。这意味着可以在运行模拟器之前预先定义模拟器的工作方式,包括
- 设备类型:服务器/客户端
- 协议类型:Modbus TCP/RTU
- 通信配置:IP 地址、波特率等。
- Modbus 配置:设备 ID 等。
- Modbus 服务器属性
- 支持的函数代码
- 支持的寄存器/线圈及其值
- 支持线圈和寄存器的重叠
- 支持由寄存器/线圈写入触发用户定义的服务器行为:启用此功能后:YAMS 将通过数据(yaml)文件与用户程序共享寄存器/线圈数据。每次寄存器/线圈更新时,指定的用户程序将被调用以根据用户定义的逻辑更新寄存器/线圈数据,只要外部程序将新数据写回文件,YAMS 将获取新数据并继续运行。
- Modbus 客户端行为
- 发送到服务器(s)的请求
- 支持重复请求(单/多请求重复)
- 支持请求之前的预定延迟
- 人性化的用户界面
- 基于 YAML 的灵活配置/请求组织
- 支持详细模式,显示更多网络细节
- 支持打印请求/响应索引
- 以自己的类型设置和显示测量值:例如 32 位浮点数
为了支持快速测试,提供了单次模式,这样可以使用命令行参数运行 YAMS,尽管建议使用 YAML 配置文件来充分利用 YAMS。
安装
- 确保已安装 Cargo。有关详细信息,请参阅安装页面。
- 通过以下命令安装 YAMS:
cargo install yams
。
快速演示
可配置项
请参阅 基于 YAML 的配置
待办事项
- 实现 Modbus TCP 支持
- 实现基于 YAML 的配置/请求支持
- 实现 Modbus RTU 支持
- 实现对重复请求(s)的支持
- 实现对请求(s)之前的延迟的支持
- 实现错误处理
- 实现无配置文件的单次模式
- 实现详细模式以打印更多详细/数据
- 实现请求/响应计数打印
- 实现支持由用户定义的寄存器/线圈写入触发的服务器行为
- 实现不同字节序的支持
- 实现所有当前功能的全部数据支持,并附带测试
- 实现以下功能代码支持
- 读取线圈
- 读取离散输入
- 读取保持寄存器
- 读取输入寄存器
- 写入单个线圈
- 写入单个寄存器
- 读取异常状态
- 诊断
- 获取通信事件计数器
- 获取通信事件日志
- 写入多个线圈
- 写入多个寄存器
- 报告服务器ID
- 读取文件记录
- 写入文件记录
- 掩码写入寄存器
- 读取/写入多个寄存器
- 读取FIFO队列
- 封装接口传输
- CANopen通用参考请求和响应PDU
- 读取设备标识
依赖关系
~8-22MB
~259K SLoC