You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/specific_iocs/cryogenics/Oxford-Instruments-Mercury-IPS.md
+144Lines changed: 144 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,3 +26,147 @@ It has not been possible to test all alarm scenarios with the IPS unit and as su
26
26
27
27
The support module exports an aSub record subroutine to facilitate handling of the responses to READ:SYS:ALRM, which is not feasible with a StreamDevice protocol handler.
28
28
29
+
### CONTROL and CONTROL:SP
30
+
These records have been removed from the SCPI variant database
31
+
as the SCPI command set does not manage the panel lock in the same was as legacy and
32
+
Magnet Group advised to remove this feature, as they always want to be able to control
33
+
the IPS via the front panel.
34
+
35
+
### SYSTEM:HWFAULT status is derived from the status bits via a calc record.
36
+
This collates the various possible hardware faults into a single record,
37
+
which in the legacy protocol is a single value (Xm bit 4).
38
+
39
+
### SWEEPMODE:PARAMS and SWEEPMODE:SWEEP
40
+
These records have been removed as they are meaningless and underivable in SCPI protocol.
41
+
42
+
### _SWEEPMODE:SWEEP
43
+
In the legacy version, this used to be the readback from n of Mmn part of Examine command return.
44
+
0 output constant, 1, 2, 3 output changing
45
+
The SCPI protocol doesn't directly offer this, so it has to be derived via the ACTIVITY record (DEV:GRPZ:PSU:ACTN)
46
+
Direction from Alex Jones: "A response of HOLD or CLMP would be equivalent to n=0 in the response of the X command
47
+
in the old protocol. Responses of RTOS or RTOZ would be equivalent to n=1.
48
+
There is no equivalent for the m=0,1 fast/slow ramps, but we do not use this feature anyway."
49
+
50
+
### System Alarms
51
+
System alarms are derived by interrogating the IPS with the "READ:SYS:ALRM?" SCPI command.
52
+
This returns a comma-separated string of active alarms, or an empty string if no alarms are present.
53
+
The string is parsed by an aSub record, which sets the relevant bits in a binary register.
54
+
The bits are mapped to individual status records, which are then used to set the relevant alarms.
55
+
The precise protocol was determined empirically by sending the command and observing the response
56
+
directly from the instrument.
57
+
Discrete records are generated for each board type and each alarm by the
58
+
scpi_system_alarms_discrete.template and substitutions files.
59
+
60
+
The base response is: READ:SYS:ALRM: which may (or may not) be followed by a board identifier,
61
+
a tab character (9) an alarm string and a semicolon.
Alex Jones has looked at some of the differences between the SCPI and legacy command set and has summarised some useful information, as quoted below:
85
+
For the quench and overheat status, these (and many other issues) are dealt with by “Alarms” for the SCPI protocol. See the Magnet board section on p. 162 in Issue 20. These are read by “READ:DEV::PSU:STAT” in some undefined hex format for just the magnet-related alarms, and READ:SYS:ALRM for a list of everything.
86
+
87
+
Some further information re UID naming:
88
+
The UIDs can be either the nickname for the card (which we can set to anything we want) or related to the slot number and signal type.
89
+
From the spreadsheet, the positional UID for the magnet temperature sensor will be MB1.T1, the UID for the level meter will be DB1.L1 and the UID for the magnet supply will be GRPZ for all 4 of the systems.
90
+
The 10T system will have an additional temperature sensor DB8.T1 and a pressure sensor DB5.P1.
91
+
92
+
It appears that:
93
+
devices connected to the motherboard are prefixed: MB1\
94
+
devices connected to a daughterboard are prefixed: DB<slot #>
95
+
96
+
97
+
Conversation between Chris Lawson and Robert Grzyb at Oxford Instruments (18 Feb 2025)
98
+
SCPI Equivalents:
99
+
Yes we are looking for the equivalent between Mercury iPS and iPS-120 control syntax. It may be some things are missing/changed, but wondered if there was a table of all of this somewhere internally.
100
+
I do not think we have a document which succinctly summarises differences between Mercury iPS and the IPS-120 in the context of their remote command sets.
101
+
102
+
Q: What are the new commands to use on the Mercury iPS which are equivalent to the commands from the old iPS-120 below?\
103
+
F17 (Trip Current)\
104
+
F19 (Trip Field)\
105
+
Xmn\
106
+
m = 1 quenched\
107
+
m = 2 overheated
108
+
109
+
Answer from Robert Grzyb at Oxford Instruments:\
110
+
<em>F17/F19\
111
+
I assume that you mean legacy commands R17 (Trip Current) and R19 (Trip Field).
112
+
This functionality is preserved when Mercury iPS remote interface is set to use legacy command set.
113
+
But when using "SCPI-style" command set, this exact information cannot be retrieved directly from the iPS.
114
+
Under certain (limited) circumstances R17/R19 are equivalent to DEV:<UID>:PSU:SIG:PCUR and DEV:<UID>:PSU:SIG:PFLD (note that UID must be a group, not an individual PSU).
115
+
116
+
Xmn
117
+
There is no equivalent for X (examine status) command in the "SCPI-style" command set.
118
+
As far as the first portion ("mn") of the reply to X command is concerned, certain "m" values correspond loosely to the bits of the status word in Mercury iPS group device (READ:DEV:<UID>:PSU:STAT).
119
+
The "n" part is not applicable to the Mercury iPS at all.
120
+
</em>
121
+
122
+
Q: For Xmn, I note that these may be dealt with by alarms which can be read with READ:DEV:<UID>:PSU:STAT in some hex format which is not defined in the manual (p. 162 in Issue 20). Could this be clarified?\
123
+
124
+
Asnwer from Robert Grzyb at Oxford Instruments:\
125
+
<em>
126
+
READ:DEV:<UID>:PSU:STAT\
127
+
It is important to note that the STATus word should be examined at the group device level, not the individual PSU level.\
128
+
It is also very important to mask out (ignore) all other bits in this 32-bit word (i.e. ones not defined in the list given below):\
129
+
</em>
130
+
131
+
| Status | Bit value |
132
+
| ------ | --------- |
133
+
| Switch Heater Mismatch | 00000001 |
134
+
| Over Temperature [Sense Resistor]| 00000004 |
135
+
| Over Temperature [Rundown Resistors]| 00000002 |
136
+
| Over Temperature [PCB]| 00000008 |
137
+
| Calibration Failure | 00000010 |
138
+
| MSP430 Firmware Error | 00000020 |
139
+
| Rundown Resistors Failed | 00000040 |
140
+
| MSP430 RS-485 Failure | 00000080 |
141
+
| Quench detected | 00000100 |
142
+
| Catch detected | 00000200 |
143
+
| Over Temperature [Sense Amplifier]| 00001000 |
144
+
| Over Temperature [Amplifier 1]| 00002000 |
145
+
| Over Temperature [Amplifier 2]| 00004000 |
146
+
| PWM Cutoff | 00008000 |
147
+
| Voltage ADC error | 00010000 |
148
+
| Current ADC error | 00020000 |
149
+
150
+
Q: Also, is it possible to read if the Mercury iPS has tripped due to a low helium level signal from the level card (something like the X command on the old iLM200 which has a low level flag at bit 5 of S)?
151
+
152
+
Answer:\
153
+
<em>
154
+
Low helium level
155
+
156
+
There is no direct indication of the fact that iPS has run the magnet down as a result of helium level dropping below a set threshold.\
157
+
It is possible to read both the helium level (DEV:<UID>:LVL:SIG:HEL) and the configured threshold for low helium alarm (DEV:<UID>:LVL:HEL:LOW).
0 commit comments