Driver

Che cos'è un driver, dove sono elencati i driver e come uno viene aggiunto alla stazione, 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

Il lettore arriva da YouTube e si carica solo quando si avvia la riproduzione.

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 cartella Driver in cima all'albero della colonna Comunicazione apre il catalogo di quelli che questa installazione porta, ciascuno con la sua descrizione, il conteggio dei dispositivi, lo stato di salute e Aggiungi driver, oppure Apri e Rimuovi driver una volta aggiunto; il catalogo e le sue regole sono su L'elenco dei driver e la pagina di un driver.

Ogni driver che il pacchetto porta è pronto all'uso, senza alcun interruttore per accenderlo o spegnerlo: la stazione aggiunge quelli che usa. Sotto la cartella Driver l'albero elenca i driver aggiunti, con o senza qualcosa sotto, così la colonna contiene ciò che la stazione è pronta a leggere. Un driver si aggiunge con Aggiungi driver sulla sua riga del catalogo o nel menu Nuovo… della colonna, e si rimuove con Rimuovi driver sulla sua riga del catalogo, sulla sua barra o nel suo menu del clic destro. Rimuovere non elimina nulla: viene rifiutato finché il driver contiene un dispositivo, una linea seriale, un broker o una cartella, e un driver che ne contiene uno è sempre aggiunto. Una stazione nuova non ha driver aggiunti; una stazione aggiornata da una versione precedente comincia con aggiunti i driver che usa già.

Il driver di un dispositivo è fisso

Il driver si sceglie quando si crea il dispositivo: nel menu Nuovo… della colonna il dispositivo si crea dalla voce del driver stesso, 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

I driver sono raggruppati per famiglia di apparecchiature che raggiungono: gli stessi gruppi, nello stesso ordine, in cui li elencano il catalogo Driver e la voce Aggiungi driver del menu Nuovo… della colonna.

PLC

Driver Parla con
Beckhoff ADS PLC Beckhoff TwinCAT su ADS/AMS.
Mitsubishi MC PLC Mitsubishi attraverso il driver MELSEC MC.
Omron PLC Omron: i controllori CJ, CS e CP per indirizzo di memoria su FINS (UDP, TCP o Host Link su una linea seriale), e i controllori NJ, NX e NY per nome di variabile su EtherNet/IP.
Rockwell EtherNet/IP PLC Allen-Bradley / Rockwell su EtherNet/IP (CIP).
Siemens S7 PLC Siemens S7 attraverso il driver S7comm.

Protocolli industriali

Driver Parla con
BACnet Dispositivi di automazione degli edifici BACnet/IP.
Generic serial and TCP Apparecchiature con un protocollo proprio di testo o di byte, come bilance e lettori di codici a barre, su una linea seriale, in TCP o in UDP.
Modbus RTU Registri Modbus su una linea seriale (RS-485/232), in modalità di trasmissione RTU o ASCII.
Modbus TCP Registri Modbus su TCP/IP, in trama MBAP o come trame RTU per un convertitore seriale-Ethernet. Porta predefinita 502.
MQTT Dispositivi che pubblicano attraverso un broker MQTT esterno, in MQTT semplice o Sparkplug B.
OCPP Punti di ricarica per veicoli elettrici su OCPP (sono i punti di ricarica a collegarsi a questa stazione).
OPC DA Server OPC Data Access classici tramite COM/DCOM, attraverso un processo ausiliario a 32 bit tutto loro.
OPC UA Client OPC Unified Architecture su opc.tcp.
SNMP Apparati di rete che rispondono in SNMP v1, v2c o v3, come gruppi di continuità (unità UPS), PDU, switch e sensori di sala tecnica; con Redfish per i server, copre la sala tecnica.

Strumenti e acquisizione dati

Driver Parla con
Fluke NetDAQ Unità di acquisizione dati Fluke NetDAQ (2640A, 2645A) e 2680 Series (2680A, 2686A), configurate a partire dai tag e lette tramite la libreria di Fluke in un processo ausiliario a 32 bit.
NI-DAQmx Hardware di acquisizione dati di National Instruments (telai cDAQ e i loro moduli, dispositivi USB e PCI Express) tramite il NI-DAQmx installato su questo computer, un campione per lettura.
SCPI instruments Strumenti da banco che parlano SCPI, come multimetri, alimentatori e carichi elettronici, via TCP, su linea seriale, o via USB e GPIB tramite VISA.

