hmi_vue3_tauri_lib_v2

Crates.iohmi_vue3_tauri_lib_v2
lib.rshmi_vue3_tauri_lib_v2
version1.0.20
created_at2025-10-07 02:24:49.58233+00
updated_at2025-12-08 08:22:29.687352+00
description面向工业HMI的Tauri后端,内置Modbus任务队列与事件分发
homepagehttps://github.com/industrial-automation/hmi_vue3_tauri_lib_v2
repositoryhttps://github.com/industrial-automation/hmi_vue3_tauri_lib_v2
max_upload_size
id1871142
size1,001,449
(a1178722162)

documentation

https://docs.rs/hmi_vue3_tauri_lib_v2

README

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):

  1. 前端库(在仓库根目录):
npm run build:lib
npm publish
  1. Rust crate:
cargo publish
  1. 桌面应用(可选):
npm run tauri build
Commit count: 0

cargo fmt