MatPLC is a PLC-like program for Linux (PLC = Programmable Logic Controller), licensed under the GNU GPL.
We take advantage of the fact that we have an underlying operating system and use its features to make the MatPLC modular. One module could be executing mnemonics. Another module is a PID loop. A different module handles I/O, or logs to a database. (These modules all already exist.) The MatPLC then coordinates their workings to present a simple interface to the user.Currently, we are in early stages: we have a solid core, mnemonics for logic modules (python or C can also be used), a signal-processing module which includes a PID loop, several I/O modules (including numerous industrial networks and an interface to the comedi project) and some simple HMI modules.