La mayoría de fallos intermitentes en RS-485 (timeouts, errores de CRC, bytes basura) vienen de la capa física, no del programa. Revisa el bus en este orden: la topología real, la terminación (unos 60 Ω entre A y B con todo apagado), la polarización (al menos 200 mV entre las líneas con el bus en reposo), la referencia común, y el cable y la malla. Mira la configuración Modbus RTU solo cuando estas cinco comprobaciones estén bien.
Esta guía es para un bus que funciona, pero no siempre: esclavos Modbus RTU que se caen cada pocas horas, tramas con CRC incorrecto, un bus estable en el banco de pruebas e inestable en planta. Cinco de las seis comprobaciones solo necesitan un polímetro. Valen para cualquier PLC, variador, contador o pasarela con puerto RS-485.
Si el bus no ha funcionado nunca, empieza por el propio puerto: configuración del puerto RS485 en PLCs de Industrial Shields (interruptores, jumpers y un sketch de prueba) y conceptos básicos sobre RS-485 de un PLC industrial.
- Paso 1TopologíaUna línea de nodo a nodo, derivaciones cortas, sin estrella
- Paso 2TerminaciónUnos 60 Ω entre A y B, todo apagado
- Paso 3PolarizaciónAl menos 200 mV con el bus en reposo, en un solo punto
- Paso 4Referencia comúnTercer hilo o aislamiento entre nodos alejados
- Paso 5Cable y mallaPar trenzado de 120 Ω, lejos de la salida de los variadores
- Paso 6Configuración ModbusParámetros serie, direcciones, tiempos, timeouts
Síntomas de fallo en RS-485, causa probable y primera prueba
Apunta los síntomas antes de cambiar nada. El patrón indica por dónde empezar.
| Síntoma | Causa probable | Primera prueba |
|---|---|---|
| No responde ningún esclavo desde el primer día | A y B invertidos, parámetros serie distintos, dirección incorrecta | Invierte A y B en un equipo y compara velocidad y paridad (paso 6) |
| Estable en el banco, errores en planta cada pocas horas | Reflexiones, diferencias de potencial de masa, ruido | Dibuja la topología real y sigue con los pasos 2, 4 y 5 |
| Los errores de CRC aumentan con la distancia, falla más el nodo más lejano | Terminación incorrecta o ausente, derivaciones largas | Test de los 60 Ω (paso 2) |
| Bytes basura o errores de framing entre tramas | Sin polarización: el bus en reposo queda flotando | Tensión entre A y B en reposo (paso 3) |
| Errores cuando arrancan motores o variadores | Tensión en modo común fuera de rango, cable junto a cables de potencia | Tensión entre las masas de dos nodos (paso 4), recorrido (paso 5) |
| Los errores empiezan tras sustituir un equipo | El equipo nuevo trae la terminación o la polarización activadas | Test de los 60 Ω y revisión de sus DIP switches |
| Solo falla un esclavo | Ese equipo: dirección, parámetros, su derivación o su conector | Contador de errores por esclavo (paso 6) |
| El esclavo responde con un código de excepción | El bus funciona: registro o código de función incorrecto | Revisa el mapa de registros del esclavo (paso 6) |
¿Por qué un bus RS-485 falla solo a veces?
RS-485 (TIA/EIA-485) es una capa física diferencial. El dato es la diferencia de tensión entre dos hilos, A y B (también D+ y D-), no la tensión entre un hilo y masa. El ruido que llega igual a los dos hilos se cancela. Cuatro hechos explican la mayoría de fallos intermitentes:
- Es una línea de transmisión. En un cable de longitud de planta, el par trenzado típico tiene una impedancia característica de unos 120 Ω. Un punto en estrella, una derivación larga o una terminación que falta o sobra cambian la impedancia y provocan reflexiones. Las reflexiones se suman a la señal y corrompen bits.
- Diferencial no significa aislado. Un receptor RS-485 estándar trabaja con una tensión en modo común de -7 V a +12 V respecto a su propia masa. Si dos nodos tienen masas a potenciales distintos, ese margen se agota y el receptor lee datos erróneos, aunque la señal entre A y B sea perfecta.
- La planta no es el banco de pruebas. Un bus de banco tiene 3 m de cable, una sola fuente y ningún variador. La planta añade longitud, ruido de variadores y diferencias de masa. El fallo aparece cuando todo eso se suma, por eso parece aleatorio.
- RS-485 no es Modbus RTU. RS-485 define la señal eléctrica. Modbus RTU es el protocolo que viaja por ella. Un error de CRC es un síntoma de Modbus, pero la causa suele ser eléctrica.
Por eso las comprobaciones siguen primero las cinco causas físicas (topología, terminación, polarización, referencia común, cable), por orden de probabilidad y facilidad de prueba. El protocolo va al final.
Seis comprobaciones del bus RS-485, por orden
Haz las comprobaciones en este orden. Cada una descarta una causa, y las cinco primeras solo necesitan un polímetro y el plano del cable.
Paso 1: dibuja la topología real
Sigue el cable y dibuja cómo está instalado de verdad, no cómo aparece en el plano.
- RS-485 es una línea (daisy chain): del maestro al esclavo 1, del esclavo 1 al esclavo 2, y así hasta el último nodo. Sin ramales.
- Cada derivación refleja parte de la señal. Haz las derivaciones lo más cortas posible. Una regla práctica habitual es menos de 30 cm. A baja velocidad (9600 a 19200 baudios) hay más margen, pero una estrella con ramales de decenas de metros puede fallar a cualquier velocidad.
- Si la instalación necesita varios ramales largos, usa un repetidor RS-485 por ramal y termina cada ramal como un bus independiente.
Una topología en estrella es el sospechoso número uno. Sigue con el resto de comprobaciones igualmente: un bus suele tener más de un fallo.
Paso 2: mide la terminación (el test de los 60 Ω)
El bus necesita dos resistencias de terminación de 120 Ω, una en cada extremo físico de la línea. Ni una, ni tres, ni en mitad del bus.
Con todos los equipos apagados, mide con el polímetro la resistencia entre A y B en cualquier punto del bus:
| Lectura entre A y B (todo apagado) | Diagnóstico |
|---|---|
| Unos 60 Ω | Correcto: dos terminaciones de 120 Ω en paralelo |
| Unos 120 Ω | Falta una terminación, o solo estás midiendo una parte del bus |
| Unos 40 Ω o menos | Terminaciones de más: hay tres o más resistencias activadas |
| Muy alta o circuito abierto | Sin terminación, o el cable está cortado |
Busca terminaciones ocultas. Muchos PLCs, variadores y pasarelas llevan la resistencia integrada y se activa con un DIP switch o un jumper. Apunta qué equipos la tienen activada. Un caso típico: se sustituye un variador de mitad de bus y el nuevo viene con la terminación activada de fábrica. Muchas placas MAX485 económicas también llevan una resistencia de 120 Ω (consulta el módulo MAX485 con un PLC Arduino).
Solo se puede omitir la terminación en buses muy cortos (pocos metros) y a baja velocidad. En planta, termina siempre: no cuesta nada y elimina toda una familia de fallos.
Paso 3: comprueba la polarización con el bus en reposo
Cuando ningún nodo transmite, todos los drivers están desactivados. En un bus terminado, la tensión entre A y B cae entonces cerca de 0 V. El umbral del receptor RS-485 es de ±200 mV, así que entre -200 mV y +200 mV la salida del receptor no está definida y el ruido se lee como bits de arranque. Resultado típico: bytes basura entre tramas y errores de framing.
La solución es la polarización (fail-safe biasing): una resistencia de pull-up en la línea + y una de pull-down en la línea -, en un solo punto del bus, normalmente en el maestro. Las dos resistencias de polarización y las dos terminaciones de 120 Ω forman un divisor de tensión:
Tensión en reposo = Vcc × 60 Ω / (2 × Rbias + 60 Ω)
| Cada resistencia de polarización | Tensión en reposo a 5 V | Tensión en reposo a 3,3 V |
|---|---|---|
| 390 Ω | 357 mV | 236 mV |
| 560 Ω | 254 mV | 168 mV |
| 680 Ω | 211 mV | 139 mV |
| 1 kΩ | 146 mV | 96 mV |
Estos valores no incluyen la carga de los receptores, y cada nodo baja un poco la tensión, así que deja margen por encima de 200 mV. Con dos terminaciones de 120 Ω, una pareja de 1 kΩ no basta, ni siquiera a 5 V. A 5 V, de 390 Ω a 560 Ω por resistencia dan un buen margen. A 3,3 V necesitas 390 Ω o menos.
Prueba: enciende el sistema, para todo el tráfico y mide la tensión DC de la línea + a la línea -. Necesitas al menos 200 mV estables. Cerca de 0 V significa que no hay polarización. Actívala en un solo punto: polarizar en muchos nodos carga los drivers y distorsiona los niveles.
A, B, + y -. Los fabricantes no usan las letras A y B de la misma forma. La mayoría marca la línea no inversora como A, A+ o D+, pero la norma TIA/EIA-485 usa las letras al revés. Sigue las marcas + y -. Si el bus no responde, invierte primero A y B en un equipo.
Algunos transceptores recientes tienen receptores que leen 0 V como reposo (receptores true fail-safe). Si todos los receptores del bus lo tienen, no hace falta polarización externa. El MAX485 no es uno de ellos: su fail-safe solo funciona con las entradas abiertas.
Paso 4: comprueba la referencia común y el aislamiento
Es la causa menos conocida y la que da los fallos sin patrón: los errores dependen de qué motores arrancan en otra parte de la planta.
- El rango en modo común del receptor es limitado (-7 V a +12 V). Entre dos edificios, dos cuadros con fuentes distintas o dos tomas de tierra alejadas, la diferencia puede ser mayor, y cambia con la carga.
- Solución de diseño: un tercer hilo de referencia común, conectado al común de señal de cada transceptor (la tercera vena del cable). En buses largos, conéctalo a través de una resistencia de unos 100 Ω en cada nodo para limitar las corrientes de bucle.
- Solución robusta: transceptores RS-485 con aislamiento galvánico o repetidores aislados, para plantas grandes, buses entre edificios y zonas con muchos variadores. El aislamiento rompe el bucle de tierra: cada nodo ve el bus, no la masa del vecino. Si el bus une zonas con alimentaciones separadas, usa aislamiento.
Prueba orientativa: desconecta el bus en un nodo y mide la tensión AC y DC entre la masa de señal de dos nodos alejados. Varios voltios, o una lectura que salta cuando arranca la maquinaria, indican un problema de modo común.
Paso 5: revisa el cable, la malla y el recorrido
- Par trenzado, siempre. El trenzado hace que el ruido llegue igual a los dos hilos y se cancele. Una manguera paralela de alimentación usada como bus actúa como antena.
- Impedancia característica de unos 120 Ω. Usa cable específico para RS-485 o Modbus, o un par trenzado apantallado equivalente. La terminación debe coincidir con el cable: un cable de 100 Ω con terminaciones de 120 Ω ya produce una pequeña reflexión.
- Malla a tierra en un extremo (el cuadro principal), para evitar bucles por la malla. Conéctala en los dos extremos solo si la instalación tiene una buena red equipotencial. Una malla sin conectar no apantalla.
- Recorrido: usa una bandeja separada de los cables de potencia. Si hay que cruzar cables de motor, cruza a 90°. La salida de un variador es la fuente de ruido más fuerte de casi cualquier cuadro: guarda distancia y usa cable de motor apantallado como indica el manual del variador.
- Longitud y velocidad: el valor de referencia habitual es de 1200 m hasta 100 kbps. A 9600 baudios hay mucho margen: la longitud total casi nunca es la causa.
Paso 6: solo ahora, revisa la configuración Modbus RTU
Si la capa física supera las cinco comprobaciones y siguen los errores, revisa la capa de protocolo:
- Mismos parámetros serie en todos los nodos: velocidad, bits de datos, paridad y bits de stop. El valor por defecto de Modbus en línea serie es 8 bits de datos con paridad par. Sin paridad, la norma pide 2 bits de stop, pero muchos equipos usan 8N1. Un nodo con otros parámetros provoca errores de framing y de CRC.
- Sin direcciones duplicadas. Dos esclavos con la misma dirección responden a la vez y se corrompen mutuamente.
- Silencio entre tramas: Modbus RTU da una trama por terminada tras 3,5 tiempos de carácter de silencio. Un maestro que envía la siguiente petición demasiado pronto, o un conversor USB a RS-485 que mete pausas dentro de una trama, incumple esta regla.
- Timeouts y contadores: ajusta el timeout al esclavo más lento, limita los reintentos y guarda un contador de errores por esclavo en el diagnóstico. Un contador por esclavo te dice en una tarde si el fallo está en un tramo del bus o en un equipo concreto.
- Respuestas de excepción: una respuesta con el código de función más 0x80 (por ejemplo 0x83 para la función 03) significa que el bus funciona. El esclavo recibió la petición y la rechazó. Revisa la dirección del registro y el código de función, no el cable.
- Control de dirección: con un módulo transceptor controlado por tu propio código (pines DE y RE), libera el bus solo cuando el último byte haya salido de la UART, o se corta el CRC. Consulta el control de dirección con un módulo MAX485.
| Velocidad | Un carácter (11 bits) | 3,5 caracteres de silencio |
|---|---|---|
| 9600 | 1,15 ms | 4,0 ms |
| 19200 | 0,57 ms | 2,0 ms |
| Por encima de 19200 | Menos de 0,57 ms | Valor fijo de 1,75 ms que recomienda la guía Modbus de línea serie |
Si tienes un osciloscopio, úsalo antes que cualquier herramienta de software. Mide la señal diferencial en el nodo más lejano: las reflexiones, los niveles débiles y el ruido acoplado se ven al momento. Flancos limpios y niveles estables indican una capa física sana.
Un caso real: doce esclavos Modbus RTU en una topología en estrella
Esta lista de comprobaciones nace de un caso de soporte que contamos en nuestra newsletter, con el permiso del integrador. Un PLC leía doce esclavos Modbus RTU por RS-485: variadores, un contador de energía y sensores de temperatura. En el banco, semanas sin un solo error. En planta, timeouts y errores de CRC cada pocas horas, sin ningún patrón. Tres semanas de cambios en el código redujeron los síntomas, pero no arreglaron nada.
Las fotos del cuadro y del recorrido del cable mostraron la causa: una topología en estrella con tres ramales, terminaciones donde no tocaba, un ramal con cable sin trenzar ni apantallar en la misma bandeja que la salida de un variador, y esclavos alimentados desde fuentes distintas sin referencia común. El integrador rehízo el bus en línea, con par trenzado apantallado, dos terminaciones de 120 Ω en los extremos reales y un tercer hilo como referencia común. No ha habido errores desde entonces, y el código volvió a su primera versión.
Reglas de diseño para un bus RS-485 estable
- Diseña el bus sobre el plano antes de cortar cable: topología en línea, posición de las dos terminaciones, un solo punto de polarización, referencia común y recorrido.
- Usa par trenzado apantallado de la impedancia correcta y conecta la malla a tierra con criterio, no por casualidad.
- Usa derivaciones cortas o repetidores. Nunca una topología en estrella.
- Lleva siempre una referencia común entre nodos. Usa aislamiento galvánico si el bus cruza zonas con alimentaciones separadas.
- Documenta qué equipos tienen la terminación y la polarización activadas. El técnico que sustituya un variador dentro de cinco años lo va a necesitar.
- En el programa: timeouts, reintentos limitados y contadores de error que el operario pueda leer. El bus fallará algún día; los contadores te dicen dónde.
Los fallos de comunicación intermitentes casi nunca son un problema de software. Si no puedes reproducir el error a voluntad, empieza por el cable.
RS-485 y Modbus RTU en los PLCs de Industrial Shields
Las comprobaciones anteriores valen para cualquier marca. Si el maestro o la pasarela de tu bus es un PLC de Industrial Shields, estas páginas cubren la parte del puerto y del código:
- RS-485 con PLCs basados en Arduino y ESP32: half y full duplex, interruptores y código.
- Cómo trabajar con RS485 en un Raspberry PLC
- Modbus RTU con PLCs basados en Arduino y ESP32 y la librería Modbus RTU master
- Modbus RTU vs Modbus TCP vs OPC UA: cuándo un bus serie sigue siendo la opción correcta.
Ejemplos completos en la PLC Solution Library: maestro Modbus RTU en un ESP32 PLC con timeouts (de un proyecto de monitorización de máquinas textiles), control de velocidad de un variador por Modbus RTU con un M-Duino PLC y una pasarela Modbus TCP a RTU en un M-Duino PLC. El caso de control de velocidad de una cinta transportadora usa un M-Duino 42+ con un variador de frecuencia, con RS-485 y Modbus RTU como opción de bus de campo.
Para los detalles eléctricos de terminación, polarización, carga del bus y masas, consulta The RS-485 Design Guide (Texas Instruments, SLLA272).
Lleva la lista de comprobación al cuadro. Nuestra lista de 15 puntos sobre alimentación, cableado, protección, comunicaciones y montaje, en un PDF imprimible gratuito: De prototipo Arduino a instalación industrial.
La familia M-Duino (Arduino PLC) tiene Ethernet y RS-485 en todos los modelos, así que un mismo PLC puede ser el maestro Modbus RTU del bus de campo y hablar con el SCADA por Ethernet. Consulta la ficha de producto del M-Duino 21+ para ver la documentación técnica.
Descarga la checklist gratuitaVer la familia Arduino PLCConsulta tu bus con un ingeniero
Llévalo a la práctica
Cuando el bus ya funciona, mira las mismas ideas de RS-485 y Modbus RTU en una red real, en un simulador donde puedes romperla y en código.
Caso de estudio
Muchos termómetros. Una sola red Modbus.
Varios PLC M-Duino locales leen termómetros Modbus RTU por RS-485 y un PLC principal recoge las lecturas por Modbus TCP.
Lee el caso de estudio
Simulador
Haz funcionar una red Modbus RTU y TCP y encuentra el fallo
Un M-Duino 21 pregunta a cuatro esclavos Modbus RTU por RS-485 y sirve los datos por Modbus TCP. Apaga un esclavo o cambia la velocidad y encuentra el fallo en las tramas.
Abre el simulador
PLC Solution Library
Sondear esclavos Modbus RTU con timeouts y valores de 32 bits
Una función genérica de maestro Modbus RTU para un ESP32 PLC que devuelve los registros, o una respuesta vacía si falla, y utilidades para valores de 32 bits.
Ver el ejemplo
Preguntas frecuentes sobre problemas en RS-485
¿Qué resistencia debo medir entre A y B en un bus RS-485?
Unos 60 Ω, con todos los equipos apagados. Son dos terminaciones de 120 Ω en paralelo. Unos 120 Ω indican que falta una terminación. Unos 40 Ω o menos, que sobran.
¿Qué tensión debe tener un bus RS-485 en reposo?
Al menos 200 mV entre la línea + y la línea -, sin tráfico. Cerca de 0 V indica que el bus no está polarizado y que los receptores pueden leer ruido como datos.
¿Hacen falta resistencias de terminación a 9600 baudios?
Un cable de banco de pocos metros suele funcionar sin ellas. En planta, usa siempre una resistencia de 120 Ω en cada extremo de la línea. El cálculo de la polarización también cuenta con ellas.
¿Por qué tengo errores de CRC solo cuando arrancan los motores?
Normalmente por una diferencia de potencial de masa entre nodos que saca a los receptores de su rango en modo común (-7 V a +12 V), o por un cable de bus que pasa junto a la salida de un variador. Añade un hilo de referencia común o aislamiento y separa el cable de los de potencia.
¿La malla del cable RS-485 se conecta a tierra en los dos extremos?
Conéctala en un extremo, normalmente el cuadro principal. Conecta los dos extremos solo si la instalación tiene una buena red equipotencial. Sin ella, una malla conectada en los dos extremos conduce corrientes de bucle de tierra.
¿Cuántos equipos admite un segmento RS-485?
32 cargas unidad sin repetidor. Los transceptores de 1/4 o 1/8 de carga unidad permiten hasta 128 o 256 equipos. Las direcciones de esclavo Modbus RTU van de 1 a 247.
¿RS-485 es lo mismo que Modbus RTU?
No. RS-485 es la capa física: las tensiones, el cable y la terminación. Modbus RTU es un protocolo que suele ir sobre RS-485. La mayoría de errores intermitentes de Modbus RTU tienen una causa en RS-485.