Protocolli e dati

Interoperabilità IoT in sistemi multivendor

Come specificare e verificare un sistema IoT multi-vendor: protocolli, registri, unità, tempo, qualità, sicurezza, ripristino e test di accettazione.

Un misuratore di potenza e un sistema di gestione dell'edificio (BMS) possono entrambi supportare Modbus TCP e tuttavia non essere d'accordo sulla base del registro, sull'ordine delle parole di un float a 32 bit, sull'unità e sul segno di esportazione. La connessione funziona, sul dashboard appare un numero e il numero è sbagliato.

Quando due prodotti documentano lo stesso protocollo, trasporto e ruoli compatibili, esiste un percorso di connessione. Questo è sufficiente per definirli compatibili con il protocollo. Nessun test di laboratorio generico deve prima riprodurre la coppia. Il resto è lavoro di progetto: la mappa dei punti, le unità, i timestamp, le regole di qualità e cosa succede quando un collegamento si interrompe. I documenti dei produttori dicono che il percorso esiste. La messa in servizio indica che i punti installati sono corretti. Registra i due separatamente.

Esempio: potenza attiva da un contatore

Un contatore pubblica la potenza attiva trifase. Il BMS deve mostrarlo in kW e utilizzarlo per un allarme di domanda. Ogni guasto riportato di seguito supera comunque un controllo di base "possiamo leggerlo".

  • Indirizzo base. L'elenco dei registri mostra il valore nel registro 3000 come FLOAT32. L'elenco è a base 1, quindi l'indirizzo sulla rete è 2999. Un client che invia 3000 legge la parola bassa di questo valore e la parola alta di quello successivo.
  • Ordine delle parole. Il client assembla i due registri nell'ordine sbagliato. La decodifica seguente mostra il risultato.
  • Unità. Il registro contiene watt e il punto BMS è etichettato kW, quindi 42.700 W vengono visualizzati come 42.700 kW.
  • Quantità. Il registro rappresenta la potenza apparente totale in kVA, non la potenza attiva. Con un fattore di potenza di 0,85 la lettura è alta circa il 18%.
  • Segno. Il contatore segnala l'esportazione come valore negativo. La destinazione tratta tutta la potenza come importazione e porta i valori negativi a zero, quindi l’esportazione scompare.
  • Doppia scala. Il rapporto TA 400/5 A è impostato nel contatore, che riporta già la corrente primaria. L'integratore applica anche un moltiplicatore di 80 nel client.
  • Ora. Dopo una riconnessione, il Gateway contrassegna le letture memorizzate nel buffer con l'ora in cui le ha ricevute, in modo che i vecchi dati sembrino aggiornati.
  • Dato obsoleto. La destinazione mantiene l'ultimo valore e non lo contrassegna come obsoleto. L'allarme della domanda non si attiva mai.
  • Controllo. Una scrittura ottiene un riconoscimento del protocollo, ma l'apparecchiatura la rifiuta, prevale un override locale o l'apparecchiatura ripristina successivamente.

Decodifica del valore

Un float a precisione singola IEEE 754 di 42,7 corrisponde ai quattro byte 42 2A CC CD. Un contatore che invia per primo la parola alta inserisce 0x422A nel primo registro e 0xCCCD nel secondo. L'ordine dei byte e delle parole del client decide cosa leggere:

OrdineByte assemblatiValore decodificato
Parola alta per prima (ABCD)42 2A CC CD42,7
Parole invertite (CDAB)CC CD 42 2A-107.614.544
Byte invertiti in ciascuna parola (BADC)2A 42 CD CC1,73 × 10⁻¹³
Entrambi invertiti (DCBA)CD CC 2A 42-428.165.184

Un numero molto grande o un valore vicino allo zero è il solito segno di un errore nell'ordine. I produttori utilizzano le etichette ABCD in modo incoerente, quindi non fidarti dell'etichetta. Leggere un valore diverso da zero che è possibile vedere anche sul display del misuratore, decodificarlo in ciascun ordine con il convertitore IEEE 754 float o il decoder registro Modbus e mantenere l'ordine corrispondente.

