Rilevamento

Lasciare che un driver cerchi dispositivi o punti, che cosa serve e che cosa restituisce ogni scansione, l'avanzamento e l'annullamento, l'aggiunta dei risultati, e l'associazione di un dispositivo Matter via Bluetooth.

Visualizza come Markdown

Per i driver il cui protocollo ammette una vera scansione, Rileva trova i dispositivi o i punti al posto tuo, invece di farteli scrivere. Il comando vive sulla barra di un nodo di driver (e, per Modbus RTU, nella scheda Rileva le unità della pagina di una linea seriale), mentre tutto quello che la scansione consuma vive nella scheda Ambito della scansione della pagina del driver: la barra porta il comando, la scheda porta il suo ambito. Tutto questo richiede Configurare Connector: a un ruolo senza quel permesso non vengono disegnate né la scheda dell'ambito né il pulsante. Una scansione rifiuta mentre una prova tiene la stazione oppure mentre il runtime è fermo. Quando una scansione non restituisce nulla, quello è un risultato della scansione, non una funzione mancante: il pulsante compare solo dove una scansione può produrre risultati.

Quali driver scansionano

Driver Che cosa fa la scansione Che cosa serve
Simulated Elenca il suo catalogo di modelli di dispositivo simulati, ciascuno con un'istanza pronta all'uso e con i suoi canali. Nulla.
Modbus TCP Invia Read Device Identification (funzione 43/14) a host e ID unità espliciti; un'eccezione Modbus convalidata prova l'esistenza di un'unità senza nominarla. Restituisce l'endpoint e nessun tag. La scheda Ambito della scansione.
Modbus RTU Sonda in sequenza un intervallo inclusivo di ID unità sulla tupla salvata di una linea, con la stessa richiesta e senza accedere ai registri. Una linea, disabilitata oppure senza dispositivi abilitati, e un intervallo di ID unità.
OPC UA Interroga un server sugli endpoint che annuncia, poi percorre lo spazio degli indirizzi di ciascun endpoint in cerca di punti. L'indirizzo del server, nella scheda Ambito della scansione della pagina del driver (« Indirizzo del server OPC UA, per esempio opc.tcp://plc-host:4840 »). Senza di esso, o con un indirizzo che non è tale, Rileva diventa grigio e dice che cosa si aspetta.
Rockwell EtherNet/IP Diffonde ListIdentity e percorre i tag di ogni controllore. Nulla.
BACnet Diffonde Who-Is e ascolta le risposte I-Am, e ogni dispositivo compare nel momento in cui risponde. Restituisce l'indirizzo, la porta e il numero di istanza del dispositivo, e nessun tag. Nulla.
Redfish Legge l'indirizzo di servizio che gli viene dato e percorre il suo primo sistema, il suo gestore e il suo telaio. Restituisce il servizio e i suoi punti. La scheda Ambito della scansione.
AVEVA PI Percorre l'elemento AF che gli viene dato e tutto quello che vi sta sotto. Restituisce il servizio e un punto per ogni attributo. La scheda Ambito della scansione.
OCPP Elenca i punti di ricarica attualmente collegati a questa stazione. Nulla.
Matter Elenca i nodi già messi in servizio nella Fabric di questa stazione. Nulla.

Siemens S7, Beckhoff ADS, Mitsubishi MC, IEC 61850, LoRaWAN e HTTP non hanno scansione e non mostrano alcun pulsante. Il pulsante compare solo quando il server integrato è in funzione, perché è il registro dei driver del server a rispondere se una scansione può girare, e compare solo per i driver che questa versione installa: se il registro risponde con un assembly che l'applicazione non riconosce, il pulsante resta assente e la pagina Eventi registra che il driver installato non è quello che questa versione consegna.

Modbus TCP: la scheda Ambito della scansione

La scheda compare sulla pagina del driver Modbus TCP: « Identificazione dei dispositivi in sola lettura; i registri si configurano dopo Aggiungi. »

