Layer5-Layer6-Design.md 7.0 KB

Layer5 (边缘计算层) 和 Layer6 (设备控制层) 详细设计

1. 概述

本文档详细描述了MIMO系统中的Layer5(边缘计算层)和Layer6(设备控制层)的架构设计、组件关系和实现方式。这两层是系统与物理设备交互的核心,负责设备控制、数据采集和边缘计算处理。

2. Layer6 (设备控制层)

2.1 架构概览

设备控制层作为系统的底层,直接与物理设备进行交互,提供统一的设备抽象和控制接口。

核心组件

  • 设备抽象接口:定义了各类设备的统一操作接口
  • 设备管理器:负责设备的生命周期管理和状态监控
  • 通信协议适配器:处理不同通信协议的转换
  • 数据采集模块:负责从设备获取实时数据

目录结构

Core/
├── Devices/               # 设备控制层 (DeviceLibrary)
│   ├── Axis/              # 轴控制相关 (IAxisManager, AxisManager)
│   ├── IO/                # IO控制相关 (I_IOManager, IOManager)
│   ├── Sensors/           # 传感器实现 (WeightSensor, Camera)
│   ├── Controllers/       # 控制器封装 (AxisBean)
│   └── Common/            # 通用设备定义

2.2 主要模块说明

2.2.1 轴控制模块

负责控制和监控运动轴的状态和行为,提供运动控制的基本功能。

  • AxisManager:管理所有运动轴,提供统一的控制接口
  • AxisBean:描述轴的属性和状态信息
  • 运动指令封装:封装各类运动指令如点动、连续运动等

2.2.2 IO控制模块

管理系统的输入输出信号,处理数字量和模拟量的读写操作。

  • IOManager:管理所有IO点,提供IO读写功能
  • IOMonitor:监控IO状态变化,触发相应事件
  • IO映射管理:维护IO点与实际物理设备的映射关系

2.2.3 传感器模块

处理各类传感器数据的采集和处理,包括重量传感器、视觉传感器等。

  • C8WeightSensor:C8系列重量传感器实现
  • OKLE_WeightSensor:OKLE系列重量传感器实现
  • Camera:相机设备抽象和控制

2.3 设备接口设计原则

  • 接口隔离:每个设备接口专注于特定类型设备的操作
  • 依赖倒置:高层模块依赖于抽象接口,不依赖于具体实现
  • 单一职责:每个类只负责单一功能领域的任务
  • 可扩展性:设计支持轻松添加新设备类型和通信协议

3. Layer5 (边缘计算层)

3.1 架构概览

边缘计算层位于设备控制层之上,负责处理设备数据、实现业务逻辑和协调设备间的交互。

核心组件

  • 业务逻辑处理器:实现核心业务逻辑
  • 状态管理器:维护系统状态和设备状态
  • 任务调度器:协调和调度各类任务执行
  • 数据处理引擎:进行边缘数据处理和分析

目录结构

Core/
├── MachineControl/        # 机器控制核心
│   ├── MainMachine.cs     # 主机器控制逻辑 (Partial Class)
│   ├── RobotManage.cs     # 机器人/全局配置管理 (Singleton)
│   └── Components/        # MainMachine的分部类实现
│       ├── MainMachine_String.cs   # 料串进出逻辑
│       ├── MainMachine_Clamp.cs    # 取放料逻辑
│       ├── MainMachine_Store.cs    # 库位管理逻辑
│       └── ...
├── BusinessLogic/         # 业务逻辑
│   ├── BoxTransport.cs    # ReelTransport 类定义 (料盘搬运核心逻辑)
│   ├── MoveInfo.cs        # 运动步骤状态封装 (MoveStep Enum)
│   └── JobList.cs         # 任务队列逻辑
└── DataProcessing/        # 数据处理

3.2 主要功能模块

3.2.1 机器控制模块

作为系统的核心,协调各设备完成整体任务流程。

  • MainMachine:实现主机器控制逻辑,协调各子系统工作
  • 状态机设计:使用状态机模式管理系统运行状态转换
  • 任务协调:协调各设备完成复杂任务序列

3.2.2 机器人管理模块

管理机器人设备,实现机器人的运动控制和任务执行。

  • RobotManage:机器人设备的管理和控制
  • 运动规划:简单的运动路径规划和避障
  • 任务执行:执行预设的机器人任务序列

3.2.3 数据处理和分析

对从设备层采集的数据进行处理、分析和存储。

  • 数据过滤:过滤和清洗原始传感器数据
  • 边缘分析:在边缘设备上进行简单的数据统计和分析
  • 数据存储:管理本地数据存储和缓存

4. 层间交互设计

4.1 通信机制

Layer5和Layer6之间采用以下通信机制:

  • 接口调用:Layer5通过接口直接调用Layer6提供的服务
  • 事件通知:Layer6通过事件机制向Layer5通知设备状态变化
  • 异步通信:关键操作采用异步方式执行,避免阻塞主线程

4.2 数据流设计

  • 下行数据流:指令从Layer5传递到Layer6,最终执行到物理设备
  • 上行数据流:设备状态和传感器数据从Layer6采集后传递到Layer5
  • 数据转换:在两层之间进行数据格式和语义的转换

5. 设计模式应用

5.1 创建型模式

  • 工厂模式:用于创建不同类型的设备实例
  • 单例模式:管理全局唯一的设备管理器实例

5.2 结构型模式

  • 适配器模式:适配不同类型的设备通信协议
  • 装饰器模式:为设备操作添加额外功能(如日志、监控等)

5.3 行为型模式

  • 状态模式:管理系统和设备的状态转换
  • 命令模式:封装设备操作指令
  • 观察者模式:实现设备状态变化的通知机制

6. 性能和安全考虑

6.1 性能优化

  • 资源池化:对频繁创建的对象使用对象池
  • 异步操作:关键操作采用异步方式执行
  • 缓存机制:缓存常用配置和状态信息

6.2 安全机制

  • 访问控制:对设备操作进行权限控制
  • 故障恢复:实现自动故障检测和恢复机制
  • 日志审计:记录关键操作和状态变化,便于审计和故障排查

7. 扩展性设计

7.1 新设备接入

设计支持通过以下方式轻松接入新设备:

  • 接口实现:实现相应的设备接口
  • 配置注册:在配置文件中注册新设备信息
  • 驱动适配:开发相应的设备驱动适配器

7.2 功能扩展

系统支持通过以下方式扩展功能:

  • 插件机制:支持加载自定义功能插件
  • 配置化:关键参数和行为支持配置化调整
  • 事件扩展:通过事件机制支持功能扩展

8. 总结

Layer5和Layer6作为MIMO系统的核心组成部分,通过清晰的分层设计和接口定义,实现了设备控制和边缘计算功能的有效分离和协作。这种设计使得系统具有良好的可维护性、可扩展性和可靠性,能够满足工业自动化场景的需求。