Una vez pasé medio día depurando porque nuestro sistema SCADA no aceptaba lecturas de irradiancia. ¿Cuál era el problema? Estaba intentando escribir en un registro de entrada sin querer. Lección aprendida.
Ya sea que esté ajustando su sistema de monitoreo fotovoltaico o simplemente tratando de entender un mapa Modbus, conocer la diferencia entre registros de entrada y registros de retención es crucial, no solo para la comunicación, sino para evitar dolores de cabeza en el campo.
¿QUÉ SON LOS REGISTROS MODBUS?
Los dispositivos Modbus, como los sensores de irradiancia y temperatura SEVEN 3S-IS, almacenan datos en ubicaciones de memoria numeradas llamadas registros. Estos registros son la forma en que su SCADA, registrador de datos o PLC se comunica con el dispositivo. Sin embargo, no todos los registros son iguales.
Principalmente tratará con dos tipos:
- Registros de entrada (código de función 04):Solo lectura, se utiliza para mediciones de sensores.
- Registros de retención (Código de función 03): lectura/escritura, se utiliza para mediciones de sensores y/o configuración y control
REGISTROS DE ENTRADA: PARA DATOS EN VIVO, MIRAR, PERO NO TOCAR
Los registros de entrada son de solo lectura. Contienen valores de medición en tiempo real informados por el sensor. Se pueden leer, pero cualquier intento de escritura generará un error Modbus.
Cómo SEVEN Sensor organiza los registros (ejemplos que usted utilizará)
- Registro 30006→ Irradiancia compensada por temperatura
- Tipo: uint16_t, Rango: 0–1600 W/m², Resolución: 0.1 W/m²
- Registro 30021→ Temperatura del módulo
- Tipo: int16_t, Rango: –40 °C a +85 °C, Resolución: 0.1 °C
- Registro 30053→ Velocidad del viento
- Tipo: uint16_t, Rango: 0–40 m/s, Resolución: 0,1 m/s

Consejo de Campo: Si el valor de irradiancia devuelve 0 o no se actualiza, verifique que su sistema esté usando el código de función 04 y apuntando al registro de entrada correcto (como 30006 para irradiancia).
REGISTROS DE RETENCIÓN: CONFIGURACIÓN, CALIBRACIÓN Y CONTROL
Los registros de retención son donde se lleva a cabo la acción. Por ejemplo, si desea cambiar la dirección Modbus del dispositivo, configurar la velocidad en baudios o ajustar la paridad, deberá usar un comando de escritura como: 01 46 06 [Baude] [Parity] [CRC].
A diferencia de los registros de entrada, los registros de retención admiten operaciones de lectura y escritura.
EJEMPLOS DE REGISTROS DE TENENCIA REAL DE SEVEN:
- Registro 40001→ Identificación de SunSpec
- Se utiliza para identificar el dispositivo como compatible con SunSpec
- Registro 40071→ Temperatura del Aire (PT1000)
- Formato: int16_t, Escala: 0,1 °C — valor medido real
- Registro 40091→ Temperatura del Módulo 1 (parte posterior del módulo)
- Formato: int16_t, se puede utilizar en modelos térmicos o en lógica de reducción de potencia del inversor
También puede utilizar registros como 40068 para el ID del dispositivo o 40004–40019 para leer el nombre del fabricante (“SevenSensor”).

¿PUEDEN LOS REGISTROS DE RETENCIÓN SER SÓLO DE LECTURA?
Sí, y esta es una distinción importante que a menudo se pasa por alto en la documentación de Modbus.
Si bien los registros de retención son técnicamente de lectura y escritura, el firmware de un dispositivo puede restringir el acceso de escritura a registros específicos. Esto significa:
- Usted puede leerlos usando el código de función 03 como de costumbre.
- Pero si intenta escribir en esos registros de retención de “solo lectura”, el dispositivo devolverá un error de excepción Modbus (como 0x03 o 0x02).
Este comportamiento es común en dispositivos compatibles con SunSpec. Por ejemplo:
- Registros 40084 (Irradiancia horizontal global)
- Registro 40091 (Temperatura del módulo 1)
…se encuentran en el rango del registro de retención, pero en realidad son mediciones del sensor, no valores de configuración. Por lo tanto, parecen escriturables, pero en la práctica son de solo lectura.
¿Por qué SEVEN lo organizó de esta manera?
- Para estandarizar el acceso tanto a la configuración como a los datos a través del Código de Función 03
- Para facilitar que los sistemas SCADA sondeen todo desde un espacio de funciones
Mejor Práctica: Compruebe siempre el https://www.sevensensor.com/download (Mapa Modbus) o documentación del dispositivo para ver qué registros de retención son realmente escribibles.

