Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

   The python module "Interlock_SW.py" makes all the high level decisions about the interlock. The trigger temperatures are set at 40℃ and -40℃ the triggers can be set by the variables

  • On_Module_High_Limit: sets the high limit temperature to shut everything down. 
  • On_Module_Low_Limit: Sets the low temperature limit that shuts the system down.
  • DewPoint_buffer: Sets the difference that once a single temperature value is within this amount it will shut the whole system down. 
  • Restart: If true this will allow the system to try and automatically restart itself if something goes wrong. If False the system will just shut down and endless send the off signal to the power supplies. 

Interlock Finite States:

    The interlock is not coded as a finite state machine but applicably works as shown below.

Sub modules:

Interlock

  • Main Interlock Loop: This main part of the code controls all the decisions of if the system is in a safe state. It checks all the measurements and makes sure that they are all within normal operating specs. Note that there is four options at the top the four options are
  • RTD_SHT85_Loop: This loop runs the code to monitor the RTD’s every few seconds. This is needed since the packages to monitor them are in Python 2.7 and everything else is in python 3
  • RTD_SHT85: Read the RTD sensors and SHT85 then pass the information back to the main process to decide if things should stay. This process also writes the data to the influx database
  • NTC_Loop: Again read over all the NTC values and return the info to the main loop.
  • HeartBeat_py: This piece of the code runs to make sure that the Main loop is still working properly. It checks the time since the last updated system. If the time passed is too long the heartbeat will turn off the relay and make sure that everything is safe. 


Readout System:

DCS

  • BK_PSU_DCS.py: This is the serial commands for the two power supplies that are used. Note that in order to work the address of the power supplies need to be set. The default for BK9130 is 22 and BK1697 is 44. 
  • ControlDCS.py: This file does the heavy lifting. It subscribes the rabbitMQ queue called dcs. Once a message is posted it either sets the power supplies to that setting or if {“return”: True} then it gets the current settings and posted them to the queue message.
  • MonitorDCS.py: Sends the signal for the control to get power supply settings then converts all the from bytes into floats.
  • Start_module.py: script to start the module DCS
  • Start_peltier.py script to start the peltier.
  • stopDCS.py: Send stop command to all the power supplies or you can import the modules and send shutdown to one or the other power supply..

The DCS and the Interlock talk through a message broker on rddev111. This message broker passes dictionaries along. Formatted as 

...