尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

什么是mbusd?5分钟看懂这款免费开源的Modbus TCP转RTU网关

什么是mbusd?5分钟看懂这款免费开源的Modbus TCP转RTU网关 什么是mbusd5分钟看懂这款免费开源的Modbus TCP转RTU网关【免费下载链接】mbusdOpen-source Modbus TCP to Modbus RTU (RS-232/485) gateway.项目地址: https://gitcode.com/gh_mirrors/mb/mbusdmbusd是一款免费开源的Modbus TCP 转 Modbus RTURS-232/485网关程序用 C 语言编写、遵循宽松的 BSD 许可证。它的核心作用一句话就能说清把一整片串口 Modbus RTU 从设备网络打包成一个标准的 Modbus TCP 从站默认 502 端口让 SCADA、上位机或 PLC 通过以太网直接读写串口设备。如果你正在做工业物联网IIoT或自动化改造下面这 5 分钟就能帮你判断mbusd 是不是你要找的那款 Modbus 协议转换工具。1分钟搞懂Modbus TCP 转 RTU 网关是怎么工作的Modbus 协议有两种常见运输方式Modbus RTU跑在串口上RS-232 / RS-485工业现场的温度传感器、电表、变频器大多用它Modbus TCP跑在以太网上是 SCADA、监控软件的标准接口。两边之间就需要一座桥梁——也就是Modbus TCP 转 RTU 网关。mbusd 的角色很特别它对上层网络扮演TCP 从站服务器对下位串口则化身RTU 主站Master主动去轮询每台 RTU 从设备。你可以把它想象成一个翻译官[ SCADA / PLC / 监控软件 ] │ Modbus TCP (以太网, 端口 502) ▼ ┌─────────┐ │ mbusd │ ← 免费开源网关 └─────────┘ │ Modbus RTU (RS-485 串口) ┌────┼────┬────┐ 电表1 变频器2 传感器3 ...它还能把多台 RTU 从设备的地址空间聚合呈现相当于给整个串口网络配了一个统一网关。mbusd 的核心特点为什么选它特点说明️ 小巧轻量资源占用极小树莓派、嵌入式开发板都能流畅运行 多主站并发多个 TCP 主站可同时通过同一台 mbusd 访问 RTU 网络默认最多 32 个连接️ 稳健可靠响应 CRC 校验不通过时自动重发请求默认重试 3 次⚙️ 串口灵活配置波特率、校验位、停止位、超时均可按现场调整 RS-485 方向控制支持自动控制以及 RTS 电平、sysfs GPIO 手动控制收发方向 部署方便支持 systemd 服务和 Docker 容器两种开箱方式项目当前版本为0.5.32026-04构建系统为 CMake源码结构清晰串口收发、TCP 连接、请求队列分别由 tty.c、conn.c、queue.c 等模块承担核心协议处理见 modbus.c整体逻辑可从 main.c 顺藤摸瓜读懂。支持哪些 Modbus 功能码mbusd 完整支持最常用的 9 个标准功能码覆盖了绝大多数现场读写场景功能码用途功能码用途01读线圈状态05写单个线圈02读输入状态06写单个寄存器03读保持寄存器07读异常状态04读输入寄存器15写多个线圈16写多个寄存器其余功能码包括厂商私有扩展会尽力而为地转发不保证成功——这也是评估 Modbus 网关兼容性时要留意的点。快速上手3 种部署方式任选方式一源码编译Linux / 嵌入式 / 树莓派git clone https://gitcode.com/gh_mirrors/mb/mbusd.git mbusd.git cd mbusd.git mkdir -p build cd build cmake -DCMAKE_INSTALL_PREFIX/usr .. make sudo make install编译参数想可视化调整在build目录里用ccmake或cmake-gui即可选项定义见 CMakeLists.txt。方式二systemd 服务推荐生产环境安装后系统若启用了 systemd会自动装上模板服务文件模板源码mbusd.service.in一条命令拉起systemctl start mbusdttyUSB0.service # 串口名 去掉 /dev/ 前缀 systemctl enable mbusdttyUSB0.service # 开机自启 journalctl -u mbusdttyUSB0.service -f -n 10 # 实时看日志每个串口实例独立从/etc/mbusd/mbusd-串口名.conf读取配置因此一台机器上可以多实例并行各管一条串口总线互不干扰。方式三Docker 容器仓库自带 Dockerfile容器化一行跑起docker run -d --privileged --namembusd \ -p 502:502 -v /dev:/dev \ -v /path/to/mbusd.conf:/etc/mbusd.conf \ 3cky/mbusd:latest⚠️ 小提示Modbus TCP 默认端口502属于特权端口直接监听它需要 root 权限非 root 运行请改用-P 5020之类的自定义端口。mbusd 配置指南配置文件与关键参数除了命令行参数mbusd 还支持-c指定配置文件。仓库中的示例 mbusd.conf.example 是最好的参数说明书核心字段包括串口侧device设备名、speed波特率、mode如 8n1、enable_rs485、trx_controlRS-485 收发方向控制方式TCP 侧address、port、maxconn最大并发连接数、timeout连接超时请求/响应retries重试次数、pause请求间隔、wait等待响应时间、replyonbroadcast是否回应广播。一份最小可用配置长这样device /dev/ttyUSB0 speed 9600 mode 8n1 port 502 retries 3完整的手册页文档参数、异常码说明一应俱全可参考 mbusd.8.in。常见问题与排障建议现象排查思路收到异常码04RTU 响应 CRC 校验失败重试后仍无法修正——检查串口线路、波特率与校验位设置收到异常码0x0B指定的 RTU 设备无响应——确认设备在线、从站地址是否正确连接数受限默认maxconn 32多主站场景可在配置文件中调大想抓包排障用-v9详细日志 -L /tmp/mbusd.log输出完整调试日志这是官方推荐的 bug 反馈方式总结mbusd 适合谁✅ 用树莓派/工控机 USB 转 485 模块把老串口设备接入以太网监控 ✅ 需要多个上位系统共享同一条 Modbus RTU 总线 ✅ 追求轻量、免费BSD 许可证、可自托管的 Modbus 网关方案。mbusd 用极简的代码解决了串口设备上云/上网这一刚需TCP 侧标准从站、RTU 侧主动主站再加上多主站、自动重试和 systemd/Docker 部署让它成为 Modbus 协议转换领域里少有的小而美开源选择。如果你的现场还有一堆 RS-485 设备等着联网不妨就用今天这篇文章花 5 分钟把它跑起来吧 【免费下载链接】mbusdOpen-source Modbus TCP to Modbus RTU (RS-232/485) gateway.项目地址: https://gitcode.com/gh_mirrors/mb/mbusd创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表