epics-modules / ip

APS BCDA synApps module: ip
http://epics-modules.github.io/ip/
Other
3 stars 9 forks source link

Oxford CS800: wrong values #29

Closed prjemian closed 4 years ago

prjemian commented 4 years ago

The controller is showing many wrong values from the status broadcast. Stream protocol problem or unexpected value from controller in status broadcast?

Clipboard01

prjemian commented 4 years ago

Snooping the status broadcasts with a simple python program, the attached file shows the data block of a raw status packet and a similar packet as interpreted according to the manufacturer's specifications.

notes.txt

prjemian commented 4 years ago

In the notes.txt file above, there are 125 instances of \xff\xfe, the source of this information is the controller. These values are unexpected.

prjemian commented 4 years ago

Not sure why but until we understand the source of the unexpected values, remove them at least from the GUI view.

prjemian commented 4 years ago

Could move them to a different screen and see if they remain a problem with other CS800 controllers besides this specific one.

prjemian commented 4 years ago

These are the status PVs currently reported with unexpected values (0xfffe for all but the first, StatusGasError, which shows 0xffff):

ParamID ParamName PV
1052 StatusGasError ERROR
1060 StatusGasFlow GASFLOW
1064 StatusLinePressure BACKPRESS
1203 AutoFillLNLevel LEVEL
2010 StatusColdheadTemp COLDHEADTEMP
2011 StatusShieldTemp SHIELDTEMP
2012 StatusVacuumGauge VACGAUGE
2013 StatusNozzleTemp NOZZLETEMP
2014 StatusSampleHeat SAMPLEHEAT
2015 StatusColdheadHeat COLDHEADHEAT
2016 StatusShieldHeat SHIELDHEAT
2017 StatusNozzleHeat NOZZLEHEAT
2030 StatusSampleHolderTemp SAMHOLDTEMP
2031 StatusCryostatTemp CRYOSTATTEMP
2032 StatusSampleHolderPresent SAMHOLDPRES
2034 StatusElapsed ELAPSED
2035 StatusSuctSetTemp SUCTSETTEMP
2036 StatusNozzleSetTemp NOZZLESETTEMP
prjemian commented 4 years ago

These two parameters are not reported in the device's status message at this time:

ParamID ParamName PV
2041 StatusCollarTemp COLLARTEMP
2042 StatusVacuumSensor VACSENSOR
prjemian commented 4 years ago

And, for what it is worth, these parameters are available in the status packet and have values not equal to 0xffff or 0xfffe:

ParamID ParamName
1005 DeviceConnectedPeripherals
1006 DeviceSmartMode
1010 StartUpGasSensor
1011 StartUpEvapSensor
1012 StartUpGasHeat
1013 StartUpEvapHeat
1014 StartUpSuctSensor
1015 StartUpFlowCtrl
1017 StartUpDeviceMatch
1018 StartUpSuctHeat
1019 StartUpTestSensor
1020 SetUpRGas
1021 SetUpSCGas
1022 SetUpREvap
1023 SetUpSCEvap
1024 SetUpRSuct
1025 SetUpSCSuct
1026 SetUpTestR
1029 SetUpColdheadNumber
1030 SetUpCommissionDate
1031 SetUpHours
1032 SetUpInitialTemp
1034 SetUpShutdownInfo
1040 LiveAdcChannel1
1041 LiveAdcChannel2
1042 LiveAdcChannel3
1043 LiveAdcChannel4
1044 LiveAdcHeater1
1045 LiveAdcHeater2
1046 LiveAdcHeater3
1069 StatusAveGasHeat
1070 StatusSuctHeat
1071 StatusSuspended
1072 CommsCommandsReceived
1073 CommsCommandsMissed
1080 ShutdownInfoLastCode
1081 ShutdownInfoLastRunTime
1082 ShutdownInfoErrorCode
1083 ShutdownInfoErrorRunTime
1084 ShutdownInfoErrorSampleTemp
1085 ShutdownInfoErrorSetTemp
1086 ShutdownInfoErrorEvapTemp
1087 ShutdownInfoErrorSuctTemp
1088 ShutdownInfoErrorGasHeat
1089 ShutdownInfoErrorEvapHeat
1090 ShutdownInfoErrorSuctHeat
1091 ShutdownInfoErrorGasFlow
1092 ShutdownInfoErrorBackPressure
1093 ShutdownInfoErrorADC1
1094 ShutdownInfoErrorADC2
1095 ShutdownInfoErrorADC3
1096 ShutdownInfoErrorADC4
1100 FlowBlockFlowRate
1101 FlowBlockBackPressure
1103 FlowBlockValveOpening
1104 FlowBlockFirmware
1105 FlowBlockSerial
1300 EthernetDHCPConfig
1304 EthernetSubnetMask2
1305 EthernetDefaultGateway1
1306 EthernetDefaultGateway2
1311 EthernetMACAddress1
1312 EthernetMACAddress2
1313 EthernetMACAddress3
1314 EthernetFirmware
1601 FrontPanelFirmware
1603 FrontPanelUnits
1604 FrontPanelFavouriteTemp
1605 FrontPanelFavouriteRate
1606 FrontPanelShutdownTimer
1700 AuxPicFirmware
2037 StatusStatusMask1
2038 StatusStatusMask2
2039 StatusStatusMask3
2040 StatusStatusMask4
prjemian commented 4 years ago

