4.5 KiB
4.5 KiB
QiTech Control
QiTech Control is an industrial control panel software for the next generation of QiTech recycling machines built on top of Beckhoff Automation hardware.
Repo Structure
Frontend
/electron: Frontend code for the control software built with React and Electron.
Backend
/server: Glue between Beckhoff and Electron. Implements machine logic./stepper-driver: Generic stepper driver for absolute, relative & speed movements with PID controllers./ethercat-hal: Hardware abstraction layer for Beckhoff (and possibly other EtherCat) devices and protocols./ethercat-hal-derive: Macros forethercat-hal/control-core: Core control logic for the server.
Operating System
/nixos: Custom Linux with realtime kernel & preconfigured for touchscreens.
Other
/docs: Documentation for the project.
Technology Choices
Dev Setup
Machines
More Docs
-
- Example Winder V2
-
Electron
- Folder Structure
- Routing with TanStack Router
- Design with Tailwind & Shadcn
- ...
-
Interfacing with Electron/Server
- SocketIO
- Machine Room
- Main Room
- REST
- Machine Mutations
- Write Device Identification
- SocketIO
-
Server
- Control Loop Setup
- Control Loop Thread
- realtime
- Maindevice
- Group
- Extracting Device Identifications
- Identifying Groups
- Validating Machines
- Run Control Loop
- Control Loop Thread
- Control Loop
- Machine/Device Identification
- SubDevice Identity
- Identification design choices
- Machine/Device Identification Values
- Device Identification with EEPROM
- Grouping Devices
- Validating Device Groups to Machines
- How to: Identify a New Device
- Find free EEPROM words
- Get identity values and add them to pattern matching
- Machines
- When to create a new Machine?
- Versioning
- Code sharing
- Creating/Validating a Machine
- Validation
- Configuration
- When to create a new Machine?
- Machine Implementation Guide
- Link: How to create a Device
- Link: How to create an Actor
- Link: How to create a Machine
- API (SocketIO + REST)
- Creation/Validation Logic
- Optional/Mandatory Devices
- Validate Devices
- Business Logic
- Link: How to create Machine Abstraction (Like Traverse/Puller/...)
- Forward
actin winder.
- Control Loop Setup
-
Control Core
- Actors
- SocketIO
- Rooms & Caching
- Joining leaving rooms
- RoomId
- Our rooms vs native socketIO rooms
- Caching
- Serverside Caching
- Clientside Caching
- REST
-
Ethercat HAL
-
Operating System
- Why
- How
