Driver

Che cos'è un driver, come si abilitano e si disabilitano, il driver fisso di un dispositivo, la tabella di ogni driver che questo prodotto conosce, che cosa documenta ciascuna pagina di driver, e la nota sui driver che un pacchetto non porta.

Visualizza come Markdown

Un driver è il protocollo che la stazione usa per parlare con una famiglia di apparecchiature: registri Modbus su TCP, un server OPC UA, un PLC Siemens. Ogni dispositivo della pagina Connector appartiene esattamente a un driver, e il driver decide quali campi di connessione il dispositivo mostra, come vengono indirizzati i suoi tag, quali tipi di dato possono portare, se si possono scrivere, se il driver può cercare apparecchiature, e se è la stazione a interrogarli o l'apparecchiatura a spingere verso di lei. Questo gruppo tiene una pagina per driver; questa pagina è quello che hanno in comune.

Il registro

L'insieme dei driver è fisso: viene consegnato con l'applicazione e non si può estendere dalla pagina. La riga Driver in cima alla colonna Comunicazione elenca quelli che questa installazione porta, ciascuno con la sua descrizione, il conteggio dei dispositivi, lo stato di salute e una coppia abilita/disabilita; la tabella e le sue regole sono su L'elenco dei driver e la pagina di un driver.

I driver vengono consegnati abilitati. Disabilitarne uno si limita a nascondere il suo gruppo dall'albero, ed è rifiutato finché il driver ha ancora dispositivi (o, per Modbus RTU, linee seriali), così un dispositivo configurato non può mai sparire dalla vista. Abilitarne uno aggiunge un gruppo vuoto sotto la riga Driver senza dispositivi dell'albero. Aggiungere un dispositivo a un driver abilita quel driver da sé. L'insieme abilitato viene salvato con la configurazione e viaggia con i backup.

Il driver di un dispositivo è fisso

Il driver si sceglie quando si crea il dispositivo: il menu Nuovo… della colonna nomina il driver sotto cui il dispositivo si posa, e Aggiungi dispositivo sulla pagina di un driver crea sotto quel driver. Da quel momento la scheda Dispositivo mostra il driver come testo in sola lettura. Per portare un dispositivo su un altro protocollo, crea un dispositivo nuovo sotto l'altro driver ed elimina il vecchio; l'indirizzo cambia, quindi i riferimenti vanno puntati sui nuovi tag attraverso la scheda Usato da di ciascun tag.

Ogni driver

Driver Parla con
Simulated Segnali sintetici interni all'applicazione, per provare senza hardware.
Modbus TCP Registri Modbus su TCP/IP. Porta predefinita 502.
Modbus RTU Registri Modbus su una linea seriale (RS-485/232).
OPC UA Client OPC Unified Architecture su opc.tcp.
Siemens S7 PLC Siemens S7 attraverso il driver S7comm.
Rockwell EtherNet/IP PLC Allen-Bradley / Rockwell su EtherNet/IP (CIP).
Beckhoff ADS PLC Beckhoff TwinCAT su ADS/AMS.
Mitsubishi MC PLC Mitsubishi attraverso il driver MELSEC MC.
BACnet Dispositivi di automazione degli edifici BACnet/IP.
IEC 61850 IED di sottostazione IEC 61850 su MMS. Non incluso nel pacchetto distribuito (qui sotto).
OCPP Punti di ricarica per veicoli elettrici su OCPP (sono i punti di ricarica a collegarsi a questa stazione).
Redfish API REST Redfish per hardware di server e di centro dati.
Matter Dispositivi domotici Matter (messa in servizio via Bluetooth).
LoRaWAN Sensori LoRaWAN attraverso il server di rete Basics Station integrato.
AVEVA PI Punti di un AVEVA PI System attraverso la PI Web API, in HTTPS per impostazione predefinita.
HTTP Endpoint HTTP/JSON generici interrogati come tag.

Il registro conosce anche OPC DA (il classico OPC Data Access su COM/DCOM), ma in questo prodotto nessun driver lo serve: non viene mai elencato, mai abilitato, e non prende alcun dispositivo.

Che cosa hanno in comune i driver, e dove differiscono

Il Connector disegna un solo editor per ogni driver e lascia decidere al driver quali parti compaiono. Questa tabella dice che cosa aspettarsi prima di aprire la pagina di un driver:

