Documentación de NexBlue

Lugar de aplicación: SDU

Modelos compatibles: Edge 2, Edge Max y Point (Reino Unido)

Versión de firmware compatible: 03.09.61 y posteriores

1. Canal de comunicación

  • Tipo de canal: TCP/IP
  • Interfaz física: conexión mediante cable Ethernet RJ45 / conexión Wi-Fi

2. Comunicación TCP/IP

2.1 Configuración de la red

  • Modo de red: obtención dinámica de direcciones IP mediante DHCP
  • Modo de reserva: dirección IP estática configurada en la aplicación

En modo DHCP, tras el encendido, el dispositivo solicita automáticamente una dirección IP al servidor DHCP. Una vez obtenida la dirección, el dispositivo difunde su información a través de mDNS. El nombre del servicio de difusión es:

_nexblue_modbus._tcp.local

Los sistemas EMS compatibles con mDNS, como Home Assistant y Tibber, pueden detectarlo automáticamente.


2.2 Puerto de comunicación

  • Puerto Modbus TCP: 502

2.3 Identificador de la unidad

  • Valor por defecto: 200
  • Rango configurable: 1–247

En Modbus TCP, el ID de unidad es un identificador lógico que se mantiene para garantizar la compatibilidad con RTU. Utiliza el mismo parámetro de configuración que la dirección de esclavo empleada en el modo RTU.


2.4 Definiciones de los registros

2.4.1 Tipos de registros

Tipo de registroFunciónCódigo de funciónDescripción
Registros de entradaLeer registros de entrada0x04Registros de solo lectura que proporcionan mediciones o información de estado, como tensión, corriente, potencia, temperatura, energía acumulada, etc.
Registros de tenenciaLeer los registros de retención0x03Registros de lectura/escritura. El maestro puede leer la configuración actual, los límites actuales, el estado del modo, etc.
Registros de tenenciaEscribir en el registro de retención único0x06El maestro introduce un único parámetro de configuración o comando, como el ajuste de la corriente máxima o el inicio o la interrupción de la carga.
Registros de tenenciaEscribir en varios registros de retención0x10El maestro escribe varios registros consecutivos a la vez, lo que se utiliza para actualizaciones por lotes de la configuración o de grupos de parámetros estructurados.

Estos cuatro son los códigos de función fundamentales reconocidos por las normas IEC 61131-3, EN 61107 y la especificación Modbus de la ISO, y son compatibles de forma predeterminada con casi todos los dispositivos maestros, PLC y sistemas EMS.

2.4.2 Planificación de direcciones de registro (mapa de direcciones)

PrincipioDescripción
LongitudEl campo de dirección de una trama Modbus es un entero sin signo de 16 bits.
División por capasDivisión por función: Identificación → A nivel de estación → Por conector. Mantén la lógica clara y fácil de ampliar.
Punto de partida comúnTodos los registros utilizan direcciones lógicas. El direccionamiento lógico suele comenzar en 0. El documento muestra tanto el formato decimal como el hexadecimal.
Regla de alineaciónLos datos de 32 bits deben comenzar en una dirección par para evitar cruzar los límites de los registros.
Espacio reservado para la ampliaciónCada área deja espacios libres para que en futuras versiones se puedan añadir campos sin afectar a la compatibilidad.
Codificación de caracteresCada registro tiene una longitud de 2 bytes. Las cadenas tienen una longitud fija y no se rellenan con 0x00 en los bytes no utilizados.
Orden de bytes/palabrasEl orden de los bytes en un solo registro es «Big-Endian». Los datos de varios registros utilizan el orden de palabras «Little-Endian» DCBA.
Métodos de accesoLa entrada utiliza el código 0x04. Los registros de retención se leen con el código 0x03 y se escriben con el código 0x06 (una vez) o 0x10 (varias veces).

2.4.3 Identificación, versión y hora (datos de entrada, 0x04)

