204 lines
11 KiB
Markdown
204 lines
11 KiB
Markdown
# System Overview - Chocolate Tempering Machine Control System
|
|
|
|
## Executive Summary
|
|
|
|
This is an industrial chocolate tempering machine control system that manages the precise heating, cooling, and pouring processes required for chocolate tempering. The system runs on a single-board computer with a touch interface and communicates with hardware via Modbus RTU over serial communication.
|
|
|
|
## High-Level Architecture
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ AVALONIA UI LAYER │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌────────────────────────┐ │
|
|
│ │ Home │ │ Settings │ │ Diagnostics │ │
|
|
│ │ Screen │ │ Screen │ │ Screen │ │
|
|
│ └─────────────┘ └─────────────┘ └────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ CONTROL LOGIC LAYER │
|
|
│ ┌──────────────┐ ┌──────────────┐ ┌─────────────────────┐ │
|
|
│ │ Recipe │ │ Motor │ │ Temperature │ │
|
|
│ │ Manager │ │ Controller │ │ Controller │ │
|
|
│ └──────────────┘ └──────────────┘ └─────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ COMMUNICATION LAYER │
|
|
│ ┌──────────────┐ ┌──────────────┐ ┌─────────────────────┐ │
|
|
│ │ Modbus │ │ Serial │ │ Queue │ │
|
|
│ │ Master │ │ Port │ │ Manager │ │
|
|
│ └──────────────┘ └──────────────┘ └─────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ HARDWARE LAYER │
|
|
│ ┌──────────────┐ ┌──────────────┐ ┌─────────────────────┐ │
|
|
│ │ Temperature │ │ Motors │ │ I/O │ │
|
|
│ │ Sensors │ │ & Pumps │ │ Controls │ │
|
|
│ └──────────────┘ └──────────────┘ └─────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## System Components
|
|
|
|
### 1. User Interface Layer
|
|
- **Technology**: Avalonia UI (.NET 8)
|
|
- **Purpose**: Touch-based operator interface
|
|
- **Key Features**:
|
|
- Recipe selection and management
|
|
- Real-time temperature monitoring
|
|
- Motor control and status
|
|
- Error display and diagnostics
|
|
- Auto-dimming and power management
|
|
|
|
### 2. Control Logic Layer
|
|
- **Architecture**: Multi-threaded event-driven system
|
|
- **Key Components**:
|
|
- Recipe execution engine
|
|
- Temperature control system
|
|
- Motor coordination logic
|
|
- Safety and error handling
|
|
|
|
### 3. Communication Layer
|
|
- **Protocol**: Modbus RTU over RS-485
|
|
- **Features**:
|
|
- Queue-based message handling
|
|
- Automatic retry with exponential backoff
|
|
- CRC validation
|
|
- Timeout management
|
|
|
|
### 4. Data Persistence Layer
|
|
- **Technology**: CSV files
|
|
- **Storage**:
|
|
- Recipe definitions
|
|
- Machine configuration
|
|
- Hardware mapping
|
|
- PID parameters
|
|
|
|
## Threading Model
|
|
|
|
```
|
|
MainWindow Process
|
|
├── MonitorPortsLoop Thread (Priority: Highest)
|
|
│ ├── Hardware Communication
|
|
│ ├── Recipe Phase Management
|
|
│ ├── Temperature Monitoring
|
|
│ └── Motor Control
|
|
├── ScreenLoop Thread
|
|
│ ├── Error Handling
|
|
│ ├── UI State Management
|
|
│ └── Button Enable/Disable Logic
|
|
├── InteractiveUILoop Thread
|
|
│ ├── Visual Feedback
|
|
│ └── Status Indicators
|
|
├── TouchLoop Thread
|
|
│ ├── Activity Tracking
|
|
│ └── Screen Dimming
|
|
├── CheckInternetLoop Thread
|
|
│ └── Network Connectivity
|
|
└── SerialThreadLoop Thread
|
|
├── Queue Management
|
|
├── Message Retry Logic
|
|
└── Communication Timing
|
|
```
|
|
|
|
## Key Business Processes
|
|
|
|
### 1. Chocolate Tempering Process
|
|
The system follows a precise three-phase tempering process:
|
|
|
|
```
|
|
Pre-heating → Heating → Cooling → Pouring → Complete
|
|
│ │ │ │
|
|
▼ ▼ ▼ ▼
|
|
Warm up Reach goal Cool to Maintain
|
|
hardware temperature precise pouring
|
|
to working temp temperature
|
|
temperature
|
|
```
|
|
|
|
### 2. Motor Coordination
|
|
Multiple motors must be coordinated for proper operation:
|
|
- **Mixer Motor**: Tank agitation
|
|
- **Fountain Motor**: Chocolate circulation
|
|
- **Pump Motors**: Fluid transfer
|
|
- **Vibrator**: Mold preparation
|
|
- **Compressor**: Cooling system
|
|
|
|
### 3. Safety Systems
|
|
- Real-time error monitoring
|
|
- Automatic motor shutoff on errors
|
|
- Temperature limit enforcement
|
|
- Communication timeout handling
|
|
- Grid power monitoring
|
|
|
|
## Deployment Architecture
|
|
|
|
```
|
|
┌─────────────────────────────────────────┐
|
|
│ Single Board Computer │
|
|
│ ┌─────────────────────────────────────┐│
|
|
│ │ Linux Operating System ││
|
|
│ │ ┌─────────────────────────────────┐││
|
|
│ │ │ .NET 8 Runtime │││
|
|
│ │ │ ┌─────────────────────────────┐│││
|
|
│ │ │ │ Avalonia Application ││││
|
|
│ │ │ └─────────────────────────────┘│││
|
|
│ │ └─────────────────────────────────┘││
|
|
│ └─────────────────────────────────────┘│
|
|
│ │ │
|
|
│ Serial Port │
|
|
└─────────────────────────────────────────┘
|
|
│
|
|
RS-485 Interface
|
|
│
|
|
┌─────────────────────────────────────────┐
|
|
│ Industrial Hardware │
|
|
│ ┌───────────┐ ┌─────────┐ ┌────────────┐│
|
|
│ │Temperature│ │ Motors │ │ I/O ││
|
|
│ │ Sensors │ │& Pumps │ │ Controls ││
|
|
│ └───────────┘ └─────────┘ └────────────┘│
|
|
└─────────────────────────────────────────┘
|
|
```
|
|
|
|
## Critical System Requirements
|
|
|
|
### Performance Requirements
|
|
- **Real-time Response**: < 100ms for safety-critical operations
|
|
- **Temperature Accuracy**: ±0.1°C measurement precision
|
|
- **Communication Latency**: < 500ms for Modbus operations
|
|
- **UI Responsiveness**: < 50ms touch response time
|
|
|
|
### Reliability Requirements
|
|
- **Uptime**: 99.9% availability during production hours
|
|
- **Error Recovery**: Automatic recovery from communication failures
|
|
- **Data Integrity**: No loss of configuration or recipe data
|
|
- **Safety**: Fail-safe operation on any system error
|
|
|
|
### Environmental Requirements
|
|
- **Operating Temperature**: 0°C to 50°C
|
|
- **Humidity**: 10% to 90% non-condensing
|
|
- **Vibration**: Industrial environment tolerance
|
|
- **Power**: 24V DC industrial power supply
|
|
|
|
## Migration Considerations
|
|
|
|
### Current Architecture Issues
|
|
1. **Monolithic Design**: Single large class handling multiple concerns
|
|
2. **Thread Safety**: Shared state without proper synchronization
|
|
3. **Error Handling**: Inconsistent exception management
|
|
4. **Testing**: No unit tests for critical control logic
|
|
5. **Configuration**: CSV-based storage lacks validation
|
|
6. **Communication**: Limited error recovery mechanisms
|
|
|
|
### Recommended Target Architecture
|
|
1. **Microservices**: Separate services for UI, control, and communication
|
|
2. **Message Queue**: Decoupled communication between components
|
|
3. **Database**: Structured configuration and recipe storage
|
|
4. **State Machine**: Formal recipe phase management
|
|
5. **Logging**: Comprehensive system monitoring
|
|
6. **Testing**: Full test coverage for control logic
|
|
|
|
This specification provides the foundation for understanding the current system and planning a migration to a more maintainable and robust architecture.
|