Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

- i DBFiles del DEVIL671 sono esposti e configurati sui quadrupoli QUATB201 e QUATB202

IP of QUATB201

...

DEC   192   168   190   151
HEX    C0    A8    BE    97

QUATB202

...

DEC192168190151
HEXC0A8BE97


...

IP of QUATB202
DEC192168190152
HEXC0A8BE
98



Nuova sottoclasse per nuovi alimentatori EEI per Quad., Dip. e Dip. pseudo-pulsato.

Allestimento

Macchina:   vldantedev024 (LabVIEW 2012, SP1)
DEVIL:      671       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:18:58

192.168.190.156

10

9

SABTF2-002

Link of this table:
https://drive.google.com/open?id=1u7TyK1WsR3w2GasDIqW6S-gNXBDvYNkV

Link of another table with the same information:
https://docs.google.com/spreadsheets/d/1n2rS3Ecr308gLilQp7u6ZMFP828-Q82ixltUHv28k68/edit?usp=sharing

...

New elemType descriptors

Quadrupoles DC

  01  01  00  07

| 3 | 2 | 1 | 0 |

byte 3      01 = Type quadrupoli DC

byte 2      01 = unipolare con controllo remoto di cambio di polarità

byte 1      unica interfaccia

byte 0      Protocollo Modbus EEI

Dipoles DC

  02  01  00  07

| 3 | 2 | 1 | 0 |

byte 3      02 = Type dipoli DC

byte 2      01 = unipolare con controllo remoto di cambio di polarità

byte 1      unica interfaccia

byte 0      Protocollo Modbus EEI

Dipolo pseudo-pulsato

  03  00  00  07

| 3 | 2 | 1 | 0 |

byte 3      03 = Type dipolo pseudo-pulsato

byte 2      00 = bipolare

byte 1      unica interfaccia

byte 0      Protocollo Modbus EEI

Connessione ethernet



byte 3byte 2byte 1byte 0
EEI Quadrupoles DC01010007
EEI Dipoles DC02010007
EEI Dipole pseudo-pulsed03000007

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 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

...

@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

...

Si usano i VI della libreria Modbus TCP installati nella vi.lib di LabVIEW.
Il driver eei_CMD_exec.vi è stato sviluppato secondo la stessa struttura dei drivers dei correttori CAENels, dei CAENels Easy Driver e dei Genesys.

Sviluppo di Command e Control

Si parte dalle versioni _newOCEM_3.3.vi create per i CAENels Easy Driver
      MG1CtrlUna volta finite, le versioni _newOCEM_3.4 .vi        Caso EEI in progress      andranno a sostituire le 3.3 dei DEVIL 664 e 665 sulla vldantedev028 e – in seguito – tutte le MG1.



Code Block
MG1Ctrl_newOCEM_3.4.vi     EEI case in progress
MG1Cmd_newOCEM_3.4.

...

vi      EEI case in progress
initHWMG1_newOCEM_3.3.

...

vi   EEI ready
closeMG1_3.3.

...

vi            EEI ready

.../0_classes/MG1/cmd/exeCmd(MG1)_3.4.vi
.../0_classes/MG1/cmd/startCmd-MG1_3.4.vi
.../0_classes/MG1/cmd/closeCmd-MG1_3.3.vi                      EEI ready
.../0_classes/MG1/cmd/bypass-MG1_eth_3.3.vi                    EEI ready
.../0_classes/MG1/cmd/libraries/elemType2InterfaceType_3.3.vi  EEI ready
.../0_classes/MG1/cmd/libraries/SWTCFinalDataCheckE642_3.3.vi  EEI ready
.../0_classes/MG1/cmd/libraries/SWTCSeekLastData_3.3.vi        EEI ready

Anomalie rispetto alla classe MG1 standard

L'alimentatore EEI pulsato DP01, ha degli stati non previsti nella classe MG1:

