# Where to start

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:

- Learn about IEC 61499: If you want to start using 4DIAC but you don't understand quite well the terms, and how the Function Blocks work, take a look at this explanation about the standards and technology related to 4DIAC.
- Understand the 4DIAC framework: If you know about IEC 61499 and what PLCs are, but you don't understand what 4DIAC is, or what's the relation with FORTE, then you should take a look at this topic about the 4DIAC framework.
- Install 4DIAC: If you understand all of the above, and you want to star using 4DIAC, you will need to first install it.
- Step by step Tutorial: To understand the basics of 4DIAC, the best is to start using it.
- 4DIAC Examples: If you want to see some examples using 4DIAC, this link is your friend.
- Parameters for different platforms: If you have a specific platform that has input and outputs that is supported by FORTE, for example a Raspberry Pi or a PLC, and you want to use them, use this topic.
- Communication Protocols: If you want to use a specific communication protocol supported by FORTE, for example MQTT, OPC UA, Modbus and so on, follow the link.
- Development of FORTE and 4DIAC: If you are a developer or you want to know more deep stuff about FORTE or 4DIAC, you'll fun here.
- File a bug for 4DIAC or FORTE: You found a bug? File it here.
- FAQ: If you have some trouble with something, visit the FAQ page.
- 4DIAC Forum: And if you still have question or something you want to share, don't forget to participate in the forum.

# Quick Intro

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.

Go to top