Campo Valori / predefinito Effetto
Host IPv4 o CIDR Un indirizzo, oppure un CIDR da /24 a /32; l'applicazione non deduce mai la sottorete locale. Ogni indirizzo host dell'intervallo, esclusi l'indirizzo di rete e quello di trasmissione.
Porta TCP Da 1 a 65535; 502. La porta su cui viene chiamato ogni host.
ID unità Valori, elenchi separati da virgola o intervalli crescenti, da 0 a 255 (« 1, 3, 8-16 »); « 1 ». A ogni host viene chiesto ogni ID.
Intervallo minimo tra transazioni (ms) Da 0 a 1000; 0. Il silenzio tra due sondaggi completati sullo stesso host; gli host sono cadenzati in modo indipendente. Vale solo per la scansione: non viene scritto nei dispositivi che aggiungi.

La riga sotto i campi è il bilancio: « 2 indirizzi host × 3 ID unità = 6 sondaggi · limite 256 », con « · 100 ms di silenzio per host. » quando è impostato. Una scansione invia al massimo 256 sondaggi; oltre il bilancio la riga diventa rossa (« Questa scansione invierebbe 512 sondaggi; ridurre l'intervallo di rete o quello degli ID unità a 256 o meno. ») e Rileva diventa grigio. Un dato scritto male viene nominato allo stesso modo (« '10.0.0' non è un indirizzo IPv4 valido a quattro ottetti. », « Il prefisso CIDR deve essere compreso tra /24 e /32. », « Immettere almeno un ID unità (0-255). », « L'intervallo di ID unità '9-3' deve essere crescente. »). Cambiare un qualunque campo dell'ambito scarta i risultati della scansione precedente, perché descrivevano un altro ambito. Vengono scansionati al massimo quattro host per volta, con una connessione per host.

Modbus RTU

La scansione è sulla pagina della linea, non su quella del driver: ID unità iniziale e ID unità finale (da 1 a 247, crescenti, da 1 a 32 per impostazione predefinita) e il loro pulsante Rileva, con una stima del caso peggiore (« 32 sondaggi · fino a circa 32,1 s, compresi 4,011 ms di silenzio prima di ogni sondaggio. »). La scansione apre la porta una sola volta con le impostazioni salvate della linea, sonda a turno ogni unità, e rifiuta una linea attiva invece di interromperla: « Questa linea è in uso. Disabilitarla prima del rilevamento; Ganter Lab non interrompe né riabilita il bus automaticamente. » Una modifica in attesa sulla linea viene salvata prima che la scansione parta; se non è possibile salvarla, la scansione non parte (« Il rilevamento non è partito perché non è stato possibile salvare la modifica della linea seriale. »). La pagina Linee seriali copre il resto di quella scheda.

Redfish e AVEVA PI: il servizio che la scansione legge

Né un servizio Redfish né un PI System si annunciano su una rete che questa stazione possa ascoltare, quindi quelle due scansioni leggono il solo servizio a cui le indirizzi, nella scheda Ambito della scansione della pagina del driver. Redfish prende l'indirizzo del servizio (https://bmc-host, oppure https://bmc-host:8443 dove risponde altrove) e lo legge sempre in HTTPS, perché le credenziali del dispositivo viaggiano a ogni richiesta; un indirizzo che chiede il trasporto in chiaro viene rifiutato dove viene scritto. AVEVA PI prende l'indirizzo del servizio e, dopo un #, l'elemento AF da cui parte il percorso: https://pi-host/piwebapi#\\AF-SRV\Plant\Line 3. Senza quell'elemento non c'è nulla da percorrere, quindi Rileva diventa grigio e dice che cosa si aspetta.

Entrambe le scansioni leggono il servizio senza credenziali, perché girano prima che esista il dispositivo che le porterebbe. Un servizio che autentica ogni richiesta non risponde quindi nulla e la scansione non trova nulla: aggiungi quel servizio a mano, e con lui i suoi punti.

Far girare una scansione