These are the status parameters available in EPICS that do not have apparently wrong (either 0xffff or 0xfffe) values:

ParamID ParamName PV
1000 DeviceType DEVICETYPE
1001 DeviceSubType DEVICESUBTYPE
1002 DeviceMinTemp DEVICEMINTEMP
1003 DeviceMaxTemp DEVICEMAXTEMP
1004 DeviceH8Firmware VER
1028 SetUpControllerNumber CTRLNUM
1050 StatusGasSetPoint SETPOINT
1051 StatusGasTemp TEMP
1053 StatusRunMode RUNMODE
1054 StatusPhaseId PHASE
1055 StatusRampRate RAMPRATE
1056 StatusTargetTemp TARGETTEMP
1057 StatusEvapTemp EVAPTEMP
1058 StatusSuctTemp SUCTTEMP
1059 StatusRemaining REMAINING
1061 StatusGasHeat GASHEAT
1062 StatusEvapHeat EVAPHEAT
1063 StatusAveSuctHeat SUCTHEAT
1065 StatusAlarmCode ALARMI
1066 StatusRunTime RUNTIME
1067 StatusEvapAdjust EVAPADJUST
1068 StatusTurboMode TURBOMODE
prjemian commented 4 years ago

Watching closely when controller is holding at 100K, the value of StatusGasError fluctuates near 0, so ERROR should be interpreted as a signed 16-bit integer.

Better to calculate the ERROR PV as difference: SETPOINT - TEMP

``` [idstaff@cidd1 ~]$ caget 19idcryo:CS:SETPOINT 19idcryo:CS:SETPOINT 100 [idstaff@cidd1 ~]$ camonitor 19idcryo:CS:{TEMP,ERROR} 19idcryo:CS:TEMP 2020-04-13 21:14:08.064944 100.06 19idcryo:CS:ERROR 2020-04-13 21:14:08.064965 655.3 19idcryo:CS:TEMP 2020-04-13 21:14:10.066286 100.08 19idcryo:CS:ERROR 2020-04-13 21:14:11.065883 655.29 19idcryo:CS:TEMP 2020-04-13 21:14:12.066033 100.07 19idcryo:CS:ERROR 2020-04-13 21:14:12.066061 655.3 19idcryo:CS:TEMP 2020-04-13 21:14:14.066768 100.06 19idcryo:CS:ERROR 2020-04-13 21:14:14.066796 655.31 19idcryo:CS:TEMP 2020-04-13 21:14:15.066770 100.03 19idcryo:CS:ERROR 2020-04-13 21:14:15.066807 655.33 19idcryo:CS:ERROR 2020-04-13 21:14:16.066325 655.34 19idcryo:CS:TEMP 2020-04-13 21:14:17.066477 100.02 19idcryo:CS:ERROR 2020-04-13 21:14:17.066505 655.35 19idcryo:CS:TEMP 2020-04-13 21:14:18.066746 100.01 19idcryo:CS:ERROR 2020-04-13 21:14:20.066661 0 19idcryo:CS:TEMP 2020-04-13 21:14:21.067082 99.99 19idcryo:CS:ERROR 2020-04-13 21:14:22.067653 0.01 19idcryo:CS:TEMP 2020-04-13 21:14:23.067642 100 19idcryo:CS:TEMP 2020-04-13 21:14:24.067428 99.99 19idcryo:CS:TEMP 2020-04-13 21:14:28.067501 99.98 19idcryo:CS:ERROR 2020-04-13 21:14:28.067539 0.02 19idcryo:CS:TEMP 2020-04-13 21:14:29.068357 99.99 19idcryo:CS:TEMP 2020-04-13 21:14:30.068583 99.98 19idcryo:CS:TEMP 2020-04-13 21:14:32.067878 99.99 19idcryo:CS:ERROR 2020-04-13 21:14:32.067906 0.01 19idcryo:CS:TEMP 2020-04-13 21:14:33.068440 100 19idcryo:CS:ERROR 2020-04-13 21:14:33.068467 0.02 19idcryo:CS:TEMP 2020-04-13 21:14:34.068355 99.99 19idcryo:CS:ERROR 2020-04-13 21:14:34.068391 0.01 19idcryo:CS:TEMP 2020-04-13 21:14:36.068764 100 19idcryo:CS:ERROR 2020-04-13 21:14:38.069468 0 19idcryo:CS:TEMP 2020-04-13 21:14:39.068956 99.99 19idcryo:CS:ERROR 2020-04-13 21:14:39.068983 0.01 19idcryo:CS:TEMP 2020-04-13 21:14:40.068954 99.98 19idcryo:CS:ERROR 2020-04-13 21:14:40.068981 0.02 19idcryo:CS:TEMP 2020-04-13 21:14:41.069733 100.01 19idcryo:CS:ERROR 2020-04-13 21:14:41.069762 0.01 19idcryo:CS:TEMP 2020-04-13 21:14:42.070120 100 19idcryo:CS:ERROR 2020-04-13 21:14:42.070146 0.02 19idcryo:CS:TEMP 2020-04-13 21:14:43.069675 99.99 ```