Skip to content

JeffreyXXL/Sophon

Repository files navigation

Sophon

🚀 项目简介

Sophon 是一个基于 .NET Framework 4.7.2 开发的工业自动化控制软件,采用现代化的分层架构设计,旨在为工业自动化设备提供灵活、可靠的控制解决方案。

核心特性

  • 🏗️ 模块化架构 - 清晰的六层架构,易于维护和扩展
  • 异步流程引擎 - 支持复杂控制流程的异步执行
  • 🔌 多协议支持 - 集成多种工业通信协议
  • 🎛️ 可视化控制 - WPF 界面,支持硬件调试和监控
  • 📊 数据持久化 - 完整的生产数据记录和追溯

📁 项目架构

Sophon/
├── Common/              # 公共基础设施
│   ├── DI/             # 依赖注入系统
│   ├── Logger/         # 日志系统
│   └── Config/         # 配置管理系统
├── Sophon.Core/        # 核心业务逻辑
│   ├── WorkStation/    # 工站控制系统
│   ├── Flow/          # 流程引擎
│   ├── StateMachine/  # 状态机
│   └── EventBus/      # 事件总线
├── Sophon.Application/ # 应用层(服务、DTO、流程)
├── Sophon.Infrastructure/ # 基础设施层
│   ├── Database/      # 数据库访问
│   ├── Communication/ # 通信协议
│   └── Hardware/      # 硬件接口
└── Sophon.UI/         # WPF用户界面

✅ 已完成功能

1. 基础框架 (100%)

  • 依赖注入系统 - 基于 Autofac/DryIoc 的模块化注册
  • 日志系统 - 支持 NLog,可配置的日志管理
  • 配置管理 - JSON/XML/INI 多格式配置支持
  • 统一异常处理 - 完善的错误处理机制

2. 核心业务逻辑 (85%)

  • 工站控制系统
    • 工站管理、状态监控
    • 异步启动/停止/暂停/恢复
    • 多工站并行控制
  • 流程引擎
    • 异步流程执行引擎
    • 流程上下文管理
    • 步骤状态跟踪
  • 状态机系统
    • 状态转换管理
    • 状态变更事件通知
  • 事件总线
    • 松耦合事件通信
    • 异步事件处理

3. 通信协议 (75%)

  • ADS协议 - Beckhoff TwinCAT 完整支持
  • TCP/IP协议 - 完整的客户端/服务器实现
  • 串口通信 - 标准串口通信协议
  • Modbus协议 - 接口定义完成

4. 数据库访问 (80%)

  • 实体框架 - 使用 SqlSugar ORM
  • 仓储模式 - 通用的数据访问层
  • 事务管理 - 完整的事务支持
  • 生产数据模型
    • 用户管理
    • 生产记录
    • 历史追溯

5. 硬件接口 (60%)

  • 轴控制接口 - 完整的运动控制接口定义
  • IO控制接口 - 数字输入输出控制
  • 硬件提供者模式 - 统一的硬件访问接口
  • 驱动器支持
    • 固高科技 (GoogolTech) - 接口定义
    • 雷赛科技 (LeadShine) - 接口定义

6. 流程步骤 (70%)

  • 基础步骤
    • 延时步骤 (FlowStep_Delay)
    • 事件发布/订阅步骤
    • 跳转步骤 (FlowStep_JumpTo)
    • 循环步骤 (FlowStep_Loop)
    • 并行步骤 (FlowStep_Parallel)
  • 控制步骤
    • 轴回零步骤 (FlowStep_AxisHome)

🚧 未完成/待完善功能

1. 用户界面 (30%) ⚠️

  • 主界面框架 - 只有基础框架,缺少功能界面
  • 工站管理界面 - 工站创建、配置、监控
  • 流程编辑界面 - 可视化流程设计器
  • 硬件调试界面 - 轴控制、IO控制、通信调试
  • 实时监控界面 - 生产状态实时显示

2. 应用层 (10%) ⚠️

  • 应用服务 - 业务逻辑服务层缺失
  • DTO传输对象 - 数据传输对象未定义
  • ViewModel - 界面数据绑定模型
  • 命令/查询模式 - CQRS 模式未实现

3. 硬件驱动实现 (40%) ⚡

  • 具体驱动器实现 - 接口已定义,但实现为空
  • 硬件测试工具 - 缺少硬件连接测试功能
  • 多硬件支持 - 需要扩展更多硬件品牌

4. 流程管理 (50%) ⚡

  • 流程持久化 - 无法保存/加载流程配置
  • 可视化编辑器 - 拖拽式流程设计
  • 流程调试工具 - 单步执行、断点调试
  • 流程版本管理 - 流程版本控制和回滚

5. 系统集成 (20%) 📝

  • 权限管理系统 - 用户角色和权限控制
  • 报警管理系统 - 异常报警和处理
  • 报表系统 - 生产报表生成
  • 系统配置 - 完整的系统配置界面

🛠️ 技术栈

后端技术

  • .NET Framework 4.7.2 - 主要开发框架
  • WPF + Prism - MVVM 架构和界面框架
  • Autofac/DryIoc - 依赖注入容器
  • SqlSugar - 轻量级 ORM
  • NLog - 日志记录

前端技术

  • WPF - Windows Presentation Foundation
  • HandyControl - WPF UI 控件库
  • Prism.Wpf - MVVM 框架
  • Microsoft.Xaml.Behaviors - XAML 行为

开发工具

  • Visual Studio 2022 - 主要开发环境
  • Git - 版本控制

🚀 快速开始

环境要求

  • Windows 10/11
  • .NET Framework 4.7.2
  • Visual Studio 2022 (推荐)
  • SQLite

编译运行

  1. 克隆仓库

    git clone https://github.com/JeffreyXXL/Sophon.git
  2. 使用 Visual Studio 打开 Sophon.sln

  3. 设置启动项目为 Sophon.UI

  4. 编译并运行

配置说明

首次运行前需要配置:

  1. 数据库连接字符串
  2. 硬件通信参数
  3. 日志输出路径

🤝 贡献指南

当前本项目还在开发学习过程中,欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。

开发规范

  1. 遵循现有的分层架构
  2. 使用异步编程模式
  3. 编写单元测试
  4. 保持代码注释清晰

提交信息格式

feat: 添加新功能
fix: 修复问题
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
test: 测试相关
chore: 构建过程或辅助工具变动

📞 联系与支持

About

A industry motion control software base on C# 基于C#开发的运动控制软件

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages