Avalonia 工业级实战:从 PLC 通信到 Web HMI 的完整方案
前言工业软件开发中我们常常面临一个难题既要支持现场操作员使用的桌面 HMI又要满足管理人员通过浏览器远程查看的需求。传统做法是维护两套前端成本高、同步难。Avalonia 的出现让一套代码、多端运行成为可能。今天推荐一个基于多年工业自动化经验打造的一个开箱即用的跨平台工控应用起点——既能在 Windows 工控机上稳定运行也能在浏览器中实时监控产线数据。如果大家正在找一个兼顾 现代 UI、多协议通信、权限管理与跨平台部署的 .NET 工业前端框架不妨看看本文。项目概述一款基于Avalonia UI 框架开发的现代化跨平台工业应用程序采用MVVM 架构设计专注于工业自动化领域的数据采集、设备通信与监控管理。项目同时支持Windows 桌面端与Web 浏览器双平台部署具备高度的可扩展性、模块化结构和工业级稳定性可作为智能制造、IIoT 或 MES 系统的前端基础框架。核心功能多平台支持同一套代码可编译运行于 Windows 桌面应用和 Web 浏览器基于 WebAssembly工业设备通信集成西门子S7、欧姆龙、三菱、倍福等主流 PLC 的通信协议用户权限管理基于角色的访问控制RBAC支持用户登录、认证与细粒度权限分配数据管理通过SqlSugar ORM框架实现与MySQL数据库的高效读写操作实时监控持续采集 PLC 数据记录设备状态变化与系统事件日志自动更新集成Velopack框架支持桌面端应用静默升级日志系统基于Serilog实现结构化日志记录、异常捕获与诊断追踪技术架构技术栈类别核心技术UI 框架Avalonia UI 11.3.3MVVM 框架Prism CommunityToolkit.Mvvm依赖注入DryIoc数据访问SqlSugarMySQL日志系统Serilog通信协议MQTT、OPC UA、Siemens S7 Protocol自动更新Velopack图标资源Material Design Icons项目结构├── GetStartedApp # 主应用模块UI、ViewModel、业务逻辑 ├── GetStartedApp.Desktop # 桌面应用入口Windows/macOS/Linux ├── GetStartedApp.Browser # Web 浏览器应用入口WebAssembly ├── GetStartedApp.SqlSugar # 数据访问层封装 SqlSugar 操作 ├── GetStartedApp.Core # 核心工具类、通用服务、扩展方法 └── SmartCommunicationForExcel # 工业通信组件支持多品牌 PLC 协议应用场景工业自动化设备监控系统生产现场数据采集与可视化分析平台智能制造执行系统MES前端界面工业物联网IIoT边缘数据网关跨平台工控 HMI人机界面原型开发特点优势跨平台部署一次开发同时覆盖桌面与 Web 端降低维护成本模块化设计各功能层清晰分离便于团队协作、单元测试与功能扩展工业级稳定性完善的异常处理机制 全链路日志追踪保障 7×24 运行可靠性丰富的通信接口原生支持多种工业协议与数据库快速对接现场设备现代化 UI 体验基于 Avalonia 的响应式界面支持深色/浅色主题切换适配高清屏快速启动桌面端运行cd GetStartedApp.Desktop dotnet runWeb 端运行浏览器cd GetStartedApp.Browser dotnet run启动后可通过浏览器访问http://localhost:5000具体端口以输出为准查看 Web 版应用。总结项目为工业软件开发提供一个开箱即用、面向生产环境的跨平台应用起点帮助大家快速开发稳定、可维护、可扩展的下一代工控系统前端。