三维切割系统
项目描述: 项目为工业激光切管设备提供三维切割控制解决方案,集成运动控制、工艺参数管理、矫平寻中和设备配置等核心功能。系统通过以太网与运动控制器通信,实现多轴(X/Y/Z/B)精准协调控制,提升切割精度和生产效率。本人中途接手该项目,主导系统架构重构。
使用技术: C#、WPF、.NET 8.0、CommunityToolkit.MVVM、Microsoft.Extensions.DependencyInjection、Serilog、LiveCharts、Newtonsoft.Json
主要职责:
架构重构与模块化拆分:
将原有单体项目重构为多项目分层架构,拆分出 Assets 资源层和 Models 数据层,实现单向依赖
引入 CommunityToolkit.Mvvm 框架,全面推行 MVVM 模式,将视图与业务逻辑彻底解耦
将臃肿的主视图模型按功能域拆分为 多 个独立 ViewModel(矫平寻中、回原点、支架随动、高级工具等),大幅提升可维护性
依赖注入与服务层设计:
基于 Microsoft.Extensions.DependencyInjection 搭建 DI 容器,替代原有硬编码依赖
抽象设计服务层接口(IAxisMotionControlService、IChuckControlService、IBracketControlService),实现面向接口编程
采用工厂模式注册复杂依赖链,服务间通过接口复用工具方法,统一管理服务生命周期
日志系统重构:
自定义 ILogger 接口,通过适配器模式封装 Serilog,实现日志框架与业务代码解耦
开发自定义 WpfLogSink,支持控制台、文件、WPF 界面三端日志同步输出,含缓存补发机制
核心功能开发:
实现以太网/串口双通道通信及全局取消机制(CancellationToken)
开发 多 种矫平寻中算法,满足不同管型精准定位需求
开发调高器控制、卡盘/支架随动控制、B 轴标定等精密控制功能
设计 JSON 配置文件管理方案,实现 多类配置数据的持久化存储与跨程序集资源释放
系统稳定性与安全性:
建立 UI 线程、Task 线程、AppDomain 三级全局异常处理机制
实现软件授权系统(硬件指纹绑定 + 激活码验证)和多级密码保护
使用多线程技术处理运动控制和数据采集,配置 DPI 感知适配和进程互斥锁