| Oxford Cryosystems 700 series serial line communications | home | protocols | wiring diagram |
| Cryostream | Cobra | PheniX | HeliX | status packets | command packets |
By default Cryostream issues packets of the following format. If Cryostream receives a CSCOMMAND_SETSTATUSFORMAT command then it will switch to issuing extended status packets as detailed below.
typedef struct {
unsigned char Length; /* Length of this packet, = 32 (bytes) */
unsigned char Type; /* Status Packet ID = 1 for standard packet */
unsigned short GasSetPoint; /* Set Temp 100*K */
unsigned short GasTemp; /* Gas Temp 100*K */
signed short GasError; /* Error 100*K */
unsigned char RunMode; /* The current run mode */
unsigned char PhaseId; /* The id of the current phase - see below */
unsigned short RampRate; /* The ramp rate of the current phase */
unsigned short TargetTemp; /* The target temperature of the current phase */
unsigned short EvapTemp; /* Evap temp, 100*K */
unsigned short SuctTemp; /* Suct temp, 100*K */
unsigned short Remaining; /* Time remaining in phase */
unsigned char GasFlow; /* Gas flow, 10*l/min */
unsigned char GasHeat; /* Gas heater, % */
unsigned char EvapHeat; /* Evap heater, % */
unsigned char SuctHeat; /* Suct heater, % */
unsigned char LinePressure; /* Back pressure, 100*bar */
unsigned char AlarmCode; /* Indicates most serious alarm condition */
unsigned short RunTime; /* Time in minutes pump has been up */
unsigned short ControllerNumber; /* Controller number, from ROM */
unsigned char SoftwareVersion; /* Software version */
unsigned char EvapAdjust; /* EvapAdjust vacuum compensation */
} CryostreamStatus ;
It is recommended to issue a CSCOMMAND_SETSTATUSFORMAT command when connecting to Cryostream. If SoftwareVersion is greater than 17 then Cryostream will switch to the Extended format below until it is restarted.
typedef struct {
unsigned char Length; /* Length of this packet, = 42 (bytes) */
unsigned char Type; /* Status Packet ID = 2 for extended packet */
unsigned short GasSetPoint; /* Set Temp 100*K */
unsigned short GasTemp; /* Gas Temp 100*K */
signed short GasError; /* Error 100*K */
unsigned char RunMode; /* The current run mode */
unsigned char PhaseId; /* The id of the current phase - see below */
unsigned short RampRate; /* The ramp rate of the current phase */
unsigned short TargetTemp; /* The target temperature of the current phase */
unsigned short EvapTemp; /* Evap temp, 100*K */
unsigned short SuctTemp; /* Suct temp, 100*K */
unsigned short Remaining; /* Time remaining in phase */
unsigned char GasFlow; /* Gas flow, 10*l/min */
unsigned char GasHeat; /* Gas heater, % */
unsigned char EvapHeat; /* Evap heater, % */
unsigned char SuctHeat; /* Suct heater, % */
unsigned char LinePressure; /* Back pressure, 100*bar */
unsigned char AlarmCode; /* Indicates most serious alarm condition */
unsigned short RunTime; /* Time in minutes pump has been up */
unsigned short ControllerNumber; /* Controller number, from ROM */
unsigned char SoftwareVersion; /* Software version */
unsigned char EvapAdjust; /* EvapAdjust vacuum compensation */
unsigned char TurboMode; /* In Turbo mode ? */
unsigned char HardwareType; /* Cryostream or Cryostream Plus, with/without Shutter */
unsigned char ShutterState; /* Shutter status */
unsigned char ShutterTime; /* Shutter time remaining */
unsigned char UnusedOne; /* For expansion */
unsigned char UnusedTwo; /* For expansion */
unsigned short UnusedThree; /* For expansion */
unsigned short UnusedFour; /* For expansion */
} ExtendedCryostreamStatus ;
notes
enum {
StartUp, /* = 0: Initial transient value - run through system checks */
StartUpFail, /* = 1: Some failure in system checks - leave results on screen */
StartUpOK, /* = 2: System checks OK - awaiting Start button */
Run, /* = 3: Gas is flowing */
SetUp, /* = 4: Special commissioning mode */
ShutdownOK, /* = 5: System has shut down cleanly */
ShutdownFail /* = 6: System has shut down due to hardware error */
};
enum {
Ramp, /* = 0: Current phase is a Ramp */
Cool, /* = 1: Current phase is a Cool */
Plat, /* = 2: Current phase is a Plat */
Hold, /* = 3: Current phase is a Hold */
End, /* = 4: Current phase is an End */
Purge, /* = 5: Current phase is a Purge */
DeletePhase, /* = 6: Internal use only */
LoadProgram, /* = 7: Internal use only */
SaveProgram, /* = 8: Internal use only */
Soak, /* = 9: Part of the Purge phase */
Wait /* = 10: Part of Ramp/Wait */
};
enum {
AlarmConditionNone, /* = 0: No alarms exist */
AlarmConditionStopPressed, /* = 1: Stop button has been pressed */
AlarmConditionStopCommand, /* = 2: Stop command received */
AlarmConditionEnd, /* = 3: End phase complete */
AlarmConditionPurge, /* = 4: Purge phase complete */
AlarmConditionTempWarning, /* = 5: Temp error > 5 K */
AlarmConditionHighPressure, /* = 6: Back pressure > 0.5 bar */
AlarmConditionVacuum, /* = 7: Evaporator reduction at max */
AlarmConditionStartUpFail, /* = 8: Self-check fail */
AlarmConditionLowFlow, /* = 9: Gas flow < 2 l/min */
AlarmConditionTempFail, /* = 10: Temp error > 25 K */
AlarmConditionGasTypeError, /* = 11: Sensor detects wrong gas type */
AlarmConditionTempReadingError, /* = 12: Unphysical temp. reported */
AlarmConditionSuctTemp, /* = 13: Suct temperature out of range */
AlarmConditionSensorFail, /* = 14: Invalid ADC reading */
AlarmConditionBrownOut, /* = 15: Degradation of power supply */
AlarmConditionHeatsinkOverheat, /* = 16: Heat sink overheating */
AlarmConditionPsuOverheat, /* = 17: Power supply overheating */
AlarmConditionPowerLoss, /* = 18: Power failure */
AlarmConditionRefrigeratorTooCold, /* = 19: Refrigerator stage is too cold */
AlarmConditionRefrigeratorTimedOut, /* = 20: Refrigerator stage failed to reach base in time */
AlarmConditionCryodriveNotResponding, /* = 21: Cryodrive is not responding */
AlarmConditionCryodriveError, /* = 22: Cryodrive reports an error */
AlarmConditionNoNitrogen, /* = 23: No nitrogen available */
AlarmConditionNoHelium, /* = 24: No helium available */
AlarmConditionVacuumGauge, /* = 25: Vacuum gauge is not responding */
AlarmConditionVacuumReading /* = 26: Vacuum is out of range */
};
0: Regular system, no Cryoshutter
1: Plus system, no Cryoshutter
2: Regular system fitted with Cryoshutter
3: Plus system fitted with Cryoshutter