FreeDCS Overview

Project goals

Why FreeDCS will be different to other DCS systems ?

FreeDCS is an Open Source Distributed Control System that is currently in the design phase. It will allow to control any process, machine or equipment reading values from instruments through industry standards (4-20mA, digital IO, etc..) and perform a control strategy with that information to maintain the final product into the specification. It could be used in any manufacturing facility to automate processes or in any project you want to control some machinery or equipement.

The main purpose of FreeDCS is to be an option to other commercial, closed source Distributed Control Systems. Because FreeDCS will be released under a GPL license, users will have a lot of benefits imposible to get with a closed source design.

A trully open system:

Being open means that the project is open to everyone to look under the hood and see how things are done. That makes the task of correcting bugs more easy and fast as well as helping the system evolve quickly. But it also means that the project will never die!. So, if you install the system in a company there will be always someone willing to give technical support if needed.


Flexibility is important too. FreeDCS is being designed to be used as a single computer system or distributed along various computers in an industrial network. The idea is to use it to control a simple machine with a couple of IO's or a whole plant with +50.000 IO's


Nobody wants to use a system that fails and behaves erratically. So, FreeDCS will be tested exaustivelly by the user comunity to behave as espected in all the ocations.

Software package description

What applications do you get with FreeDCS ?

Hardware Designer:

The Hardware Designer application will allow you to drag hardware devices from a library into a window and connect them togheter as if you were connecting real devices! Also you will be able to see diagnostic messages from the devices to help debug hardware problems.

Control Logic Designer:

With this software you will design the control logic that you need to control a machine, a process, a robot, or whatever you want! I pretend to implement the most common programming languages, including statement list, function chart, ladder, etc to make the programming task more user friendly and intuitive as possible.

Display Designer:

Here you will design the displays that the operators are going to see and interact with to control your process. This is how you show the values and states from the real process to the operators, connecting the GUI elements to the system through this application.

Operator View:

Operators will be able to see the actual values in real time and interact with the process in a intuitive and easy way. They will be presented a Graphical User Interface that shows the actual flow in a pipe, the actual level in a tank, etc.

Demonstrative video:

The next video briefly shows the process of creating and loading a control program to a controller, so that the newly created module could be opened to force some values the way it is done in a real controlled process. In this example the PID controller block is used to show the basic functionality already implemented.