Versions Compared

Key

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

Aggiornamento versioni

15/12/2021

versionDEVILs
newOCEM_3.4664, 665, 671, 614, 626, 633
newOCEM_3.3ABANDONED (note: some sub-VIs can still have the "_3.3" version in their names)
newOCEM_3.2652, 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
_ethtutti 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.
Di conseguenza la "_newOCEM_3.3" è abbandonata e deprecata
WARNING: alcuni sub-VI possono ancora avere il nome che termina con "_3.3".

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

Image Added

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

Changelog MG1

20-02-2019
04-06-2019
05-06-2019
11-06-2019
13-06-2019
28-06-2019
30-06-2020

PS in test

30-06-2020

QUATB204 e QUATB205 vengono lasciati accesi

  • tolti i DBFiles del DEVIL671 da disarmed
  • modificare DBFiles del DEVIL671

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

18:

06

61

192.168.190.

151

157

C0A8BE9D
20

1

19

2

SABTF2-

002

001

QUAD02

DC Dipole

DC Quadrupole

DH01

QUATB202

DHSTB201

00:90:E8:66:74:

D3

D2

192.168.190.

152

158

C0A8BE9E
18

3

17

4

SABTF2-

002

001

QUAD03

DC Dipole

DC Quadrupole

DH02

QUATB203

DHSTB202

00:90:E8:

63

66:

EB

74:

6A

DC

192.168.190.

153

159

C0A8BE9F
16

5

15

6

SABTF2-

002

003

QUAD04

DC Dipole

DC Quadrupole

DC01

QUATB204

DHSTB203

00:90:E8:

67

63:

16

EB:

07

5B

192.168.190.

154

160

C0A8BEA0
14

7

13

8

SABTF2-

002

003

QUAD05

DC Quadrupole

QUATB205

QUAD01

QUATB201

00:90:E8:

66

67:

74

16:

D5

06

192.168.190.

155

151

C0A8BE97
12

20

11

19

SABTF2-002

QUAD06

DC Quadrupole

QUATB206

QUAD02

QUATB202

00:90:E8:

67

66:

18

74:

58

D3

192.168.190.

156

152

10
C0A8BE98

18

9

17

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

Nuovi 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

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

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

      MG1Ctrl_newOCEM_3.4.vi        Caso EEI in progress

      MG1Cmd_newOCEM_3.4.vi         Caso EEI in progress

      initHWMG1_newOCEM_3.3.vi      Caso EEI già predisposto al tempo

      closeMG1_3.3.vi               Caso EEI già predisposto al tempo

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

Si usa il comando di sistema (modificato per EEI) WAVE:

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.

Il numero di cicli (al set ed a zero) che l'alimentatore dovà eseguire quando è in modalità autodev ON, si impostano con il comando di sistema (modificato per EEI) SET2.

Per tenere le informazioni dinamiche che non sono previste dalla classe MG1 è stato introdotto il typeDef:

.../0_classes/MG1/controlTypes/MG1_EEI_ctrlLibrary/MG1_EEI_Pulsed_Aux.ctl

MG1_EEI_Pulsed_Aux.ctl

che viene tenuto nella globale:

.../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:

<elementName>_AUX

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

DC Quadrupole

QUAD03

QUATB203

00:90:E8:63:EB:6A

192.168.190.153

C0A8BE99

16

15

SABTF2-002

DC Quadrupole

QUAD04

QUATB204

00:90:E8:67:16:07

192.168.190.154

C0A8BE9A

14

13

SABTF2-002

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

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

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


Jira
serverINFN Ticketing System
columnIdsissuekey,summary,issuetype,created,updated,assignee,priority,status,resolution
columnskey,summary,type,created,updated,assignee,priority,status,resolution
maximumIssues20
jqlQuerykey = lnfdcs-56
serverId8087fedc-8816-3706-9e66-78f987f39e0c

Modifiche rispetto alle versioni precedenti


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.
Di conseguenza la "_newOCEM_3.3" è abbandonata e deprecata
WARNING: alcuni sub-VI possono ancora avere il nome che termina con "_3.3".

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

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

modalità di trigger

  • HW trigger
  • software trigger

Si usa il comando di sistema (modificato per EEI) WAVE:

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.

Il numero di cicli (al set ed a zero) che l'alimentatore dovà eseguire quando è in modalità autodev ON, si impostano con il comando di sistema (modificato per EEI) SET2.

Per tenere le informazioni dinamiche che non sono previste dalla classe MG1 è stato introdotto il typeDef:

.../0_classes/MG1/controlTypes/MG1_EEI_ctrlLibrary/MG1_EEI_Pulsed_Aux.ctl

Image Added

MG1_EEI_Pulsed_Aux.ctl

che viene tenuto nella globale:

.../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:

<elementName>_AUX ovvero DHPTB102_AUX

