Introducción a FreeDCS

Objetivos del proyecto.

¿Por qué FreeDCS va a ser diferente a otros sistemas DCS?

FreeDCS es un Sistema de Control Distribuido de código abierto (o libre) que esta actualmente en fase de desarrollo. Va a permitir controlar cualquier proceso, máquina o equipamiento leyendo valores desde instrumentos a través de protocolos estandares industriales (4-20mA, IO digitales, etc..) y ejecutar estrategias de control con esa información para mantener el producto final dentro de las especificaciones. Puede ser usado en cualquier industria de manufactura para automatizar procesos o cualquier otro proyecto en el que se quiera controlar maquinaria o equipos.

El propósito principal de FreeDCS es ser una opción más ante otros sistemas de control distribuidos comerciales que son propietarios. Debido a que FreeDCS va a ser lanzado bajo una licencia GPL, los usuarios tendrán muchos beneficios que son imposibles de obtener con un sistema propietario.

Un sistema verdaderamente libre:

Ser libre significa que el proyecto esta abierto para cualquiera que desee estudiar el código fuente y ver como el sistema esta diseñado. Esta característica hace que la tarea de corregir errores sea más fácil y rápida, así como ayudar al sistema a evolucionar rápidamente. Pero también significa que el proyecto siempre va a estar soportado por una comunidad. O sea, si el sistema es instalado en una empresa siempre va a haber alguna otra empresa de servicios deseosa de dar soporte técnico si es necesario.

Flexibilidad:

Que un sistema sea flexible también es importante. FreeDCS esta siendo diseñado para ser usado como un sistema de control distribuído de una sola computadora o un sistema compuesto por varias computadoras en una red industrial. La idea es usarlo tanto para controlar una maquinaria con unas pocas entradas/salidas o usarlo para controlar una gran planta industrial con más de 50.000 entradas/salidas

Robustez:

Nadie quiere usar un sistema de control que falla continuamente o se comporta de manera impredecible. Asi que FreeDCS va a ser testeado exaustivamente por una comunidad de usuarios para comprobar que se comporte como es esperado en todo momento.


Descripción del paquete de software

¿Qué aplicaciones se obtienen con el paquete de FreeDCS?

Diseñador de Hardware:

El Diseñador de Hardware va a permitir arrastrar y soltar dispositivos de hardware desde una librería a una ventana de diseño y conectarlos de la misma manera que si lo estuvieramos haciendo en el mundo real! Además, será posible ver mensajes de diagnostico desde los dispositivos y su estado de funcionamiento actual para ayudar a depurar problemas de hardware.

Diseñador de Lógicas de Control:

Con este software va a ser posible diseñar las lógicas de control que sean necesarias para controlar una máquina, proceso, robot, o cualquier equipo que sea necesario. Se pretende implementar los lenguajes de programación comunmente encontrados incluyendo: lista de instrucciones, diagrama de funciones (el único implementado hasta ahora), Ladder, etc. Todo esto para hacer la tarea de programación más amigable e intuitivamente posible al usuario.

Diseñador de Displays:

Con esta aplicación va a ser posible diseñar los displays que el operador usaría para ver e interactuar con el proceso. Mediante estos displays los valores y estados del proceso real van a ser presentados ante los operadores, conectando elementos de interfaz gráfica al sistema a través de esta aplicación.

Vista del Operador:

Los operadores van a poder ver los valores del proceso en tiempo real e interactuar con el mismo de una manera fácil e intuitiva mediante esta aplicación. Los displays que se diseñaron con el software anterior son los que los operadores usarán como interfaz con el proceso. Los mismos serán presentados con una interfaz gráfica que les mostrará el caudal actual en una tubería, el nivel actual en un tanque de almacenamiento, etc.

Video demostrativo:

El siguiente video muestra brevemente el proceso de crear un módulo de control y cargarlo a un controlador, para luego abrir el módulo recien cargado y forzar valores tal como se haría en un proceso a controlar. Este ejemplo usa un bloque controlador PID para mostrar la funcionalidad básica ya implementada.