...
Table of Contents:
Table of Contents |
---|
...
Introduction
Instec (https://instec.com/) thermal controllers and liquid nitrogen (LN2) pumps are used as part of the KPF CCD thermal control system (see CCD Thermal Control System).
A thermal sensor within the cold head is monitored by the mK2000B controller, which then calls for more cooling (by increasing the speed of the pump to draw more LN2 through the system), or for more heating (by increasing the power going to the heater element within the cold head). Cooling or heating needs are determined by comparison against the desired temperature set-point, and the response of the system is tuned via PID control parameters.
The mK2000B controller and LN2-SYS pump are standard Instec products. The cold head was custom-designed by Instec for the KPF system.
...
Relevant Devices
Description | Qty | Source | Part NumberIP Address Link | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Green CCD Cold Head | 1 | Instec | mK2000 | Red CCD Cold Head | 1 Temperature Controllers (Green and Red) | 2 | Instec | mK2000 | Green LN2 Pump | 1mK2000B | ||
LN2 Pumps (Green and Red) | 2 | Instec | LN2-SYS | N/A | Red LN2 Pump | 1 | Instec | LN2-SYS | ||||
N/A Cold Heads (Green and Red) | 2 | Instec | Custom for KPF |
...
Relevant Functional Block Diagram
...
Software Actions
...
Action
...
Notes
...
Read telemetry (Green)
...
Continuously running
...
Read telemetry (Red)
...
Operational Mode: Cold (Green)
...
Operational mode of CCD temperature maintained at cold temperature set point.
...
Operational Mode: Cold (Red)
...
Engineering Mode: Warm (Idle) (Green)
...
Engineering mode for idle case of warm CCD under no temperature control.
...
Engineering Mode: Warm (Idle) (Red)
...
Engineering Mode: Cool Down (Green)
...
Engineering and maintenance only. Controlled ramp of cold head temperature from warm to cold.
...
Engineering Mode: Cool Down (Red)
...
Engineering Mode: Warm Up (Green)
...
Engineering and maintenance only. Controlled ramp of cold head temperature from cold to warm.
...
Engineering Mode: Warm Up (Red)
...
Engineering Mode: Set PID (Green)
...
Engineering and maintenance only. Uploads a PID parameter table to the device.
...
Engineering Mode: Set PID (Red)
Operational Modes
Link to Instec tab within KPF Operational and Engineering Modes Spreadsheet
Required Adjustable Settings
...
Setting
...
When Needed
...
Notes
...
Green Channel Instec
...
Build
...
Observing
...
Maintenance
...
Green PID Parameters
...
YES
...
NO
...
MAYBE
...
Instec app can save PID parameters to a .csv file. Likely convenient to use same format. Used with this command:
Code Block |
---|
TEMP:SPID |
Verified with this command:
Code Block |
---|
TEMP:GPID |
...
Green Heating/cooling status
...
YES
...
NO
...
MAYBE
...
Values: 0=Heating Only, 1=Heating and Cooling, 2=Cooling Only
Change between different modes with
Code Block |
---|
TEMP:CHSW |
command.
...
Green Cold Temperature Set Point
...
YES
...
NO
...
MAYBE
...
Temperature in degrees C.
Used for the following commands:
Code Block |
---|
TEMP:HOLD |
Code Block |
---|
TEMP:RAMP |
...
Green Warm Temperature Set Point
...
YES
...
NO
...
MAYBE
...
Temperature in degrees C.
Used for the following commands:
Code Block |
---|
TEMP:HOLD
TEMP:RAMP |
...
Green Cool-down Rate
...
YES
...
NO
...
MAYBE
...
Temperature change rate of degrees C per minute.
Note this value is positive-only and the mK2000 infers the direction based on current and desired temperature.
Used for the RAMP command:
Code Block |
---|
TEMP:RAMP |
...
Green Warm-up Rate
...
YES
...
NO
...
MAYBE
...
Temperature change rate of degrees C per minute
Note this value is positive-only and the mK2000 infers the direction based on current and desired temperature.
Used for the RAMP command:
Code Block |
---|
TEMP:RAMP |
...
Green Power Percentage Value
...
YES
...
NO
...
MAYBE
...
Power setting in percent.
NOTE: the power percentage value on the Instec screen is in percent. However, power values passed through software are ratios. i.e., to set power to 5% the command would be:
Code Block |
---|
TEMP:RPP 0.05 |
and a following query
Code Block |
---|
TEMP:POW? |
would return 0.050. Screen would say 5%.
Suggest using ‘units’ of percent for this variable to match display screen; and have software convert it to a ratio behind the scenes for commanding the Instec.
...
Red Channel Instec
...
Build
...
Observing
...
Maintenance
...
Red PID Parameters
...
YES
...
NO
...
MAYBE
...
See notes above for Green counterpart.
...
Red Heating/cooling status
...
YES
...
NO
...
MAYBE
...
See notes above for Green counterpart.
...
Red Cold Temperature Set Point
...
YES
...
NO
...
MAYBE
...
Temperature in degrees C.
See notes above for Green counterpart.
...
Red Warm Temperature Set Point
...
YES
...
NO
...
MAYBE
...
Temperature in degrees C.
See notes above for Green counterpart.
...
Red Cool-down Rate
...
YES
...
NO
...
MAYBE
...
Temperature change rate of degrees C per minute.
See notes above for Green counterpart.
...
Red Warm-up Rate
...
YES
...
NO
...
MAYBE
...
Temperature change rate of degrees C per minute
See notes above for Green counterpart.
...
Red Power Percentage Value
...
YES
...
NO
...
MAYBE
...
Power setting in percent.
See notes above for Green counterpart.
Device Set-up Parameters
Annotated command list with KPF settings. Covers device start-up and also settings for the various modes.
View file | ||
---|---|---|
|
Required Telemetry
...
Parameter
...
Report Frequency
...
Purpose
...
Notes
...
Green Channel Instec
...
Device Serial Number?
...
At startup
...
Include in log just in case device is swapped out in future
...
Code Block |
---|
*IDN? |
(third field of reply)
...
Device Rev Number
...
At startup
...
Include in log just in case device is swapped out in future
...
Code Block |
---|
*IDN? |
(fourth field of reply)
...
Cold Head Temperature Value
...
1 Hz
Status | ||||
---|---|---|---|---|
|
...
Monitor CCD temperature
...
Code Block |
---|
TEMP:CTEM? |
...
Heating/cooling enabled status
...
On change?
Status | ||||
---|---|---|---|---|
|
...
Current mode; outputs are:
0=Heating only, 1=Heating&Cooling; 2=Cooling only.
...
Code Block |
---|
TEMP:CHSW? |
...
System status
...
On change?
Status | ||||
---|---|---|---|---|
|
...
Current status; outputs are:
0=Stop, 1=Hold Run, 2=Ramp Run, 3=Pause, 4=Profile Run, 5=PP Run, 6=Purge
...
Code Block | ||
---|---|---|
| ||
TEMP:STAT? |
...
Temperature set point
...
On change?
Status | ||||
---|---|---|---|---|
|
...
Temperature in deg C.
...
Code Block |
---|
TEMP:SPO? |
...
Power value
...
1 Hz
Status | ||||
---|---|---|---|---|
|
...
Power value
...
Code Block |
---|
TEMP:POW? |
...
Rate value
...
On change?
Status | ||||
---|---|---|---|---|
|
...
Rate value (for ramp mode)
...
Code Block |
---|
TEMP:RAT? |
...
Red Channel Instec
...
Device Serial Number?
...
At startup
...
Include in log just in case device is swapped out in future
...
Code Block |
---|
*IDN? |
(third field of reply)
...
Device Rev Number
...
At startup
...
Include in log just in case device is swapped out in future
...
Code Block |
---|
*IDN? |
(fourth field of reply)
...
Cold Head Temperature Value
...
1 Hz
Status | ||||
---|---|---|---|---|
|
...
Monitor CCD temperature
...
Code Block |
---|
TEMP:CTEM? |
...
Heating/cooling enabled status
...
On change?
Status | ||||
---|---|---|---|---|
|
...
Current mode; outputs are:
0=Heating only, 1=Heating&Cooling; 2=Cooling only.
...
Code Block |
---|
TEMP:CHSW? |
...
System status
...
On change?
Status | ||||
---|---|---|---|---|
|
...
Current status; outputs are:
0=Stop, 1=Hold Run, 2=Ramp Run, 3=Pause, 4=Profile Run, 5=PP Run, 6=Purge
...
Code Block | ||
---|---|---|
| ||
TEMP:STAT? |
...
Temperature set point
...
On change?
Status | ||||
---|---|---|---|---|
|
...
Temperature in deg C.
...
Code Block |
---|
TEMP:SPO? |
...
Power value
...
1 Hz
Status | ||||
---|---|---|---|---|
|
...
Power value
...
Code Block |
---|
TEMP:POW? |
...
Rate value
...
On change?
Status | ||||
---|---|---|---|---|
|
...
Rate value (for ramp mode)
...
Code Block |
---|
TEMP:RAT? |
Required Alarms
...
Parameter
...
Threshold
...
Notes
...
Cold Head Temperature Value Low (Green)
...
Status | ||||
---|---|---|---|---|
|
...
Cold Head Temperature Value High (Green)
...
Status | ||||
---|---|---|---|---|
|
...
Cold Head Temperature Value Low (Red)
...
Status | ||||
---|---|---|---|---|
|
...
Cold Head Temperature Value High (Red)
...
Status | ||||
---|---|---|---|---|
|
...
Also see CCD Thermal Control System for more details on the entire thermal control system (including LN2 connections).
The vacuum feethru is described as: “INSTRUMENTATION FEEDTHROUGH, DOUBLE ENDED SUBMINIATURE-D STYLE CONNECTOR, GROUNDED SHIELD, RECESSED CONDUCTOR(S), 15 PIN, 500V AND 5 AMP RATING PER PIN, MOUNTED ON A DN40CF (2.75" OD) FLANGE.” It was purchased from Lesker (PN IFDGG151053). More details on the feedthru in the 'Relevant Datasheets and Manuals” section below.
...
Cable Details
Cable | Qty | Details | Notes | ||||
---|---|---|---|---|---|---|---|
Ethernet | 2 | Cat6 Copper Ethernet Cable M-M, 6 feet long | Entirely within Aux Rack. One for Green, one for Red. | ||||
Mains power cables - mK200B | 2 | NEMA 5-15P to C1314 AWG Power Cord | Entirely within Aux Rack. One for Green, one for Red. | ||||
Mains power cables - Pump | 2 | One for Green, one for Red. | |||||
Instec Pump Cable | 2 | One for Green, one for Red. | |||||
Instec Sensor and Heater Cable (Air and Vacuum Sections) | 2 | DB15 Cable Pinout:
Air-side Instec cable details: Vacuum-side Instec cable (and Cold Head, with LN2 connections): | Air section is a custom 30-ft long DB15 M-F cable made by Instec (our quote # was 2011632). This cable goes between the Instec controller and the vacuum feedthru on the main vacuum chamber. Within the chamber there is a second vacuum-compatible cable between the vacuum feedthru and the Instec Cold Head. This cable is not a separate item; it is hard-wired into the Cold Head and is not removable. |
...
Relevant Datasheets & Manuals
Description | File | Source | |||||
---|---|---|---|---|---|---|---|
1 | mK2000 mK2000B User Manual |
| email from Instec | ||||
2 | mK2000 mK2000B Command Reference |
| email from Instec | ||||
3 | LN2-SYS Pump Manual |
| email from Instec | ||||
4 | Vacuum Feedthru |
...
Relevant Software (from Development Phase)
Description | File | Source | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Instec said: “While we do have sample code for Python, it is based on a USB connection, not Ethernet. Our documentation on Ethernet programming is limited because it isn’t very frequently used for custom applications. This ZIP file contains example code for python using a USB connection. It could serve as the basis for an ethernet version.” |
| email from Instec | ||||||||||||
2 | Ethernet communication setup from Instec. Mainly describes how to write code to find Instec devices on a network. Note PacketSender image within, which shows correct port to use for ethernet communication. |
| email from Instec | ||||||||||||
3 | PacketSender connection example | Screengrab of SG’s successful connection to device through PacketSender. Note port is 50292. | |||||||||||||
4 | Instec App for Windows |
| email from Instec | ||||||||||||
5 | Steve’s python code that uploads a PID table from a .csv file (in Instec format) to the device over USB. Example PID tables also included (one with actual values, and one with integers that was useful for testing code). | Code:
PID files:
| Steve’s test of parsing and uploading Instec .csv file | ||||||||||||
6 | Calibration table decoder ring |
| email from Instec | ||||||||||||
7 | Calibration Controller calibration file example. Filename structure is: “cold_head_SN & mK2000B_SN cal.clb” |
|
Dispatcher Implementation
...
Keyword
...
Value
...
Type
...
CTEM
...
25.0 - current temperature
...
Double - read only
...
TEMPSET
...
-95.0 - temperature set point
If the STAT value is Hold or Ramp, changes the temperature set point and issues a new Hold or Ramp command at the new temperature.
...
Double
...
CHSW
...
0 - Heating Only
1 - Both
2 - Cooling Only
This determines which PID loop is used. See the manual for details
...
Enumerated list
...
RATE
...
1.000
Value of the change in temperature in time as said by the device.
This value is used by the Ramp command.
...
Double - deg / min
...
POW
...
0.01
Power output on a scale of 0 to 1.
...
Double - read only
...
POWPCT
...
1
Power output on a scale of 0 to 100%
...
Double - read only
...
STAT
...
0 - Stop
1 - Hold Run
2 - Ramp Run
State of the controller.
Changing the value uses the appropriate TEMPSET and RATE keywords to send a new command to the controller.
...
Enumerated
...
LCK
...
0 - Locked
1 - Unlocked
If Locked, no write commands will be accepted at the dispatcher level. To command the device it must be Unlocked.
...
Enumerated
...
INSTALLPATH
The location of the file that will be installed if the TRANSFER install command is run.
A csv file with the a header that contains:
type,index,T,P,I,D
Where type is the mode the table will be used in, index is the temperature index, T defines the temperature range, and P, I and D are the usual PID control loop parameters.
...
String - must contain full path, but can be relative
...
GETPATH
...
The location where a file will be written if the current PID table is downloaded from the controller.
Output of a TRANSFER Get command.
In the format listed for the INSTALLPATH keyword.
...
String - must contain full path but can be relative
...
TRANSFER_MSG
...
Contains error message related to transfer of files containing PID parameters.
...
String - read only
...
TRANSFER
...
Commands transfers to and from the device.
0 - Ready - a command can be sent to transfer a file
1 - Get - get the tables and put in OUTPUTFILE
2 - Install - install the file containing the tables in INPUTFILE
...
Enumerated
...
SERIAL
...
String - read only
...
REV
...
String - read only
...
DISP#XXXX
...
The usual dispatcher keywords
...
Strings and read only except when an int and read only. Set by configuration file.
...
DISP#STOP
...
Stop the dispatcher.
0 - run
1 - stop
...
Boolean keyword
KTL Dispatcher Configuration File
Configuration | Value | Explanation |
---|---|---|
dispnum | 1 | Dispatcher number |
address | 192.168.23.145 | IP address of the Instec |
port | 50292 | Port number of the Instec |
model | MK2000B | model of the Instec, used to find the serial number |
poll_time | 10 | how often in seconds the various values are queried |
calfile | @RELDIR@/data/@KTLSERVICE@/KCPE2006054_KSE48Sm22001147_cal.clb | calibration file for the controller, on connection the table is read in and then compared with the values in the Instec controller |