-
Notifications
You must be signed in to change notification settings - Fork 1
Flexxbotics Developer Guide
This guide describes the core architectural concepts of the Flexxbotics platform, including how Devices, Transformers, Protocols, Scripts, and Adapters work together inside the FlexxCore runtime.
Flexxbotics is built around Devices and Transformers, with supporting concepts such as Extensions, Protocols, Scripts, and Adapters.
Together, these components enable:
- Communication with industrial equipment
- Runtime execution of automation logic
- Visualization and monitoring
- Autonomous and closed-loop control
All of these entities are fully editable through the Studio development environment.
Accessing Studio
- Open Flexx Edge
- Top-right menu → Devices & Transformers
- Select the Studio tab
A Device is the top-level runtime object created from the Devices screen in the Flexxbotics UI.
Devices represent physical or logical equipment, including:
- Robots
- PLCs
- Machines
- Safety systems
- Cameras
- Inspection systems
- Complete work cells
Devices are created based on Machine Model options.
Machine models define:
- Equipment OEM
- Equipment model
- Controller type
- Which Transformer is used for communication
Machine models are defined in JSON files located in the transformer's models folder.
Each machine model specifies:
- OEM
- Equipment model
- Controller
- The transformer responsible for communicating with the equipment
Machine models act as the configuration layer that binds physical equipment to a specific transformer implementation.
A Transformer is the software component responsible for communicating with equipment.
Each transformer includes a JSON definition containing:
- Transformer metadata
- Python file name
- Python class name
When a device is created:
- Its transformer is assigned to the device
- The transformer is instantiated in the runtime environment
Transformer methods become execution points for:
- Status reads
- Variable reads and writes
- Commands
- Polling logic
- Additional automation behavior
Extensions are external software components that run outside the Flexxbotics runtime.
Extensions are typically:
- Installed on:
- Equipment controllers
- PCs controlling equipment
- Implemented as servers
- Used to translate native equipment data into the Flexxbotics API
Extensions are commonly required when:
- Native protocols are not externally exposed
- Equipment communication is only available via:
- OEM APIs
- SDK-based software
- Third-party developer tools
- Highly specific functionality is needed, such as:
- File manipulation
- TCP clients
- Custom data adapters
- Machine layouts are defined in Flexx Control
- Equipment placed in a layout can be assigned a device
Device-to-layout assignment:
- Enables visualization of device status
- Links runtime devices to physical cell layouts
- Is primarily used for monitoring and UI representation
Only one device should be marked as the Primary Device.
The primary device:
- Represents the main controller of a work cell
- Drives status events
- Determines overall work cell status
A Work Cell Transformer is a generic transformer use