La comunicació màquina a màquina ha esdevingut la columna vertebral de l'automatització moderna, des de sensors diminuts fins a controladors i sistemes SCADA que supervisen plantes senceres. En aquest ecosistema, Modbus actua com a idioma comú que permet que equips molt diferents s'entenguin sense complicacions ia baix cost.
Nascut el 1979 per als PLC de Modicon, Modbus segueix plenament vigent a fàbriques, xarxes elèctriques, edificis intel·ligents i aplicacions IoT industrials. El seu èxit es recolza en la seva senzillesa, obertura i àmplia compatibilitat, qualitats que en faciliten la integració i el manteniment fins i tot en entorns exigents.
Què és Modbus i com funciona
Modbus és un protocol de comunicació obert dissenyat per transportar dades entre dispositius electrònics a través denllaços sèrie o xarxes IP. La seva filosofia és simple: un dispositiu central (mestre o client) fa peticions, i els dispositius de camp (esclaus o servidors) responen amb dades o confirmacions.
L'arquitectura clàssica és mestre–esclau en entorns sèrie i client–servidor a TCP/IP. En una xarxa Modbus sèrie tradicional hi pot haver un mestre i fins a 247 esclaus, cadascun amb la seva direcció. El mestre interroga de manera ordenada; els esclaus contesten únicament quan els al·ludeixen per la direcció.
Tots els missatges Modbus comparteixen una estructura lògica: incorporen un codi de funció que determina l'operació (p. ex., llegir entrades discretes, llegir/escriure registres) i un bloc de dades associat. Aquest plantejament uniforme simplifica l'anàlisi i el diagnòstic entre diferents fabricants.
Un avantatge clau és que el format del missatge no depèn de la interfície física. Podeu migrar de RS-485 a Ethernet sense reescriure la lògica del protocol: canvia l'encapsulació, no la semàntica. Aquest desacoblament redueix costos quan s'actualitza el maquinari.