modalità di trigger

  • HW trigger
  • software trigger

Jira
serverINFN Ticketing System
columnskey

Una 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.

Anomalie rispetto alla classe MG1 standard

L'alimentatore EEI pulsato DP01, ha degli stati non previsti nella classe MG1:

- modalità di trigger

      HW trigger

      software trigger

Jira
serverINFN Ticketing System
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQuerysummary ~ "trig" OR description ~ "trig"
serverId8087fedc-8816-3706-9e66-78f987f39e0c

...

WAVE <elementName> DC|PULSED

- modalità "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.

...

.../0_classes/MG1/RTDBGlobals/GMG1-EEIPulsedAux.vi

che viene aggiornata e scritta su memcached dal VI:

.../0_classes/MG1/ctrl/eei_parser.vi

Questa "dinamica ausiliaria", viene scritta su memcached con la chiave:

...

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):



OFF

STBY

OPER

FAULTY

BAD

soft trigger

-

1

2

3

4

HW trigger

-

5

6

7

4


MG1Ctrl_newOCEM_3.4.vi


.../0_classes/MG1/ctrl/eei_parser.vi

.../0_classes/MG1/ctrl/eei_parseStatusWords.vi

Rimangono i faults da decodificare


MG1Cmd_newOCEM_3.4.vi

Debugging dei comandi per sottoclasse EEI

Jira
serverINFN Ticketing System
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQuerysummary ~ "EEI" OR description ~ "EEI"
serverId8087fedc-8816-3706-9e66-78f987f39e0c

...

      WS|WM       "write single word" or "write multiple words"

            <value>     word [U16] da scrivere

...

Jira
serverINFN Ticketing System
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId8087fedc-8816-3706-9e66-78f987f39e0c
keyLNFDCS-37

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!

SET2  sets the two values for the #OfCycleAtSet and #OfCyclesAtZero

      SET2 <elementName> <#OfCycleAtSet>: <fakeName> <#OfCyclesAtZero>

      where fakeName is any 8 characters string

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

      WAVE <elementName> DC|PULSED

.../0_classes/MG1/cmd/exeCmd(MG1)_3.4.vi

.../0_classes/MG1/cmd/startCmd-MG1_3.4.vi

.../0_classes/MG1/cmd/closeCmd-MG1_3.3.vi                         EEI ready

.../0_classes/MG1/cmd/bypass-MG1_eth_3.3.vi                       EEI ready

.../0_classes/MG1/cmd/libraries/elemType2InterfaceType_3.3.vi     EEI ready

.../0_classes/MG1/cmd/libraries/SWTCFinalDataCheckE642_3.3.vi     EEI ready

.../0_classes/MG1/cmd/libraries/SWTCSeekLastData_3.3.vi           EEI ready

initHWMG1_newOCEM_3.3.vi

EEI ready

closeMG1_3.3.vi

assignee,reporter,priority,status,resolution
serverId8087fedc-8816-3706-9e66-78f987f39e0c
keyLNFDCS-37

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!

SET2  sets the two values for the #OfCycleAtSet and #OfCyclesAtZero

      SET2 <elementName> <#OfCycleAtSet>: <fakeName> <#OfCyclesAtZero>

      where fakeName is any 8 characters string


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

      WAVE <elementName> DC|PULSEDEEI ready

01-02-2019 (for CAENels Easy Driver)

...

Nuovo elemType descriptor

00  00  00  06

...

byte 3byte 2byte 1byte 0
00000006

byte 3      unico tipo
byte 2      bipolare
byte 1      unica interfaccia
byte 0      Protocollo CAENels Easy Driver

...

@HCI(S)[(I32),(DBL),HU32,DBL,DBL,DBL,DBL,DI32,DBL:1:5]
MG1,CHHLLXXX,00000006,......


Connessione ethernet


Questi alimentatori si connettono in Ethernet e quindi abbiamo 2 problemi:

...