RasPiCommPlus PLC – Automation
February 7, 2015
Posted by on
PLC Programming GUI
This is a very short but also very exciting blogpost about our recent work on the RasPiCommPlus.
We just integrated the iec2c compiler by matiec to the RasPiCommPlus. What it does is pretty amazing: It compiles ST (structured text) or IL code (both IEC 61131-3 compliant) used for PLC programming to C code, which we compile and program to the ARM processor. Voila, you now have a real PLC running independently of the Raspberry Pi (you can disconnect the Pi and the PLC keeps running). But we also developed a Linux driver to read PLC variables and change the state of the PLC (start, stop) or read the cycle time.
You can also use Beremiz to generate the ST code if you prefer using the graphical ladder diagram for programming. Debugging with the Beremiz GUI is not yet possible but planned.
Currently, only digital I/Os are working, but we are working on integrating the serial devices too, so you can also send and receive data through the RS-232, RS-485 and the other modules.
The digital I/Os are still accessible through the Linux drivers, even when they are in use by the PLC. This might be different with the serial ports when implemented, but maybe we still use the drivers to monitor/debug serial communication when the module is occupied by the PLC. If the PLC does not use the serial module the kernel driver still works as expected.
We will introduce an option to the build.amesocn.com site to link in PLC code, but building locally on the Pi will also be possible. The driver source (also available through build.amescon.com) will then be combined with the PLC code, compiled and programmed directly from the Pi.
So in places where you used Siemens S7 PLCs or similar you now can use the RasPiCommPlus which is not only more flexible but also cheaper and with the new Raspberry Pi B 2 you have a powerful Linux machine capable of logging machine data to databases or running websites for monitoring or configuration (for example by using the RasPiCommPlus Web API)