Interfacce dei contatori

Gateway di protocollo e bridge trasparente: le differenze

Distingui tunnel seriali, la conversione da Modbus RTU a TCP e la traduzione tra protocolli come BACnet e Modbus, con una prova per ogni funzione.

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

FunzioneCosa cambiaCosa rimane ugualeEsempio
Bridge trasparente (tunnel)Il percorso dei byteProtocollo, formato dei messaggi e indirizziUn server per dispositivi seriali che trasporta byte RS-485 su TCP
Gateway di trasportoFormato dei messaggi e indirizzamentoCodici funzione e significato dei registriDa Modbus TCP a Modbus RTU
Traduttore di datiProtocollo, identificatori, tipi di dato, eventualmente unitàSolo ciò che è definito nella mappaOggetti 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:

CampoEsempio
SorgenteDispositivo 1201, analog-input 3, present-value
DestinazioneHolding register 40101
Tipo di datoint16
Scala e unità0,1 °C: 215 significa 21,5 °C
Valore non valido o fuori servizioPubblicato come −32 768
Regola di aggiornamentoLettura 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

  1. Usa valori sorgente noti che mettano in evidenza gli errori: un numero negativo, un valore decimale, un contatore elevato e un cambiamento di stato.
  2. Confronta la lettura alla sorgente con il valore ricevuto, nello stesso istante.
  3. Ferma il dispositivo sorgente lasciando acceso il gateway. Verifica che il destinatario riconosca il valore come obsoleto anziché come lettura costante.
  4. Riavvia il gateway. Verifica cosa vede il destinatario prima della prima lettura aggiornata: un valore predefinito, zero o il vecchio valore.
  5. 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.