I contatori di energia hanno due ulteriori trappole. Un contatore UINT32 in Wh torna a zero a 4.294.967.295 Wh, circa 4.295 MWh. Un carico continuo di 500 kW lo raggiunge in circa 358 giorni. Il destinatario deve considerare un calo del contatore come un rollover o un azzeramento del contatore, non come un consumo negativo. Un contatore FLOAT32 in kWh perde risoluzione man mano che cresce. A 1.000.000 kWh il passo più piccolo è 0,0625 kWh, quindi un delta di un minuto su un carico di 10 kW (0,167 kWh) risulta pari a 0,125 o 0,1875 kWh. Prendi l'energia dell'intervallo da un registro intero quando il contatore ne offre uno.

Otto livelli di interoperabilità

Gli strati si sovrappongono, ma separandoli si rendono visibili gli spazi vuoti.

StratoDomande da risolvereProve da conservare
Fisico ed elettricoRS-485, Ethernet, impulsi, M-Bus o 4-20 mA? Quali limiti di connettore, piedinatura, riferimento, isolamento, terminazione, polarizzazione, alimentazione del circuito e ambientali si applicano?Disegno del cablaggio, specifiche dell'interfaccia, ispezione dell'installazione e controlli misurati del bus o del circuito
Collegamento e reteQuali impostazioni seriali, indirizzi, configurazione IP, VLAN, routing, rilevamento e percorsi firewall sono richiesti?Piano di indirizzi, regole firewall, test di connessione e acquisizione di pacchetti o bus
Ruoli e profilo del protocolloDa che parte sta il client o il server, il publisher o il subscriber? Quali trasporti, versioni, profili, oggetti, codici funzione e servizi opzionali sono implementati?Documenti di interfaccia per modello e firmware esatti, prove di conformità e ruoli configurati
Sintassi e codificaQuale base di registro, ordine dei byte e delle parole, segno, codifica delle stringhe, tipo di dati, forma dell'array e valore nullo si applicano?Mappa dei punti più richieste grezze ed esempi di risposta con i valori attesi decodificati
SemanticaQuale risorsa, quantità, unità, scala, direzione, stato e calcolo rappresenta ciascun punto?Elenco dei punti approvato, delle regole di unità e di scala, del modello di denominazione e della revisione del calcolo
Tempo e qualitàIl tempo proviene dalla fonte o dal ricevente? Come vengono visualizzati i valori errati, incerti, mancanti, obsoleti, sostituiti e tardivi?Design dell'orologio, mappatura della qualità, limiti di freschezza e risultati di interruzione e riproduzione
Sicurezza e autoritàCome vengono identificati, autenticati e autorizzati i componenti? Chi rilascia, ruota e revoca le credenziali? Quali scritture sono consentite e registrate?Modello di fiducia, ruoli con privilegi minimi, procedura di credenziale, record di audit e test di accesso non riuscito
Operazioni e ciclo di vitaCosa succede durante la perdita del collegamento, il riavvio, il limite della coda, la modifica del firmware, la scadenza del certificato o la sostituzione del prodotto? Chi possiede ogni strato?Test di guasto e ripristino, baseline della versione, termini di supporto e aggiornamento, procedura di backup e rollback

L'architettura Web of Things del W3C mantiene queste preoccupazioni separate. Una descrizione dell'oggetto elenca le interazioni di un dispositivo, gli schemi di dati, i collegamenti di protocollo e i metadati di sicurezza in un unico file leggibile dalla macchina. Ciò riduce il lavoro di rilevamento personalizzato. Il sistema utilizzatore deve comunque supportare lo stesso binding di protocollo e utilizzare correttamente il significato descritto.

Ciò che ciascun protocollo lascia indefinito

Ogni protocollo standardizza parte dello stack. I documenti del produttore e la configurazione del progetto definiscono il resto.

Modbus

La Specifica del protocollo applicativo Modbus definisce codici funzione e quattro tabelle dati: coil, ingressi discreti, registri di ingresso e registri holding. Non dice quale valore si trova a quale indirizzo, o il suo tipo, scala o ordine delle parole. L'elenco dei registri del produttore li definisce.

