Tipos de Datos utilizados en los SCADAS.
Rubén Palomino
En los sistemas SCADA —el corazón de la automatización industrial—, los tipos de datos son tan importantes como los sensores o los PLCs que los generan. Cada variable que mide un proceso (temperatura, presión, velocidad o estado de una válvula) necesita un tipo de dato adecuado para que el software SCADA interprete y represente correctamente la información.
En este artículo, desde SCADA SPGN, una empresa especializada en software SCADA industrial, explicamos de forma clara qué tipos de datos se utilizan en los sistemas SCADA, para qué sirve cada uno y cómo se emplean en la práctica mediante ejemplos de código. Tanto si estás diseñando tu propio sistema como si solo quieres comprender cómo funciona la base de un SCADA moderno, esta guía te servirá como referencia técnica y educativa.
BOOL ó BIT
El tipo de datos bool o boolean es la únidad mínima de almacenamiento dentro de la memoría.
Solo puede tener dos valores 0 y 1.
Se almacena siempre dentro de una memoría de mas tamaño, normalmente un byte.
Esto implica que para poder acceder a un bit hay que hacer referencia tanto a la memoria del byte como a la posición del bit.

En el SCADA SPGN esto se hace en el momento de crear la tag.
Entre los parametros que son necesarios para crear una tag, está el de bit. Es de tipo numérico y se le da la posición del bit. Si no se escribe nada se toma la posición cero por defecto

Normalmente se utiliza como FLAGS (TESTIGOS), estado de una entrada, una salida o incluso de una alarma.
Para leer y escribir el valor de un BOOL en el SCADA SPGN se utiliza la clase Utt.
//LECTURA DEL VALOR DE LA TAG path/tag
boolean b = utt.isTrueTag("path/Tag");
//ESCRITURA DE 1 EN LA TAG
utt.escribeTag("path/Tag", 1);
//ESCRITURA DE 0 EN LA TAG
utt.escribeTag("path/Tag", 0);
BYTE
El byte es una unidad básica de almacenamiento, se compone de 8 bits.
Al ser un tipo generico la información que almacene depende del formato de los datos que estemos utilizando.
RANGO DE VALORES DE BYTE
El rango de valores queda según el formato con el que tratemos los datos.
- INT CON SIGNO: -128 a +128.
- INT SIN SIGNO: 0 A 255.
- CHAR : 0 a 255.
Es poco común el uso de una variable byte pura, ya que en sí solo es una agrupación de ocho bit.
Aunque una función muy tipica es la enviar el estado de ciertas variables bit, al modo de byte de STATUS.
Normalmente se usa un tipo de datos tipo int que almacena su valor en un byte. Los enteros cuyo tamaño ocupa solamente un byte se llaman sint, que siginifica en ingles short int.
La lectura y escritura de este tipo de datos dentro del SCADA SPGN es a través de la clase Utt.
//Para leer el valor de una tag
utt.leeTag("path/Tag").getValor();
//Para escribir el valor en hexadecimal en una tag de tipo byte
utt.escribeTag("path/Tag", 0XAF);
SINT Y USINT
El tipo de datos entero SINT es el entero mas pequeño utilizado en programación.
La letra S al principio es el acronimo de SORT, entendiendose como SORT INT.
Esto en la lengua de Cervantes es ENTERO CORTO.

De igual manera la letra U es el acronimo de UNSIGNED, por lo que el significado USINT es UNSIGNED SORT INT.
Y esto en la lengua de Cervantes es ENTERO CORTO SIN SIGNO.
Solo ocupa un byte, hay que tener en cuenta que ciertos dispositivos de campo no permiten el uso de variables tan pequeñas, ya que la unidad mínima de memoria es de dos bytes ( 16 bits).

RANGO DE VALORES DE SINT
El rango de valores queda según el formato con el que tratemos los datos.
- SINT: -128 a +128.
- USINT: 0 a 255.
Debido a su tamaño tan pequeño es muy poco utilizada en la programación del SCADA.
En muchos PLCs el tamaño mínimo de memoria es de 2 bytes, por lo que este tipo de variable no lo tienen implementado.
La forma de leer y escribir valores en el SCADA para este tipo de datos también se realiza a trabes de la clase Utt
//Para leer el valor de una tag
utt.leeTag("path/Tag").getValor();
//Para escribir el valor en hexadecimal en una tag de tipo byte
utt.escribeTag("path/Tag", 23);
INT
El tipo de datos INT tiene una longitud de datos de 16 bits, o lo que es lo mismo 2 bytes. Es un tipo de datos con signo. Como otros datos de tipo entero el último bit que en este tipo de datos sería el indicador de signo.

RANGO DE VALORES DE INT
El rango de valores del tipo INT es -32.768 hasta + 32767 Podría decirse que es el tipo de datos mas utilizado en programación industrial, tanto en PLC como en sistemas SCADA.
Como empresa especializada en SCADAS recomendamos el uso de este tipo de dato para control de estados y elementos de sincronización entre PLC y SCADA.
//Para leer el valor de una tag
utt.leeTag("path/Tag").getValor();
//Para escribir un valor en una tag de tipo int
utt.escribeTag("path/Tag", -25678);
UINT
El significado de la U como prefijo indica que es un entero sin signo.
Al igual que el tipo de datos INT ocupa dos bytes en la memoria del SCADA.
No puede almacenar números negativos.

