# Eclipse 4diac Documentation

## How to contribute to this document

Your feedback can improve the Eclipse 4diac documentation. There are several ways to submit feedback:

- report an issue,

- contribute a pull request with changes,

- or start a discussion.

## Where to start?

This page is intended to work as an overall index of the documentation about Eclipse 4diac. Whenever you have doubts about anything, come here and you might find the right page to visit. Depending on your background’s area (automation, mechanics, computer science, or just curiosity), you will need different information to understand what Eclipse 4diac is and its strengths. But since this might be the first page you arrived to, there’s a quick intro below the link list.

Here’s a list of the main topics in the documentation:

- Learn about IEC 61499: To use Eclipse 4diac, you need to understand the terms of the IEC 61499 standard and how the Function Blocks work. At first, take therefore a look at this explanation about the standards and technology related to Eclipse 4diac.

- Understand the 4diac framework: If you know about IEC 61499 and what PLCs are, but you don’t understand what 4diac IDE is, or what’s the relation with 4diac FORTE, then you should take a look at this topic about the 4diac IDE framework.

- Step by Step Tutorials: To understand the basics of 4diac IDE, it is best to start using it.

- Install Eclipse 4diac: If you understand all of the above, and you want to start using Eclipse 4diac, you will need to first install it.

- 4diac IDE examples: If you want to see some examples using 4diac IDE, this link is your friend.

- IO Configuration for the different platforms: If you have a specific platform with input and outputs that is supported by 4diac 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 4diac FORTE, for example MQTT, OPC UA, Modbus and so on, follow the link.

- Development of 4diac FORTE and 4diac IDE: If you are a developer or you want to know more deep stuff about 4diac FORTE or 4diac IDE, you’ll have fun here.

- File a bug for 4diac FORTE or 4diac IDE: You found a bug? File it here.

- Frequently Asked Questions: If you have troubles with something, visit the FAQs page.

- 4diac Forum: And if you still have a question or something you want to share, don’t forget to participate in the forum.

## Quick Intro

4diac IDE is an open source IDE intended for distributed industrial systems. It is also applicable in other areas such as home automation, electrical networks, or wherever you think some automated system is needed. You can "program" an application using Function Blocks and your program will look like the one in image below.

The same application can run on different devices such as a Raspberry Pi, a PLC or your computer, since the application is independent of the device on which it’s running.

Note that you can run this application 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 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, yet they don’t always "return" but go forward).

This application might not be intended for only one device, but for a whole system with many devices. In that case, some FBs will need to run on one device, and some on others - a distributed system is created. With 4diac IDE you can design your distributed application and deploy it.

Go to top