Oxford Cryosystems 700 series serial line communications    home | protocols | wiring diagram

Cryostream | Cobra | PheniX | HeliX   status packets | command packets

Cryostream status packet

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 ;

Extended status packet

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  */
};