RANGO DE VALORES UINT
El rango de valores del tipo UINT es de 0 a 65535.
Este rango de valores lo hace ideal para almacenar números enteros positivos de tamaño mediano, como logitudes en mm, dosificaciones etc.
//Para leer el valor de una tag
utt.leeTag("path/Tag").getValor();
//Para escribir un valor en una tag de tipo uint
utt.escribeTag("path/Tag", 65295);
DINT
Este tipo de datos DINT conocido como DOBLE ENTERO ocupa 32 bits de longitud, que es lo mismo que 4 bytes.
Al igual que el tipo INT el último bit es el bit del signo (bit 31), siendo 0 para valores positivos y 1 para valores negativos.
Almacena tanto números positivos como negativos.

RANGO DE VALORES DE DINT
El rango de valores del tipo UINT es de -2147483648 a 2147483647.
Este rango de valores lo hace ideal para almacenar valores de registro como consumos, etc.
//Para leer el valor de una tag
utt.leeTag("path/Tag").getValor();
//Para escribir un valor en una tag de tipo uint
utt.escribeTag("path/Tag", 125790);
UDINT
Al igual que los anteriores tipos que llevaban la U como prefijo es un número sin signo, por lo que solo admite valores positivos.
Ocupa cuatro bytes.

//Para leer el valor de una tag
utt.leeTag("path/Tag").getValor();
//Para escribir un valor en una tag de tipo uint
utt.escribeTag("path/Tag", 4042322160);
LINT ocupa 64 bits
RANGO DE VALORES DE UDINT
El rango de valores de UDINT es de 0 a 4294967295
LINT
El tipo de datos LINT ocupa 64 bits, ocho bytes.
Al igual que el tipo DINT el último bit es el bit del signo (bit 63), siendo 0 para valores positivos y 1 para valores negativos.
Almacena tanto números positivos como negativos.
RANGO DE VALORES DE LINT
El rango de valores de LINT es de -9223372036854775808 a +92233723036854775807
ULINT
El tipo de datos ULINT ocupa 64 bits, ocho bytes.
Como delante tiene el prefijo U es un número sin signo.
Almacena tanto números positivos como negativos.
RANGO DE VALORES DE ULINT
El rango de valores de ULINT es de 0 a +18446744073709551615
REAL
Los del tipo real ocupan 32 bits, cuatro bytes.
Representan números en coma flotante, es decir números que contienen decimales.
La forma de representarse en con mantisa y exponente.

RANGO DE VALORES DE REAL
Los valores que puede contener el tipo real :
- -3.402823e+38 a -1.175495e-38
- -0
- +1.175495e-38 a +3.402823e+38
//Para leer el valor de una tag
utt.leeTag("path/Tag").getValor();
//Para escribir un valor en una tag de tipo uint
utt.escribeTag("path/Tag", 25.00087);
Comprender los tipos de datos en un sistema SCADA es fundamental para cualquier técnico o ingeniero que trabaje con procesos automatizados. Una buena elección del tipo de dato no solo mejora la precisión de las lecturas, sino también la estabilidad y el rendimiento del software SCADA.
En SCADA SPGN, como empresa de SCADAs y desarrolladores de software SCADA industrial, aplicamos estos principios en cada proyecto. Nuestro objetivo es que la comunicación entre los dispositivos, los PLCs y la interfaz del operador sea tan fiable como intuitiva.
No solo mostramos los tipos de datos, sino que también los utilizamos.
Si quieres que los datos que se generan en tu intalación se utilicen correctamente.
Conoce quien somos
Y si te agrada lo que ves, ponte en contacto.
* Tus datos se usarán únicamente para responder a tu consulta. No se comparten con terceros.
❓ Preguntas frecuentes sobre tipos de datos en SCADA
🔹 ¿Qué son los tipos de datos en un sistema SCADA? Los tipos de datos en un sistema SCADA definen cómo se almacena y procesa la información proveniente de sensores, PLCs y otros dispositivos. Pueden ser booleanos, enteros, reales, cadenas de texto o estructuras más complejas según el tipo de variable y su uso en el proceso industrial.
🔹 ¿Por qué son importantes los tipos de datos en un SCADA? Porque garantizan que la información que se muestra en el software SCADA sea precisa y coherente. Un tipo de dato incorrecto puede provocar errores de lectura, fallos en alarmas o cálculos erróneos en tendencias y gráficos históricos.
🔹 ¿Qué tipos de datos utiliza un software SCADA industrial como SPGN? SCADA SPGN utiliza los principales tipos de datos estándar (BOOL, INT, REAL, STRING, etc.), compatibles con protocolos industriales como Modbus, Siemens, Omron . Esto permite una comunicación directa con los PLCs y una visualización fiable de todas las variables del proceso.