(vedi documentazione alla pagina https://confluence.infn.it/x/cYU2Aw)

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

In arancio: comandi che richiedono una validazione operativa

In verde: comandi debuggati


ONLN
  set online = T/F

When an element is OFFLINE (as a consequence of a ONLN ELELLNNN OFF command), the control is skipped for that element.
As soon as any new command arrives, the element is put back in the ONLINE condition.

BYPS  set bypass = T/F

PUTT  error: notExecutableCmd

PUTT ELELLNNN MG1,<..... flattened cluster .....>

EMSK  set error mask to 0,0

      EMSK <elementName> N,M

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


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>[:<value1>: ... :<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,2,WM,2500:0

given that the sign is not used, we can also use CMSG ELELLNNN 2,WS,2500

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:
Image Added

/u2/dcs/source_solaris/0_classes/uni_mag/lib/buildModbusFrame.vi

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

QMSG  error: notExecutableCmd

INIT  restablish TCP/IP connection with the i-th PS

      WARNING: set slew rate to 50% of MAX      Parlarne con Iungo

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

RESE  send reset

      WARNING: set slew rate to 50% of MAX      Parlarne con Iungo

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

POWR  send global_off

      OFF

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

MODE  send standby/operational            aggiustare tempo di commutazione usando maxCmdExeTime#3.

      MODE <elementName> STBY|OPER

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

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
serverINFN Ticketing System
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId8087fedc-8816-3706-9e66-78f987f39e0c
keyLNFDCS-27

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
serverINFN Ticketing System
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId8087fedc-8816-3706-9e66-78f987f39e0c
keyLNFDCS-35

PSET  load current set register

      MG1Dyn.currentPreSetting <- TRUE

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

SETT  set current and start ramp

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! 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
serverINFN Ticketing System
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId8087fedc-8816-3706-9e66-78f987f39e0c
keyLNFDCS-28

STRG 

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

In verde: comandi debuggati.

RESV  nop

ONLN  set online = T/F

BYPS  set bypass = T/F

PUTT  error: notExecutableCmd

EMSK  set error mask to 0,0

      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

      <value>:<value1>: ... :<valueN>     words [U16] da scrivere

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

SETT  set current and start ramp

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

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

      NOTA: si potrebbe discriminare il paramentro e fargli fare:

      start ramp oppure autodev


WAVE  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

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

Jira
serverINFN Ticketing System
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId8087fedc-8816-3706-9e66-78f987f39e0c
keyLNFDCS-40
EEI 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:

...

1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,SerChan1,0,0,C0A8BE83

Sviluppo del driver

 

Data la somiglianza con il sistema CAENels SY3634, si parte dal driver dei correttori CAENels:

...

Per la tecnica di de-inizializzazione, consultare il codice della closeMG1, case del protocollo "Genesys".

 

Sviluppo di Command e Control

...

Messa in test sul DEVIL697 la mattina del 14-04-2017.


Image Added

Fig. 20170414.1

...

/u2/dcs/source_linux/0_classes/MG1/cmd/libraries/buildPgmTable_fixedTH.vi

Image Added

Fig. 20170331.1

...

Gerarchia del top-level VI MG1Cmd_fixedTH.vi

Image Added

Fig. 20170331.2


che chiama:

Image Added

Fig. 20170331.3


che chiama:

Image Added

Fig. 20170331.4


che chiama:

Image Added

Fig. 20170331.5

...

Gerarchia del top-level VI initHWMG1_fixedTH.vi

Image Added

Fig. 20170331.6


che chiama:

Image Added

Fig. 20170331.7



10-11-2016

...

multiPoll - select (SL, COR) (l’esito verrà preso alla successiva iterazione su quell’elemento).

Image Added

Fig. 20161103.1


Modificata gestione della slow-poll, gestita dal VI

...

un elemento viene selezionato ogni ( beat * N ) cicli di control. Per OCEM E642, mediamente la control esegue circa 500 cicli al minuto e quindi, mettendo beat = ( 200 / N ), si ha una extraFetch ogni  circa 20 secondi.

Image Added

Fig. 20161018.1


Introdotto un "local counter" che si inizializza a zero nel frame di init e poi si incremeta di 1 ad ogni giro. Questo counter viene utilizzato per forzare l'esecuzione delle extraFetch nei primi N giri della control (con N = numero degli elementi).

...

      parserE642_noStatic_eth.vi    (esegue parsing completo e aggiorna dyn)


Image Added

Fig. 20161017.1



17-10-2016

...

Rimossa la richiesta esplicita di SL e COR ogni 10 giri (funzione denominata "slow poll"). La richiesta esplicita viene fatta solo ai primi N giri di control per poter avere le informazioni necessarie ad aggiornare i readouts di stato logico, allarmi, polarità. La struttura originale che cadenzava l'evento di slow poll è stata modificata.

Image Added

Fig. 20161011.1 - Struttura che genera l'evento di slow poll in uso sino alla ver. 3.0

...

WARNING: la GMG1Loader_eth.vi utilizza il Sub-VI "GMG1DynRecoverData.vi" e quindi è strutturalmente diversa da tutte la altre GXXXLoader_eth.

Image Added

Fig. 20160804.1 /u2/dcs/source_linux/0_classes/MG1/database/GMG1DynRecoverData.vi

...

(maxCmdExeTime has elapsed) AND (protocollo is equal to E642)

Image Added

Fig. 20160802.1

...