La notazione 4x aggiunge una trappola di indirizzamento. Il riferimento 40001 indica il registro holding 1, che è l'indirizzo 0 nella richiesta in transito. Alcuni manuali elencano i numeri di registro in base 1 e alcuni elencano gli indirizzi in base zero. Alcuni clienti si aspettano una convenzione, altri un'altra. Edge prevede l'indirizzo in base zero, quindi il riferimento 40001 viene immesso come 0. Il convertitore di indirizzi Modbus effettua la conversione tra le convenzioni. La funzione Modbus e i codici di eccezione decodifica le risposte agli errori.

Anche le scritture presentano insidie. Il codice funzione 06 scrive un registro e il codice funzione 16 ne scrive diversi in un'unica richiesta. Un valore a 32 bit scritto come due richieste FC06 non è atomico: la prima parola può arrivare e la seconda fallire, lasciando un setpoint scritto a metà. Alcuni dispositivi restituiscono una risposta normale a una scrittura che poi ignorano o limitano. Rileggere il registro di destinazione dopo ogni scrittura. Per impostazione predefinita, Edge mette in pausa le letture in tempo reale su una connessione per 2 secondi dopo una scrittura, consentendo al dispositivo di applicare il valore prima della rilettura.

Su RS-485, il tempo del bus limita il conteggio dei punti. A 9600 baud con caratteri a 11 bit, una richiesta e una risposta per un blocco da 60 registri impiegano circa 160 ms sul cavo, prima del ritardo di risposta del dispositivo. La Guida alla messa in servizio dell'RS-485 funziona attraverso un ciclo di polling completo.

BACnet/IP

BACnet definisce oggetti e proprietà. La potenza attiva di un contatore arriva come Present_Value di un oggetto Ingresso analogico, con una proprietà Unità accanto ad esso. Ciò rimuove il problema della decodifica del registro. Rimangono altri problemi: quale istanza di oggetto contiene quale quantità, se ciascuna istanza di dispositivo è univoca sulla rete e se le trasmissioni di rilevamento (Who-Is sulla porta UDP 47808) raggiungono le sottoreti.

Un elenco BTL copre gli elementi costitutivi dell'interoperabilità (BIBB) e i tipi di oggetto nel suo ambito. Non copre l'elenco degli oggetti del dispositivo installato.

Per il controllo, BACnet utilizza un array di priorità con 16 livelli. Una scrittura con priorità 8 rimane in vigore finché qualcosa non scrive NULL con priorità 8 per abbandonarla. Concordare quale sistema possiede ciascun livello di priorità e come rilascia il controllo.

MQTT

MQTT 5.0 definisce topic, proprietà dei messaggi, sessioni e tre livelli di qualità del servizio (QoS). Non definisce cosa significhi un payload. Due sistemi possono entrambi supportare MQTT e non essere d'accordo su gerarchia dei topic, schema, identità dei punti, unità, timestamp, messaggi retained e gestione dei duplicati.

QoS 1 è la consegna almeno una volta. Quando si perde un riconoscimento, il mittente lo invia nuovamente e il subscriber può ricevere lo stesso messaggio due volte. QoS 2 è esattamente una volta, ma solo per un salto: dal client al broker o dal broker all'abbonato. Un subscriber che si abbona con un QoS inferiore riceve il livello inferiore. Nessun livello QoS dimostra che un campione fosse corretto, che ogni campione sia diventato un messaggio o che il database lo abbia memorizzato una volta. Inserisci un timestamp di origine e un ID messaggio o un numero di sequenza nel payload in modo che il destinatario possa scartare i duplicati.

Sparkplug 3.0, pubblicato come ISO/IEC 20237:2023, colma parte del divario per i dati industriali. Definisce lo spazio dei nomi dell'argomento, un payload binario tipizzato e messaggi di nascita e morte. Un nodo edge pubblica un messaggio NBIRTH che elenca ogni metrica che invierà. Registra un messaggio NDEATH come messaggio Will MQTT, quindi il broker lo pubblica se la connessione si interrompe. Gli abbonati sapranno quindi quali valori non sono aggiornati. Sparkplug lascia le unità, le convenzioni di segno e l'identità delle risorse al progetto.

