Versions Compared

Key

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

Table of Contents

Controls Seminar Series

EPICS - IOCmanager: IOC health monitoring & first level trouble shooting

...

For a given PV you can also determine which server the IOC is running on and if rebooting the IOC does not help you can consider rebooting the server  as described in the next paragraph.

Checking server health and power cycling (via serverStat)

The serverStat script as a few different options. serverStat -l will list those.

serverStat <machine name> will check the power status and ping the relevant interfaces (controls & DAQ is appropriate).

. Be mindful that this will restart all the IOCs on that server! One way to do that is using "serverStat <machine name> cycle" for any machine with ipmi. will powercycle the server, assuming the device as a working ipmi interface. You will need to be on the same (controls) network as the target machine. psdev has access to all networks, use your powers here responsibly! Be particularly mindful if the machine in question is a recorder machine as the RAID arrays ideally get extra care. serverStat also takes DAQ devices names (aliases) or PVs (only for PVs originating from the same subnet).  If ipmi does not work, you can use 'netconfig view <servername>' to find the location information needed for a physical power cycle. Should this location not be correct, please let your controls POC know!

...

XPS Newport Troubleshooting

IMS - smart motors

If you have a (old) hutch python (XPP/XCS), add Add the motor to the epicsArch file. A the questionnaire in the CDS tab. Given a python-name&PV, a motor python object will be instantiated upon restart. This motor object has a function called "<motor>.auto_setup" which will initialize the motor, clear the power cycle and check for a configuration based on matching the motor controllers serial ID in the parameter manager. Alternatively, you You can open the expert screen from the motor python object <motor>.expert_screen(), re-initialize from there & clear the power cycle (if applicable). You can then use "<motor>.pmgr.diff()" to see the difference of current and saved configurations. "<motor>.pmgr.apply_config()" will apply the configuration. Check after applying the config that all parameters "made" it by calling pmgr.diff() on the same motor again. (to be checked)

IMS - dumb motors (HXR)

This works very similar to the smart motor procedure, except that the serial number cannot be used to find the configuration. You will need to  pass the configuration name to the "diff" or "apply_config" functions. If you don't, you will be asked. There is a search option where smart string matching is used when you don't know the config name. It is planned to alliviate this issue by labelling the stages with their config name (HXR). Dumb motor recognition does rely on the parameter manager knowing the serial numbers of the dumb motor controllers. Should you have a new chassis or a newly repaired one, this might not work and PCDS personnel will have to fix this.

...

The new hutch python has extensive documentation at https://pcdshub.github.io/hutch-python/.

Vacuum

Old system Stubborn Cold Cathodes

Hutch specific instructions

TMO quick nodes/how-tos

CXI 

Expert guides (

...

incl LCLS1 DAQ troubleshooting)

Link to the old "Controls User Guide"

LCLS-1 DAQ Tier-1 Troubleshooting