Blocaine logo
fr
en
中文
 User Manual   Download   contact@blocaine.org 
Blocaïne is a software platform
for
industrial process automation
Blocaïne general architecture

Blocaïne separates program design from program execution
Development PC
Block Editor
  • Program creation by chaining functional blocks.
  • Compilation.
  • Program loading into the Target Machine.
  • Real-time variable visualization.
  • Variable overriding.
Target Machine (acting as a PLC).
Interpreter
  • Execution of programs created with the Block Editor.
  • Control of industrial equipment via remote I/O.
  • Communication with a possible HMI/SCADA via OPC UA.


Installation tutorial

Features
Hot loadingA new version of a program can be loaded on the fly, without stopping the installation.
Editing - Graphical programming using chained functional blocks
- Block execution order is generated automatically
- Layout is automatic
Validity bitEach variable natively has a validity bit, which propagates from block to block.
Python - Dynamic variable typing
- Functional blocks can be written in Python
Debugging - Real-time variable visualization
- Variables can be overridden
Connectivity - A web server, allowing visualization of the target status
- An OPC UA server, enabling interfacing with an HMI/SCADA
- A ModBus client, enabling control of remote I/O
Open sourceBlocaïne is royalty-free and open source.
Technical sheet
Advantages
PhilosophyKISS - Keep It Simple, Stupid
Advanced features"Hot loading", validity bit, dynamic typing...
CostLow cost (hardware & software)
LicenseFree and open source. The code is fully available and modifiable.
ObsolescenceMinimizes obsolescence thanks to long-lasting standards (Python, Ethernet, PC)
Limitations
CPU resourcesNot suitable for large CPU-intensive projects — a basic “System” block runs in about 2 µs on a Raspberry Pi 5 (max about 0.5 M blocks/s).
Real timeNo “hard” real-time system — latency remains below 1 ms on Raspberry Pi 5.
LibrarySome expected “System” blocks may still be missing.
Project progress
The beta version of Blocaïne is available on GitHub. To make installation easier for evaluation purposes, the downloadable version is configured so that:
  • the Block Editor and the Interpreter run on the same PC, which eliminates any network configuration;
  • some features are disabled (OPC, GPIO, ModBus/TCP), which eliminates the need to install specific Python modules.
It only takes 3 minutes to download and start using Blocaïne. After downloading, you simply need to launch the Interpreter and then the Block Editor; the connection between the two is automatic, and you can then begin evaluating Blocaïne.
Installation and evaluation procedure
Documentation
General docs:


"System" blocks:
add addition and logical AND append add an element to end of list cablin adds an element to a structure cablout extracts an element from a structure clock clock comp comparison const.pi pi constant delay rising or falling edge delay differential differential div division dt task cycle time edge rising and/or falling edge detection filter_FO first-order filter geti returns element [n] GPIO_DI read GPIO digital input GPIO_DO write GPIO digital output GPIO_PWM write GPIO PWM output hold hold function information returns variable info input block input input_output access output from another process insert insert element into list integrator time-based integrator len returns number of elements limit high and low limits memory memory (RS flip-flop) minmax minimum and maximum modbus_conn ModBus/TCP connection modbus_read ModBus/TCP input reading modbus_write ModBus/TCP output assignment mult multiplication not logical NOT OPC_node create an OPC UA node OPC_read get an OPC UA variable OPC_server configure an OPC UA server OPC_var create an OPC UA variable OPC_write set an OPC UA variable or logical OR output block output pop removes element from list previous stored variable puti sets an element in a list range loop iteration readbit get a bit in an integer select selection (if then else) sub subtraction time system clock reading type type conversion validRead validity bit reading validWrite validity bit writing writebit set a bit in an integer


"User" blocks:
loop incrementation
contact: contact@blocaine.org