La sicurezza del trasporto è un accordo separato. Vedere MQTTS, MQTT over TLS.

OPC UA

La guida OPC UA vs MQTT vs Modbus confronta i tre protocolli e la guida all'identità del nodo spiega i NodeId e gli spazi dei nomi.

OPC UA trasporta più contesto di un registro o di un messaggio arbitrario. Il suo DataValue accoppia un valore con uno StatusCode, un timestamp di origine e un timestamp del server. I primi due bit dello StatusCode ne indicano la gravità: Buono, Incerto o Cattivo. Una variabile può anche esporre le sue unità ingegneristiche. L'applicazione che lo utilizza deve comunque selezionare il nodo corretto, controllare lo stato prima di utilizzare il valore, mantenere il timestamp pertinente e decidere cosa fare con i valori incerti e errati.

Il client e il server devono inoltre concordare una politica di sicurezza e una modalità di messaggio, ad esempio Basic256Sha256 con SignAndEncrypt, e fidarsi reciprocamente dei certificati applicativi. La convalida del certificato dipende dal tempo, quindi un orologio errato su uno dei due lati interrompe la sessione.

Zigbee e LoRaWAN

La certificazione Zigbee 3.0 significa che un dispositivo si associa a una rete e scambia dati attraverso la Zigbee Cluster Library. Ciò non significa che ogni valore utilizza un cluster standard. Un contatore può segnalare la potenza attraverso il cluster di misurazione elettrica (0x0B04), che porta i propri attributi moltiplicatore e divisore, o attraverso un cluster specifico del produttore che solo il convertitore del produttore decodifica. Prima di acquistare, controlla quali cluster e attributi utilizza il modello. Applicare il moltiplicatore e il divisore riportati dal dispositivo, non una costante fissa.

LoRaWAN standardizza il collegamento radio, il livello MAC e l'attivazione del dispositivo. Il payload dell'applicazione è il formato binario del produttore. Il codec che trasforma quei byte in valori è un software che qualcuno deve gestire, versionare e aggiornare. Una modifica del firmware che altera il layout del payload interrompe il codec senza alcun errore sul server di rete, che continua a fornire gli uplink. Il dispositivo deve inoltre corrispondere ai parametri regionali del sito, ad esempio EU868, e al relativo metodo di attivazione. Utilizzo di Zigbee insieme a LoRaWAN confronta le due reti.

Interoperabilità sintattica e semantica

L'interoperabilità sintattica significa che il destinatario può interpretare la struttura dei dati. L'interoperabilità semantica significa che entrambe le parti attribuiscono ai dati analizzati lo stesso significato.

Questo JSON è valido:

JSON
{
  "point": "P_TOTAL",
  "value": 42.7,
  "unit": "kW",
  "time": "2026-09-19T10:15:00Z",
  "quality": "good"
}

Non è un contratto dati completo. Il ricevente non sa a quale sito, risorsa e confine di misurazione appartiene P_TOTAL. Non sa se il valore è istantaneo o una media di intervallo, se positivo significa importazione o esportazione o come sia stato determinato good. time potrebbe essere il tempo di misurazione, il tempo di calcolo o il tempo di ricezione del Gateway. Mancano anche il rapporto CT e la revisione del calcolo.

ETSI SAREF è un'ontologia per questo problema, con le sue linee guida pubblicate come ETSI EN 303 760. Ogni sistema mantiene il proprio modello di dati e lo associa a concetti condivisi. Un progetto non deve adottare SAREF per utilizzare il metodo: definire ciascun significato una volta, quindi associare ad esso ogni sistema. Le mappature dirette dei nomi dei campi tra ciascuna coppia di sistemi crescono come n(n-1)/2, quindi cinque sistemi necessitano di dieci mappature e dieci sistemi ne richiedono 45.

Tempo e qualità

Definisci l'origine di ogni timestamp. Tieni separati l'istante di misura e quello di ricezione: dopo un'interruzione possono differire di ore. OPC UA SourceTimestamp è assegnato dalla sorgente e dovrebbe indicare l'ultima variazione del valore o dello stato. ServerTimestamp indica quando il server ha ricevuto il valore o sapeva che era corretto. Nessuno dei due identifica automaticamente un nuovo campione fisico o l'arrivo nel database. Verifica il significato dei timestamp della sorgente e mantienilo durante la ritrasmissione; registra separatamente l'istante di ricezione.