¿POR QUÉ ES IMPORTANTE LA DIFERENCIA ENTRE REGISTROS DE ENTRADA Y DE RETENCIÓN?
Si los mezclas, las cosas se rompen. Así de simple.
Para Técnicos de Campo:
- Utilice registros de entrada para verificar las salidas reales del sensor.
- No intentes escribirles; así es como ocurren los errores Modbus.
Para Programadores SCADA:
- Utilice registros de retención durante la puesta en servicio (por ejemplo, asigne la ID de Modbus mediante el registro 40001).
- Asegúrese de que su sondeo utilice el código de función correcto (03 vs 04).
Para Solucionar Problemas:
- ¿Valores extraños? Compruebe si se está utilizando el tipo de registro incorrecto.
- ¿Lecturas incorrectas? Revise los ajustes de compensación o escala almacenados en los registros de retención.
ESCENARIO REAL CON SENSOR DE IRRADIANCIA SEVEN
Digamos que estás configurando un sensor de irradiancia SEVEN:
- Usted desea leer los datos de irradiancia compensada por temperatura → Utilice el registro de entrada 30006, código de función 04.
- Desea cambiar el ID de Modbus de 1 a 5 → Use el registro de retención 40068, escriba el valor usando el código de función de la siguiente manera: 01 46 04 [ID] [CRC]. No olvide reiniciar el software después de eso.
- ¿Intentas escribirle a 30000?
Recibirá un error de excepción Modbus. El sensor no lo acepta.
TABLA COMPARATIVA DE REGISTROS DE ENTRADA VS REGISTROS DE RETENCIÓN
| Característica | Registros de Entrada (30000–39999) | Registros de Tenencia (40000–49999) |
| Código de Función | 04 (Leer registros de entrada) | 03 (Lectura/Escritura de registros de retención) |
| Tipo de Acceso | Sólo lectura | Lectura/escritura (a veces, solo lectura por firmware) |
| Uso Común | Datos de sensores en vivo (por ejemplo, irradiancia, temperatura) | Configuración, calibración y control |
| Ejemplos de Tipos de Datos | uint16_t, int16_t | uint16_t, int16_t, bloques de texto |
| Ejemplos Reales (SEVEN) | 30006: Irradiancia compensada por temperatura (W/m²) | 40001: ID de SunSpec, 40068: ID de Modbus |
| ¿Se permiten intentos de escritura? | No, devuelve un error Modbus | Sí, si el registro es escribible |
| Uso en SCADA/registradores de datos | Lectura únicamente de los valores del sensor | Lectura/escritura de puntos de ajuste o metadatos |
| ¿Puede contener medidas? | Sí | Sí, especialmente en dispositivos SunSpec |
| Mejor Práctica | Úselo solo para monitorización | Úselo con precaución; verifique los permisos de escritura |
Comprender la diferencia entre registros de entrada y de retención no es solo teórico, ahorra tiempo, evita errores de configuración y mantiene su sistema fotovoltaico funcionando sin problemas.
Así que, la próxima vez que investigue un mapa Modbus como el de SEVEN Sensor, recuerde:
- Registros de entrada = Medidas (solo lectura)
- Registros de retención = Medición y configuración (lectura/escritura)
PREGUNTAS FRECUENTES
P: ¿Por qué algunas mediciones aparecen en registros de retención en lugar de en registros de entrada?
R: Los dispositivos SunSpec a menudo estandarizan todo bajo registros de retención para una integración SCADA más sencilla.
P: ¿Qué sucede si intento escribir en un registro de entrada?
A: El dispositivo devolverá un error de excepción Modbus e ignorará el comando.
P: ¿Cómo puedo verificar rápidamente si un registro de retención se puede escribir?
A: Consulte siempre el https://www.sevensensor.com/download (Mapa Modbus) o la documentación del dispositivo; el firmware puede restringir el acceso de escritura.
P: ¿Qué registro debo utilizar para los valores de irradiancia en los sensores SEVEN?
A: Utilice el registro de entrada 30006 (irradiancia compensada por temperatura).