Manual de usuario/Ingeniería

Variables y conexiones

Tipos, estructuras, conexiones S7, Beckhoff ADS, Modbus TCP y OPC UA y cómo enlazar cada campo sin escribir JSON.

3 min de lectura

Conceptos

  • Una variable es un dato del proyecto: nombre, tipo, valor inicial y permiso de escritura.
  • Una conexión identifica un equipo: protocolo, IP, puerto y ciclo de lectura.
  • Un enlace dice dónde vive el dato dentro de ese equipo (DB y byte, o registro Modbus).

Las pantallas solo conocen nombres de variables. Cambiar de PLC no obliga a tocar pantallas.

Tipos y estructuras

Tipos primitivos: bool, int, float, string. En la pestaña Tipos de datos de Variables puedes definir estructuras, por ejemplo Bomba con marcha, caudal y consigna. Una variable de tipo estructura se muestra como grupo desplegable: Bomba1.marcha, Bomba1.caudal… Cada campo puede tener su propio enlace y permiso.

Variables

Crear una conexión

En Conexiones pulsa Añadir y elige protocolo.

Protocolo Datos de conexión
OPC UA Endpoint, política de seguridad, usuario, contraseña y ciclo
Siemens S7 IP, puerto (102), rack, slot, ciclo en ms
Modbus TCP Host, puerto (502), Unit ID, timeout, ciclo en ms
Beckhoff ADS IP, puerto TCP (48898), AMS Net ID del PLC, puerto ADS (851 o 801, según el PLC), AMS Net ID local, timeout

El ciclo admite de 50 a 60000 ms. Es un objetivo, no una garantía de tiempo real.

Enlazar un campo

En Variables despliega la estructura y pulsa Enlace… en el campo. El formulario cambia según el protocolo de la conexión elegida.

Siemens S7: DB, byte, codificación (BOOL, BYTE, INT, DINT, REAL) y bit para BOOL.

Variable Dirección Significado
Motor.marcha %DB1.DBX0.0 Bit 0 del byte 0 del DB1
Motor.velocidad %DB1.DBW2 Entero de 16 bits en el byte 2
Deposito.nivel %DB2.DBD4 REAL de 32 bits en el byte 4

Acceso absoluto

El adaptador S7 lee bloques DB por dirección absoluta. Los nombres SCADA no son símbolos del programa PLC. Desactiva el acceso optimizado del DB en la configuración del PLC.

Modbus TCP: área (coils, discrete inputs, holding o input registers), offset base 0, codificación (uint16 … float64) y orden de bytes/registros. El holding register 40001 de un manual corresponde al offset 0.

Enlace Modbus

Beckhoff ADS: escribe el símbolo tal como aparece en el programa del PLC (MAIN.rVelocidad, GVL.aMotores[2].bMarcha) y su tipo PLC (BOOL … LREAL, STRING). También admite grupo:offset, por ejemplo 0x4020:0 para %MB0. El PLC debe tener una ruta estática hacia el AMS Net ID del SCADA. La guía paso a paso está en examples/beckhoff/README.md.

Probar sin PLC Beckhoff

python -m abscada.ads_simulator arranca un PLC ADS simulado en 127.0.0.1:48898 para el ejemplo examples/beckhoff.

Calidad de los datos

Calidad Significado
good Lectura correcta o variable interna válida
uncertain Todavía no hay primera lectura
bad Fallo de comunicación; se conserva el último valor

Un valor con calidad bad nunca se presenta como lectura válida: los pilotos pasan a ámbar y los textos muestran —.

OPC UA

El enlace usa un NodeId, por ejemplo nsu=urn:latolva:plc;s=FV1.Temperatura. El cliente resuelve el namespace al conectar y lee periódicamente. La contraseña se introduce con Contraseña… y se guarda en secrets.json (base64, no cifrado). Los certificados desconocidos deben revisarse y aceptarse; consulta OPC UA.

Variables y conexiones · abSCADA