Il termine «gateway» può indicare tre dispositivi molto diversi. Un bridge trasparente trasferisce byte su un altro percorso. Un gateway di trasporto converte una forma di un protocollo in un’altra, per esempio da Modbus RTU a Modbus TCP. Un traduttore di dati legge valori in un protocollo e li pubblica in un altro, per esempio da BACnet a Modbus. Chiedi quale delle tre funzioni svolge il prodotto: ciascuna richiede specifiche e prove diverse.
Questa guida fa parte della serie su Modbus e RS-485.
Le tre funzioni
| Funzione | Cosa cambia | Cosa rimane uguale | Esempio |
|---|---|---|---|
| Bridge trasparente (tunnel) | Il percorso dei byte | Protocollo, formato dei messaggi e indirizzi | Un server per dispositivi seriali che trasporta byte RS-485 su TCP |
| Gateway di trasporto | Formato dei messaggi e indirizzamento | Codici funzione e significato dei registri | Da Modbus TCP a Modbus RTU |
| Traduttore di dati | Protocollo, identificatori, tipi di dato, eventualmente unità | Solo ciò che è definito nella mappa | Oggetti BACnet pubblicati come registri Modbus |
Un prodotto può svolgere più di una di queste funzioni. Termini commerciali come «trasparente» sono usati con poca precisione. Chiedi di vedere le schermate di configurazione e un esempio di richiesta e risposta.
Bridge trasparente
Un bridge trasferisce il flusso di byte originale da un percorso a un altro. Un server per dispositivi seriali può trasportare un flusso RS-485 su una rete IP e un software dall’altra parte lo presenta come porta seriale. Il protocollo non cambia. Un flusso seriale IEC 60870-5-101 trasportato su TCP resta IEC 101, non diventa IEC 104; i byte Modbus RTU grezzi su una socket TCP non diventano Modbus TCP.
Poiché non avviene alcuna traduzione, entrambi gli estremi devono concordare su tutti i parametri. Verifica:
- il ritardo aggiuntivo, che può interferire con i tempi tra caratteri usati da Modbus RTU per riconoscere la fine di un frame;
- cosa accade quando la connessione di rete cade e poi ritorna;
- se due client possono aprire contemporaneamente lo stesso flusso seriale, creando due master su un unico bus.
Durante la messa in servizio, verifica il protocollo originale da un estremo all’altro attraverso il bridge.
Gateway di trasporto
Un gateway da Modbus TCP a RTU interpreta Modbus. Un client TCP invia una richiesta al gateway indicando l’indirizzo del dispositivo seriale nello unit identifier. Il gateway rimuove l’intestazione MBAP di 7 byte, aggiunge l’indirizzo RTU e il CRC, invia la richiesta sul bus e restituisce la risposta su TCP. La mappa dei registri di ogni dispositivo resta invariata. La guida a Modbus TCP e RTU spiega entrambi i formati.
Cambia invece la capacità. Più client TCP possono raggiungere un gateway, ma il bus seriale gestisce comunque una richiesta alla volta. La velocità Ethernet non aumenta la capacità del bus. Chiedi come il gateway gestisce queste possibilità:
- Inoltro diretto. Ogni richiesta del client viene inviata sul bus. Tre client che interrogano dieci contatori triplicano il traffico sul bus; le risposte lente ritardano tutti i client.
- Cache. Il gateway interroga direttamente il bus e risponde ai client con i valori memorizzati. Il traffico sul bus resta costante, ma ogni valore risale all’ultima interrogazione e il gateway può continuare a rispondere anche dopo che un contatore si è fermato.
Dimensiona il bus con il calcolatore dei tempi Modbus RTU e imposta i timeout dei client più lunghi del timeout seriale del gateway.
Traduttore di dati
Un traduttore legge valori in un modello dati e li pubblica in un altro. Richiede una mappa esplicita per ogni punto. Per una temperatura BACnet pubblicata come registro Modbus, la mappa deve indicare:
| Campo | Esempio |
|---|---|
| Sorgente | Dispositivo 1201, analog-input 3, present-value |
| Destinazione | Holding register 40101 |
| Tipo di dato | int16 |
| Scala e unità | 0,1 °C: 215 significa 21,5 °C |
| Valore non valido o fuori servizio | Pubblicato come −32 768 |
| Regola di aggiornamento | Lettura ogni 60 s; il registro conserva il valore fra una lettura e la successiva |
Alcune informazioni non sopravvivono alla traduzione. Un registro Modbus non porta unità, timestamp né indicatore di qualità. I flag di stato e gli array di priorità BACnet, così come i codici di stato OPC UA, non hanno un equivalente Modbus. Decidi come il destinatario riconoscerà un valore obsoleto: un registro di stato separato, un registro che indica l’età del dato oppure un valore heartbeat che cambia a ogni aggiornamento.
Lettura e scrittura seguono percorsi diversi
Un gateway che pubblica una misura non accetta automaticamente comandi nella direzione opposta. Scrivere in un registro pubblicato può avere tre esiti: modificare soltanto la memoria del gateway, ricevere un rifiuto oppure inviare al dispositivo sul campo un comando configurato appositamente. La specifica deve chiarire quale.
Prima di provare qualsiasi scrittura, ottieni la mappa dei comandi, i valori ammessi, il nome del responsabile dell’apparecchiatura e il segnale di ritorno che ne conferma la risposta. Non provare mai il controllo scrivendo in un registro che contiene una misura. La guida all’array delle priorità BACnet spiega perché una scrittura BACnet può restare attiva anche dopo che ci si aspetta la sua cessazione.
Verifica la funzione che acquisti
- Usa valori sorgente noti che mettano in evidenza gli errori: un numero negativo, un valore decimale, un contatore elevato e un cambiamento di stato.
- Confronta la lettura alla sorgente con il valore ricevuto, nello stesso istante.
- Ferma il dispositivo sorgente lasciando acceso il gateway. Verifica che il destinatario riconosca il valore come obsoleto anziché come lettura costante.
- Riavvia il gateway. Verifica cosa vede il destinatario prima della prima lettura aggiornata: un valore predefinito, zero o il vecchio valore.
- Se le scritture rientrano nell’ambito del progetto, provale separatamente con il responsabile dell’apparecchiatura.
Edge come traduttore di dati
Edge, sul Gateway ZGW-20, opera come traduttore di dati. Legge dispositivi Zigbee e LoRaWAN, apparecchiature Modbus TCP e RTU, oggetti BACnet/IP e server OPC UA in un unico modello dati, con unità e timestamp per ogni misura. Pubblica poi i dati verso piattaforme energetiche tramite MQTT o HTTP, oppure come registri Modbus TCP per sistemi BMS o SCADA. Considera ogni punto pubblicato come un punto mappato e provalo come descritto sopra. Collegare Edge alla propria piattaforma spiega come Edge invia i dati a una piattaforma.
Domande frequenti
Qual è la differenza tra un gateway di protocollo e un bridge?
Un bridge, o tunnel seriale, trasferisce i byte da un percorso a un altro senza interpretarli: entrambi gli estremi devono usare lo stesso protocollo. Un gateway di protocollo interpreta invece il protocollo e può cambiare il formato dei messaggi, instradare le richieste in base all’indirizzo o tradurre valori in un altro protocollo.
Come funziona un gateway da Modbus TCP a RTU?
Un client Modbus TCP invia la richiesta all’indirizzo IP del gateway e indica l’indirizzo del dispositivo seriale nello unit identifier. Il gateway rimuove l’intestazione MBAP di Modbus, aggiunge l’indirizzo RTU e il CRC, invia la richiesta sul bus seriale e restituisce la risposta su TCP. La mappa dei registri del dispositivo non cambia.
Che cosa fa un gateway da BACnet a Modbus?
Legge oggetti BACnet, per esempio un ingresso analogico, e pubblica i loro valori correnti come registri Modbus, oppure esegue l’operazione inversa. Ogni punto richiede una mappatura: oggetto sorgente, registro, tipo di dato, fattore di scala e unità. Le informazioni di stato e priorità potrebbero non sopravvivere alla traduzione.