This page is intended to work as an overall index of the documentation about 4DIAC. Whenever you have doubts about something, come here and you might find the right page to go to. Depending of your background's area (automation, mechanics, informatics, or just curiosity), you will need more or less information to understand what 4DIAC is and its strengths. But since this might be the first page you arrived, there's a quick intro right below
Here's a list of the main topics in the documentation:
4DIAC is an open source IDE intended for distributed industrial systems. You can use also in other areas like home automation, electrical networks, or anywhere you think some automated system is needed. You can "program" an application using Function Blocks, and your program will look like the image below
The same application can run on different devices like a Raspberry Pi, a PLC or your computer, since the application is independent from the device where it's running.
An important thing is that you can make this application run not only in one device, but you can distribute it to many devices, as shown in the picture below
Quick reference: each Function Block (FB) is like a normal function that's is executed when an event (red incoming line on the left of the FB) arrives. The incoming blue lines are the data inputs (parameters to the function) and the outgoing blue lines are the parameters sent to other FBs (similar to return values, but don't always "return" but go forward).
This application might be not just for one device, but for a whole system with many devices, so some FBs will need to run in one device, and some in others, making the system distributed. With 4DIAC you can design your distributed application and deploy.