-
Notifications
You must be signed in to change notification settings - Fork 2
MercuryiTC
Wiki > The Backend System > Specific Device IOC > Temperature Controllers > Mercury iTC
The Mercury iTC is a configurable temperature controller from oxford instruments ( Manual ).
It contains various slots into each slot a variety of devices can be placed. For the purposes of this document the motherboard is treated as a slot too, it contains a temperature sensor and a heater.
Types of daughter boards are:
- temperature sensor
- Heater
- Auxiliary board (general purpose and stepper motors)
- Pressure sensor
- Cryogen
- GPIB board (communications)
The device should be talked to via serial (RS232 / ISOBUS in OI terms) at a baud rate of 57600. This is variable on the front panel, but only while the device is in local mode (when the box in the bottom left of the home screen doesn't have an orange background).
The configuration screens look like:
Currently, the driver only measures and sets the following:
- Temperature
- He Level
- Pressure
There is a section on each below as well as how to set the communication settings.
To activate a card you must set the related IOC macro. The following macros set the for the possible IOC slot:
Macro | IOC Name |
---|---|
MERCURY_01__TEMP_1 | %MYPVPREFIX%MERCURY_01:1 |
MERCURY_01__TEMP_2 | %MYPVPREFIX%MERCURY_01:2 |
MERCURY_01__TEMP_3 | %MYPVPREFIX%MERCURY_01:3 |
MERCURY_01__TEMP_4 | %MYPVPREFIX%MERCURY_01:4 |
MERCURY_01__LEVEL_1 | %MYPVPREFIX%MERCURY_01:LEVEL:1 |
MERCURY_01__LEVEL_2 | %MYPVPREFIX%MERCURY_01:LEVEL:2 |
MERCURY_01__PRESSURE_1 | %MYPVPREFIX%MERCURY_01:PRESSURE:1 |
MERCURY_01__PRESSURE_2 | %MYPVPREFIX%MERCURY_01:PRESSURE:2 |
etc |
To find out what values these macros should take, connect the mercury IOC and check the "System" tab on the opi, which will list the cards which are currently present.
Example: If the list of Temperature cards displayed on the system tab is ["MB1.T1", "DB1.T1", "DB2.T1"] you should set the following macros:
-
TEMP_1
:MB1.T1
-
TEMP_2
:DB1.T1
-
TEMP_3
:DB2.T1
-
TEMP_4
: (empty string)
-
TEMP
Current temperature -
TEMP:SP
Setpoint for temperature controller -
TEMP:SP:RV
Read back of the set temperature point -
NAME
Name associated with the card
The helium level can be monitored by setting the macro LEVEL_N
to point at the correct vi in a similar fashion to the temperature.
A pressure card can be monitored by setting the macro PRESSURE_N
to point at the correct vi in a similar fashion to the temperature.
In this example, the front panel (home screen) on the Mercury looks like:
NB The device should be in remote mode this is indicated by the i (bottom left) having an orange background. This mercury has 3 temperature sensors, Sample_Rod, VTI_DB6 and PT2_DB7, the VTI has a heater attached to the second temperature. This means it needs:
-
TEMP_1
set to MB1, -
TEMP_2
set to DB6, -
TEMP_3
set to DB7,
The temperature controls are on the 1st and 2nd temperature and so on the first and second tab on the mercury device screen. NB the device screen also needs these macros set.
For info here is a detailed temp loop:
The OPI has macros that relate to the macros set at the IOC level.
- One issue we have seen is that when the Mercury is transferred between instruments, or during some initial configuration, a user will change values like the Baud rate. It's good practice to check the devices settings (baud rate etc).
- Ensure that it is set to remote mode. On the front panel the i, bottom left, should have an orange background.
This may be accompanied by an error in the ioc log:
2019/12/15 16:18:04.417 TE:NDW1799:MERCURY_01:PRESSURE:2:HEATER:VOLT devAsynFloat64 process read error lvDCOMDriver:readFloat64: status=0, function=13, name=HEATER:VOLT, value=0.000000, error=LabVIEW : parameter %p not found in the VI's connector pane. : IDispat
If this is the case, you need to get the latest version of Mercury - Pressure.vi
from sourcesafe. Older versions had two parameters with the same name, which LvDCOM could not cope with correctly.