SPEAR EPICS
Insertion Device (ID) Interface
Introduction
SSRL has been using insertion devices for more than two decades. The first generation ID controls used CAMAC and a proprietary SPEAR control system that was OpenVMS based. The current ID controls use VME-based hardware as part of an EPICS control system. The hardware controls include the OMS MAXv stepper motor controller, absolute encoders (with either straight digital or SSI outputs), and IndustryPack digital I/O for various status and safety inputs. SSRL has always used absolute linear encoders wherever possible which greatly simplifies control and reliability. For software, the EPICS motor record from the synApps package is used.The drawing for the ID controller chassis is here. The drawing for the 422 converter is here.
An ID test stand resides in B406.
An ID server runs as sequences, one per ID, on soft-iocidctrl and performs these functions:
- Allocates control of the devices to SPEAR operations or authorized beamline users as appropriate. It listens for requests from the operators and remote users by monitoring PVs that are set by either the operator displays or other CA clients maintained by the beamline users. It keeps track of the current owner of all the IDs and will only allow the current owner to move the device. Ownership of a device does NOT automatically revert to the SPEAR operator when the SPEAR state drops down to AP or Down.
- Prevents BL5 gap movement while BL5 horizontal motion is taking place.
- Logs ID operations to the SPEAR event log.
- Deals with many possible fault conditions.
A trim tracking server runs as sequences, one per ID, on soft-iocmcortrim and performs these functions:
- Controls ID trim magnets and skew correctors using feedforward tables. It assures that the ID trims and correctors involved in trim tracking save their state so that they can be restored or standardized to a known configuration.
Operator Interface
Users have access to the EDM displays which can be used to move IDs or grant ownership to remote users. There is an Insertion Device Display "Main Panel" which shows the state of all the IDs and can be used to launch individual "mover windows".Snapshot of the Main Panel:
The Main Panel is accessed either from the "Insertion devices" entry on the Displays menu on the SPEAR index display or from the "Main panel" related display on any ID mover window. The Main panel has three columns:
On the bottom of the Main Panel are Related Display buttons for diagnostic displays for the ID trims and for the old Insertion Device control software. The alarm state of the ID trim magnets is also viewable near the bottom right of the operator's Power Supply Monitor display page.
- The left column has Related Display buttons for the individual ID mover windows.
- The middle column shows the ID position as both a bar graph and a numeric value. If the position is in alarm, it will be shown in red, the Major Alarm color.
- The right column shows the current owner of the device. If a remote user has made an ownership request which has not yet been granted, the background of this cell will be yellow, the Minor Alarm color.
Snapshot of the BL5 Mover Window:
The mover window is accessed either from the left column buttons on the Main panel or from the button showing the ID position for each ID beamline on the SPEAR index display. The mover window has three sections:
- The top section displays and assigns device ownership. The current owner is displayed as well as any remote ownership requests. If there is a request that has not been granted, the background for the request is displayed in a Minor Alarm color. There are buttons to take ownership, give up ownership and grant ownership. The buttons will be invisible if it doesn't make sense to push them. (It would be better to have them grayed out, but the version of EDM we are running does not have that option.) The mover window is the *only* place where an operator can grant ownership to a remote user. To control a device, ownership MUST be taken first.
- The middle section has readbacks for the device position and status. The position is displayed both as a numeric value and a bar graph. As on the Main Panel, if the position is in alarm the background color will reflect this. The background color of the Status reflects the alarm state associated with that status. The Status is only updated if the server is controlling the device, i.e. either an operator or a remote user owns the device.
- The bottom section has controls for the device position. If not the owner, a red Disabled flag appears above the controls. If the device is moving, a green Moving flag will appear above the control. For all devices except the BL5 mode, the control is a Motif slider which indicates the control in Controller color (blue) and the readback in black. Click in the slider window but outside the slider thumb to bring up a window to enter a new slider value and increment. Click inside the slider thumb to change the slider value by the increment value. Click inside the beige Increment or Setpoint box to bring up a window with a numeric keyboard where the increment or slider value can be changed with the mouse. Finally, drag the blue slider pointer to change the slider value. Click in the beige "save" box to make the slider remember the current value which can be restored by clicking in the "rest" box. No movement takes place until the Go button is hit. Hitting the Abort button will cause an immediate motor abort. The Go and Abort buttons are only visible when they are active. The mode control window has a Choice Button instead of a slider.
ID IOCs
- EPICS Motor Module with SLAC Mods
- EPICS Asyn Module
- EPICS MotionControlSPEAR Application
Location IOC Crate Beamline Motor Controller Serial Number Firmware B116-101-4-28 b116-iocmotor b116-vme3 12-1,12-2 Pro-Dex MAXv-8000 000208 ver:1.45
fpga:b6:a7
boot:1.3B120-1006-29 b120-iocmotor1 b120-vme1 7,9,10 Pro-Dex MAXv-8000 001456 ver:1.41
fpga:b5:a7
boot:1.3B131-1305-16 b131-iocmotor1* b131-vme1 4,13,11 Pro-Dex MAXv-8000 001549 ver:1.44
fpga:b6:a7
boot:1.3B131-602-24 b131-iocmotor2* b131-vme2 5,6,15 Pro-Dex MAXv-8000 001349 ver:1.44
fpga:b6:a7
boot:1.3B132-102-3-27 b132-iocmotor b132-vme3 Scraper Pro-Dex VME58-4 Unknown ver:2.42-8 B117? spare spare spare Pro-Dex VME58-4 Unknown ver:2.42-8? B406 ioc-b406-mc01 crat-b406-mc01 test Pro-Dex MAXv-8000 001599 ver:1.45 B117 spare spare spare Pro-Dex MAXv-8000 001817 ver:1.49 B117 spare spare spare Pro-Dex MAXv-8000 001635 ver:1.45
fpga:b6:a7
boot:1.3
* After a crate power cycle, interrupts are disabled after iocInit on b131-iocmotor1 and 2 with ISR ERROR messages. After a 2nd reboot, the message goes away. Check for disabled interrupts and reboot again as needed. This error does not appear to affect functionality.
SPEAR EPICS | EPICS Home | SPEAR Home | SSRL Home | SLAC Home Contact: Shweta Saraf
Last Modified: Dec 9, 2015