Gli orologi vanno alla deriva. Un orologio che guadagna 2 secondi al giorno è avanti di un minuto dopo un mese. Ciò è sufficiente per collocare le letture vicino a un confine nell'intervallo sbagliato di 15 minuti. Sincronizza ogni orologio che stampa i dati sulla stessa sorgente NTP e misura l'offset durante l'accettazione. Anche i controlli dei certificati TLS e OPC UA falliscono quando un orologio è lontano e l'errore sembra quindi un problema di sicurezza.

Imposta una regola di freschezza a destinazione. Una regola praticabile prevede tre intervalli di reporting: a un intervallo di 60 secondi, un valore più vecchio di 180 secondi è obsoleto. Non fare affidamento solo sulla fonte. Edge contrassegna un dispositivo Modbus offline dopo due interrogazioni mancate, con un minimo di cinque minuti. Un punto interrogato ogni secondo può quindi risalire fino a cinque minuti prima che Edge segnali il dispositivo.

I valori sintetici necessitano di un flag che sopravviva all'intero percorso. Edge può colmare brevi lacune ripetendo, azzerando o interpolando i valori e contrassegna quei punti come _synthetic: true. Un database downstream che elimina campi sconosciuti elimina anche il flag e i valori ricostruiti sembrano quindi misurazioni. Disattiva il riempimento delle lacune per fatturazione, allarmi e controllo.

Conformità, certificazione e accettazione del progetto

Ciascuna forma di prova risponde a una domanda diversa.

ProveCosa può stabilireCiò che non stabilisce da solo
Documentazione dell'interfaccia pubblicataUn prodotto o una famiglia denominata implementa il trasporto, il ruolo e il protocollo necessari per un percorso di connessioneLa mappa dei punti del progetto, la configurazione del sito, le prestazioni installate o il comportamento di ripristino
Test di conformitàUn'implementazione soddisfa una suite di test per una specifica e un ambito dichiaratiCorretta interazione con ogni altra implementazione, ovvero idoneità al progetto
Certificazione o elenco indipendenteUn programma riconosciuto ha testato un prodotto e una versione specificati rispetto all'ambito pubblicatoOpzioni esterne a tale ambito, significato dell'applicazione, configurazione del sito o ripristino end-to-end
Test di interoperabilità multi-vendorLe implementazioni testate lavorano insieme per funzioni e condizioni definiteOgni modello, firmware, rete, payload, servizio opzionale o caso di guasto
Test di accettazione in fabbrica o in laboratorioLa configurazione del progetto fornisce risultati registrati in una configurazione controllataEsecuzione dell'installazione, condizioni della rete del sito o funzionamento a lungo termine
Test di accettazione del sitoIl percorso installato soddisfa i requisiti normali e di guasto concordatiCompatibilità dopo una modifica incontrollata

Il Smart Grid Interoperability Framework del NIST considera i test di conformità e di interoperabilità come complementari. Il formato del test di interoperabilità oneM2M richiede che ciascun test dichiari la propria configurazione, le condizioni iniziali, la sequenza di eventi e i risultati attesi. Utilizzare le stesse quattro intestazioni per i test sul sito.

Programma degli appalti

Chiedere a ogni fornitore o integratore di completare lo stesso programma prima di ordinare l'attrezzatura.

