This page was created by the IDL library routine
mk_html_help. For more information on
this routine, refer to the IDL Online Help Navigator
or type:
? mk_html_help
at the IDL command line prompt.
Last modified: Wed Nov 12 16:50:02 2003.
NAME:
EPICS_MOTOR::CALIBRATE
PURPOSE:
This procedure calibrates a motor. It moves the motor to either the
negative limit, positive limit or home position and then sets the dial
position to the value returned by EPICS_MOTOR::GET_CALIBRATION().
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->CALIBRATE
KEYWORD PARAMETERS:
NEGATIVE: Set this keyword to do the calibration at the negative
limit switch.
POSITIVE: Set this keyword to do the calibration at the positive
limit switch.
HOME: Set this keyword to do the calibration at the home position.
OFFSET: Set this keyword to calibrate the motor offset
NOCONFIRM: Set this keyword to suppress the confirmation dialog box
before setting the new dial position.
Note that only one of (NEGATIVE, POSITIVE or HOME) can be specified, but
OFFSET can be used either alone or together with any of the above.
PROCEDURE:
This procedure first determines the appropriate calibration value using
EPICS_MOTOR::GET_CALIBRATION().
It then does the following:
- If the calibration is done with /NEGATIVE or /POSITIVE
- Saves the motor soft limit
- Saves the motor slew speed
- Changes the soft limit to a very large value, so that the
hard limit can be reached.
- Hits appropriate limit at the slew speed
- Backs off 2000 steps
- Hits appropriate limit at slew speed/100
- If calibration is done with /HOME
- Does a motor home
- If the calibration is done with /NEGATIVE, /POSITIVE or /HOME
- Confirms if user wants to change calibration if /NOCONFIRM not
set
- Puts motor in SET mode
- Sets dial value to calibration
- Puts motor in USE mode
- Restores slew speed
- Restores soft limit
- If /OFFSET is specified
Sets offset to the offset calibration
EXAMPLE:
; Get the motor calibration value at the positive limit switch
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->CALIBRATE(/POSITIVE, /NOCONFIRM)
MODIFICATION HISTORY:
Written by: Mark Rivers, April 8, 2000
7-JAN-2000 MLR Added OFFSET keyword, changed logic so that
user value is not written to. Changed so NEGATIVE
is no longer a default keyword.
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::DONE
PURPOSE:
This function returns 1 if the motor is done moving and 0 if the motor
is still moving.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->DONE()
INPUTS:
None
KEYWORD PARAMETERS:
IGNORE_LIMITS: Set this keyword to prevent the routine from signalling
an error when a limit is hit.
OUTPUTS:
None
SIDE EFFECTS:
The routine checks whether the motor stopped due to a soft limit or
hard limit error. If it did then the routine signals the error with
the IDL MESSAGE procedure, unless the IGNORE_LIMITS keyowrd is set.
This will cause execution to halt within this routine unless an error
handler has been established with the IDL CATCH procedure.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->MOVE, .1, /RELATIVE ; Relative move 0.1 unit
if (motor->DONE()) then print, 'Done moving'
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
08-Apr-2000 MLR Added IGNORE_LIMITS keyword
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_ACCELERATION
PURPOSE:
This function returns the acceleration for the motor. The acceleration
is the time in seconds which the motor takes to go from the base speed
to the slew speed.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->GET_ACCELERATION()
INPUTS:
None:
OUTPUTS:
This function returns the acceleration for the motor.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
accel = motor->GET_ACCELERATION()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_BACKLASH
PURPOSE:
This function returns the backlash correction distance for the motor.
This distance is specified in user coordinate system units.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->GET_BACKLASH()
INPUTS:
None:
OUTPUTS:
This function returns the backlash correction distance for the motor.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
backlash = motor->GET_BACKLASH()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_BASE_SPEED
PURPOSE:
This function returns the base speed for the motor. The base speed
is the initial speed which the motor will use before starting to
accelerate to the slew speed. The base speed is specified in user
units per second.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->GET_BASE_SPEED()
INPUTS:
None:
OUTPUTS:
This function returns the base speed for the motor.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
speed = motor->GET_BASE_SPEED()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_CALIBRATION
PURPOSE:
This function returns one of four possible calibration settings
for the motor. The settings are negative limit, positive limit,
home, and offset. The returned value is in dial coordinates.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
cal = motor->GET_CALIBRATION(Status)
KEYWORD PARAMETERS:
NEGATIVE: Set this keyword to return the calibration value at the
negative limit switch. This is the default.
POSITIVE: Set this keyword to return the calibration value at the
positive limit switch.
HOME: Set this keyword to return the calibration value at the
home position.
OFFSET: Set this keyword to return the offset (the difference
between the user and dial coordinates)
OUTPUTS:
This function returns the requested calibration value in dial
coordinates.
Status: 0 if the calibration information was contained in the file,
-1 if it was not. For HOME and OFFSET Status=-1 is really
an error, for NEGATIVE and POSITIVE it is a warning that the
DHLM or DLLM values, rather than values from the file are
being returned.
PROCEDURE:
There are two possible sources of the calibration information. The
first is a file of motor calibrations. In order to use this file the
enivronment variable MOTOR_CALIBRATION must be set to the full path
name of this file. Each line of this file must be of the format:
MOTOR_NAME LIMIT POSITION OPTIONAL_COMMENT
for example:
13IDC:m1 NEGATIVE -5.667 ; Calibrated by MLR 4/5/2000
13IDA:m2 HOME 10.500 ; Calibrated by PJE 12/7/1999
13IDA:m2 OFFSET -1.5 ; Calibrated by PJE 12/7/1999
If the appropriate calibration cannot be found in this file then this
function returns the following values:
NEGATIVE motor.DLLM (Dial low limit)
POSITIVE motor.DHLM (Dial high limit)
HOME 0.0
OFFSET 0.0
In all of these cases the Status output will be -1.
EXAMPLE:
; Get the motor calibration value at the positive limit switch
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
cal = motor->GET_CALIBRATION(/POSITIVE, Status)
MODIFICATION HISTORY:
Written by: Mark Rivers, April 8, 2000
7-JAN-2002 MLR Added OFFSET keyword and Status output
Replaced STR_SEP with STRSPLIT
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_DESCRIPTION
PURPOSE:
This function returns the .DESC field of the EPICS motor record. This
is typically a short description of the function of the motor.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->GET_DESCRIPTION()
INPUTS:
None:
OUTPUTS:
This function returns the description of the motor.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
print, motor->GET_DESCRIPTION()
Horizontal slit position
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_HIGH_LIMIT
PURPOSE:
This function returns the software high limit for the motor.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->GET_HIGH_LIMIT()
INPUTS:
None:
KEYWORD PARAMETERS:
DIAL: Set this keyword to return the high limit in dial coordinates.
The default is to return the high limit in user coordinates.
OUTPUTS:
This function returns the software high limit of the motor.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
limit = motor->GET_HIGH_LIMIT()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_LOW_LIMIT
PURPOSE:
This function returns the software low limit for the motor.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->GET_LOW_LIMIT()
INPUTS:
None:
KEYWORD PARAMETERS:
DIAL: Set this keyword to return the low limit in dial coordinates.
The default is to return the low limit in user coordinates.
OUTPUTS:
This function returns the software low limit of the motor.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
limit = motor->GET_LOW_LIMIT()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_NAME
PURPOSE:
This function returns the EPICS record name for the motor. The record
name does not include any trailing period or field name.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->GET_NAME()
INPUTS:
None:
OUTPUTS:
This function returns the name of the motor.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos.DESC')
print, motor->GET_NAME()
13IDA_Slit1_Pos
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_OFFSET
PURPOSE:
This function returns the .OFF field of the EPICS motor record. This
is the offset between user and dial coordinates.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->GET_OFFSET()
INPUTS:
None:
OUTPUTS:
This function returns the offset of the motor.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
print, motor->GET_OFFSET()
MODIFICATION HISTORY:
Written by: Mark Rivers, January 7, 2002
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_POSITION
PURPOSE:
This function returns the current position of the motor. It can return
the position in user coordinates, dial coordinates or steps.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->GET_POSITION()
INPUTS:
None:
KEYWORD PARAMETERS:
DIAL: Set this keyword to return the position in dial coordinates.
The default is to return the position in user coordinates.
STEPS: Set this keyword to return the position in steps.
READBACK: Set this keyword to return the readback position (RBV, DRBV
or RRBV) rather than the drive position (VAL, DVAL, RVAL)
OUTPUTS:
This function returns the current position of the motor.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
position = motor->GET_POSITION()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_SCALE
PURPOSE:
This function returns the scale factor for the motor. The scale
factor is the number of steps per unit motion in the user coordinate
system. It is 1/.MRES, where .MRES is the motor resolution field of
the EPICS motor record.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->GET_SCALE()
INPUTS:
None:
OUTPUTS:
This function returns the scale factor for the motor.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
scale = motor->GET_SCALE()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::GET_SLEW_SPEED
PURPOSE:
This function returns the slew speed for the motor. The slew speed
is the speed which the motor will use after finishing its acceleration.
The slew speed is specified in user units per second.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = motor->GET_SLEW_SPEED()
INPUTS:
None:
OUTPUTS:
This function returns the slew speed for the motor.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
speed = motor->GET_SLEW_SPEED()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::INIT
PURPOSE:
This is the initialization code which is invoked when a new object of
type EPICS_MOTOR is created. It cannot be called directly, but only
indirectly by the IDL OBJ_NEW() function.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = OBJ_NEW('epics_motor', Record_Name)
INPUTS:
Record_Name: The name of the EPICS motor record for the motor object
being created. This record name can include a field
name which will be stripped off. For example,
'13IDA:Slit_Pos' and '13IDA:Slit_Pos.DESC' are both
valid. This makes it convenient when dragging process
variable names from MEDM windows to IDL windows.
OUTPUTS:
This function returns a status to indicate whether it was able to
establish channel access communication with the specified EPICS motor
record. This status is 1 for success, 0 for failure. This status is
passed back indirectly to the routine which calls OBJ_NEW(). OBJ_NEW
will return a valid object pointer if this routine succeeds, and will
return a NULL object pointer if this routine fails. The user should
test the return value of OBJ_NEW() with the IDL function OBJ_VALID().
SIDE EFFECTS:
The routine establishes channel access monitors on all of the fields
in the motor record which the methods in this class will read. This
greatly improves the speed and efficiency.
RESTRICTIONS:
This routine cannot be called directly. It is called indirectly when
creating a new object of class EPICS_MOTOR by the IDL OBJ_NEW()
function.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
if (OBJ_VALID(motor)) then print, 'It worked!'
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::MOVE
PURPOSE:
This procedure moves the motor. The move can be specified in either
user coordinates, dial coordinates or steps, and the position can be
specified in either absolute or relative coordinates.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->MOVE, Position
INPUTS:
Position: The desired position to move to. By default this is
specified as an absolute position in the user coordinate
system. The /DIAL and /STEPS keywords can be used to
specify positions in dial coordinates or steps. The
/RELATIVE keyword can be used to specify positions relative
to the current position, rather than absolute positions.
KEYWORD PARAMETERS:
DIAL: Set this keyword to indicate that the position is specified
in dial coordinates. The default is to specify the position in
user coordinates.
STEPS: Set this keyword to indicate that the position is specified
in motor steps. The default is to specify the position in
user coordinates.
RELATIVE: Set this keyword to indicate that the position is specified
relative to the current position. The default is to specify
the absolute position.
IGNORE_LIMITS: Set this keyword to prevent error signalling if a limit
is hit.
OUTPUTS:
None
SIDE EFFECTS:
The routine checks whether the move caused soft limit or hard limit
errors. If it did then the routine signals the error with the IDL
MESSAGE procedure unless the IGNORE_LIMITS keyword is set. This will
cause execution to halt within this routine unless an error handler
has been established with the IDL CATCH procedure.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->MOVE, 2. ; Move to absolute position 2. in user
; coordinates
motor->MOVE, 5., /DIAL ; Move to absolute position 5. in dial
; coordinates
motor->MOVE, .1, /RELATIVE ; Relative move 0.1 unit in user
; coordinates
motor->MOVE, 1000, /STEP, /RELATIVE ; Move 1000 steps relative to
; current position
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
08-APR-2000 MLR Added IGNORE_LIMITS keyword
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::SET_ACCELERATION
PURPOSE:
This procedure sets the acceleration for the motor. The acceleration
is the time in seconds which the motor takes to go from the base speed
to the slew speed.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->SET_ACCELERATION, Acceleration
INPUTS:
Acceleration: The desired acceleration time in seconds.
OUTPUTS:
None
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->SET_ACCELERATION, .01
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::SET_BACKLASH
PURPOSE:
This procedure sets the backlash correction distance for the motor.
This distance is specified in user coordinate system units.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->SET_BACKLASH, Backlash
INPUTS:
Backlash: The desired backlash correction distance in user
coordinates.
OUTPUTS:
None
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->SET_BACKLASH, .1
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::SET_BASE_SPEED
PURPOSE:
This procedure sets the base speed for the motor. The base speed
is the initial speed which the motor will use before starting to
accelerate to the slew speed.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->SET_BASE_SPEED, Base_speed
INPUTS:
Base_speed: The desired base speed in user units per second.
OUTPUTS:
None
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->SET_BASE_SPEED, .01
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::SET_DESCRIPTION
PURPOSE:
This procedure sets the .DESC field of the EPICS motor record. This
is typically a short description of the function of the motor.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->SET_DESCRIPTION, Description
INPUTS:
Description: A string which describes the motor
OUTPUTS:
None
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->SET_DESCRIPTION, 'Vertical slit position'
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::SET_HIGH_LIMIT
PURPOSE:
This procedure sets the software high limit for the motor.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->SET_HIGH_LIMIT, Limit
INPUTS:
Limit: The new software high limit for the motor.
KEYWORD PARAMETERS:
DIAL: Set this keyword to set the high limit in dial coordinates.
The default is to set the high limit in user coordinates.
OUTPUTS:
None.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->SET_HIGH_LIMIT, 50.
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::SET_LOW_LIMIT
PURPOSE:
This procedure sets the software low limit for the motor.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->SET_LOW_LIMIT, Limit
INPUTS:
Limit: The new software low limit for the motor.
KEYWORD PARAMETERS:
DIAL: Set this keyword to set the low limit in dial coordinates.
The default is to set the low limit in user coordinates.
OUTPUTS:
None.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->SET_LOW_LIMIT, 50.
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::SET_OFFSET
PURPOSE:
This function sets the .OFF field of the EPICS motor record. This
is the offset between user and dial coordinates.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->SET_OFFSET, offset
INPUTS:
offset: The motor offset
OUTPUTS:
None
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->SET_OFFSET, 1.5
MODIFICATION HISTORY:
Written by: Mark Rivers, January 7, 2002
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::SET_POSITION
PURPOSE:
This function sets the current position of the motor without moving it.
It can set the position in user coordinates, dial coordinates or steps.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->SET_POSITION, Position
INPUTS:
Position: The new motor position.
KEYWORD PARAMETERS:
DIAL: Set this keyword to set the position in dial coordinates.
The default is to set the position in user coordinates.
STEPS: Set this keyword to set the position in steps.
OUTPUTS:
None.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->SET_POSITION, 0.
MODIFICATION HISTORY:
Written by: Mark Rivers, April 8, 2000
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::SET_SLEW_SPEED
PURPOSE:
This procedure sets the slew speed for the motor. The slew speed
is the speed which the motor will use after finishing its acceleration.
The slew speed is specified in user units per second.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->SET_SLEW_SPEED, Slew_speed
INPUTS:
Slew_speed: The desired slew speed in user units per second.
OUTPUTS:
None
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->SET_SLEW_SPEED, .1
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR::WAIT
PURPOSE:
This procedure waits for the motor to finish moving.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
motor->WAIT
OPTIONAL INPUTS:
Delay The delay time between checking when the motor is done
Default is 0.1 second
KEYWORD PARAMETERS:
IGNORE_LIMITS: This keyword is passed to EPICS_MOTOR::DONE if present.
OUTPUTS:
None
SIDE EFFECTS:
This routine calls EPICS_MOTOR::DONE every 0.1 second to check whether
the move is complete. That routine checks whether the move terminated
due to soft or hard limit errors. If it did then it signals the
error with the IDL MESSAGE procedure. This will cause execution to
halt unless an error handler has been established with the IDL
CATCH procedure.
PROCEDURE:
Simply polls whether the motor is done moving with the
EPICS_MOTOR::DONE function and waits 0.1 second if it is not.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
motor->MOVE, .1, /RELATIVE ; Relative move 0.1 unit
motor->WAIT ; Wait for it to get there
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
18-Sep-1998 MLR Added Delay parameter. Made it wait one delay period
before checking, because motor moves no longer
use channel access callbacks, so the motor may
not have started to move when this routine is called
08-Apr-2000 MLR Added IGNORE_LIMITS keyword.
(See epics_motor__define.pro)
NAME:
EPICS_MOTOR__DEFINE
PURPOSE:
This is the definition code which is invoked when a new object of
type EPICS_MOTOR is created. It cannot be called directly, but only
indirectly by the IDL OBJ_NEW() function,
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = OBJ_NEW('epics_motor', Record_Name)
INPUTS:
Record_Name: The name of the EPICS motor record for the motor object
being created. This record name can include a field
name which will be stripped off. For example,
'13IDA:Slit_Pos' and '13IDA:Slit_Pos.DESC' are both
valid. This makes it convenient when dragging process
variable names from MEDM windows to IDL windows. This
name is passed to EPICS_MOTOR::INIT().
OUTPUTS:
None (but see EPICS_MOTOR::INIT)
RESTRICTIONS:
This routine cannot be called directly. It is called indirectly when
creating a new object of class EPICS_MOTOR by the IDL OBJ_NEW()
function.
EXAMPLE:
motor = obj_new('epics_motor', '13IDA:Slit1_Pos')
if (OBJ_VALID(motor)) then print, 'It worked!'
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_motor__define.pro)