Driver Campi di connessione sulla pagina Dispositivo Indirizzamento dei tag Intervallo di interrogazione Scritture sui tag Rilevamento
Simulated nessuno il nome del tag, più la forma del segnale sì (il suo catalogo)
Modbus TCP Indirizzo host, Porta TCP, ID unità, Intervallo minimo tra transazioni tipizzato: classe e numero di registro sì (scansione di un host o di un CIDR)
Modbus RTU Linea seriale · fissa, ID unità tipizzato: classe e numero di registro sì (sondaggio degli ID unità su una linea)
OPC UA Indirizzo host, Porta TCP, Percorso della risorsa, Nome utente, Password del dispositivo testo libero: id di nodo sì (indirizzo del server)
Siemens S7 Indirizzo host, Telaio / Slot tipizzato: area di memoria, DB, byte, bit no
Rockwell EtherNet/IP Indirizzo host, Slot del telaio testo libero: tag del controllore, più uno scostamento sì (diffusione)
Beckhoff ADS Indirizzo host, Porta TCP, IP locale (AMS) testo libero: simbolo no
Mitsubishi MC Indirizzo host, Porta TCP testo libero: indirizzo di dispositivo fisso a 1 s no
BACnet Indirizzo host, Porta TCP, Identificativo del dispositivo tipizzato: tipo di oggetto e numero di istanza fisso a 1 s sì (Who-Is)
IEC 61850 Indirizzo host, Porta TCP testo libero: percorso MMS fisso a 1 s no
OCPP Identificativo tipizzato: numero del connettore di ricarica; il nome del tag finisce in Meter o Status spinto dal punto di ricarica no (sola lettura) sì (punti di ricarica collegati)
Redfish Indirizzo host, Nome utente, Password del dispositivo testo libero: percorso della risorsa, più un puntatore JSON no
Matter ID nodo · sola lettura il nome del tag è il cluster no (sola lettura) sì (nodi messi in servizio)
LoRaWAN Identificativo (DevEUI del sensore), Server / Chiave (chiave applicativa) tipizzato: canale o scostamento, tipo LPP spinto dal sensore no (sola lettura) no
AVEVA PI Indirizzo host, Porta TCP, Percorso della risorsa, Trasporto di rete, Nome utente, Password del dispositivo, Token di autorizzazione testo libero: percorso PI no
HTTP Indirizzo host, Porta TCP, Percorso della risorsa testo libero: percorso no

Ogni driver restringe inoltre l'elenco del campo Tipo di dato di un tag a quello che sa davvero trasportare; l'elenco esatto sta nella pagina del driver. Dove la tabella dice « fisso a 1 s » il driver ignora l'intervallo configurato, quindi le pagine Dispositivo e Tag nascondono per lui il campo Intervallo di interrogazione. Dove dice « sola lettura », il campo Accesso offre soltanto Sola lettura e il campo di scrittura non compare mai.

Che cosa documenta ogni pagina di driver

Ogni pagina di driver percorre le stesse sezioni nello stesso ordine: i campi di connessione che la scheda Dispositivo mostra e come compongono l'URI di base; come si indirizza un tag (i campi tipizzati oppure il testo libero, e l'indirizzo di bus in sola lettura che il pannello anticipa); i tipi di dato offerti; il rilevamento, quando il driver ce l'ha; le scritture, quando il driver le accetta; e le particolarità del driver (credenziali, certificati, tempi, un server di rete che la stazione fa girare, l'associazione).

Un driver che il pacchetto non porta

Il driver IEC 61850 si compila e gira in un'installazione di sviluppo, ma non entra nel pacchetto distribuito: la sua libreria di protocollo è concessa in licenza con termini che non permettono di consegnarla dentro l'installatore. Il Connector non elenca mai un driver che il pacchetto in esecuzione non porta, e non lo abilita mai. Una configurazione che arriva comunque con quei dispositivi (un backup ripristinato, una configurazione da un'altra macchina) li conserva: la riga del driver resta elencata finché quei dispositivi esistono, la sua descrizione legge « Driver non incluso in questo pacchetto. », e la pagina del driver e ogni dispositivo sotto di lui portano un avviso che dice lo stesso. Quei dispositivi restano non connessi e conservano le loro impostazioni; si possono eliminare, ma non copiare, e sotto quel driver non si può avviare alcun nuovo dispositivo né alcuna scansione di rilevamento. Abilitare la riga viene rifiutato con « 'IEC 61850' non è stato abilitato: Driver non incluso in questo pacchetto. »

Quali driver un pacchetto porta si legge dal registro dei plugin del server integrato, che esiste solo dopo che il server è partito. Fino ad allora ogni driver conta come presente, quindi l'elenco dei driver si assesta qualche secondo dopo l'avvio e poi resta fermo per tutta la sessione, anche mentre il server viene fermato e riavviato.

Il codice di un driver viene caricato una volta sola per tutto il tempo in cui l'applicazione gira. Fermare e riavviare la comunicazione ricostruisce i dispositivi in esecuzione e l'elenco dei driver a partire da quello stesso caricamento, ed è questo che tiene piatta la memoria della stazione lungo una giornata di riavvii. La conseguenza è che sostituire su disco i file di un driver ha effetto solo dopo il riavvio dell'applicazione stessa.