Unofficial Content
  • This documentation is valid for:

Introducción

En general, cuando pensamos en una aplicación informática, nos imaginamos un sistema de gestión.

La información con que se alimenta estos sistemas es ingresada por una persona en un terminal y luego es almacenada en una base de datos, procesada y visualizada.

Pero existe una vasta gama de sistemas informáticos que obtienen su información directamente del mundo real, a partir de dispositivos que recaban la información de un evento físico, la digitalizan y la envían al computador,  y luego el software se encarga de su procesamiento. Estos sistemas se desarrollan habitualmente en lenguajes de programación de bajo nivel.

Los sistemas que capturan datos por sí mismos se llaman genéricamente Sistemas de Adquisición de datos.

 

¿Qué es un Sistema de Adquisición de Datos (DAQ)?

Basic Data Acquisition System

La adquisición de datos (DAQ por sus siglas en inglés) es el proceso de en primer lugar adquirir señales de fenómenos del mundo real. Esto incluye cosas como temperatura, vibraciones, presión y otras magnitudes físicas de valor analógico. También se incluye señales digitales como pulsadores o interruptores.

El siguiente paso es acondicionar y digitalizar las señales, esto es convertirlas a ceros y unos, de forma de que el computador las pueda entender.

Finalmente vamos a analizar, visualizar y salvar los datos en un PC.

También podemos a partir de datos en el PC, activar un mecanismo que provoque una acción en el mundo físico, como accionar una válvula, prender un motor o encender una máquina.

Los sistemas industriales llamados SCADA (Supervisory Control and Data Acquisition) combinan la adquisición de datos con el control y supervisión de procesos.

 

¿Cómo se construye un DAQ?

Constructing a DAQ

Un fenómeno físico lo medimos con sensores (también llamados transductores). Estos convierten la magnitud física en una señal eléctrica, típicamente un voltaje o una corriente.

Esta señal en general tiene mucho ruido que la distorsiona, por lo que es necesario acondicionarla con un circuito adecuado.

Luego utilizamos una interfase especial para poder leer estas señales. Este hardware de adquisición de datos tiene generalmente múltiples entradas y salidas, como entradas analógicas, entradas digitales, salidas analógicas y salidas digitales. Hay muchos dispositivos disponibles comercialmente, algunos de carácter general y otros altamente especializados, con precios que varían entre los U$S 100 a decenas de miles de U$S.

Para poder digitalizar las señales analógicas, esta interfase incluye uno o varios conversores analógico digitales. Y para poder generar un voltaje a partir de un dato digital incluye conversores digitales-analógicos. También incluye contadores y temporizadores, por ejemplo para mover un motor mediante la técnica de modulación por ancho de pulsos.

Una vez que la información está accesible desde el computador, podemos utilizar comprar software comercial o desarrollar el nuestro, para analizarla, desplegarla y almacenarla.

Observemos que no sólo podemos capturar información sino que también podemos generar una acción, como causar un movimiento, que se cierre un circuito, que se encienda un dispositivo, etc. a partir de un comando dado desde nuestro programa.

El hardware de DAQ se conecta a un PC de varias maneras, puede ser una tarjeta PCI, PCMCIA o comunicarse por USB, WiFi, Ethernet, RS232 o ser productos especializados como PLCs o módulos PXI.

En cuanto al software, existe software comercial para DAQ muy conocidos como el LabView (de National Instruments) o incluso el MatLab tiene un módulo para adquisición de datos, pero también podemos desarrollar nuestro propio software, ya que la mayoría de las interfases DAQ proveen varios mecanismos para hacerlo.

Los fabricantes generalmente proveen una API (Application Program Interface) para poder acceder a estos dispositivos desde nuestro lenguaje de programación. Esta API puede ser una DLL, una clase Java o un wrapper para otros lenguaje como Python, Visual Basic, etc.

Muchos también proveen bibliotecas de controles visuales, con diversas formas de desplegar la información adquirida (como gráficas, lámparas, dispositivos, etc.) o controles para ingresar datos, por ejemplo botones, perillas, barras de desplazamiento, etc.

 

Cómo usamos a GeneXus para construir un DAQ

A partir de la versión X Evolution 1, se puede usar perfectamente a GeneXus como lenguaje para desarrollar este tipo de aplicaciones, y aprovechar las ventajas que GeneXus tiene frente a los lenguajes convencionales.

El recurso técnico de los Objetos Externos, nos permite interactuar con la API que nos provee el fabricante de interfases de adquisición de datos y usar GeneXus para leer información de eventos físicos o para controlar procesos.

 Dado que la mayoría de estos fabricantes de hardware de DAQ provee una dll, o una clase Java, podemos importar estas funciones y utilizando el objeto externo acceder a los comandos que controlan los puertos de entrada y salida, analógicos o digitales, más otros recursos que estas interfases multi-propósito normalmente tienen, como temporizadores y contadores internos.

La conclusión final es que que dado un sistema para una empresa, podamos usar GeneXus para todo, tanto para desarrollar los casos de uso de gestión, como para conectarse a los dispositivos físicos que generan la información o generarla nosotros mismos usando sensores directamente.

 

El hecho de usar GeneXus como lenguaje para desarrollar este tipo de aplicaciones, nos permite aprovechar las ventajas que GeneXus tiene frente a los lenguajes convencionales. 

 

Además, usando GeneXus X Evolution 2, podemos generar aplicaciones que ejecuten en modo nativo en smart devices Android, Blackberry y Apple (Iphone y Ipad).

Esto potencia las posibilidades, dado que podemos controlar dispositivos físicos de forma remota, por ejemplo, en aplicaciones domóticas, como prender una lámpara, un aire acondicionado o un electrodoméstico, pero también en control de procesos industriales, entre otros usos.

 

En el Evento GeneXus XXI, demostramos que es muy fácil usar GeneXus para desarrollar un sistema de adquisición de datos en tiempo real y controlar dispositivos como motores o dispositivos que funcionan con corriente alterna desde el computador.

Puede encontrar información sobre dicha conferencia, incluyendo toda la información necesaria para repetir la demo allí realizada, visitando la siguiente página:  Las crónicas de Smart Devices: El termómetro, la lámpara... y GeneXus!

También puede encontrar la KB utilizada en dicha demo, publicada aquí.

Versión en inglés.

 

Last update: February 2024 | © GeneXus. All rights reserved. GeneXus Powered by Globant