# 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: il dispositivo e la sua scheda Strumento, il punto e la funzione di un tag, la lettura, la scrittura e ciò che il driver lascia a Logic.

Il driver **Fluke NetDAQ** legge e scrive le unità di acquisizione dati in rete di Fluke: i NetDAQ 2640A
e 2645A, e la 2680 Series, 2680A e 2686A. Ogni dispositivo è uno strumento in rete, e ogni tag è uno dei
suoi punti: un canale analogico e ciò che vi misura (una termocoppia, una tensione continua, una
resistenza, una termoresistenza), una delle sue linee digitali, un relè di un modulo DIO della 2680
Series o il suo totalizzatore. La stazione configura lo strumento a partire dai tag: a ogni connessione
invia la configurazione completa e sostituisce quella che lo strumento aveva, così lo strumento misura
esattamente ciò che dicono i tag della stazione.

Il driver parla con gli strumenti tramite la libreria di Fluke, `NTOOL32.dll`, la stessa su cui è
costruito il driver LabVIEW di questi strumenti, che la stazione distribuisce accanto al driver.
Aggiungere il driver e i suoi dispositivi nella pagina [Connector](connector).

## Prima di cominciare {#before-you-start}

| Cosa | Perché |
| --- | --- |
| Il runtime di Microsoft Visual C++ 2005 a 32 bit sul computer | La libreria di Fluke ne ha bisogno, e Ganter Lab non può includerlo. La stazione verifica da sé se c'è e, finché manca, la pagina del driver, la pagina di ogni dispositivo e l'ultimo errore di ogni dispositivo lo dicono, con i passi di [Installare il runtime di Visual C++ 2005](#installing-the-visual-c-2005-runtime). |
| Lo strumento in rete, nella modalità di rete generale (General), con l'indirizzo IP e il numero di canale base (BCN) impostati sul pannello frontale | La stazione raggiunge lo strumento al suo indirizzo IP sulla porta TCP 4369, e la libreria di Fluke chiama lo strumento con il suo numero di canale base. |
| Un computer alla volta | Uno strumento parla con un solo computer: finché un altro programma (Fluke DAQ, NetDAQ Logger, un programma LabVIEW) lo tiene, la stazione non può aprirlo. |
| Un NetDAQ con software integrato 2.0 o successivo | La libreria di Fluke non configura un NetDAQ più vecchio; la connessione del dispositivo fallisce dicendo che lo strumento va aggiornato. |

Il driver funziona solo su Windows.

## Installare il runtime di Visual C++ 2005 {#installing-the-visual-c-2005-runtime}

La stazione verifica da sé se Windows può caricare la libreria di Fluke, senza aspettare un
dispositivo: la prima volta che la pagina del driver, la pagina di uno dei suoi dispositivi o l'agente
lo chiede, e di nuovo ogni 30 secondi finché il runtime manca. Finché il Connector non è partito, non si
sa se il runtime c'è, e non se ne dice nulla. Finché manca:

| Dove | Che cosa dice |
| --- | --- |
| La pagina del driver | Un avviso di attenzione, « Il runtime di Microsoft Visual C++ 2005 non è installato su questo computer », con i passi qui sotto. Il suo link apre la pagina di Microsoft nel browser del computer. |
| La pagina di ogni dispositivo | Lo stesso avviso. |
| L'ultimo errore di ogni dispositivo | Gli stessi passi, in inglese, come sono scritte le cause proprie del driver. |
| L'agente | `driver_capabilities` li dà sotto `prerequisite`, con `installed` a false. |

Per installarlo:

1. Aprire la pagina di Microsoft [Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC Security Update](https://www.microsoft.com/download/details.aspx?id=26347), quella che l'elenco di Microsoft dei download di Visual C++ supportati indica per Visual C++ 2005.
2. Scegliere il file `vcredist_x86.exe` (2,6 MB), anche su Windows a 64 bit: `vcredist_x64.exe` non funziona, perché la libreria di Fluke è a 32 bit.
3. Eseguirlo come amministratore. Windows può chiedere di riavviare il computer.

Se l'elenco dei programmi installati mostra già « Microsoft Visual C++ 2005 Redistributable », installarlo
comunque: quello presente può contenere solo il runtime C, senza la parte MFC che serve alla libreria di Fluke.

Entro 30 secondi dall'installazione l'avviso scompare e i dispositivi di questo driver si collegano con
la configurazione che hanno, senza riavviare Ganter Lab.

## Dispositivo {#device}

Un dispositivo di questo driver ha il campo **Indirizzo host** della scheda Connessione e, sotto, la
scheda **Strumento**.

| Campo | Significato | Predefinito |
| --- | --- | --- |
| **Indirizzo host** | L'indirizzo IP dello strumento in rete, o un nome che si risolve in un indirizzo IPv4. Non c'è una porta: ogni strumento risponde sulla porta TCP 4369. | vuoto |
| **Canale base** | Il numero di canale base (BCN) impostato sul pannello frontale dello strumento, da 1 a 99. La libreria di Fluke chiama lo strumento con esso, quindi due dispositivi della stazione non ne condividono mai uno. | vuoto |
| **Velocità di scansione** | Lenta, Media o Veloce. Una scansione più lenta integra più a lungo e legge con più risoluzione e meno rumore; una più veloce scansiona più canali al secondo. | Lenta |
| **Intervallo di interrogazione (ms)** | Ogni quanto la stazione legge i tag del dispositivo, a meno che un tag non fissi un intervallo proprio. Lo strumento scansiona all'intervallo più breve tra i tag del dispositivo, così ogni lettura trova una scansione recente. | 1000 |

Un dispositivo nuovo non ha né host né canale base, e la stazione non prova a raggiungerlo finché non li
ha entrambi: la sua riga dice "Indirizzo host non ancora inserito" finché l'host non è scritto, poi "Canale base non ancora inserito"
finché non lo è il canale base, e la sua pagina dice cosa compilare. L'URI di base che l'intestazione
mostra è `netdaq://192.168.0.21/1?speed=slow`: l'host, il canale base e la velocità di scansione.

Il salvataggio di un dispositivo il cui canale base è già di un altro dispositivo NetDAQ della stazione viene
rifiutato, su qualsiasi host: "Il numero di canale base 5 appartiene già al dispositivo Fluke NetDAQ 'Logger'. Scegliere un altro numero di canale base."
Un dispositivo che attende ancora il suo canale base non ne detiene nessuno, e un dispositivo mantiene il proprio numero
quando viene salvato di nuovo.

La scheda **Strumento** mostra anche ciò che lo strumento ha detto di essere l'ultima volta che la
stazione vi si è connessa: il suo **Modello dello strumento** (2640A, 2645A, 2680A o 2686A) e la sua
**Versione del firmware**, quella del suo software integrato, che anche il registro annota. Entrambi dicono
"Non ancora letto" finché lo strumento non si è connesso, e non vengono mai salvati, così lo stesso
dispositivo può puntare oggi a un 2640A e domani a un 2645A.

## Indirizzamento dei tag {#tag-addressing}

### Il punto {#the-point}

La scheda Sorgente di un tag contiene il selettore Punto, cioè ciò che il tag legge sullo strumento, e i
campi di cui quel punto ha bisogno. Sono l'intero indirizzo del tag.

| Punto | Campi | Tipo di dato | Accesso | Valore |
| --- | --- | --- | --- | --- |
| **Canale analogico** | Canale e **Funzione**, con i campi propri della funzione | Double o Float | Sola lettura | La misura, nell'unità della funzione |
| **Linea digitale** | Linea, da 0 a 7 su un NetDAQ, da 0 a 19 sul modulo DIO di una 2680 Series | Boolean | Sola lettura (predefinito) o Lettura e scrittura | Vero finché la linea è alta |
| **Relè** | Relè, da 0 a 7, sul modulo DIO di una 2680 Series | Boolean | Lettura e scrittura (predefinito) o Sola lettura | Vero finché il relè è chiuso |
| **Totalizzatore** | nessuno | Int64 o Double | Sola lettura (predefinito) o Lettura e scrittura | Il conteggio dell'ingresso del totalizzatore |

Un NetDAQ numera i suoi canali analogici da 1 a 20. Una 2680 Series li numera per modulo e canale: il
modulo (da 1 a 6) e poi il canale su di esso (da 01 a 20), quindi il canale 3 del modulo 2 è il 203.
Scegliere un altro punto porta un tipo di dato e un accesso che esso consente, dove il tag ne aveva uno
che non consente.

### La funzione di un canale analogico {#the-function-of-an-analog-channel}

| Funzione | Unità | Campi |
| --- | --- | --- |
| **Tensione continua** | volt | **Portata**: automatica, `90 mV`, `300 mV`, `3 V`, `30 V`, `50 V`, `150/300 V` |
| **Tensione alternata** | volt | **Portata**: automatica, `300 mV`, `3 V`, `30 V`, `150/300 V` |
| **Resistenza** | ohm | **Portata**: automatica, `300 Ω`, `3 kΩ`, `30 kΩ`, `300 kΩ`, `3 MΩ`; **Collegamento** |
| **Frequenza** | hertz | nessuno |
| **Termoresistenza (RTD)** | gradi Celsius | **Resistenza R0 (Ω)**, da 10 a 1010 (100 per una Pt100); **Collegamento**, a quattro fili come predefinito. Una termoresistenza al platino con alfa 0,00385 |
| **Termocoppia** | gradi Celsius | **Tipo di termocoppia**: J, K (predefinito), E, T, R, S, B, C o N, e L o U sulla 2680 Series; **Rileva termocoppia aperta**, attivo come predefinito |
| Corrente | milliampere, o percentuale | **Portata**: `100 mA`, letta in milliampere, o **Da 4 a 20 mA, in percentuale**, letta come 0 a 4 mA e 100 a 20 mA; **Valore dello shunt (Ω)**, la resistenza che la corrente attraversa, da 10 a 250 (250 come predefinito) |
| **Termistore** | gradi Celsius | **Coefficienti di Steinhart-Hart**: A, B e C della scheda tecnica del termistore, ciascuno maggiore di 0 e al massimo 0,1; **Collegamento**. Solo la 2680 Series |

**Collegamento** vale **Due fili** o **Quattro fili**. Un canale a quattro fili prende il canale dieci
più in alto per la sua coppia di misura (il canale 3 prende il 13), quindi solo i canali da 1 a 10 di uno
strumento o di un modulo sono canali a quattro fili, e un tag sul canale di misura non legge nulla di
proprio. Scegliere un'altra funzione porta la portata e il collegamento di quella funzione.

Alcune portate e collegamenti appartengono a una famiglia di stadi di ingresso:

| Stadio di ingresso | Strumenti | Ciò che ha solo lui |
| --- | --- | --- |
| Veloce | il 2645A e il modulo FAI della 2680 Series | la portata `50 V`; una termoresistenza, e le portate `300 Ω` e `3 kΩ`, solo a quattro fili |
| Di precisione | il 2640A e il modulo PAI della 2680 Series | la portata `150/300 V` (300 V sui canali 1 e 11, 150 V sugli altri) |

Il pannello offre ogni portata, perché quale strumento risponde si sa solo quando la stazione si connette.
Un tag che lo strumento connesso non può leggere resta fuori dalla sua configurazione e mostra il motivo
come errore; il resto dello strumento viene configurato e letto.

La riga di sola lettura **Indirizzo di origine (bus)** mostra l'indirizzo che il driver riceve, ad esempio
`ch=3&fn=tc&tc=T&otc=on`, `ch=5&fn=vdc&range=3v`, `ch=1&fn=rtd&r0=100&wires=4`,
`ch=9&fn=current&range=4-20ma&shunt=250`, `dio=0`, `relay=2` o `totalizer`.

## Come la stazione configura lo strumento {#how-the-station-configures-the-instrument}

| Passo | Cosa fa la stazione |
| --- | --- |
| Connessione | Apre lo strumento con il suo numero di canale base e ne legge il modello. |
| Configurazione | Ferma la scansione dello strumento, invia la configurazione costruita dai tag (ogni tag analogico configura il suo canale, ogni altro canale è spento) e riavvia la scansione all'intervallo più breve tra i tag, alla velocità di scansione del dispositivo. |
| Un canale che lo strumento rifiuta | Il canale resta fuori, il suo tag mostra il motivo dello strumento e il resto viene inviato di nuovo. |
| Disconnessione | Ferma la scansione dello strumento e chiude la connessione. |
| Connessione persa | Lo strumento smette di scansionare da solo dopo un po', il che risparmia i relè di un modulo PAI; la stazione lo configura di nuovo quando si riconnette. |

Ciò che era configurato sul pannello frontale dello strumento, o da un altro programma, viene sostituito.
Due tag che configurano lo stesso canale in modo diverso non possono essere letti entrambi: il secondo
mostra l'indirizzo del primo come errore.

## Lettura {#reading}

Lo strumento scansiona con il suo orologio. Una lettura prende l'ultima scansione dello strumento, e una
scansione serve tutti i tag analogici del dispositivo per metà dell'intervallo più breve tra loro; una
2680 Series si legge un modulo alla volta. Le linee digitali, i relè e il totalizzatore si leggono
direttamente dallo strumento, allo stesso modo. Ciò che lo strumento risponde decide ciò che il tag
mostra (vedere [La catena del valore](connector-value-pipeline)):

| Lo strumento | Il tag |
| --- | --- |
| Una misura | Il valore, nell'unità della funzione, prima che gli stadi propri del tag lo convertano |
| Un sovraccarico | Infinito positivo o negativo |
| Una termocoppia aperta, con il controllo attivo | NaN, su cui decide la regola del tag per un valore che non è un numero |
| Ancora nessuna scansione, subito dopo la configurazione | Niente, fino alla prima scansione |
| Nessuna risposta in tempo | Silenzio: la regola del tag per un dispositivo che non ha risposto decide cosa mostra |
| Una connessione persa, o un altro computer che lo tiene | Il dispositivo si riconnette e configura di nuovo lo strumento |

## Scrittura {#writes}

| Punto | Cosa fa una scrittura |
| --- | --- |
| **Linea digitale**, **Relè** | Porta alta la linea o chiude il relè con vero (o 1), e il contrario con falso (o 0). Ogni altro valore viene rifiutato. |
| **Totalizzatore** | Riporta il conteggio a zero. 0 è l'unico valore che accetta; ogni altro viene rifiutato. |
| **Canale analogico** | Niente: un canale analogico si legge soltanto. |

Una scrittura che lo strumento rifiuta torna rifiutata, con il codice di errore di Fluke e le parole
della libreria nel registro.

## La libreria di Fluke e il processo ausiliario a 32 bit {#flukes-library-and-the-32-bit-helper}

La libreria di Fluke è una libreria a 32 bit, che la stazione a 64 bit non può caricare, quindi il driver
gira nel processo ausiliario a 32 bit della stazione, `Lab.Desktop.DriverBridge.exe`, come il driver
[OPC DA](driver-opc-da): il processo ausiliario si avvia la prima volta che un dispositivo del driver si
connette o che la stazione verifica il runtime di Visual C++ 2005, e i suoi dispositivi e tag si leggono, si scrivono e si registrano come tutti gli altri. Se il
processo ausiliario si ferma, i dispositivi mostrano che si è fermato e si riconnettono tramite uno nuovo.

La libreria tiene l'elenco degli strumenti che raggiunge in un file proprio, `ccf.cfg`, accanto al
processo ausiliario (`bridge-x86\ccf.cfg` nella cartella del programma). La stazione scrive quel file da
sé: non c'è nulla da impostarvi, e un file cancellato viene riscritto alla connessione successiva. La
libreria chiama uno strumento alla volta, quindi gli strumenti di una stazione si leggono uno dopo l'altro.

## Limiti da conoscere {#limits-worth-knowing}

| Non gestito | Dove farlo invece |
| --- | --- |
| Gli allarmi propri dello strumento e le sue uscite di allarme | [Allarmi](logic-alarms) sui tag, e azioni di Logic che comandano una linea digitale o un relè |
| Canali calcolati e calcolo sui canali | [Variabili](logic-variables) in Logic |
| La registrazione sulla PC Card del 2686A e la coda di scansioni dello strumento | Lo storico proprio della stazione: un'esecuzione di [Process](process) o un [datalog](process-datalogs) |
| Rilevamento | Nessuno: aggiungere ogni strumento con il suo host e il suo canale base |
| macOS | Il driver funziona solo su Windows |