Model de dades Modbus: tipus d'objectes i accés
Modbus organitza la informació a quatre classes d'objectes, amb mides i permisos ben definits. Aquest patró és idèntic entre variants com RTU, ASCII, TCP i RTU sobre TCP; el que canvia és l'embolcall de transport, no pas el model de dades.
| Objecte | Accés | Mida |
|---|---|---|
| Discrete input (entrada digital) | només lectura | 1 bits |
| Coil (sortida digital) | Lectura / escriptura | 1 bits |
| Input register (registre d'entrada) | només lectura | 16 bits de |
| Holding register (registre de retenció) | Lectura / escriptura | 16 bits de |
L'ordre de bytes per a valors multibyte a les dades Modbus és big-endian, és a dir, es transmet primer el byte més significatiu (MSB). Aquest detall és vital en mapejar tipus compostos com a enters de 32 bits o flotants IEEE.
ADU i PDU: com s'encapsulen els missatges
Una trama Modbus es compon d'una ADU (Application Data Unit) que envolta una PDU (Protocol Data Unit). La PDU és comú a totes les variants i conté el codi de funció i les dades; l'ADU afegeix adreça i control d'errors segons el medi.
- MOLTS: Direcció/encapçalament + PDU + verificació d'error
- PDU: Codi de funció + Dades
Segons la variant (RTU, ASCII o TCP) canvia la forma de l'ADU, incloent mecanismes de delimitació, revisió d'errors i camps de capçalera específics del transport.
Formats de trama per variant
Totes les implementacions Modbus usen algun d'aquests formats de trama, adaptats al medi físic oa la xarxa IP sobre la qual viatgen.
Trama Modbus RTU (sèrie, típicament RS-485)
RTU utilitza codificació binària compacta i CRC per a control d'errors. Les trames s'han d'emetre de manera continuada, sense buits entre caràcters, i se separen mitjançant intervals de silenci (≈ 3,5 temps de caràcter).
| Camp | longitud | Descripció |
|---|---|---|
| Inici | Temps de silenci | Inactivitat mínima (~3,5 caràcters) per delimitar |
| direcció | 8 bits de | Identificador de l'esclau |
| Funció | 8 bits de | Operació sol·licitada (p. ex., llegir coils o holding registers) |
| Dades | n × 8 bits | Paràmetres i/o payload |
| CRC | 16 bits de | Verificació de redundància cíclica |
| Final | Temps de silenci | Inactivitat mínima (~3,5 caràcters) entre trames |
CRC-16 (ANSI/IBM) a Modbus RTU: polinomi x^16 + x^15 + x^2 + 1 (0x8005, invers 0xA001) amb valor inicial 0xFFFF. Exemple de resposta en hexadecimal: 01 04 02 FF FF B8 80; el càlcul del CRC sobre 01…FF produeix 0x80B8, que es transmet en ordre little-endian (byte sota primer: B8 80).
Trama Modbus ASCII (sèrie amb caràcters imprimibles)
ASCII representa cada byte com a dos caràcters hexadecimals llegibles, delimita amb dos punts a l'inici i CR/LF al final, i empra LRC com a checksum.
LRC2 bytes ASCIIChecksum longitudinal (complement a dos de la suma 8 bit)
| Camp | longitud | Descripció |
|---|---|---|
| Inici | Byte 1 | Caràcter ':' (0x3A) |
| direcció | 2 bytes ASCII | Valor de 8 bits expressat com a dos hex |
| Funció | 2 bytes ASCII | Codi de funció |
| Dades | n × 2 bytes ASCII | Contingut en parells hex |
| Final | Bytes 2 | CR (0x0D) + LF (0x0A) |
Exemple de LRC: amb bytes 247, 3, 19, 137, 0 i 10 la suma és 416; el seu complement a dos truncat a 8 bits és 96 (0x60). La trama seria: :F7031389000A60 .
Trama Modbus TCP (Ethernet)
A TCP/IP, Modbus viatja amb una capçalera MBAP que facilita la multiplexació de transaccions i la passarel·la cap a xarxes sèrie. No s'hi afegeix checksum propi, ja que TCP/IP ja incorpora control d'integritat.
| Camp (MBAP + PDU) | longitud | Descripció |
|---|---|---|
| Identificador de transacció | Bytes 2 | Correlació petició–resposta |
| ID del protocol | Bytes 2 | Sempre 0 per a Modbus/TCP |
| Longitud | Bytes 2 | Mida restant (Unit ID + PDU) |
| Identificador de la unitat | Byte 1 | Adreça del dispositiu després d'una passarel·la (o 255 si no s'aplica) |
| Codi de funció | Byte 1 | Operació sol·licitada |
| Dades | n bytes | Paràmetres i payload |
L'Unit ID permet encaminar equips RTU darrere una passarel·la Modbus TCP–RTU. En dispositius purament TCP sovint s'ignora. El servei utilitza el port 502 i està normalitzat (IEC 61158, citat a IEC 61784-2 com a CPF 15/1).
Variants de Modbus: panorama complet
Hi ha múltiples sabors de Modbus per a diferents mitjans i requisits. Comparteixen model de dades i funcions bàsiques; difereixen en com encapsulen i transporten la PDU.
- Modbus RTU: la implementació binària més comuna sobre enllaços sèrie com RS-485. Usa CRC-16 i requereix transmissions contigües sense pauses.
- Modbus ASCII: variant sèrie amb caràcters imprimibles i LRC. Menys usada avui, però útil on es prioritza llegibilitat i depuració manual.
- Modbus TCP/IP (Modbus TCP): funciona sobre xarxes IP, port 502. Client-servidor, sense checksum addicional a nivell d'aplicació.
- Modbus sobre TCP/RTU-IP: encapsula RTU sobre TCP incloent el CRC a la càrrega útil, útil per transportar trames RTU tal qual.
- Modbus sobre UDP: hi ha implementacions experimentals per reduir la sobrecàrrega de TCP, sacrificant característiques de connexió.
- Modbus Plus (MB+, propietari): xarxa d'alta velocitat de Schneider Electric, amb comunicacions peer-to-peer entre múltiples mestres, HDLC i 1 Mbit/s sobre parell trenat; requereix maquinari específic (targetes ISA/PCI/PCMCIA).
- Pemex Modbus: extensió amb suport per a històrics i mesures de flux, concebuda per a PEMEX; no va tenir adopció massiva.
- Enron Modbus: extensió que afegeix sencers de 32 bits, flotants i dades històriques/flux, mapejats a adreces estàndard amb alineació de tipus segons pràctiques API.
Les quatre primeres variants (RTU, ASCII, TCP i RTU sobre TCP) comparteixen trucades i model de dadesperò no són interoperables entre si a nivell de trama: canvia l'encapsulació i, per tant, el cablejat/capa física o xarxa.
Avantatges pràctics de Modbus a la indústria
La popularitat de Modbus no és casual: és obert, gratuït, senzill d'implementar i molt interoperable, cosa que redueix barreres entre fabricants i abarateix la integració.
- Facilitat d'implantació: pocs requisits (un port sèrie o Ethernet) i un stack simple.
- Compatibilitat alta: equips heterogenis conviuen sense dependre d'un proveïdor únic.
- Fiabilitat: RTU incorpora CRC de sèrie; a TCP es recolza a la pila IP.
- flexibilitat: suporta RS-232, RS-485 i Ethernet; topologies variades.
- Cost contingut: no hi ha llicències i el desenvolupament és lleuger.
A la seva modalitat TCP/IP, a més, s'aprofiten infraestructures LAN existents amb velocitats típiques de 10 a 100 Mbit/s, facilitant l'escalabilitat i la gestió centralitzada.
Limitacions i variacions habituals
No tot són avantatges; també hi ha restriccions derivades del seu disseny original per a PLC de finals dels 70.
- Diagnòstic acotat i reporting: l'esquema mestre–esclau exigeix sondejar periòdicament; no hi ha “report by exception” estàndard en sèrie (sí que hi ha implementacions sobre Ethernet amb notificacions específiques).
- Direccionament limitat en bus sèrie: fins a 254 dispositius per enllaç dades a RTU/ASCII.
- Transmissió contigua: les trames no admeten buits; no tots els mitjans remots ho toleren sense buffering.
- Seguretat nativa inexistent: no incorpora autenticació ni xifrat; cal reforçar-ho amb VPN, firewalls, ACL, etc.
- Tipus de dades històriques: l'estàndard base se centra en 1 bit i 16 bits; objectes binaris grans no estan contemplats.
- Metadades de variables: no hi ha forma estàndard d'anunciar el significat/escala d'un registre (p. ex., “temperatura de 30 a 175 °C”).
Variacions d'implementació freqüents inclouen flotants IEEE 754, enters de 32 bits, dades de 8 bits empaquetats, camps de bits dins enters, multiplicadors (10, 100, 1000, 256) per escalar magnituds, adreces d'esclau esteses a 16 bits o dispositius de bits.
Capes físiques i RS-485: notes de camp
- Llargues distàncies: fins a ~1200 m amb velocitats ajustables segons el tram.
- multipunt: desenes de nodes comparteixen el mateix bus amb adreçament lògic.
- Bones pràctiques: terminacions, polarització i topologies en bus (evitar “estrelles”).
Enfront de RS-232, RS-485 és preferible per a tirades llargues i xarxes amb múltiples equips, mantenint costos baixos i un cablejat simple.
Casos pràctics reals
Migració de planta: de RTU a TCP amb passarel·la
Un fabricant de components d'automoció necessitava ampliar-ne la producció i va passar d'una xarxa Modbus RTU pura a un entorn mixt amb Modbus TCP/IP sobre Ethernet CAT6. La RS-485 original es va conservar per a equips heretats i es va afegir una passarel·la Modbus TCP–RTU per encaminar dades entre tots dos mons, aconseguint escalar sense parar la planta.
Utility elèctrica: SCADA sobre Modbus TCP amb reforç de ciberseguretat
Una elèctrica va modernitzar la seva SCADA migrant des de RTU tradicional a Modbus TCP/IP sobre una xarxa Ethernet privada. Donat el requisit de seguretat, va desplegar VPN entre subestacions, switches gestionats, tallafocs y control d'accés per rols. Resultat: supervisió i control d'alta disponibilitat, amb exposició reduïda davant d'intrusions remotes.
API Modbus de baix nivell a LabVIEW: control i redundància
Quan cal ajustar finament seqüències i temporització, l'API de baix nivell de LabVIEW per Modbus és la via. Ofereix flexibilitat, però exigeix més responsabilitat en la gestió d'estats i errors.
Exemple introductori (Modbus Library.lvproj): en una implementació típica, es crea una instància de mestre (TCP o sèrie), s'emeten funcions com Llegeix els registres d'entrada i es tanca la sessió alliberant la connexió TCP o el recurs NI-VISA. El patró és el clàssic obrir–llegir/escriure–tancar, amb diferències entre mestre (sol·licita per xarxa) i esclau (opera sobre el seu emmagatzematge local).
Exemple avançat amb mestres redundants: una arquitectura amb dos mestres actius consulta un mateix esclau; si un perd la connexió amb l'esclau o l'HMI, l'altre assumeix l'operació sense interrupció. És un enfocament útil quan lobjectiu és tolerància a fallades davant de gateways o sensors crítics.
Modbus TCP a la pràctica
Modbus TCP estableix un esquema client-servidor que funciona de meravella a xarxes locals; mantenir els nodes a la mateixa subxarxa simplifica el descobriment i l'administració. Totes les sol·licituds es cursen pel port 502/TCP, habitualment a mig dúplex per connexió: no aporta avantatge apilar peticions sense esperar resposta.
L'adreça del dispositiu es pot utilitzar per arribar a nodes RTU després de passar-la referenciant la IP de la gateway i l'Unit ID de l'equip remot. Des del 2007, Modbus/TCP està estandarditzat (IEC 61158 i IEC 61784-2).
RTU vs. TCP vs. ASCII: quan fer servir cadascun
Modbus RTU brilla en busos sèrie robusts i econòmics; ModBus TCP és idoni quan es vol escalar, integrar amb LAN/IT i connectar molts dispositius; Modbus ASCII té avui un ús residual, útil en entorns on llegir les trames “a ull” continua sent valuós.
- RTU: binari compacte, CRC, ideal per a distàncies curtes/mitges amb RS-485.
- TCP: Ethernet/IP, major velocitat i abast, adreces IP il·limitades.
- ASCII: llegible, amb LRC, útil per a depuració i compatibilitat històrica.
Programari compatible: SCADA i HMI
Modbus és omnipresent a plataformes SCADA/HMI. Entre les solucions que solen donar suport nadiu hi ha Citect, ICONICS, iFIX, InduSoft, InTouch/Wonderware, Trace Mode, Wizcon, Entivity (Studio/Live/VLC), entre altres.
Aplicacions: energia, BMS i mobilitat elèctrica
Integrat amb SCADA, Modbus facilita una visió centralitzada de l'estat i l'operació d'actius energètics (subestacions, centres de transformació, automatització de distribució), possibilitant manteniment predictiu i millora de la disponibilitat.
En sistemes de gestió d'edificis (BMS), Modbus ajuda a orquestrar climatització, il·luminació, grups electrògens o emmagatzematge, amb impacte directe en eficiència i costos energètics.
En càrrega de vehicle elèctric, Modbus aporta interoperabilitat amb inversors i comptadors intel·ligents. Per exemple, el punt de recàrrega Trydan empra Modbus RTU per operar de forma remota i llegir mesuradors, integrant-se amb sistemes fotovoltaics; els carregadors Pole Pro es poden connectar mitjançant Modbus TCP per a un control fi de la càrrega.
Empreses especialitzades com Cuerva posen les dades al centre per detectar ineficiències, optimitzar instal·lacions i desplegar plans de manteniment predictiu, preventiu i correctiu que elevin la fiabilitat dels equips.
Com connectar una xarxa Modbus: claus i paràmetres
Abans de cablejar, obteniu la documentació del fabricant per entendre el mapeig de registres i els paràmetres de comunicació. És el GPS del projecte.
- físic: RTU sobre RS-485/RS-232; TCP sobre Ethernet (connectors RJ45/IP65 en entorns industrials).
- paràmetres: velocitat en bauds, bits de dades/paritat/stop (en sèrie), IP/ports (en TCP), adreça de l'esclau/Unit ID.
- Inscripció i registre al càmping: conèixer les adreces de coils/inputs/holding/input registers i les escales (multiplicadors, òfsets).
A TCP, cada dispositiu utilitza una adreça IP i la comunicació s'encapsula en paquets TCP/IP. En bus sèrie, cuida terminacions, longituds i derivacions perquè el senyal arribi net.