reComputer R1000 con fuxa para implementar SCADA
Introducción
fuxa es un software web de visualización de procesos (SCADA/HMI/Dashboard). Con fuxa puedes crear interfaces de proceso modernas con diseños personalizados para tus máquinas y visualización de datos en tiempo real. Admite protocolos Modbus RTU/TCP, Siemens S7, OPC-UA, BACnet IP, MQTT y otros.
Este artículo muestra cómo usar fuxa para un entorno SCADA, donde fuxa recibe datos de node-red
y OPC UA Simulator
, y los muestra mediante chart
y Circular Gauge
. También se dibujan patrones para simular procesos industriales.
Comenzando
Antes de iniciar este proyecto, asegúrate de tener preparado tu hardware y software como se describe a continuación.
Preparación de Hardware
reComputer R1000 |
---|
![]() |
Preparación de Software
- Python 3.11 puede ser incompatible con fuxa. Si tu Python es 3.11, considera cambiar a otra versión.
- Usamos fuxa en reComputer R1000. Para instalarlo:
## Necesitas Node 14, 16 o 18
wget https://nodejs.org/dist/v18.20.3/node-v18.20.3-linux-arm64.tar.xz
tar -xf node-v18.20.3-linux-arm64.tar.xz
cd node-v18.20.3-linux-arm64
sudo cp -R * /usr/local/
node -v
npm -v
## Instalar FUXA
sudo npm install -g --unsafe-perm @frangoteam/fuxa
sudo fuxa
- Para usar fuxa con OPC-UA, revisa esta wiki.
- Para usar fuxa con mqtt client, revisa esta wiki. A diferencia de ese wiki, aquí los datos publicados en
node-red
se procesan con un módulofunction
y un móduloloop
. El código delfunction
es:
## On Start
global.set('firstTank', '10000');
global.set('secondTank', '0');
global.set('thirdTank', '0');
## On Message
var firstTank = global.get('firstTank');
var secondTank = global.get('secondTank');
var thirdTank = global.get('thirdTank');
if (firstTank <= 0) {
global.set('firstTank', 10000);
global.set('secondTank', 0);
global.set('thirdTank', 0);
firstTank=10000;
secondTank=0;
thirdTank=0;
}
firstTank = firstTank - 3;
secondTank++;
thirdTank++;
thirdTank++;
global.set('firstTank',firstTank);
global.set('secondTank',secondTank);
global.set('thirdTank',thirdTank);
var data = {
"firstTank":firstTank,
"scondTank":secondTank,
"thirdTank":thirdTank,
};
msg.payload = data;
return msg;
El objetivo es empacar firstTank
, secondTank
y thirdTank
en formato JSON y publicarlos vía mqtt.

- Haz clic en
+
abajo a la derecha en fuxa, ingresaName
,Type
=Internal
, haz clic enOK
para crear un nuevo módulo que no comunica con dispositivos externos, pero te permite añadir tags personalizados (boolean
,number
,string
).

Configuración de Hardware
Conectamos el PC con Windows 10 y el reComputer R1000 al mismo switch mediante Ethernet, asegurando que estén en la misma red.

Introducción a la visualización y controles principales
Chart
fuxa ofrece gráficos de curva e histogramas. Usando el gráfico de curva como ejemplo:

- Configura
Name
,font size
,data format
,time format
, ejes X/Y, etc. - Lo esencial es
Chart to show
, que determina la fuente de datos y el formato de líneas.
Haz clic en Chart to show
, luego en New Chart
. Aparece una ventana, haz clic en +
, ingresa un nombre, clic en OK
. Haz clic en el nuevo config, luego en Add Line
, elige los datos a mostrar, clic en OK
. Así agregas múltiples curvas.
Mostramos datos de Prosys OPC UA Simulation Server
:

Switch
El switch tiene propiedades como se ve:

Elegimos un tag boolean swich_1
. Configuramos color y texto al encender/apagar.

Shape
fuxa trae varias formas (shape
) para dibujar interfaces industriales. Cada shape
tiene:
- Property: configurar color. Si enlazas un
Tag
, la forma cambia de color según el valor. - Events: define qué acción ocurre al dispararse un evento.
- Actions: enlazado a un
Tag
, define acciones basadas en rangos de valores.

Ejemplo de un almacén (warehouse
), cambiando color con Property
:

Events
:

Actions
: si un Tag
alcanza cierto rango, se dispara una acción (rotar, ocultar, etc.). Ejemplo de girar un almacén.

Pipe
Para ilustrar flujo en procesos industriales, usa pipe
:

En Property
ajustas ancho y color. En Actions
, enlazas un Tag
para 4 acciones: Stop
, Turn clockwise
, Turn anticlockwise
, Hide content
.

Para simular un proceso industrial, añadimos 2 tanques y tuberías:

Circular Gauge
Además de charts
, los medidores circulares (Circular Gauge
) muestran datos en tiempo real. Hay 3 tipos.

Debes enlazar un Tag
y definir el rango máximo. Por ejemplo, enlazamos Tank1
del topic /dev/fromfuxa
:

Luego añadimos Tank2
y Tank3
:

Slider
Un slider
ajusta variables como flow
o pressure
. Propiedades:

Se enlaza un Tag
. Aquí enlazamos Flow control 1
.

Alarm
En procesos industriales, un valor excesivo dispara una alarma. fuxa soporta monitoreo en tiempo real de un valor, lanzando alarma si alcanza cierto rango.
Por defecto, la barra de alarmas está desactivada. Debes activarla:

Luego configuras la alarma. Haz clic en el botón de Settings arriba a la izquierda, luego Alarms
, +
. Enlaza un Tag
y define cuatro niveles: High High
, High
, Low
, Message
. Cada nivel tiene un rango, y si el valor cae en ese rango, se dispara la alarma.

Demo SCADA

Soporte Técnico y Discusión de Producto
¡Gracias por elegir nuestros productos! Ofrecemos distintos canales de soporte para cubrir diferentes preferencias y necesidades.