Senza fili

Driver Parla con
LoRaWAN Sensori LoRaWAN e concentratori radio attraverso il server di rete Basics Station integrato.
Matter Dispositivi domotici Matter (messa in servizio via Bluetooth).

Web e API

Driver Parla con
AVEVA PI Punti di un AVEVA PI System attraverso la PI Web API, in HTTPS per impostazione predefinita.
HTTP Endpoint HTTP e HTTPS generici interrogati come tag, con una credenziale facoltativa.
Redfish API REST Redfish per hardware di server e di centro dati.

File e database

Driver Parla con
Database Le tabelle del database di un sistema della fabbrica (SQL Server, PostgreSQL, MySQL e MariaDB, SQLite, o qualsiasi database tramite il suo driver ODBC), ogni tag che legge una cella per tabella, colonna e riga oppure esegue una query propria; la cella o un comando proprio del tag scritti dove un tag lo chiede.
File File che un altro programma scrive in una cartella locale o di rete (CSV e testo a colonne, testo libero, JSON, XML), letti un file alla volta o da una cartella di arrivo; righe o file interi scritti per quel programma dove il dispositivo lo consente.

Prove

Driver Parla con
Simulated Segnali sintetici interni all'applicazione, per provare senza hardware.

Il server Modbus non è in questa tabella: non è un driver, ma la stazione stessa che serve i suoi tag e le sue variabili di Logic a PLC, HMI e sistemi di building automation in Modbus TCP, dalla sua riga sotto la cartella Server.

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ì sì sì (il suo catalogo)
Modbus TCP Indirizzo host, Porta, ID unità, Formato della trama (MBAP o RTU), Intervallo minimo tra transazioni tipizzato: classe e numero di registro sì sì sì (scansione di un host o di un CIDR)
Modbus RTU Linea seriale · fissa (la linea fissa la modalità di trasmissione, RTU o ASCII), ID unità tipizzato: classe e numero di registro sì sì sì (sondaggio degli ID unità su una linea)
OPC UA Indirizzo host, Porta, Percorso della risorsa, Nome utente, Password di accesso testo libero: id di nodo sì sì sì (indirizzo del server)
OPC DA Indirizzo host, Server / Chiave testo libero: ID elemento sì sì sì (i server di un computer)
Siemens S7 Indirizzo host, Telaio / Slot tipizzato: area di memoria, DB, byte, bit sì sì no
Rockwell EtherNet/IP Indirizzo host, Slot del telaio testo libero: tag del controllore, più uno scostamento sì sì sì (diffusione)
Beckhoff ADS Indirizzo host, Porta, IP locale (AMS) testo libero: simbolo sì sì no
Mitsubishi MC Indirizzo host, Porta testo libero: indirizzo di dispositivo fisso a 1 s sì no
BACnet Indirizzo host, Porta, Identificativo del dispositivo tipizzato: tipo di oggetto e numero di istanza fisso a 1 s sì sì (Who-Is)
OCPP Identificativo tipizzato: numero del connettore di ricarica; il nome del tag finisce in Meter, Status o Transaction spinto dal punto di ricarica no (sola lettura) sì (punti di ricarica collegati)
Redfish Indirizzo host, Porta, Nome utente, Password di accesso testo libero: percorso della risorsa, più un puntatore JSON sì sì sì (indirizzo del servizio)
Matter ID nodo · sola lettura tipizzato: uscita, cluster e attributo; i tag vengono dal dispositivo sì sì (i valori che il driver sa cambiare) sì (nodi messi in servizio, con i valori che ciascuno pubblica)
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, Percorso della risorsa, Trasporto di rete, Nome utente, Password di accesso, Token di autorizzazione testo libero: percorso PI sì sì sì (elemento AF dopo l'indirizzo del servizio)
HTTP Indirizzo host, Porta, Percorso della risorsa testo libero: percorso sì sì no
MQTT Broker · fisso (il broker tiene host, porta, trasporto e accesso), Protocollo e, in Sparkplug B, gli ID di gruppo, nodo edge e dispositivo testo libero: Topic MQTT, più un percorso del valore dentro un payload JSON, oppure Metrica Sparkplug B consegnato dal broker sì (su un topic di comando, o con un comando Sparkplug B) sì (ascolto su un broker)
Generic serial and TCP Trasporto di rete (Client TCP o Ascolto UDP), Indirizzo host, Porta, oppure la Linea seriale · fissa per un dispositivo su una linea; poi le schede Messaggi e Somma di controllo tipizzato: modalità di lettura, richiesta, filtro dei messaggi e dove sta il valore nel messaggio sì; un tag in ascolto conserva ciò che l'apparecchiatura invia sì (un messaggio di scrittura; non in UDP) no
Omron Indirizzo host, Protocollo (FINS o Tag NJ/NX per nome); su FINS la Porta e la scheda FINS (trasporto, rete, nodi, unità, timeout di risposta); su una linea seriale, la Linea seriale (fissa), l'ID unità (il numero di unità Host Link) e il timeout di risposta testo libero: Indirizzo di memoria (FINS) o Nome della variabile (NJ/NX) sì sì sì (un sondaggio FINS di un PLC, e un broadcast per i controllori NJ/NX)
SCPI instruments Trasporto di rete (TCP (socket LXI) o VISA), Indirizzo host e Porta o la Risorsa VISA, oppure la Linea seriale · fissa per un dispositivo su una linea; poi la scheda Strumento (terminatore, timeout di risposta, conferma di scrittura, comandi di preparazione) testo libero: Interrogazione, più quale valore di una risposta separata da virgole, e un comando di scrittura sì sì (un comando di scrittura, confermato tramite la coda degli errori dello strumento) sì (gli strumenti che VISA elenca, e un sondaggio TCP di un host)
NI-DAQmx nessuno: al suo posto la scheda Dispositivo NI-DAQmx (Nome del dispositivo, e il Prodotto che NI-DAQmx legge) tipizzato: Canale fisico e Misura, con il campo, il cablaggio, la termocoppia o le impostazioni del contatore della misura sì sì (linee di uscita digitale e uscite in tensione) sì (ogni dispositivo che NI MAX conosce, con i suoi canali)
Fluke NetDAQ Indirizzo host; poi la scheda Strumento (Canale base, Velocità di scansione) tipizzato: Punto (un canale analogico e la sua Funzione, una linea digitale, un relè o il totalizzatore) sì; lo strumento scansiona all'intervallo più breve tra i tag del dispositivo sì (linee digitali e relè, e il totalizzatore riportato a zero) no
SNMP Indirizzo host, Porta; poi la scheda Agente SNMP (versione, community o utente SNMPv3 e sicurezza, timeout di risposta, tentativi aggiuntivi) testo libero: OID, in numeri o con il nome standard sì sì (un SET che l'agente accetta; un oggetto standard che la sua MIB dichiara di sola lettura resta di sola lettura) sì (un percorso dei sottoalberi standard di un agente)
File nessuno: al suo posto la scheda Cartella e file (Percorso della cartella, Nome del file o il pattern della cartella di arrivo, Leggere da, Formato del file), poi le schede Testo del file e Scrittura tipizzato: cosa legge il tag (un valore, il file intero o un dato del file) e, per un valore, una colonna e una riga (CSV), una riga e i suoi caratteri (testo libero) o un percorso (JSON, XML) sì sì (su un dispositivo che consente la scrittura: una riga aggiunta, il file intero sostituito o un altro file indicato) sì (un file, quello di un dispositivo o uno scritto)
Database nessuno: al suo posto la scheda Connessione al database (Tipo di database, poi Server del database, Porta, Nome dell'istanza e Nome del database, il File del database, oppure l'Origine dati o testo di connessione), poi la scheda Accesso (Nome utente e Password di accesso, e su SQL Server l'accesso Windows e la Crittografia) tipizzato: come legge il tag (una cella per Tabella, Colonna del valore e Riga da leggere, oppure il Testo della sua query propria) sì sì (la cella che legge, oppure il suo comando di scrittura) sì (le tabelle del database di un dispositivo)

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 Connector non elenca né offre mai un driver che il pacchetto in esecuzione non porta. Una configurazione che arriva comunque con quei dispositivi (un backup ripristinato, una configurazione da un'altra macchina) li conserva: il driver resta elencato, nel catalogo e sotto la cartella Driver, 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.

Quali driver un pacchetto porta si legge dal registro dei driver del Connector, che esiste solo dopo che il Connector è partito. Fino ad allora ogni driver conta come presente, quindi il catalogo si assesta qualche secondo dopo l'avvio e poi resta fermo per tutta la sessione, anche mentre il Connector 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.