DirecciónNombreTipoUnidadAccesoDescripción
0000–0007 / 0x0000–0x0007MarcaSTRING(16)RO2 bytes por registro, UTF-8/ASCII.
0008–0015 / 0x0008–0x000FModeloSTRING(16)ROModelo del dispositivo.
0016–0027 / 0x0010–0x001BNúmero de serieSTRING(24)RONúmero de serie del dispositivo.
0028–0035 / 0x001C–0x0023Versión del firmwareSTRING(16)ROPor ejemplo: 04.00.19.
0036 / 0x0024Versión de la tabla ModbusUINT16RONúmero de versión de asignación, por ejemplo, 0x0100.
0037 / 0x0025Número de conectoresUINT16RONúmero de conectores: 1 o 2.
0038–0039 / 0x0026–0x0027FechaUINT32AAAAMMDDROAlineación par de 32 bits. Ejemplo: 20251202.
0040–0041 / 0x0028–0x0029HoraUINT32HHMMSSROEjemplo: 155630 significa las 15:56:30.
0042 / 0x002AZona horariaUINT16minutosROEjemplo: UTC+2 → +120.
0044Versión de hardwareSTRING(16)ROVersión de hardware.
0043–0099ReservadoReservado para identificación futura, certificados, información de fabricación, etc.

2.4.4 Estado y medición en tiempo real (Entrada, 0x04)

DirecciónNombreTipoUnidadAccesoDescripción
0100 / 0x0064Estado de ChargepointUINT16RO
  • 0: Disponible
  • 1: Preparación
  • 2: Carga
  • 3: EVSE suspendido
  • 4: SuspendedEV
  • 5: Acabado
  • 6: Reservado
  • 7: No disponible
  • 8: Con fallo
0102–0103 / 0x0066–0x0067Nivel 1 actualFLOAT32AROAlineación par de 32 bits.
0104–0105 / 0x0068–0x0069Nivel 2 actualFLOAT32ARO
0106–0107 / 0x006A–0x006BNivel 3 actualFLOAT32ARO
0108–0109 / 0x006C–0x006DTensión L1-NFLOAT32VRO
0110–0111 / 0x006E–0x006FTensión L2-NFLOAT32VRO
0112–0113 / 0x0070–0x0071Tensión L3-NFLOAT32VRO
0114–0115 / 0x0072–0x0073Ángulo de fase L1FLOAT32°ROÁngulo de fase con respecto a L1-N.
0116–0117 / 0x0074–0x0075Ángulo de fase L2FLOAT32°ROÁngulo de fase con respecto a L1-N.
0118–0119 / 0x0076–0x0077Ángulo de fase L3FLOAT32°ROÁngulo de fase con respecto a L1-N.
0120–0121 / 0x0078–0x0079Potencia activa L1FLOAT32WRO
0122–0123 / 0x007A–0x007BPotencia activa L2FLOAT32WRO
0124–0125 / 0x007C–0x007DPotencia activa L3FLOAT32WRO
0126–0127 / 0x007E–0x007FPotencia activa totalFLOAT32WRO
0128–0129 / 0x0080–0x0081Energía de sesiónFLOAT32kWhROSesión actual.
0130–0133 / 0x0082–0x0085Energía de por vidaUINT64¿QuéROEnergía acumulada. 64 bits, 4 registros.
0134–0135 / 0x0086–0x0087Corriente de reservaFLOAT32AROCorriente de reserva configurada a través de NexBlue o la nube.
0136–0137 / 0x0088–0x0089Corriente máxima de cargaFLOAT32AROLa corriente máxima de carga se configura a través de NexBlue o de la nube.
0138 / 0x008ACarga por fasesUINT16RO
  • 0: Adaptativo
  • 1: Monofásico forzado
  • 2: Fuerza trifásica
0137–0399 / 0x0088–0x018FReservadoReservado para tensión, factor de potencia, frecuencia, potencia por fase, etc.

2.4.5 Control y seguridad (Holding, lectura 0x03 / escritura 0x06 o 0x10)

Notas: Si se produce un corte de corriente en el cargador, este volverá automáticamente a los valores predeterminados y habrá que volver a configurarlo.
DirecciónNombreTipoUnidadAccesoDescripción
1000–1001 / 0x03E8–0x03E9Límite de corrienteFLOAT32ARWLímite de corriente a nivel de estación. Valor predeterminado: 16 A. Rango: 0–32 A.
1002–1003 / 0x03EA–0x03EBLímite de reservaFLOAT32ARWLa corriente de desconexión de seguridad solo se puede ajustar entre 0 y 16. Los valores inferiores a 6 se consideran 0.
1004–1005 / 0x03EC–0x03EDTiempo de espera de reservaUINT32sRWUmbral de tiempo de espera de Heartbeat. Por defecto: 5 minutos. Mínimo: 30 segundos. Máximo: 30 minutos.
1006 / 0x03EEIF_STARTUINT16RW
  • Control de arranque/parada
  • 0: PARAR
  • 1: INICIO