ArticoloRisposta al progetto richiesta
FonteProduttore, modello, revisione hardware, firmware, opzione interfaccia e revisione manuale attuale o elenco registri
DestinazioneApplicazione e versione, driver o connettore, ruolo previsto e profilo supportato
ConnessioneInterfaccia fisica, topologia, indirizzamento, impostazioni seriali o di rete e percorso di rete richiesto
Ambito del puntoPunti letti, punti scrivibili, allarmi ed eventi e carico massimo di aggiornamento o polling
Contratto datiIdentità, tipo di dati, codifica, unità, scala, direzione, precisione, intervallo valido e significati di enumerazione
TempoSorgente dell'orologio, disponibilità del timestamp della sorgente, fuso orario, latenza prevista ed età massima
QualitàStati di origine, mappatura delle destinazioni, regole per i dati obsoleti, gestione delle lacune e politica del valore sostituito
ControlloStati consentiti o intervallo, autorità, interblocchi, riconoscimento, rilettura e stato di fallback
SicurezzaIdentità del dispositivo, autenticazione, crittografia, proprietario delle credenziali, privilegio minimo e record di controllo
FallimentoRilevamento delle perdite, buffering, limite della coda, nuovi tentativi, comportamento di duplicazione e ordine, riavvio e risincronizzazione
Ciclo di vitaVersioni supportate, data di fine del supporto firmware, proprietario dell'aggiornamento, avviso di modifica, processo di vulnerabilità, backup, rollback e percorso di sostituzione
AccettazioneProprietario del test, attrezzatura, stimoli, risultati attesi, tolleranze, prove e approvazione

Contrassegna una risposta sconosciuta come sconosciuta. Una cella vuota tende a diventare da un lato un presupposto e dall’altro un impegno.

Test di accettazione in dodici passaggi

Utilizzare l'hardware, il firmware, i documenti di interfaccia e l'applicazione ricevente esatti previsti per il progetto. Cattura i dati grezzi alla fonte, in ciascun sistema intermedio e alla destinazione finale.

  1. Registrare identità e configurazione: modello, numero di serie, firmware, revisione del documento dell'interfaccia, versioni Gateway ed Edge, versione del connettore e un'impronta digitale di configurazione.
  2. Dimostrare il percorso fisico. Ispezionare il cablaggio e la topologia. Controlla le impostazioni seriali e di rete. Mostra che gli endpoint previsti sono quelli che comunicano.
  3. Tracciare ogni punto dalla destinazione al registro, oggetto, canale o messaggio di origine e all'etichetta della risorsa fisica.
  4. Controlla la codifica. Leggi due valori noti diversi da zero per ciascun punto. Confronta base di registro, tipo di dati, segno, ordine di byte e parole, scala ed enumerazioni.
  5. Controlla il significato. Conferma unità, direzione, confine di misurazione e calcolo rispetto a uno strumento di riferimento o una sorgente controllata.
  6. Controlla l'ora. Confronta gli orologi. Introdurre un ritardo noto. Confermare che i dati riprodotti non appaiano aggiornati.
  7. Controllare la qualità e lo stato obsoleto. Causa un errore di origine, un valore non valido e un aggiornamento interrotto. L’applicazione finale deve distinguere ciascuno di essi in modo diverso da uno zero valido.
  8. Testare le scritture consentite. Verifica autorizzazioni, limiti e interblocchi. Registrare la richiesta, la risposta del protocollo, l'effetto osservato dell'apparecchiatura e lo stato finale riportato.
  9. Interrompi ogni collegamento. Scollegare separatamente la connessione sul campo e la connessione successiva. Registra la discovery delle perdite, il trattamento dell'ultimo valore, il buffering, gli allarmi e il comportamento locale.
  10. Ripristina ciascun collegamento. Riconnettiti all'interno e oltre la finestra del buffer. Controlla l'ordine, i duplicati, gli spazi vuoti, i delta dei contatori di energia attraverso lo spazio vuoto e la rimozione dello stato obsoleto.
  11. Riavviare a turno ciascun componente, quindi ripristinare dal backup documentato. Controlla identità, mappature di punti, orologi, credenziali e dati in coda.
  12. Applicare una modifica approvata al firmware o alla configurazione, quindi ripetere i test interessati. Torna indietro se falliscono.

Il record di accettazione per ciascun percorso nomina il modello, la revisione del firmware e della configurazione, l'applicazione e la versione ricevente, i punti e i casi superati, le opzioni non testate, la data, l'osservatore e la persona che ha accettato ogni deviazione. Quando una versione, un profilo, una mappa di punti o un requisito di sicurezza cambiano successivamente, il record mostra quali test ripetere.

Esempio realizzato: PowerLogic PM5000 su Edge

