Operation
Functional Block Diagram
Core functions
The Control Unit (CU) serves as the primary processing module of the system:
- I/O Module Polling
- Communication Services (Modbus TCP / MQTT)
- PLC Logic Execution
- Local Interface Management
- USB communication (Download / Live Debug)
I/O Module Polling
- Polling method: sequential, deterministic
- Poll time per module: ~5 ms
- Function: reads module status, updates outputs, and maintains synchronized I/O data structures
💡 Total update time
The total update time depends on the model size (5 modules / 10 modules / 15 modules).
The I/O update is asynchronous from PLC logic execution.
Communication Services
The CU maintains network communication tasks in parallel with I/O polling and logic processing. Supported modes:
- Modbus TCP Server
- MQTT Client
Functions:
- Processes incoming and outgoing frames
- Updates communication registers/buffers
- Ensures protocol availability during each scan cycle
PLC Logic Execution
- Executes the user program based on Task scheduling
- Deterministic runtime behavior
- Operates independently of communication and USB activity
Local Interface Management
- Monitors built-in user button for OLED menu interactions
- Drives the integrated OLED display for status and diagnostics
- The OLED Display refresh does not have an impact on PLC execution timing
USB Communication
- Used for downloading the PLC program or debugging the currently loaded program
- USB tasks are event-driven and handled without affecting core control functions
- USB FS is limited to 12 Mbps, resulting in a refresh rate ~500 variables/second
- Automatically disabled when not connected
⚠️ Too many variables
A large number of variables can result in a very low refresh rate, making debugging difficult.
✅ Future improvement
In the next model, we plan to switch to USB HS, which should increase the speed up to 40x faster, eliminating this limitation.