M10CUBE (M10 in short) road map
This is a teamwork project! It is up to the contributors choice to show their name in public
Soon...
A PLC software using all M10CUBE I/Os :
First PLC software will be CODESYS (Raspberry Pi runtime is free for 2 hours use) since there is a lot of experience with this IDE.
Then other, totally free and open source IEC 61131-3 BEREMIZ or IEC 61499 4DIAC enabled IDEs can follow . Hopping someone will give us a little help on these brilliant software, following the well known song ...
A M10CUBE sensor board software:
That is written in Arduino IDE using all on board hardware running on the embedded ESP32 module.
Some history as a preface.
Despite the fact that we started M10 as a modular PLC system within a cube of 10x10x10 cm soon realized that in a broader sense, everything is a Programmable Logic Controller. Every microControler Programmed Logically to help us in everyday life.
Many years ago back in 1980 when programming Z80 custom made designs written in assembler for controlling various machinery in reality that was a primitive PLC.
Of course later as wiki states IEC 61131 (then IEC 61131 -3) published in December 1993 PLC came to life for ladder programming. Today (initially published in 2005) the specification of IEC 61499 (as explained by Lewis and Zoitl) is one step up to IEC 61131.
In a sense the famous Arduino Blink program is a PLC program (not in IEC 61131 -3 but in C).
PLC remains as standard word for industrial controllers. Recent days many change the term PLC into a more appropriate acronym PAC ( Programmable Automation Controller).
PAC is an industrial controller that combines the functionality of a PLC with the processing capability of a PC. You are thinking right. Is a Raspberry Pi running a PLC program called PAC? The answer is YES.
The idea was tinkering in my mind so in 2011 in the Raspberry Pi forum I started a thread in an effort to combine Raspberry and PLC environment:
Turn Raspberry Pi into a P.L.C (Programmable Logic Controller)
https://www.raspberrypi.org/forums/viewtopic.php?f=41&t=455&hilit=vorrias
That time my Raspberry was not delivered yet.
Time went by. ..
During that time I found enthusiastic designers and they contribute to the final M10 idea.
I hope to be permitted to put their names here. Without these guys M10 could not be born.
It does not matter if M10 contains a PLC or a PAC or a custom made C, C++ or Python firmware. M10 likes them all. Because M10 is a controller cube, a container I may say that makes the control job look easy. Any control job.
You may ask what hardware is inside? The answer is anything. Hardware that haven't cross our mind yet. The hardware inside M10 may be different as long as the first low of M10 is not violated
But we must start from something we all understand.
To get an idea of what a M10 looks like we will introduce you our first M10 PLC incarnation which at the time of writing ( 05/05/2020) has the following modules ready for fabrication.
1 – CPU module (contains Raspberry Pi 4). All modules share the same 40pin Raspberry bus. 2 – DIO module. Eight opto isolated 24V inputs plus eight 24V outputs high side transistors.
3 – DO module. Eight relays with 16 amps contact capability to power any heavy loads even 220V mains power appliances.
M10 ecosystem in detail
The design must not violate the rule of M10:
- External enclosure (CUBE) maximum dimensions X = 10cm, Y = 10cm, Z = Up to 10cm. Electronics inside must be powered by 24 DC or 220 AC or POE, or battery.
Some sub rules must also apply but it is to verify that every M10 incarnation can communicate and stand side by side with the other.
Directives:
-Used materials and modules out of the self if possible. -DIY friendly. -Think Green and Reuse philosophy
-Z dimension depends on number of modules . -within the CUBE interconnection bus between modules must exist and modules designed for the specific M10 can be interchanged between...
I encountered this nice project while thinking about how to transform raspberry pi into a plc.
Based on my experience with Raspberry PI I can certainly say that different processes (e.g. loss of power) can lead to a corruption of the file system. How do you think to solve this problem?
In any case: my compliments for the project , I wish you success!