『7x24小时有问必答』

做 Modbus 协议调试,不少人会选用 Modbus Poll 这个工具。
但是它是收费软件,而且功能比较单一,只能模拟客户端,要想测试服务器端的话还要找其它的工具。
最近发现一个开源项目,完全免费,把客户端和服务器都做成了 GUI 工具,还支持 Python 脚本扩展。

01 开源项目介绍

ModbusTools 是一个开源的 Modbus 客户端和服务器调试工具集。
它最大的特点是把客户端和服务器做成了两个独立的 GUI 工具,既能单独用,也能配合起来用。
这个项目用的是 Qt 框架进行开发,可以在 Windows 和 Linux 系统运行,支持的协议栈包括 TCP、UDP、RTU、ASCII等。
功能码种类非常丰富,既包含读写线圈、读写寄存器等基础操作,也包含诊断、文件记录等高级功能,基本覆盖了工业现场常见的通信需求。

02 几个核心亮点

① 扫描功能可以自动发现网络上的设备
在调试 Modbus 网络的时候,第一件要做的事就是弄清楚网络上有哪些设备在线,过去的方法是逐个地去试。
ModbusTools 的 Scanner 功能可以对 Modbus 网络进行扫描,能够自动发现当前网络上有哪些设备在线。
扫描范围可以自己设定,从哪一个Unit ID开始,到哪一个结束,每一个地址试多少次都可以设置。
扫描出来的设备可以直接添加到配置里,不用手动输入设备地址,一键扫描就能看到整个网络的设备拓扑。
② SendMessage 窗口自己构造任意请求
有时候要测试设备对于某一个请求的反应,或者是想看某个功能码具体是怎么工作的。
SendMessage 可以构造出任意的 Modbus 请求,并且可以看到完整的请求与响应的数据包。
该功能在调试协议细节时非常有用,可以让你看到每一个字节是如何被发送和接收的。
新版本还可以设置为循环发送模式,即可以定时地重复执行某一个请求来检验设备的稳定性,在一段时间之后观察结果。
③ 服务器能模拟多个设备行为
ModbusTools 的 Server 工具可以模拟出 Modbus 设备的行为,在没有真实设备的情况下也可以进行开发与测试。
它可以同时对多个设备进行仿真,在RTU协议的应用中尤其有用,因为在 RTU 中一般会使用一个串口来连接多个设备。
服务器可以给每一个 Unit ID 配置不同的内存映射以及行为逻辑,从而实现一个真正的多设备网络。
④ 数据模拟不只是一些固定的数值,还可以自动地进行变化
在模拟设备时,如果数据一直都是静态的,那么很多场景就无法进行测试了,所以 ModbusTools 提供了多种数据模拟模式。
Increment 模式使数据以一定的步长递增或者递减,Sine 模式使数据按照正弦函数进行变化,Random 模式使数据在给定范围内随机变动。
可以将不同的模式组合起来使用,使设备的行为更加贴近真实的场景。
⑤ Python脚本扩展使模拟逻辑可以全部自定义
从v0.4版本起,Server 可以使用 Python 脚本来进行扩展,这也是该项目最突出的一个功能。
每个设备有三个脚本入口:Init 脚本在启动的时候只执行一次,Loop 脚本则会一直循环执行下去,Final 脚本会在结束的时候被执行。
脚本可以对设备的内存对象进行直接访问,并且能够读取和修改不同类型的数据:
v=mem0x.getint8(0)

mem1x.setint16(1,-1)

mem3x.setuint16(0,  65535)

mem4x.setdouble(10,  2.71828)

以前做工控、协议调试的时候要自己手动拼接出各种数据变化逻辑,现在用Python脚本就可以直接实现。
比如说要模拟一个流量计的行为,就可以编写一个脚本来使流量值按照一定的公式来变化,也可以在模拟设备出现故障的时候返回一些特定的错误码。
⑥ 支持IEC61131-3地址格式
对 PLC 工程师来说,直接看 Modbus 地址有时候还得换算一下。
ModbusTools 提供了 IEC 61131-3 地址格式支持,可以在标准 Modbus 地址和 PLC 常用地址格式之间自由切换,使用起来会顺手很多。
地址类型对比:

03 如何使用

从 GitHub 上下载好编译好的二进制文件后直接解压就可以运行了,并不需要复杂的安装步骤。
打开软件之后设置好端口以及设备参数之后点击连接就可以进行调试了。

04 写在最后

整体看下来,ModbusTools 算是一个比较完整的 Modbus 调试工具集。
客户端、服务器、设备扫描、协议调试、数据模拟,该有的功能都有了。
感兴趣的朋友可以试试看。
开源地址:https://github.com/serhmarch/ModbusTools
既然看到这了,欢迎随手点赞、在看、转发,也可以给我个星标,接收最新的文章,我们下期见!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码