Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
README.md 4.27 KiB

IOC Deployment and Troubleshooting

This repo contains instructions for Session 2 of the Practical Beamline Controls Training.

Warnings

This training was designed to be completed using an APS-maintained Red Hat Enterprise Linux (RHEL) computer.

  • The instructions and solution branch assume that synApps was deployed on a path beginning with /APSshare, which is incorrect for non-APS computers.
  • There will be additional errors when the IOC runs due to missing synApps modules. The instructions do not address these errors.
  • It is assumed that the non-APS computer already has the necessary prerequisites for building EPICS base.

Outline

  1. Setup
  2. Deploy a new IOC
  3. Add simulated motors to the IOC
  4. Deploy the motorVMC (Virtual Motor Controller) module
  5. Add virtual motors to the IOC
  6. asyn troubleshooting

Quickstart

The external quickstart script is much less useful on non-APS machines.

To use the script, do the following:

$ curl -O https://git.aps.anl.gov/practical_beamline_controls_training/session_2/instructions/-/raw/external/scripts/quickstart.sh
$ chmod a+x quickstart.sh
$ ./quickstart.sh

Then copy and paste the output from the script into the terminal and proceed to step 1.2.

FAQ

Will I need to execute any cd commands that aren't explicitly documented in the instructions?

No. You should only change directories when instructed to. If you find yourself tempted to execute a cd command that isn't documented, resist that urge; it will cause later commands to fail.

Why isn't mkioc used to create the training IOC?

mkioc renames files and directories (references to xxx are replaced with the desired IOC name). This makes it impossible to have a solution branch in the git repo that works for everyone.

How does the training IOC differ from one created with mkioc?

There will be fewer build errors when building an IOC created by mkioc.

The training IOC required some customization to allow the IOC's prefix to be overridden: