You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Target releasealpha 1.0
Epic

LNFDCS-121 - Getting issue details... STATUS

Document status
DRAFT
Document owner
Designer
Developers
QA

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

TypeLink / PathNote

git

Hardware description

TypeDescription
ProcessorStandard DANTE virtual machine vldantedev030
Hardware

Agilent digital voltmeter 34411A

800902096C4E: 192.168.190.16  DVM42001    DCTEL002
80090209BD20: 192.168.190.17  DVM42002    DCTPS002
80090209BC28: 192.168.190.18  DVM42003    DCT Accumulatore

I multimetri rispondono anche in http
http://192.168.190.xxx

Programming languages

LanguageRequired Add ons/Plugins/Extensions/Libraries
LabVIEW 12.0.1f5 (32-bit)

Drivers

Instrument I/O > Instr Drivers > Agilent 34401 (nativi in LabVIEW).

Creata directory /u2/dcs/source_linux/3_hell_Drivers/Agilent-34401A/
con esempi d'uso della Agilent.

Configurazione VISA

Le VISA vanno configurate sulla macchina virtuale sulla quale gira il DEVIL723 (vldantedev030).
ATTENZIONE: si deve scegliere VXI-11 Protocol, altrimenti la "Resource Name" non viene come richiesto dai multimetri Keysight e non funziona la connessione.GODCtrl – warnings and fixes.

Configurazione per 34411A

VISA resource: TCPIP0::192.168.190.14::INSTR

Configurazione per 34465A

VISA resource: TCPIP0::192.168.190.16:inst0::INSTR
NOTA: per il modello 34465A, il campo "LAN Device Name" deve essere impostato come "inst0"

#

Title

User Story

Importance

Notes

1





GODCmd – warnings and fixes

#

Title

User Story

Importance

Notes

1







GDCTSta.vi / DEVIL723.DBSta

This global is initialized with data from the DBSta file.

Static fork descriptor
#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, HOMS
range				125 mV, 1 V, 8 V, 64 V, 300 V, Autorange
apertureTime		267 ms, 16.7 ms, 320 ms, 20 ms, 2.5 ms, 100 us, 10 us
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

This global is initialized with data from the DBDyn file.

Dynamic fork descriptor
#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

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.

Bug: durante la visualizzazione della corrente (con la finestra del DCCT sia su e- che su e+), sporadicamente di vede una rilettura a zero in corrispondenza del puntatore. All'aggiornamento successivo il dato a zero non rimane visualizzato e il plot è regolare.
Ipotesi: nel devil, le scritture della dinamica (che contiene il ptr) e del buffer dati avvengono in due frames diversi. La finestra di livello 1 recupera la dinamica ed il buffer il due azioni successive e completamente asincrone con la scrittura.
C'è quindi la possibilità che al momento di costruire il buffer del display con il running pointer, i due dati non siano consistenti, ovvero appartenenti alla stessa acquisizione.
Soluzione: il devil deve scrivere tutta la dinamica insieme al buffer dati e quindi mettere su memcached un cluster composto dal sottocluster del typedef DCTDyn e dal vettore di DBL del buffer.
La finestra del DCCT, quando deve usare dati della dinamica, deve prenderli dal cluster suddetto e non dalla dinamica scritta convenzionalmente.

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/library
siano 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.



  • No labels