1007 / 0x03EFModo de fase de ejecuciónUINT16RW

Valores:

  • 0: Adaptativo
  • 1: Monofásico forzado
  • 2: Fuerza trifásica

Restricciones de conmutación:

  • Intervalo mínimo recomendado entre los cambios de fase: 10 minutos
  • Máximo de 2 cambios de fase en cualquier periodo de 1 hora
  • Máximo de 6 conmutaciones de fase durante una misma sesión de carga
1008-1999ReservadoReservado para extensiones.

2.4.6 Alarmas y errores (Error / Advertencia)

DirecciónNombreTipoUnidadAccesoDescripción
0400 / 0x0190Conjunto de bits de errorUINT16RO
  • Bit 0: Tensión del CP anómala
  • Bit 1: fuga en la línea de fase
  • Bit 2: anomalía de corriente / sobrecorriente
  • Bit 3: tensión anómala / sobretensión o subtensión
  • Bit 4: temperatura anómala / alta o baja
  • Bit 5: relé atascado
  • Bit 6: Fallo en la autocomprobación del RCD
  • Bit 7: Cortocircuito en el diodo CP
  • Bit8: PEN abierto
  • Bit9: fuga de PE
  • Bit10: PE abierto
  • Bit 11: PP anómalo
  • Bits 12-15: reservados
0401 / 0x0191Conjunto de bits de advertenciaUINT16RO
  • Bit 0: fallo en el chip del contador
  • Bit 1: comunicación entre placas anómala
  • Bit 2: Anomalía en la señal de radiofrecuencia (RF) del RFID
  • Bit 3: 868 RF anómala
  • Bit 4: Anomalía en el módulo 4G
  • Bit 5: anomalía en la apertura de la tapa
  • Bit 6: reservado
  • Bit 7: Anomalía en la pérdida de fase del sistema TN
  • Bit8: Sobrecorriente neutra de TI
  • Bit9: anomalía en la red
  • Bit10: Modo MID
  • Bits 11-15: reservados
0402 / 0x0192Conjunto de bits en esperaUINT16RO
  • Bit 0: modo de reserva debido a que el CT está desconectado
  • Bit 1: modo de reserva debido a que la unidad principal está desconectada
  • Bit2: en pausa debido a un error de baja gravedad / la corriente del perfil de carga es 0 a través de OCPP
  • Bit3: el dispositivo de carga reduce la intensidad de la corriente durante la carga
  • Bit4: se ha enviado la primera solicitud, pero el servidor no ha respondido
  • Bit 5: protección contra cortes de suministro activa
  • Bit 6: modo de reserva activado por Modbus
  • Bits 6–15: reservados

Apéndice

Códigos de función

Un código de función en Modbus indica qué operación quiere realizar el maestro sobre el esclavo. Cada trama incluye un código de función de 1 byte.

HexSignificadoObjetivo
0x01Bobinas de lecturaSalidas de bits
0x02Leer entradas discretasEntradas de bits
0x03Leer los registros de tenenciade 16 bits
0x04Leer registros de entradade 16 bits
0x05Escribir «Single Coil»Bit
0x06Escribir en el registro de tenencia únicade 16 bits
0x0FEscribir varias bobinasBit
0x10Escribir en varios registros de retenciónde 16 bits

Resumen de los tipos de datos habituales de Modbus

Tipo de datosRegistros utilizadosAncho en bitsTipo CSignificado y usoEjemplos típicos
UINT161de 16 bitsuint16_tEntero sin signoCódigos de estado, enumeraciones, contadores, número de conectores.
INT161de 16 bitsint16_tEntero con signoTemperatura, compensaciones, zona horaria.
UINT322de 32 bitsuint32_tEntero largo sin signoMarcas de tiempo, medición de energía, contadores de segundos.
INT322de 32 bitsint32_tEntero largo con signoPotencia, valores direccionales.
FLOAT322de 32 bitsflotarNúmero flotante de precisión simple, IEEE 754.Corriente, tensión, potencia, energía, etc.
UINT64464 bitsuint64_tNúmero entero muy grandeEnergía total, medición acumulada.
STRING[n]n/2n × 8 bitschar[]Información del textoMarca, modelo, número de serie, número de versión.