Mentre la scansione gira, la pagina del driver stampa una riga di stato e il Rileva della barra diventa Annulla. Lo stato viene da due fasi indipendenti, il rilevamento degli endpoint e la lettura dei canali: « Scansione degli endpoint… », « Esame dell'endpoint 2… », « Lettura dei canali da opc.tcp://plc:4840… », poi « Trovati 3 dispositivi. »; i driver che riferiscono il proprio avanzamento dicono « Interrogazione del server OPC UA … sugli endpoint annunciati… » e « Trovati 2 endpoint. », « Ricerca dei controllori Rockwell… », « Scansione dei dispositivi BACnet… », « Esame del nodo Matter messo in servizio 1 di 2… », « Scansione di 2 host × 3 ID unità… » oppure « Sondaggio dell'unità 5 (5 di 32)… ». Una scansione che si ferma su un errore del driver conserva quello che ha trovato e lo dice: « La scansione si è fermata con un errore dopo aver trovato 1 dispositivo. L'elenco potrebbe essere incompleto. » Un endpoint i cui canali non è stato possibile leggere resta comunque elencato, con zero tag.

La scansione possiede il driver finché gira: non puoi selezionare un altro nodo (« Annullare il rilevamento prima di lasciare questo driver. »), aggiungere un dispositivo o una linea, abilitare o disabilitare linee, né usare le azioni di riga prima che finisca. I risultati appartengono alla finestra che ha avviato la scansione: un'altra scheda del browser sulla stessa stazione non li vede.

Annullare

Annulla (« Annullamento… » una volta premuto) ferma entrambe le fasi. I candidati preparati per intero prima dell'annullamento restano elencati; l'endpoint i cui canali erano ancora in lettura viene scartato. Lo stato si legge « Rilevamento annullato. » e il registro delle azioni « Rilevamento annullato per OPC UA; 2 risultati completati sono stati conservati. » La scansione resta occupata finché il socket, il client o la sessione temporanei del driver non si sono chiusi; dopo due secondi lo stato dice « In attesa che il driver rilasci le risorse del rilevamento… » invece di far finta che la scansione si sia già fermata, perché un driver non lascia sempre la presa nell'istante in cui glielo si chiede.

I risultati

La scheda Dispositivi rilevati (su una linea, Unità rilevate) elenca una scheda per ogni candidato: un nome modificabile, l'endpoint e « 2 di 5 tag selezionati ». Sotto, una griglia compatta dei tag candidati con una spunta Aggiungi (attiva per impostazione predefinita), Nome del tag, Tipo e Accesso; senza tag, « Nessun tag segnalato. Aggiungere il dispositivo per configurarne i tag nel suo editor. » Nulla viene reso durevole finché non premi Aggiungi dispositivo su una scheda (« Aggiunta… » mentre è in corso): il dispositivo viene creato con un nome unico sul driver e con esattamente i tag spuntati, la scheda lascia l'elenco, la pagina si apre sul dispositivo nuovo, e il registro delle azioni legge « 'Pump' aggiunto con 3 tag. » I tag rilevati arrivano in sola lettura o scrivibili come li ha riferiti il driver, con il loro tipo e con la catena di conversione predefinita; nient'altro viene dedotto.

Un candidato che corrisponde a un dispositivo che hai già viene marcato Già configurato e offre Apri invece di Aggiungi, così una scansione non crea mai un duplicato per sbaglio. Vengono confrontate solo le identità stabili: un'unità Modbus RTU sulla stessa linea, e un id di nodo Matter. Gli altri driver non confrontano nulla, perché un endpoint raggiungibile non prova che si tratti della stessa apparecchiatura.

Chiudi svuota l'elenco, e aspetta la scansione: mentre ne gira una è grigio, perché svuotare l'elenco a metà scansione la annulla anche, e butta via tutto quello che aveva già risposto. Anche selezionare un altro driver, o cambiare l'ambito, lo svuota. Mentre una scansione gira, eliminare un dispositivo o un tag e spostare un dispositivo in una cartella diventano grigi per lo stesso motivo: la scansione tiene il driver, e il comando sarebbe fallito dopo la tua conferma. Su Modbus RTU l'ID unità è una colonna a sé, e un id già configurato sulla linea viene rifiutato quando lo si aggiunge: « L'unità 5 è già configurata su 'Line 1'. »

Associare un dispositivo Matter

