15 stable releases
| 1.0.20 | Dec 8, 2025 |
|---|---|
| 1.0.17 | Dec 5, 2025 |
| 1.0.11 | Oct 14, 2025 |
#855 in Network programming
305KB
7K
SLoC
hmi_vue3_tauri_lib_v2(Tauri 后端)
面向工业 HMI 的 Tauri 2 插件,内置 Modbus TCP/RTU、Snap7(西门子)、三菱 MC/TCP 任务队列与事件派发。支持长连接复用、自动重连与原始字节下行,可直接接入任意 Tauri 工程,并与同名 npm 包的前端事件桥接配合使用。
✨ 特性摘要
- 独立的 TCP/RTU 调度与循环任务队列,失败自动重试与清理。
- 事件桥接:线圈、寄存器、设备状态、原始字节结果推送到前端。
- 配置即用:读取
设备配置-TCP.json/设备配置-RTU.json,自动建立连接并维护字节序。 - 标准插件模式:
init()初始化状态,命令处理器()注册添加Modbus任务、清除指定来源任务,无插件前缀。
🚀 集成步骤
1) Cargo 依赖
[dependencies]
hmi_vue3_tauri_lib_v2 = { version = "1.0.20", features = ["snap7", "mc"] }
tauri = { version = "2", features = [] }
Snap7、三菱 MC/TCP 特性默认开启;若仅需 Modbus,可用
default-features = false精简。
2) 在 src/main.rs 注册插件与命令
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
fn main() {
tauri::Builder::default()
.plugin(hmi_vue3_tauri_lib_v2::init())
.plugin(tauri_plugin_opener::init())
.invoke_handler(hmi_vue3_tauri_lib_v2::命令处理器())
.run(tauri::generate_context!())
.expect("运行Tauri应用时发生错误");
}
- 若已有自定义
invoke_handler,将添加Modbus任务、清除指定来源任务合并到同一个generate_handler!即可。
📁 设备配置要求
- 文件名:
设备配置-TCP.json、设备配置-RTU.json,需与可执行文件同级。 - Snap7:
协议: "snap7",提供tcp端口/机架/插槽/区域/db号/起始偏移/字节序。 - 三菱 MC:
协议: "mc",提供端口/帧格式/寄存器区域/线圈区域/字节序,单条配置的线圈区域仅能为 X/Y/M 之一。 - 长连接池按 IP/端口(Snap7 含机架/插槽)复用并自动重连,与设备名称无关。
🧰 调试与发布
调试:npm run tauri(启用 snap7 + mc 特性)。
发布步骤(环境已就绪,确保已登录 crates.io / npm):
- 前端库(在仓库根目录):
npm run build:lib
npm publish
- Rust crate:
cargo publish
- 桌面应用(可选):
npm run tauri build
Dependencies
~20–70MB
~1M SLoC