Schneider Electric documenta le interfacce della famiglia PM5000 per modello nel suo materiale della famiglia. I modelli PM5110 e PM5330 dispongono di RS-485 Modbus RTU. Il PM5560 aggiunge Ethernet Modbus TCP. BACnet/IP è disponibile sui modelli PM5560 e PM5563 dal firmware 2.3.0, secondo la nota BACnet/IP di Schneider. Schneider pubblica elenchi di registri Modbus separati per la gamma PM51xx e PM53xx e per la gamma PM55xx, PM56xx e PM57xx.

La guida del dispositivo PM5000 fornisce tre percorsi per accedere a Edge:

  1. Modbus RTU: collegare un modello RS-485 a uno ZMB-31. Lo ZMB-31 è un master Modbus RTU da 300 a 115.200 baud e legge fino a 30 registri. Invia i valori sulla mesh Zigbee, quindi nessun cavo dati torna al gateway.
  2. Modbus TCP: connettere un modello Ethernet alla rete del sito. Configurare Edge come client Modbus con l'indirizzo IP del contatore, la porta 502 e l'identificativo dell'unità.
  3. BACnet/IP: su un PM5560 o PM5563 con firmware 2.3.0 o successivo, configurare il client Edge BACnet/IP per rilevare il contatore e leggerne gli oggetti.

Mettere in servizio un punto prima degli altri. Registrare il numero di catalogo completo e il firmware. Selezionare l'elenco dei registri per quell'intervallo. Controlla se fornisce numeri di registro in base 1 o indirizzi in base zero. Mappa la potenza attiva totale come FLOAT32, leggila sotto carico e confrontala con il display del contatore. Se il sito esporta, controlla il segno durante l'esportazione. Quindi aggiungi i punti rimanenti e imposta l'intervallo di polling e la regola di obsolescenza per l'elenco completo dei punti.

Laddove la directory dei dispositivi elenca un modello di dispositivo Edge per un modello, la mappa dei punti è già scritta. Altrimenti l'integratore lo scrive dalla lista dei registri del costruttore.

Interoperabilità del controllo

Per il monitoraggio, l'accettazione termina quando il valore di destinazione è corretto e aggiornato. Per il controllo è inoltre necessario confermare lo stato dell'apparecchiatura dopo ogni scrittura.

Un comando attraversa queste fasi:

  1. Un richiedente autorizzato crea un comando con un ID, un target, un valore e una scadenza.
  2. Il controller verifica i limiti, la modalità, gli interblocchi e l'autorità corrente.
  3. Il controller invia la scrittura del protocollo.
  4. L'apparecchiatura conferma, rifiuta o va in timeout.
  5. Una rilettura o una misurazione di processo indipendente mostra se si è verificato l'effetto desiderato.
  6. Il sistema registra eventuali successivi override, superamento o perdita di autorità.
  7. Uno stato locale definito si applica quando il richiedente non è disponibile.

Un successo TCP, una pubblicazione MQTT o una risposta Modbus non dimostrano che l'impianto abbia raggiunto lo stato previsto. Edge segnala il riconoscimento del protocollo per una scrittura Modbus e non verifica da solo il valore con una rilettura. L'integrazione deve eseguire la rilettura. Per BACnet, concordare anche il livello di priorità e la procedura di rinuncia, come descritto sopra.

Le funzioni di sicurezza, la protezione e le salvaguardie delle apparecchiature necessitano di una propria progettazione qualificata. Non delegarle a un percorso di monitoraggio.

Standard aperti e vincoli al fornitore

Un feed MQTT è aperto a livello di trasporto. Se il suo payload è un formato binario non documentato o i suoi topic codificano l'identità della risorsa che solo il cloud del fornitore può risolvere, un nuovo fornitore deve ricostruire la mappa dei punti dal nulla. Un protocollo aperto riduce il lock-in solo quando l’acquirente può anche ottenere e riutilizzare:

  • la mappa completa di punti e oggetti;
  • la configurazione del protocollo e del profilo;
  • certificati, identità e procedura di rotazione delle credenziali;
  • esportazioni di dati ed eventi con unità, timestamp e qualità;
  • regole, calcoli e mappature semantiche in forma documentata;
  • backup e una procedura di ripristino testata; e
  • termini di supporto e aggiornamento della sicurezza per tutta la vita del bene.

