ModBee OpenPLC libraries
modbee-openplc
Function block libraries for the OpenPLC Editor,
and the board package for the ModBee Node UIO.
They are for electricians and integrators who build control panels with
OpenPLC. You get the protocols a remote site needs (BeeBus, Modbus, MQTT,
Sparkplug B, cellular), the Node UIO's own I/O, and a library of ready-made
blocks for motors, pumps, valves and alarms. Every block works from Ladder,
FBD and Structured Text, and every library runs on a board as well as on the
OpenPLC Runtime unless its docs say otherwise.
What is here
Communication: modbee-communication/
| Library | What it does | Docs |
|---|---|---|
modbee-beebus |
BeeBus between PLCs and HMIs: shared registers and published topics, over serial, Wi-Fi, Ethernet or UDP, with no master and no polling | docs |
modbee-modbus |
Modbus RTU, ASCII and TCP: read and write other devices, answer as a device, or bridge TCP onto RS-485 | docs |
modbee-mqtt |
MQTT 5.0 and 3.1.1, plain or TLS, and Sparkplug B. The PLC can also be the site broker or bridge two brokers | docs |
modbee-gsm |
A cellular modem: SMS in and out, a TCP or TLS socket, signal, network time, GPS, and MQTT over cellular | docs |
modbee-ota |
Firmware updates over MQTT from inside the PLC program, with optional signing and automatic roll-back | docs |
Hardware: modbee-hardware/modbee-hardware-arduino/modbee-node-uio/
| Folder | What it is | Docs |
|---|---|---|
node-uio |
The Node UIO's I/O: 8 digital in, 8 digital out, 4 analog in and 2 analog out with calibration, HAT power, network, sleep and restart | docs |
node-webUI |
A web page on the board: live digital and analog channels, and the analog calibration | docs |
node-vpp |
The board package (com.modbee.node) that adds ModBee Node UIO as a target, with its 2 MB PSRAM enabled |
README |
Applications: modbee-libraries/
| Library | What it does | Docs |
|---|---|---|
modbee-utilities |
Ready-made blocks for motors (DOL, reversing, star-delta, two-speed, VSD), pumps and pump stations, valves, dosing, signals, run hours and totals, alarms and HMI messages, and sequences. Every block that can stop equipment says on the HMI what it is doing and why | docs |
modbee-devices |
One ready-made block per field device on Modbus, with the device's registers and scaling built in. First device: the 7-in-1 RS-485 soil sensor | docs |
Each library folder is an OpenPLC library project: library.json, the blocks
in pous/, the data types in datatypes/, its documentation in docs/, and,
for the libraries with C++ blocks, the C++ code they compile against in
resources/. That code goes into the library when it is built, so there is
nothing else to install.
Using a library
-
Open the library's folder in the OpenPLC Editor as a project and build it.
The build writesbuild/<library>.stlib. With the command line tool:openplc-cli library build modbee-communication/modbee-mqtt -
Install the
.stlibin the editor, or with
openplc-cli library install modbee-communication/modbee-mqtt/build/modbee-mqtt.stlib. -
The blocks then show in the library tree of every project. Each block's
help text says what it does and what every pin is for. The library's
docs/has getting-started pages, a full block reference, worked examples
and troubleshooting.
Libraries are made to be installed side by side. Every block and type name
carries its library's prefix (BEEBUS_, MODBUS_, MQTT_, GSM_, OTA_, UT_, DEV_),
because the editor checks a new name against every installed library, not
only the ones a project uses.
Using the ModBee Node UIO
- Install the board package: download
com.modbee.node-<version>.vppfrom
this repository's releases, then in the editor's packages screen choose
Add from file… and pick it. The package is signed, and its partition
table needs a ModBee build of the editor. See the node-vpp README. - Pick ModBee Node UIO as the project's target.
- Install
node-uio(above) for the board's I/O. Add the protocol libraries
the site needs beside it.
Licence
ModBee's own code is licensed under the GNU Affero General Public License,
version 3, with additional terms: it is for non-commercial use, and any
commercial use needs a separate commercial licence. To ask about one, write to
info@modbee.org.
Third-party code carried in a library's resources/ keeps its own licence,
given in its folder (a licence file or the file headers). For example, wolfSSL
in modbee-mqtt is under the GPL version 3, and the ADS1X15 and GP8XXX drivers
in node-uio are under the MIT licence.