Goals
- improve the stability of the acquisition system of the stored current;
- move the code to a virtual machine;
- get rid of the LEXTEL couple by employing digital voltmeres readable over Ethernet.
Overall strategy
- ---
Repository
Type | Link / Path | Note |
---|---|---|
git | — | — |
Hardware description
Type | Description |
---|---|
Processor | Standard DANTE virtual machine vldantedev030 |
Hardware | Agilent digital voltmeter 34411A 800902096C4E: 192.168.190.16 DVM42001 DCTEL002 DEVIL723 I multimetri rispondono anche in http |
Programming languages
Language | Required Add ons/Plugins/Extensions/Libraries |
---|---|
LabVIEW 12.0.1f5 (32-bit) | DriversInstrument I/O > Instr Drivers > Agilent 34401 (nativi in LabVIEW). Creata directory /u2/dcs/source_linux/3_hell_Drivers/Agilent-34401A/ Configurazione VISALe VISA vanno configurate sulla macchina virtuale vldantedev030 sulla quale girano i DEVIL723 e 724. Configurazione per 34411AVISA resource: TCPIP0::192.168.190.14::INSTR Configurazione per 34465AVISA resource: TCPIP0::192.168.190.16:inst0::INSTR |
# | Title | User Story | Importance | Notes |
---|---|---|---|---|
1 |
GODCmd – warnings and fixes
# | Title | User Story | Importance | Notes |
---|---|---|---|---|
1 |
GDCTSta.vi / DEVIL723.DBSta, DEVIL724.DBSta
This global is initialized with data from the DBSta file.
#DCTEL002
@HCI(S)[(I32),(DBL),DU32,DU32,DBL,DU32:5,DU32:5]
DCT,DCTEL002,250,2,0.01,2000:1000:500:200:100,4:4:4:4:4
@HPE(S)[(DBL),HU32,DI32,DU16,DU16,DU16,DU16,DU16,DU16,DU16,DI32,DI32,DI32,DBL,HU32,DI32:4]
DVM42001,C0A8BE10,0,0,2,3,1,0,1,0,1,1,0,0.203,E0100000,4096:2048:1024:512 chanName DVM42001
boardBaseAdd C0A8BE10
boardNum n.u.
measurementFunction 0=DCV, ACV, HOMSrange 125 mV, 1 V, 8 V, 64 V, 300 V, Autorange
range (new serie) auto, 100 mV, 1 V, 10 V, 100 V, 1000 V → The control is a U16 ring with some legacy values defined; use the new serie of values instead.apertureTime 267 ms, 16.7 ms, 320 ms, 20 ms, 2.5 ms, 100 us, 10 us
apertureTime [ms]→ The control is a U16 ring with some legacy values defined; use a straight integer value in milliseconds instead (Don'
autozero ON, OFF, Once
offsetCompensation OFF, ON
triggerSource Immediate, External, Hold, TTL trig line 0, 1, 2, ..., 7
sampleSource Immediate, Timer, Software, Control register
triggerCount 1
sampleCount 1
triggerDelay 0
samplePeriod 0.203
acquisitionStackArea n.u.
maxInAcquisitionStackArea 4096:2048:1024:512
GGODDyn.vi / DEVIL723.DBDyn, DEVIL724.DBDyn
This global is initialized with data from the DBDyn file.
#DCTEL002 @HCI(S)[(DBL),DI32,DI32,TF,TF,TF,TF,DI32,DBL,DBL,DBL,DBL,DBL,DBL,DBL,DBL:5] DCTEL002,0,0,0,0,0,0,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0:0.0:0.0:0.0:0.0 @HPE(S)[(DBL),HU32:6,DBL,DBL,DBL,TF] DVM42001,0:0:0:0:0:0,0.0,0.0,-2.0E-3,1
DEVIL723.pref, DEVIL724.pref
There are no class specific sections in the DEVIL .pref file
Connessione ethernet
Il multimetro digitale Agilent si connette in Ethernet e viene acceduto tramite le VISA. Questo comporta il dover recuperare la VISA resource o la VISA alias.
Metodo 1
Gli alias delle VISA di ogni macchina, sono memorizzati in:
/usr/local/vxipnp/linux/NIvisa/visaconf.ini
nella consueta modalità dei LabVIEW config file:
......
[ALIASES]
Alias0="'SER48003','ASRL3::INSTR'"
Alias1="'SER48011','ASRL11::INSTR'"
Alias2="'DVM42001','TCPIP0::192.168.190.14::INSTR'"
NumAliases=3
.....
Si possono quindi recuperare con gli operatori:
Open Config Data.vi
Read Key.vi
Close Config Data.vi
ponendo:
section = [ALIASES]
key = Alias...
e poi cercando l'IP nel vettore di Aliases che si ottiene, per filtrare la componente corrispondente al voltmetro Agilent.
Metodo 2
Si usa un alias definito ed univoco, tipo quello delle seriali (p.es. DVM 42 001) e si forza in un campo del DB
Metodo 3 <--- USO QUESTO
Si ricostruisce la "VISA resource name" (e non l'alias) a partire dall'IP come:
- per 34411 TCPIP0::192.168.190.14::INSTR
- per 34465 TCPIP0::192.168.190.14::inst0::INSTR
Si mantengono i typeDefs DCT esistenti. Questo comporta che si mantiene il controllo HPE1326B (il vecchio multimetro digitale HP per VME).
#DCTEL002
@HCI(S)[(I32),(DBL),DU32,DU32,DBL,DU32:5,DU32:5]DCT,DCTEL002,250,2,0.01,2000:1000:500:200:100,4:4:4:4:4@HPE(S)[(DBL),HU32,DI32,DU16,DU16,DU16,DU16,DU16,DU16,DU16,DI32,DI32,DI32,DBL,HU32,DI32:4]
DVM42001,C0A8BE10,0,0,2,3,1,0,1,0,1,1,0,0.203,E0100000,4096:2048:1024:512
L'alias si mette nel campo chanName e l'IP address nel campo boardBaseAdd del controllo HPE1326B della DCTSta (l'indirizzo 192.168.190.14 si scrive in HEX come C0A8BE0E).
initHWDCT.vi
Standardizzato il nome e connector pane.
Messa porzione di codice da esempio che effettua l'inizializzazione.
Rimane da recuperare i valori dalla globale.
Errori da gestire.
Versione in progress.
Testata nella versione temporanea 26-06-2019: ok.
Controls
Data type | Name | Description |
---|---|---|
Indicators
Data type | Name | Description |
---|---|---|
Details
Examples
---
openDCT.vi
Creata solo per completezza. Dentro è vuota.
Testata: ok.
Controls
Data type | Name | Description |
---|---|---|
Indicators
Data type | Name | Description |
---|---|---|
Details
Examples
---
DCTCtrl.vi
Standardizzato il connector pane.
Riscritta sulla base di quella del vecchio devil Apple.
NOTA: Il frame di calcolo del tau era skippato sul DEVIL Apple e quindi non è stato implementato. In previsione di ripristinare il calcolo del Tau sul devil, sono stati copiati nel folder ctrl i due VI attualmente utilizzati a primo livello per il calcolo del Tau (averageCurrent (rinominato come calcTau) e linearTau).
Diversamente dalla versione Apple che faceva tutti e due i DVM ad ogni giro (elemID non usato), questa segue l'elemID e quindi fa un run per e- e poi uno per e+.
ATTENZIONE: Ci sono due case che si indicizzano direttamente con l'elemID ed hanno assegnati: il frame 0 agli elettroni e il frame 1 ai positroni. Questo costringe a mettere nei DBFiles gli elementi nel suddetto ordine: prima il DCT elettroni e poi quello positroni.
Operazione di calibrazione spostata nella control: nella vecchi versione la divisione per il valore di calibrazione e la sottrazione dell'offset era fatta nella finestra, partendo dai dati raw memorizzati su memcached.
Adesso, i valori acquisiti dal DVM [V] sono divisi per "calibration", poi gli viene sottratto "offset" e dopo vengono scritti su memcached.
Quindi adesso su memcached ci sono i valori di corrente convertiti in mA con l'offset già sottratto.
Errori da gestire.
Versione in progress.
Testata nella versione temporanea 26-06-2019: ok.
Controls
Data type | Name | Description |
---|---|---|
Indicators
Data type | Name | Description |
---|---|---|
Details
Examples
---
DCTCmd.vi
Standardizzato il connector pane.
Riscritta sulla base di quella del vecchio devil Apple.
Implementato il solo comando OFCA ELEXXNNN <offset>,A|B
che memorizza nella dinamica offset e calibrationType (F=A, T=B).
Il comando non esegue alcuna azione hardware.
I vecchi comandi RESV, PUTT e SCAL non erano usati nella finestra utente e sono rimasti abbandonati.
ATTENZIONE: i comandi RESV, PUTT e SCAL sono stati comunque lasciati nella GClass&Services per far si che il serviceID (che arriva numerico dal DEVIL) rimanga lo stesso e possa selezionare il corrispondente case all'interno della DCTCmd.vi .
Errori da gestire.
Versione in progress.
Testata nella versione temporanea 07-05-2019: ok.
Controls
Data type | Name | Description |
---|---|---|
Indicators
Data type | Name | Description |
---|---|---|
Details
Examples
---
closeDCT.vi
Creata dalla base.
Messa porzione di codice da esempio che effettua la chiusura.
Rimane da recuperare i valori dalla globale.
Errori da gestire.
Versione in progress.
Testata nella versione temporanea 26-06-2019: ok.
Nota: controllare che i sub-folders:.../DCT/console <--- ok: questo c'è anche in source_solaris.../DCT/tau <--- ok: questo c'è anche in source_solaris.../DCT/librarysiano presenti nella classe DCT su Solaris e siano utilizzati dal livello 1.Se si, buttarli dalla classe DTC di livello 3 / Linux / LV12-SP1
Compressi in tar per il momento.
FATTO.