¿Qué es el checksum LRC de Modbus?
El LRC, una verificación de redundancia longitudinal, es el checksum de un solo byte que Modbus ASCII usa en lugar del CRC de RTU. Cualquiera que lea una captura ASCII o se pregunte por qué ASCII se considera menos robusto que RTU necesita entender qué es el LRC y cómo se compara. Esta referencia explica cómo se forma el LRC, por qué es más débil que un CRC y dónde se lo encuentra.
LRC de Modbus en una línea: El LRC de Modbus es una verificación de redundancia longitudinal de un solo byte que se usa únicamente en el modo Modbus ASCII. Se forma sumando los bytes del mensaje y tomando el complemento a dos, lo que da un byte de verificación transportado como dos caracteres hexadecimales antes del retorno de carro y salto de línea que cierran la trama. Es más simple que el CRC-16 de RTU pero más débil detectando errores, una de las razones por las que se prefiere RTU.
Cómo se forma el LRC
En Modbus ASCII el LRC es un solo byte que se calcula sumando los bytes del mensaje y tomando el complemento a dos de la suma, de modo que el byte de verificación más el total acumulado envuelven a cero. Se coloca justo antes del retorno de carro y salto de línea que terminan la trama ASCII y, como todo en el modo ASCII, se transmite como dos caracteres hexadecimales imprimibles. El receptor recalcula la suma y verifica el resultado, descartando el mensaje si no cuadra.
Como las tramas ASCII se delimitan con dos puntos explícitos al inicio y CR-LF al final, y no por tiempos, el LRC solo tiene que proteger el contenido, no el entramado, que queda a cargo de esos delimitadores. La estructura completa de una trama ASCII y en qué difiere de RTU se describe en la referencia del modo de transmisión Modbus RTU frente a ASCII.
LRC frente a CRC y dónde se lo encuentra
Una verificación de redundancia longitudinal es una verificación basada en suma, y una suma es un detector de errores más débil que una verificación de redundancia cíclica: algunas combinaciones de bits erróneos se cancelan en una suma y pasan inadvertidas, mientras que el CRC-16 atrapa los errores en ráfaga con mucha más confiabilidad. Esa es la razón técnica central por la que RTU, que usa el CRC descrito en la referencia del checksum CRC-16 de Modbus, se considera más robusto que ASCII en enlaces ruidosos.
En la práctica el LRC solo se encuentra en el equipo heredado o especializado que todavía usa el modo ASCII, una fracción pequeña del Modbus serial actual. Al diagnosticar un enlace así, recuerde que el LRC da menos garantía contra corrupción no detectada que un CRC, así que las rarezas persistentes en una línea ASCII marginal merecen escrutinio extra. Ningún checksum aparece en TCP, que se apoya en la red, como señala la comparación de Modbus TCP frente a RTU.
Preguntas frecuentes
¿Cómo se calcula el LRC de Modbus?
El LRC es un byte que se forma sumando todos los bytes del mensaje y tomando el complemento a dos de esa suma, de modo que el byte de verificación más el total envuelven a cero. Va justo antes del retorno de carro y salto de línea al final de una trama ASCII y, como el resto del modo ASCII, se envía como dos caracteres hexadecimales imprimibles.
¿El LRC es más débil que el CRC?
Sí. El LRC es una verificación basada en suma, y ciertas combinaciones de bits erróneos se cancelan en la suma y quedan sin detectar, mientras que el CRC-16 que usa RTU atrapa los errores en ráfaga con mucha más confiabilidad. Esa detección de errores más débil es una razón clave por la que se prefiere RTU sobre ASCII en enlaces seriales con ruido eléctrico.
¿Dónde me encontraría un LRC de Modbus?
Solo en el modo Modbus ASCII, que sobrevive principalmente en equipo serial heredado o especializado. La inmensa mayoría del Modbus serial en servicio usa RTU con CRC. Modbus TCP no usa ni LRC ni CRC, pues se apoya en la integridad del propio TCP, así que el LRC es específicamente un artefacto del modo ASCII.
Fuentes y lecturas
Referencias primarias de los organismos de normas y reguladores que definen este tema:
- Modbus Specifications - Modbus Organization
Servicios de automatización
¿Necesita convertir esta información en un sistema que funcione?
Merobix integra SCADA, programa PLC Allen-Bradley y Siemens, y diseña y fabrica tableros de control industrial.
Las solicitudes de reunión se revisan antes de confirmarse.