La manutenzione di un adattatore specifico per un progetto può essere semplice quando vengono documentati input, output, test e proprietario.

NIST IR 8259 Rev. 1, pubblicato nell'aprile 2026, prevede che i produttori forniscano sia le funzioni di sicurezza sia le informazioni necessarie ai clienti per utilizzarle. Registrare la data di fine del supporto firmware e il metodo di rotazione delle credenziali per ciascun componente nel programma di approvvigionamento. Quando un fornitore smette di rilasciare firmware, le vulnerabilità note rimangono aperte. Quando un certificato scade senza procedura di rotazione, il collegamento si interrompe in quella data.

Hardware EpiSensor e Edge

I sensori EpiSensor segnalano tramite Zigbee al gateway ZGW-20, che esegue Edge. Per le apparecchiature di terze parti, Edge assume questi ruoli:

RuoloCosa fa EdgeConfine
Client Modbus TCP e RTUEsegue il polling dei registri configurati da un flusso live di 1 s a intervalli allineati all'orologio di 24 ore. Batch di letture contigue fino al limite del protocollo di 125 registri.Interi a 16 e 32 bit e FLOAT32. Nessun formato a 64 bit né stringhe.
Server ModbusContiene gli ultimi valori Edge mappati nei registri Modbus per il polling di un sistema BMS o SCADA.Per impostazione predefinita è in ascolto sulla porta TCP 10502. Il client imposta il tasso di polling.
Client BACnet/IPScopre dispositivi ed esegue il polling Present_Value di oggetti analogici, binari e multistato.Fino a 16 dispositivi con 64 punti ciascuno. Polling, non change-of-value. Nessun MS/TP o BACnet/SC.
Client OPC UAEsegue il polling dei NodeId configurati a intervalli da 1 s a 24 ore.Fino a cinque endpoint server.
Interfaccia ZMB-31Legge le apparecchiature Modbus RTU su RS-485 e invia i valori sulla mesh Zigbee.Fino a 30 registri per ZMB.

I flussi successivi pubblicano punti selezionati su MQTTS o HTTPS oppure li scrivono su file. I dati e le regole rimangono sul Gateway quando il collegamento Internet è interrotto.

Inizia con la Guida all'integrazione di BMS, SCADA e contatori. Quindi porta il programma di approvvigionamento completato e i documenti di interfaccia attuali a System Builder o a una richiesta tecnica.

Domande frequenti

Cos’è l’interoperabilità nell’IoT?

È la capacità dei dispositivi e dei sistemi selezionati di scambiare informazioni e utilizzarle correttamente per un'attività definita, anche dopo un errore di collegamento o un riavvio. Comprende interfaccia fisica, ruoli di protocollo, codifica e significato dei dati, tempo, qualità, sicurezza e ciclo di vita.

Il supporto per lo stesso protocollo garantisce l'interoperabilità?

No. La corrispondenza del protocollo, del trasporto e del supporto del ruolo significa che esiste un percorso di connessione. Devono ancora essere configurati e verificati in messa in servizio il registro o la mappa degli oggetti, le unità, lo scaling, i timestamp, le regole di qualità ed eventuali scritture.

Qual è la differenza tra test di conformità e di interoperabilità?

Il test di conformità verifica un'implementazione rispetto a una specifica. I test di interoperabilità controllano insieme le implementazioni denominate in una configurazione definita. Nessuno dei due sostituisce un test di accettazione del sito del percorso installato.

Cosa dovrebbe includere un test di accettazione IoT multi-vendor?

Modelli esatti, firmware e configurazione; un confronto decodificato rispetto ad un valore noto per ogni punto; timestamp e gestione obsoleta; scritture consentite con rilettura; ogni collegamento interrotto e ripristinato; e un riavvio e ripristino dal backup.

Gli standard aperti impediscono il vincolo del fornitore?

Solo se l'acquirente è in possesso anche della mappa punti, della configurazione, delle credenziali, dell'esportazione dei dati e di una procedura di ripristino testata. La sostituzione di un trasporto aperto con un carico utile non documentato può comunque essere costosa.