ID Controls Information
Version 4.0 (as of July 30, 2001),
Mohan Ramanathan.
Introduction
This document gives a brief introduction to the Insertion Device (ID) and
its associated control system.
Most of the devices installed in the storage ring are the 2.4 m long
Undulator A (UA) style.
The vacuum chamber is typically a 5 m
long chamber with an inside vertical aperture of 8 mm. The
minimum gap of the Undulator is 10.5 mm.
The devices are normally located in the downstream half of the
5 m long straight section.
At this time, a lower limit of 11.0 mm is imposed on most devices and
the fully open gap is approximately 180.0 mm.
Most of the devices are controlled by stepping motors
which move the ends of the device independently. The motors at
either end give us the ability to taper the device to broaden
the harmonics. The device has both a rotary and a linear encoder
at each end.
During normal operation the linear encoder is used to position the device
to the correct gap. The rotary encoder is used as a backup.
Under normal operation the device is issued a command to move the two ends
together. However, when taper is needed a command can be issued
for the amount of taper.
The taper angle cannot be more than 2 mrad, which translates to about
5 mm difference in gap between the two ends.
Operation Issues
When beam is lost or during injection, the ID control is changed from User
mode to Operator mode and all the devices are fully opened.
After restoration of beam the devices are instructed to move to their previous
user values which was set prior to the beam loss/ injection. At this
time the access of the device control is changed from Operator mode
to User mode.
The beamline coordinator can request the Floor Coordinator to set a beamline
limit on the minimum gap of the device. This can be used
by the beamline staff for their equipment protection. However,
this limit value cannot be guaranteed to remain the same
from run to run, and possibly even following an id control ioc reboot.
During operation of the device, any problems
encountered by the users related to the device should be brought to the
immediate attention of the floor coordinator on shift. Also if one
of the listed error message appears, the device control will be switched
from User mode to System Manager
mode.
Please notify the floor coordinator to expedite resolution of the
problems.
The next section will discuss in greater detail the controls aspect of the
devices.
Controls
The devices are controlled by EPICS. Each sector has
a VME crate (IOC) to control the Insertion Device
for that sector. The control system for the device is set up in a
manner that a user can request a specific gap in mm for the Undulator
or a specific energy in keV for a harmonic range of 1 to 7of
the device. The control system uses a calculation algorithm for
conversion of gap to energy and vice versa based on stored files of the
measured magnetic profile of the particular device
and the finite beam emittance. In the case of the wiggler all
calculation for energy reflects the critical energy for the specific
gap. The control system commands the motors
to move to a specific value, while it monitors the encoders.
The control
of the device is accomplished with 10 process variables.
An additional 5 process variables are used for synchronous Scanning mode.
There are only 8 relevant process variables which need to be monitored at any
time. In addition there are other process variable which are useful to
monitor. In addition there are more process variables which are not
relevant for normal operation.
If anyone is interested in these process variables please contact
your floor coordinator.
Later in this document are some example MEDM screen
images. Also copies of the MEDM control
displays can be downloaded for your use.
At the end
of this document, is a table displaying the process variables
and their functionality. All process variables conforms to EPICS
standard database conventions. Unless specified all process variable
fields referred below are to the VAL field.
Listed below is a concise description
of all the relevant process variables, some for controlling and others
for monitoring.
Control Process Variables
CAT's can
only have write permission to these field when device access control is
set to USER mode.
Replace the $(xx)
with your 2 digit (01-35) sector number AND (us
or ds) for upstream and downstream devices.
Example: ID01ds:EnergySet
There is one exception to the above:
- Sector 4 where the the CPU is installed, in which case:
xx=04ds for the downstream ID and xx=04b for the CPU
- ID$(xx):GapSet
Record Type : Analog Input
Operating Range : 11.0 - 180.0
Unit : mm
This process variable sets the average desired gap position
of the insertion device. Upon issuing the start command (ID$(xx):Start),
the device moves to the desired set point. (This process variable is
used for normal operation.)
- ID$(xx):TaperGapSet
Record Type : Analog Input
Operating Range : 0.000 - 5.000
Unit : mm
This process variable sets desired Taper amount about the average gap.
For normal Operation this value should be set to zero. Upon issuing the
start command (ID$(xx):Start) the device moves to the average gap and
moves the upstream and downstream to obtain the required taper. (This
process variable is used in conjunction with ID$(xx):GapSet for taper operation.
-
ID$(xx):ScanGap
Record Type : Analog Input
Operating Range : 11.0 - 180.0
Unit : mm
This process variable is for scanning of the device
in terms of average gap. The device starts to move upon entering a value
in this field. This performs a semi-synchronous move on both the upstream
and downstream motors of the device. (This process variable is used
for scanning operation.)
-
ID$(xx):ScanEnergy
Record Type : Analog Input
Operating Range : 2.7 - 100.0
Unit : keV
This process variable is for scanning the device in terms of the energy for
the specified harmonic. The harmonic value is used for the energy to gap
conversion. The device starts the move upon entering a value in this
field. (This process variable is used for scanning operation.)
-
ID$(xx):EnergySet
Record Type : Analog Input
Operating Range : 2.7 - 100.0
Unit : keV
This process variable sets the ID gap by entering the desired energy for the
specified harmonic. The gap position is calculated based on the selected
energy. Upon issuing the start command (ID$(xx):Start), the device
moves to the desired set point. (This process variable is used for
normal operation.)
-
ID$(xx):TaperEnergySet
Record Type : Analog Input
Operating Range : variable
Unit : keV
This process variable sets the desired amount of energy spread about the
average energy for the specified harmonic.
Upon issuing the move command (ID$(xx):Start), the device moves
to the desired set point. (This process variable is used in
conjunction with ID$(xx):EnergySet for taper operation.)
-
ID$(xx):DeadbandGap
Record Type : Analog Output
Operating Range : 0 - 1000
Unit : microns
This process variable is used to set a deadband in microns
for the motion of the device. When a command to move the device is
issued, a check is made between the current and requested positions.
If the difference value is greater than the specified deadband value the
device will execute the move. Also once the gap of the device is
within the deadband value of the desired position, the device will stop.
A deadband value of 0 will result in the device moving to the exact
desired gap.
-
ID$(xx):HarmonicValue
Record Type : Analog Output
Operating Range : 1 - 7
Unit : number
This process variable sets the harmonic of interest
for gap to energy conversions. Setting this process variable to a
certain value will influence all energy conversions. The energy
readbacks now will reflect the energy corresponding to the harmonic value
selected. The default is 1.
-
ID$(xx):Start
Record Type : Binary Input
Set this record to 1 to start moving the device.
-
ID$(xx):Stop
Record Type : Binary Input
Set this record to 1 to stop all motion of the device.
-
ID$(xx):SyncScanMode
Record Type : Binary Input
Set this record to 1 to start operating the device in
Synchronous scanning mode.
-
ID$(xx):SSStartGap
Record Type : Analog Input
Operating Range : 11.0 - 180.0
Unit : mm
This process variable is used to set the starting gap for Synchronous Scanning.
(This process variable is used for Synchronous scanning operation.)
-
ID$(xx):SSEndGap
Record Type : Analog Input
Operating Range : 11.0 - 180.0
Unit : mm
This process variable is used to set the ending gap for Synchronous Scanning.
(This process variable is used for Synchronous scanning operation.)
-
ID$(xx):SSTime
Record Type : Analog Input
Operating Range : variable
Unit : seconds
This process variable is used to set the duration for Synchronous Scanning.
This sets the time to travel between the starting gap to ending gap.
(This process variable is used for Synchronous scanning operation.)
-
ID$(xx):SSStart
Record Type : Binary Input
Set this record to 1 to start the Synchronous Scanning
after setting up the profile.
Monitor Process Variables
The following records are for monitoring purposes.
-
ID$(xx):Gap
Record Type : Analog Output
Unit : mm
Monitor this record for the current average gap position.
-
ID$(xx):TaperGap
Record Type : Analog Output
Unit : mm
Monitor this record for the current taper amount of gap.
-
ID$(xx):Energy
Record Type : Analog Output
Unit : keV
Monitor this record for the current average energy for the specified
harmonic.
-
ID$(xx):TaperEnergy
Record Type : Analog Output
Unit : keV
Monitor this record for the current amount of tapered energy for the specified
harmonic.
-
ID$(xx):Busy
Record Type : Binary Output
Monitor this record to determine whether
the device is moving. It is set to 0 when not in motion,
1 when in motion.
-
ID$(xx):Message1
Record Type : String Output
Monitor this record for all status and error messages.
-
ID$(xx):Message2
Record Type : String Output
Monitor this record for status message
related to gap - energy conversions and all global information.
-
ID$(xx):Message3
Record Type : String Output
Monitor this record for status message
related to Auto Open of ID when front end shutters are closed.
-
ID$(xx):SSBusy
Record Type : Binary Out
This value is set when the device while moving is within the required gap range.
(This process variable is used during Synchronous Scanning mode.)
-
ID$(xx):OldGapSet
Record Type : Calc
The record saves the previous gap set value.
-
ID$(xx):Taper
Record Type : Binary Out
This displays ON/OFF depending on whether the device is in a tapered condition.
-
ID$(xx):EncoderSelect
Record Type : Binary In
This displays wheather LINEAR or ROTARY encoder is used.
-
ID$(xx):PositionAccuracy
Record Type : Calc
The record has the value of the positioning accuracy used by the device.
-
ID$(xx):Location
Record Type : String Output
This record displays the sector number
where the device is located and its position (upstream or downstream).
-
ID$(xx):Device
Record Type : String Output
This record has device serial number and the period of the device.
-
ID$(xx):Version
Record Type : String Output
This record is for the version number of the ID Control Software.
-
ID$(xx):SSState
Record Type : Multi Bit Binary Output
Monitor this record for the current state while in Synchronous Scanning
mode. The following values are:
| 0 |
Waiting |
| 1 |
PreMove |
| 2 |
Scanning |
| 3 |
Finishing |
-
ID$(xx):ShClosedTime
Record Type : Calcout
Unit : Seconds
The record is the count down timer and displays the time left before
ID will be opened automatically.
-
ID$(xx):MotorSpeed
Record Type : Analog Output
Unit : rps
Monitor this record for the current speed of the device.
-
ID$(xx):GapReturn
Record Type : Analog Input
Unit : mm
This record is used to save the user average
gap prior to a full open command during injection.
-
ID$(xx):TaperGapReturn
Record Type : Analog Input
Unit : mm
This record is used to save the user taper gap
prior to a full open command during injection.
-
ID$(xx):TotalPower
Record Type : Calc
Unit : Watts
This record calculates the total power from the device normalized
to 100 ma for the current gap.
-
ID$(xx):ExpectedPower
Record Type : Calc
Unit : Watts
This record calculates the total power from the device normalized
to 100 ma for the desired gap entered.
-
ID$(xx):AccessSecurity
Record Type : Multi Bit Binary Input
Monitor this record for the current access
mode. When in User the control has been transferred to user.
The following modes and their values are:
| 0 |
User |
| 1 |
Operator |
| 2 |
Machine Physics |
| 3 |
System Manager |
-
ID$(xx):DeviceLimit
Record Type : Analog Output
Operating Range : 11.0 - 180.0
Unit : mm
Monitor this record to determine the beamline
limit for the device. This is an administrative limit set by Floor Coordinator
upon request from beamline coordinator. This tells the minimum gap allowed
for this device. The DRVL and DRVH fields of this
devices has the absolute minimum and maximum gaps allowed.
-
ID$(xx):FullOpenGap
Record Type : Analog Input
Unit : mm
This record has the gap value to open
to for a full open command during injection.
Status/Error Messages
The following messages are displayed via the process variable
(ID$(xx):Message1).
-
Requested Position OK
Requested device gap value is within operating range.
-
Requested Taper OK
Requested device taper gap value is within operating range.
-
Requested Gap/Taper OK
Requested device gap and taper gap value is within operating range.
-
Gap/Taper Out of Range
Either/or gap and taper is outside the operating range.
-
Taper Too Large
Requested taper gap value is outside the operating range.
-
Beamline Limit Value OK
Requested Beamline Operating Limit is within operating range.
-
Beamline Limit Out of Range
Requested Beamline Operating Limit is outside operating range.
-
Device Started
Device has been requested to move.
-
Device Stopped!!
Device has been commanded to stop.
-
Device At Destination
Reached the requested destination gap.
-
Device out of Bounds!
Device is outside the operating range. Will switch access to System Manager.
-
Device Recovered!
Problem with the device has been rectified.
-
Device Stalled !
Sensed a device stalling of the motors.
Will stop the motion. A start command follwoing will restart the device.
-
Detected Motor Error!
Motor controller has sensed a limit hit. Will switch access to System Manager.
-
All Encoders Failed !
Sensed failure of all encoders. Will switch access to System Manager.
The following messages are displayed via the process variable
(ID$(xx):Message2 ).
-
Energy <=> Gap Conversion OK
Energy - gap conversion was successful.
-
SMALL for Energy <=> Gap Conversion !!
Energy - gap conversion was not performed due to
either energy or gap being out of range.
-
LARGE for Energy <=> Gap Conversion!!
Energy - gap conversion was not performed due to
either energy or gap being out of range.
-
Energy/Taper Out of Range!!
Energy and taper combination is outside the operating range.
-
Call System Manager!!
Problem with the device requiring the ID System Manager to
intervene.
-
No Return without Full Open - IGNORED
A Return to User previous Gap was issued without a
global Full Open command.
-
FULL OPEN COMMAND!! Opening to xxx mm
A Full Open command is issued prior to injection.
-
"OPEN WHILE CLOSING!! Opening to xxx mm
A Full Open command was issued while the device was
returning to User previous gap.
-
Returning to User Gap of xxx.xxx mm
A global return to user gap command was issued.
-
STOPPED before User gap of xxx.xxx mm
The device was stopped while it was executing the return to
user previous gap.
-
Returning to previous gap of xxx.xxx mm
A global return command was issued and the was
in Machine Physics access mode.
-
STOPPED before previous gap of xxx.xxx mm
The device was stopped while it was executing the return to
previous gap command and the device was in Machine Physics access mode.
-
System Manager - FULL OPEN IGNORED!
A global full open command was issued while the device
was in System Manager access mode.
-
System Manager - Return Gap IGNORED!!
A global return to user previous gap was issued while
the device was in System Manager access mode.
The following messages are displayed via the process variable
(ID$(xx):Message3 ).
-
Gap Auto Openeed at ........
Time stamp of event when gap was auto opened.
-
Gap Open Aborted at ........
Time stamp of event when Auto Gap open is aborted due to shutter openning.
-
Gap Timer Started at ........
Time stamp of event when the countdown timer starts counting down.
How to Access
Please refer to the
Data from APS Control System doucument for a detailed approach on accessing
the data from the APS control system.
However to control and write into the controllable process variable
your computer name and the user name must be one from the list provided to
ASD Controls group.
In addition the access control for the specific device must be in USER mode.
Other Information
For your convenience we have provided medm adl files.
Sample screen can be viewed by clicking on the links below.
For the new version (3.0x and beyond) of Undulator Control Software it is
recommended that you retrieve these new adl files.
You can get a copy of these adl files by using the link below.
On these adl files replace $(xx) by
your sector number in the range 01-35.
If you feel you need any other additional information feel free to
contact ASD Controls.
Table of Process Variables
Listed below is a table of all process variables. The record type for
each process variable is also listed. The functionality of all the records is listed.
In addition a brief description of each record is listed.
| Process Variable |
Type |
Functionality |
Description |
| ID$(xx):GapSet |
AI |
User Control |
Set the Average Gap in mm. |
| ID$(xx):TaperGapSet |
AI |
User Control |
Set the Taper Gap amount in mm. |
| ID$(xx):ScanGap |
AI |
User Control |
Average Gap for Scanning in mm. |
| ID$(xx):ScanEnergy |
AI |
User Control |
Average Energy for Scanning in keV. |
| ID$(xx):EnergySet |
AI |
User Control |
Set the Average Energy in keV for the set Harmonic. |
| ID$(xx):TaperEnergySet |
AI |
User Control |
Set the Taper Energy amount in keV for the set Harmonic. |
| ID$(xx):DeadbandGap |
AI |
User Control |
Set the Deadband Value for the Gap in microns. |
| ID$(xx):HarmonicValue |
AO |
User Control |
Set the Harmonic Value for proper Energy conversions. |
| ID$(xx):Start |
BI |
User Control |
Set flag to start the device motion. |
| ID$(xx):Stop |
BI |
User Control |
Set flag to stop all motion of the device. |
| ID$(xx):SyncScanMode |
BI |
User Control |
Set the device up for performing Synchronous Scanning. |
| ID$(xx):SSStartGap |
AI |
User Control |
Set the Starting Gap for performing Synchronous Scanning in mm . |
| ID$(xx):SSEndGap |
AI |
User Control |
Set the Ending Gap for performing Synchronous Scanning in mm . |
| ID$(xx):SSTime |
AI |
User Control |
Set the Time Duration for performing Synchronous Scanning in seconds . |
| ID$(xx):SSStart |
BI |
User Control |
Set flag to start the Synchronous Scanning. |
| ID$(xx):TaperGap |
AO |
User Readback |
Readback of amount of Taper Gap in mm. |
| ID$(xx):Energy |
AO |
User Readback |
Readback of the Average Energy in keV for the set Harmonic. |
| ID$(xx):TaperEnergy |
AO |
User Readback |
Readback of the amount of Taper Energy in keV for the set Harmonic. |
| ID$(xx):Busy |
BO |
User Readback |
Busy flag readback to indicate device in motion. |
| ID$(xx):Message1 |
STRINGOUT |
User Readback |
Status and Error messages |
| ID$(xx):Message2 |
STRINGOUT |
User Readback |
Energy Conversion and global operation messages |
| ID$(xx):Message3 |
STRINGOUT |
User Readback |
Infromation about Auto Open-Close |
| ID$(xx):SSBusy |
BO |
User Readback |
Flag is set during the desired time for Synchronous Scanning. |
| ID$(xx):OldGapSet |
CALC |
User Readback |
Readback of Previous value of Average Gap Set in mm. |
| ID$(xx):Taper |
BO |
User Readback |
Indicates whether the device is in Tapered condition. |
| ID$(xx):EncoderSelect |
BI |
User Readback |
Readback of Encoder Selected |
| ID$(xx):PositionAccuracy |
CALC |
User Readback |
Current Operating Accuracy of the Device in mm. |
| ID$(xx):Location |
STRINGOUT |
Useful Readback |
Location Identifier String for the device. |
| ID$(xx):Device |
STRINGOUT |
Useful Readback |
Device Identifier String. |
| ID$(xx):Version |
STRINGOUT |
Useful Readback |
Software Version Number |
| ID$(xx):SSState |
MBBO |
Useful Readback |
Useful Status information during Synchronous Scanning. |
| ID$(xx):MotorSpeed |
AO |
Useful Readback |
Current Motor Speed in rev/sec |
| ID$(xx):ReturnGap |
AI |
Useful Readback |
Average User Gap saved for Global Return in mm. |
| ID$(xx):TaperReturnGap |
AI |
Useful Readback |
Taper Amount saved for Global Return in mm. |
| ID$(xx):ShClosedTime |
CALCOUT |
Useful Readback |
Time left before Auto Open of Device in seconds . |
| ID$(xx):TotalPower |
CALC |
Useful Readback |
Total Power output from the device normalized to 100 mA in Watts . |
| ID$(xx):ExpectedPower |
CALC |
Useful Readback |
Total Power for the Desired gap normalized to 100 mA in Watts . |
| ID$(xx):AccessSecurity |
MBBI |
Floor Coordinator Control |
Value of the current Access Security Mode. |
| ID$(xx):DeviceLimit |
AO |
Floor Coordinator Control |
Set the Small Gap limit for Beamline Operations in mm. |
| ID$(xx):DeviceLimit.DRVL |
AO |
System Manager Control |
Set the Lower Limit Gap for the device |
| ID$(xx):DeviceLimit.DRVH |
AO |
System Manager Control |
Set the Upper Limit Gap for the device. |
| ID$(xx):FullOpenGap |
AI |
System Manager Control |
Full Open Gap in mm. |
·
About
·
synApps
·
SPEC
·
Data Visualization
·
Data Acquisition
·
ebrick
·
Hardware
·
Software
·
Group Info
·
Sector Contacts
·
Knowledge Base
·
Meetings
·
·
Mailing list
·
APS PV Information
·
EPICS Naming Convention
·
|