Matter mette in servizio il dispositivo fisico via Bluetooth prima che esso esista qui, quindi il primo verbo del driver Matter è Associa dispositivo, non Aggiungi dispositivo, e apre un modulo sulla pagina del driver (il menu Nuovo… e il menu contestuale del driver offrono lo stesso). L'associazione richiede Configurare Connector, una radio Bluetooth LE utilizzabile su questo computer, e una rete Thread esistente di cui hai il diritto di ottenere il dataset. Il modulo lo dice: « Mettere il dispositivo fisico in modalità di associazione prima di continuare. L'associazione usa il Bluetooth di questo computer. »

Campo Che cos'è
Nome del dispositivo Il nome modificabile che il dispositivo avrà nel Connector; « Dispositivo Matter » per impostazione predefinita, con « Luce della cucina » come testo segnaposto.
Codice di configurazione Matter Il codice manuale ufficiale di 11 o 21 cifre stampato sul dispositivo, oppure il payload QR completo che inizia con MT:. Nascosto mentre lo si scrive; Mostra il codice di configurazione lo rivela.
Dataset operativo Thread Il dataset attivo completo della rete Thread, in esadecimale, ottenuto dall'amministratore di rete o dal Border Router; « Ganter Lab non può inventare le credenziali di una rete esistente. » Nascosto mentre lo si scrive; Mostra il dataset lo rivela.

Associa dispositivo diventa attivo quando tutti e tre sono compilati e la stazione accetta le modifiche. Il modulo percorre allora cinque passi, Verifica, Trova, Associa, Entra in Thread e Salva, con una riga di stato sotto di essi: « Verifica del codice di configurazione e del dataset Thread… », « Ricerca del dispositivo via Bluetooth… », « Autenticazione e associazione del dispositivo… », « Invio della configurazione della rete Thread esistente… », « In attesa che il dispositivo entri nella rete Thread… », « Salvataggio del nodo messo in servizio nella Fabric locale… », « Associazione completata. » Annulla viene accettato solo finché non è stato scelto l'annuncio corrispondente (« Ferma prima che il dispositivo venga modificato »); da quel momento in poi il pulsante si legge « Chiusura in sicurezza… », perché il dispositivo è stato modificato e la stazione deve registrare il nodo anche se te ne vai. Chiudi congeda il modulo mentre non è in corso nulla.

Se riesce, il dispositivo viene creato con il solo id di nodo come identità (il codice di configurazione e il dataset non vengono mai memorizzati, registrati né mostrati di nuovo), la pagina si apre su di lui, e il registro delle azioni legge « Dispositivo Matter 'Luce della cucina' associato. » Se il nodo è stato messo in servizio ma non è stato possibile creare il suo dispositivo, il registro delle azioni lo dice e Rileva è la via di recupero. I fallimenti vengono detti chiaramente e il modulo resta aperto per un altro tentativo: un codice o un dataset non validi, nessun adattatore Bluetooth utilizzabile, Bluetooth negato o spento, nessun dispositivo corrispondente (« Metterlo in modalità di associazione, tenerlo vicino e riprovare. »), un codice di configurazione rifiutato, un dispositivo che non è entrato nella rete Thread (il suo nodo resta nella Fabric e può essere recuperato con Rileva), una Fabric che non è stato possibile salvare (quando il dispositivo era già messo in servizio: « Non ripristinare il dispositivo finché il problema di archiviazione della Fabric non è risolto. »), oppure un'altra associazione già in corso. Si esegue un'associazione per volta; mentre gira non puoi lasciare il driver (« Attendere la fine dell'associazione Matter prima di lasciare questo driver. »).

Che cosa il rilevamento non fa

Una scansione non rende mai nulla durevole da sola, non cambia mai un dispositivo esistente, e non si ripete mai da sé. Non deduce sottoreti, mappe di registri o impostazioni seriali, non abilita né disabilita una linea, e non rimuove dall'apparecchiatura i candidati scartati. Viene rifiutata per un driver che il pacchetto non porta. Che cosa contengono i risultati di ciascun driver sta nella pagina di quel driver, sotto Driver.