Aggiornamento versioni
15/12/2021
version | DEVILs |
---|---|
newOCEM_3.4 | 664, 665, 671, 614, 626, 633 |
ABANDONED (note: some sub-VIs can still have the "_3.3" version in their names) | |
newOCEM_3.2 | 652, 655, 647, 650, 659, 672, 683, 682, 696, 697, 695, 692 [!C], 693 [!C], 694 [!C], 691 [!C], 673, 674, 675, 676, 678, 644,627, 635 |
_eth | tutti gli altri DEVILs con classe MG1 |
Note |
---|
Le versioni _newOCEM_3.3 – utilizzate sino al 15/12/2021 sui DEVIL 664 e 665 sulla vldantedev028 – sono state rimpiazzate dalle _newOCEM_3.4. |
Impostazione GMG1Dyn all'avvio del DEVIL
13/12/2021
Il recupero dei valori dinamici da memcached da caricare nella GMG1Dyn all'avvio del DEVIL è svolto nella GMG1Loader_eth.vi dal SubVI
Code Block |
---|
/source_linux/0_classes/MG1/database/GMG1DynRecoverData.vi |
Per evitare disallineamento fra i set e i readout delle polarità, si cambia il valore recuperato da memcached da "polaritySetting" a "outputPolarity".
Si forza quindi l'ultimo valore di "outputPolarity" salvato su memcached nel "polaritySetting" della dinamica.
Nuova sottoclasse per nuovi alimentatori EEI per Quad., Dip. e Dip. pseudo-pulsato.
Allestimento
Macchina: vldantedev024 (LabVIEW 2012, SP1)
DEVIL: 671
VNC: 192.168.198.124:5971
prefs: TCP_DCS port = 6345, idleTime = 100 ms
Type | DESIGN NAME | SYSTEM NAME | MAC ADRESS | IP | IP [HEX] | Cavo | Cavo | RACK |
---|---|---|---|---|---|---|---|---|
Pulsed Dipole | DP01 | DHPTB102 | 00:90:E8:67:18:61 | 192.168.190.157 | C0A8BE9D | 1 | 2 | SABTF2-001 |
DC Dipole | DH01 | DHSTB201 | 00:90:E8:66:74:D2 | 192.168.190.158 | C0A8BE9E | 3 | 4 | SABTF2-001 |
DC Dipole | DH02 | DHSTB202 | 00:90:E8:66:74:DC | 192.168.190.159 | C0A8BE9F | 5 | 6 | SABTF2-003 |
DC Dipole | DC01 | DHSTB203 | 00:90:E8:63:EB:5B | 192.168.190.160 | C0A8BEA0 | 7 | 8 | SABTF2-003 |
DC Quadrupole | QUAD01 | QUATB201 | 00:90:E8:67:16:06 | 192.168.190.151 | C0A8BE97 | 20 | 19 | SABTF2-002 |
DC Quadrupole | QUAD02 | QUATB202 | 00:90:E8:66:74:D3 | 192.168.190.152 | C0A8BE98 | 18 | 17 | SABTF2-002 |
DC Quadrupole | QUAD03 | QUATB203 | 00:90:E8:63:EB:6A | 192.168.190.153 | C0A8BE99 | 16 | 15 | SABTF2-002 |
DC Quadrupole | QUAD04 | QUATB204 |
Changelog MG1
20-02-2019
04-06-2019
05-06-2019
11-06-2019
13-06-2019
28-06-2019
30-06-2020
01-12-2020
PS in test
01-12-2020
Cambiati i PSs sotto test (adesso sono connessi ad un carico e limitati in corrente)
QUATB201 e QUATB202 vengono lasciati accesi
- i DBFiles del DEVIL671 sono esposti e configurati sui quadrupoli QUATB201 e QUATB202
...
Nuova sottoclasse per nuovi alimentatori EEI per Quad., Dip. e Dip. pseudo-pulsato.
Allestimento
Macchina: vldantedev024 (LabVIEW 2012, SP1)
DEVIL: 671
prefs: TCP_DCS port = 6345, idleTime = 100 ms
IPTable: da fare
NAMING DESIGN | Type | NAMING DEFINITIVO | MAC ADRESS | IP | POLARITÀ CAVI | RACK | + | - |
DP01 | Pulsed Dipole | DHPTB102 | 00:90:E8:67:18:61 | 192.168.190.157 | 1 | 2 | SABTF2-001 | |
DH01 | DC Dipole | DHSTB201 | 00:90:E8:66:74:D2 | 192.168.190.158 | 3 | 4 | SABTF2-001 | |
DH02 | DC Dipole | DHSTB202 | 00:90:E8:66:74:DC | 192.168.190.159 | 5 | 6 | SABTF2-003 | |
DC01 | DC Dipole | DHSTB203 | 00:90:E8:63:EB:5B | 192.168.190.160 | 7 | 8 | SABTF2-003 | |
QUAD01 | DC Quadrupole | QUATB201 | 00:90:E8:67:16:06 | 192.168.190.151 | 20 | 19 | SABTF2-002 | |
QUAD02 | DC Quadrupole | QUATB202 | 00:90:E8:66:74:D3 | 192.168.190.152 | 18 | 17 | SABTF2-002 | |
QUAD03 | DC Quadrupole | QUATB203 | 00:90:E8:63:EB:6A | 192.168.190.153 | 16 | 15 | SABTF2-002 | |
QUAD04 | DC Quadrupole | QUATB204 | 00:90:E8:67:16:07 | 192.168.190.154 | 14 | 13 | SABTF2-002 | |
QUAD05 | DC Quadrupole | QUATB205 | 00:90:E8:66:74:D5 | 192.168.190.155 | 12 | 11 | SABTF2-002 | |
QUAD06 | DC Quadrupole | QUATB206 | 00:90:E8:67:1816:5807 | 192.168.190.156154 | C0A8BE9A | 1014 | 913 | SABTF2-002 |
Link of this table:
https://drive.google.com/open?id=1u7TyK1WsR3w2GasDIqW6S-gNXBDvYNkV
DC Quadrupole | QUAD05 | QUATB205 | 00:90:E8:66:74:D5 | 192.168.190.155 | C0A8BE9B | 12 | 11 | SABTF2-002 |
DC Quadrupole | QUAD06 | QUATB206 | 00:90:E8:67:18:58 | 192.168.190.156 | C0A8BE9C | 10 | 9 | SABTF2-002 |
Link of this table:
https://drive.google.com/open?id=1u7TyK1WsR3w2GasDIqW6S-gNXBDvYNkV
Link Link of another table with the same information:
https://docs.google.com/spreadsheets/d/1n2rS3Ecr308gLilQp7u6ZMFP828-Q82ixltUHv28k68/edit?usp=sharing
New elemType descriptors
...
Excerpt from MG1 class documentation
Excerpt Include | ||||
---|---|---|---|---|
|
Ethernet connection
Questi alimentatori si connettono in Ethernet e quindi abbiamo lo stesso problema degli alimentatori Genesys e CAENels Easy Driver.
Anche quì, si usa un canale seriale fake per ogni alimentatore e si mette l'IP nel campo subID2.
P.es.: l'IP 192.168.190.131 si scrive come con 4 HEX come C0A8BE83
Quindi, i DBFiles avranno come subID2
#SER66911
@HCI(S)[DI32,(DBL),HU32,DU32,DU32,HU32,DU32,DU32,(DBL):1]
0,SER66911,0,0,0,0,0,0,DIPLLXXX
@GSC(S)[DU16,DI32,DU16,DU16,DU16,DU16,TF,TF,HU16,HU16,TF,TF,TF,TF,HU16,HU16,HU16,HU16,HU16,
byte 3 01 = Type quadrupole DC, 02 = Type dipole DC, 03 = Type dipole pseudo-pulsed
byte 2 00 = bipolar, 01 = unipolar with remote control of polarity change
byte 1 Interface type (unique in this case ?) TO BE DECIDED: maybe the pseudo-pulsed should be different
byte 0 Protocol Modbus EEI
Ethernet connection
Questi alimentatori si connettono in Ethernet e quindi abbiamo lo stesso problema degli alimentatori Genesys e CAENels Easy Driver.
Anche quì, si usa un canale seriale fake per ogni alimentatore e si mette l'IP nel campo subID2.
P.es.: l'IP 192.168.190.131 si scrive come con 4 HEX come C0A8BE83
Quindi, i DBFiles avranno come subID2
#SER66911
@HCI(S)[DI32,(DBL),HU32,DU32,DU32,HU32,DU32,DU32,(DBL):1]
0,SER66911,0,0,0,0,0,0,DIPLLXXX
@GSC(S)[DU16,DI32,DU16,DU16,DU16,DU16,TF,TF,HU16,HU16,TF,TF,TF,TF,HU16,HU16,HU16,HU16,HU16,(DBL),HU32,HU32,HU32]
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,SerChan1,0,0,C0A8BE83
...
Sviluppo di Command e Control
Si parte dalle versioni _newOCEM_3.3.vi create per i CAENels Easy DriverUna volta finite, le versioni _newOCEM_3.4 andranno a sostituire le 3.3 dei DEVIL 664 e 665 sulla vldantedev028 e – in seguito – tutte le MG1.
Jira server INFN Ticketing System columnIds issuekey,summary,issuetype,created,updated,assignee,priority,status,resolution columns key,summary,type,created,updated,assignee,priority,status,resolution maximumIssues 20 jqlQuery key = lnfdcs-56 serverId 8087fedc-8816-3706-9e66-78f987f39e0c
Modifiche rispetto alle versioni precedenti
Note |
---|
Code Block |
MG1Ctrl_newOCEM_3.4.vi EEI case in progress
MG1Cmd Le versioni _newOCEM_3.3 – utilizzate sino al 15/12/2021 sui DEVIL 664 e 665 sulla vldantedev028 – sono state rimpiazzate dalle _newOCEM_3.4. vi EEI case in progress initHWMG1
" è abbandonata e deprecata |
MG1Ctrl_newOCEM_3.
...
4.vi
...
EEI in progress, CAENels NGPS beta
MG1Cmd_newOCEM_3.4.vi EEI in progress, CAENels NGPS beta
initHWMG1_newOCEM_3.4.vi EEI in progress, CAENels NGPS beta
closeMG1_3.4.vi EEI in progress, CAENels NGPS ready
.../0_classes/MG1/cmd/exeCmd(MG1)_3.4.
...
vi EEI, CAENels NGPS
.../0_classes/MG1/cmd/startCmd-MG1_3.4.
...
vi EEI, CAENels NGPS
.../0_classes/MG1/cmd/
...
bypass-MG1_eth_3.3.
...
vi EEI, CAENels NGPS
.../0_classes/MG1/cmd
...
/
...
libraries/elemType2InterfaceType_3.3.vi EEI
...
, CAENels NGPS
.../0_classes/MG1/cmd/libraries/SWTCFinalDataCheckE642_3.3.vi EEI
...
, CAENels NGPS
.../0_classes/MG1/cmd/libraries/SWTCSeekLastData_3.3.vi EEI
...
, CAENels NGPS
Anomalie rispetto alla classe MG1 standard
L'alimentatore EEI pulsato DP01, ha degli stati non previsti nella classe MG1:
...
- HW trigger
- software trigger
Jira | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Si usa il comando di sistema (modificato per EEI) WAVE:
WAVE <elementName> DC|PULSED
modalità "autodev"
Si usa il comando di sistema (modificato per EEI) WAVE:
WAVE <elementName> DC|PULSED
modalità "autodev"
- autodev ON
- autodev
- autodev ON
- autodev OFF
Dato che non esiste un comando di sistema apposito, si imposta autodev ON con il comando CMSG, mettendo ad "1" il bit 8 della command word #1 (Modbus address 0).
Si esce da autodev con il comando di standby.
...
Questa "dinamica ausiliaria", viene scritta su memcached con la chiave:
<elementName>_AUX ovvero DHPTB102_AUX
(vedi documentazione alla pagina https://confluence.infn.it/x/cYU2Aw)
Note |
---|
Note |
DA FARE: Dopo l'introduzione di questo typeDef, si può rimuovere il metodo di codifica della modalità di trigger dallo stato (come viene fatto nel pulsato Maccaferri): |
...
EMSK <elementName> N,M
CMSG executes a direct Modbus command
<Modbus address>,WS|WM,<value>[:<value1>: ... :<valueN>]
WS|WM "write single word" or "write multiple words"
<value> word [U16] da scrivere
Jira | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
CMSG executes a direct Modbus command. In the EEI sub-class it is also possible to set a busy time (sandglass on magterminal)
<maxCmdExeTime>,<Modbus address>,WS|WM,<value>[<value>:<value1>: ... :<valueN> words [U16] da scrivere
example (current sett at 2.5 A):
<valueN>]
integer maxCmdExeTime: [sec] determines the bysy time (sandglass ON on magTerminal)
integer Modbus address
string WS|WM "write single word" or "write multiple words"
integer or [integer] U16 or array of U16 da scrivere <value>:<value1>: ... :<valueN> words [U16] da scrivere
example (current sett at 2.5 A):
CMSG ELELLNNN 1,CMSG ELELLNNN 2,WM,2500:0
given that the sign is not used, we can also use CMSG ELELLNNN 2,WS,2500
QMSG error: notExecutableCmd
INIT restablish TCP/IP connection with the i-th PS
WARNING: set slew rate to 50% of MAX Parlarne con Iungo
RESE send reset
WARNING: set slew rate to 50% of MAX Parlarne con Iungo
POWR send global_off
OFF
MODE send standby/operational aggiustare tempo di commutazione
MODE <elementName> STBY|OPER
POLA unipolarWithRemoteCtl send polarity aggiustare tempo di commutazione
bipolar error: notExecutableCmd
SSLP set slew rate
PSET load current set register
MG1Dyn.currentPreSetting <- TRUE
example (MODE STBY, MODE OPER):
MODE STBY: CMSG ELELLNNN 5,0,WS,1
MODE STBY: CMSG ELELLNNN 5,0,WS,2
VI for sending Modbus frames with the CMSG command:
/u2/dcs/source_solaris/0_classes/uni_mag/lib/buildModbusFrame.vi
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
QMSG error: notExecutableCmd
INIT restablish TCP/IP connection with the i-th PS
WARNING: set slew rate to 50% of MAX Parlarne con IungoSETT set current and start ramp
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
WARNING: se si setta un valore in polarità negativa, il readout sarà con il segno negativo e quindi la control produrrà un errore di value not reached! RESOLVED
SET2 sets the two values for the #OfCycleAtSet and #OfCyclesAtZero
SET2 <elementName> <#OfCycleAtSet>: <fakeName> <#OfCyclesAtZero>
WARNING: fakeName is mandatory and must be a 8 characters string. As an example, it could be a repetition of <elementName> or any 8 characters dummy string (e.g. "FAKENAME")
STRG send start ramp
MG1Dyn.currentSetting <- MG1Dyn.currentPreSetting
MG1Dyn.currentPreSetting <- 0
STRG <elementName> 0|1
NOTA: si potrebbe discriminare il paramentro e fargli fare:
start ramp oppure autodev
WAVE set the trigger mode. Argument = DC | PULSED
|
RESE send reset
WARNING: set slew rate to 50% of MAX Parlarne con Iungo
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
POWR send global_off
OFF
Jira server INFN Ticketing System columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId 8087fedc-8816-3706-9e66-78f987f39e0c key LNFDCS-33
MODE send standby/operational aggiustare tempo di commutazione usando maxCmdExeTime#3.
MODE <elementName> STBY|OPER
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
POLA unipolarWithRemoteCtl set polarity
20/05/2022 - Change in POLA Executor for EEI sub-class.
Given that the EEI PSs doesn't directly switch from one polarity to the opposite one, the startCmd code that executes the POLA command has been changed. Now it send the modbus command "go to polarity open" before the actual modbus command "go to polarity X".
bipolar error: notExecutableCmd
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
SSLP set slew rate
NOTE: the power supply must stay in STANDBY state to accept the SSLP command.
Specifications for quadrupoles ask for a ramp rate setting from 1 to 10 [A/s] so that the raw setting range should be (10,100). Conversely, the accepted raw range is (10,290), with lower and higher values forced to 10 and 290. The raw setting range for quadrupoles seems wrong: it should be (10,100) and not (10,290). It is not clear what happens for raw settings between 101 and 290.
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
PSET load current set register
MG1Dyn.currentPreSetting <- TRUE
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
SETT set current and start ramp
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
WARNING: se si setta un valore in polarità negativa, il readout sarà con il segno negativo e quindi la control produrrà un errore di value not reached! RESOLVED
SET2 sets the two values for the #OfCycleAtSet and #OfCyclesAtZero
SET2 <elementName> <#OfCycleAtSet>: <fakeName> <#OfCyclesAtZero>
WARNING: fakeName is mandatory and must be a 8 characters string. As an example, it could be a repetition of <elementName> or any 8 characters dummy string (e.g. "FAKENAME")
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
STRG send start ramp
MG1Dyn.currentSetting <- MG1Dyn.currentPreSetting
MG1Dyn.currentPreSetting <- 0
STRG <elementName> 0|1
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
NOTA: si potrebbe discriminare il paramentro e fargli fare:
start ramp oppure autodev
WAVE set the trigger mode. Argument = DC | PULSED
WAVE <elementName> DC|PULSED
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
...
01-02-2019 (for CAENels Easy Driver)
...