.

Average: 0
Rating Count: 0

Development status: Released, Release: Release_1_71
Information status: Updated
Repository: http://svn.code.sf.net/p/tango-ds/code/DeviceClasses/Motion/MotorControllers/OmsVme58
Contact:



Class Description


Stepping motor

Families: Motion

Key words:

Platform: Unix Like

Language: Cpp

License:

Contact:

Hardware


Manufacturer: none

Bus: VME

Class interface


Attributes:

Name Description
AccelerationScalar: DevLong the acceleration
BaseRateScalar: DevLong the motor starts to move with this rate, then accelerates
ConversionScalar: DevDouble the conversion factor, steps = conversion*units
FlagCalibrationDefinedScalar: DevLong set to 1, when the calibration is defined
FlagCalibrationUserDefinedScalar: DevLong set to 1, when the user calibration is defined
FlagConversionDefinedScalar: DevLong set to 1, when the conversion is defined
SettleTimeScalar: DevDouble used by completeMove to wait after a motor comes to \nrest
SlewRateScalar: DevLong the motor speed
SlewRateMaxScalar: DevLong the maximum slew rate
SlewRateMinScalar: DevLong the minumum slew rate
StepBacklashScalar: DevLong backlash is used for movements which have NOT\n (steps > 0 && StepBacklash) > 0 ||\n (steps < 0 && StepsBacklash) < 0
StepCalibrationScalar: DevLong see the description of unitCalibration
StepCalibrationUserScalar: DevLong this value may be changed by the user, it is an offset to\nstepCalibration, see the explanations at unitCalibration
StepLimitMaxScalar: DevLong corresponds to the upper unit limit, changing on affects the other
StepLimitMinScalar: DevLong corresponds to unit limit min, changing one affects the other
StepPositionInternalScalar: DevLong the internal (Software) position
StepPositionControllerScalar: DevLong the controller (Software) position
UnitBacklashScalar: DevDouble this value corresponds to stepBacklash, changing one\nchanges the other, see the explanations given \nfor stepBacklash
UnitCalibrationScalar: DevDouble the calibration point is specified by a unit position and\nthe corresponding step position, the formular for\nunits2steps is then: \n\nsteps = stepsCalibration + conversion*( unit - unitCalibration)
UnitCalibrationUserScalar: DevDouble this value may be changed by the user, an offset to the\nunitCalibration, see the explanation there
UnitLimitMaxScalar: DevDouble the upper motor limit
UnitLimitMinScalar: DevDouble the lower limit of a motor
DerivativeGainScalar: DevDouble
IntegralGainScalar: DevDouble
ProportionalGainScalar: DevDouble
TotalMoveTimeScalar: DevFloat
RemainingTimeScalar: DevFloat
CwLimitScalar: DevLong
CcwLimitScalar: DevLong
FlagProtectedScalar: DevLong Protection mask
MagnitudeScalar: DevLong
FlagMotorReadyScalar: DevLong
FlagBacklashScalar: DevLong Internally set to 1 if a backlash compensation will be performed at the end of the current movement. It shows always 0 if the motor is not moving or a backlash will not be added at the end of the started movement.
PositionScalar: DevDouble
AccuLimitMinScalar: DevLong
AccuLimitMaxScalar: DevLong
FlagEncoderConversionDefinedScalar: DevLong 1 if the conversion factor of the encoder was defined
FlagEncoderHomeDefinedScalar: DevLong 1 if the encoder home position was defined
FlagEncoderHomedScalar: DevLong 1 if the encoder went through a homing procedure. Can be set\nafter a server restart, if VME stayed on.
ConversionEncoderScalar: DevDouble the encoder conversion factor
HomePositionScalar: DevDouble the unit position of the encoder home switch
PositionEncoderScalar: DevDouble the motor postition calculated from the encoder reading,\nthe encoder conversion and the encoder home position
FlagUseEncoderPositionScalar: DevLong if 1, the server returns the encoder position when asked \nfor the motor position
PositionEncoderRawScalar: DevDouble the raw value from the encoder, does not involve a home position,\na homing procedure, etc.
FlagClosedLoopScalar: DevLong closed loop stepping mode on/off
SlewRateCorrectionScalar: DevLong the maximum slew used in closed loop corrections
StepDeadBandScalar: DevLong dead band in encoder counts (steps * encConv/Conv)
CorrectionGainScalar: DevLong [1,32000], SlewCorr = CorrGain*PositionError (but\n< SlewRateCorrection)
SlipToleranceScalar: DevLong slit tolerance, in encoder units, [0,65535]
CutOrMapScalar: DevDouble the value of the cut/mapping point, for explanations\nsee flagCutOrMap
FlagInvertEncoderDirectionScalar: DevLong
EncoderRatioScalar: DevDouble the output of the ER? command
FlagCutOrMapScalar: DevLong mirror the state of the FlagCutOrMap property, \nread-only
HomeStatusBitsScalar: DevLong represents the status of the home switch bits
FlagCheckZMXActivatedScalar: DevLong if the property ZMXDevice is defined and FlagCheckZMXActivated == 1: before each move (also vvc) it is asserted that the Deactivation ZMX attribute is 0.
UnitLimitMaxExpertScalar: DevDouble the expert value of the upper motor limit, purpose: overwrite changes to unitLimitMax made by the user
UnitLimitMinExpertScalar: DevDouble the expert value of the lower limit of a motor, the purpose is to overwrite the changes to unitLimitMin made by a user
RecentWritesSpectrum: DevString A debugging tool. This array contains records about the \nrecent write operations to the server.

Commands:

Name Description
StateInput: DevVoid
Output: State
State Code
This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller.
StatusInput: DevVoid
Output: ConstDevString
Status description
This command gets the device status (stored in its <i>device_status</i> data member) and returns it to the caller.
CheckMoveInput: DevVoid
Output: DevLong
return value
the function returns 1, if the motor is moving
CompleteMoveInput: DevVoid
Output: DevLong
return status of execution
waits for the move to be finished, does the backlash, if FlagBacklash
GetRegisterInput: DevVoid
Output: DevLong
the register contents
returns the stepper controller register contents, hardware
GetPositionInput: DevVoid
Output: DevDouble
the position
SetRegisterInput: DevLong
the new register contents
Output: DevLong
completion status
loads the motor register with a value, the hardware
SetupStepMoveInput: DevLong
final position, in steps
Output: DevLong
completion status
prepares a move, takes backlash into account, sets FlagMotorReady
SetupUnitMoveInput: DevDouble
final position, in units
Output: DevLong
completion status
prepares a move, calulates the new step position from the argument, the calibration value and the conversion factor, takes backlash into account, sets FlagMotorReady
StartMoveInput: DevVoid
Output: DevLong
completion status
a motor with FlagMotorReady is started, the function returns immediately
StopMoveInput: DevVoid
Output: DevLong
completion status
stop a movement, return immediately, don't wait for de-acceleation, don't do backlash
MoveInput: DevDouble
Final position, in units
Output: DevLong
Completion status
Setup motor, start move, complete move.
GetStepPositionInput: DevVoid
Output: DevLong
Position in steps
Returns the motor position in steps in case the internal and the controller stored positions agree. In other case it gives an error.
SetStepPositionInput: DevLong
argin is stored in the internal and controller registers, changing the motor position, if internal == controller. To resolve conflicts, write directly to the internal or controller register
Output: DevLong
Completion status
If StepPositonInternal != StepPositionController, an exception is thrown
ResetMotorInput: DevVoid
Output: DevLong
Completion status
Reset the motor
CalibrateInput: DevDouble
Value to be calibrated
Output: DevLong
Completion status
Calibrate the motor: current position is calibrated to be the value given as an argument
UserCalibrateInput: DevDouble
Value to be calibrated
Output: DevLong
Completion status
User an user calibration for calibrating the motor keeping the general one.
SetStepRegisterInput: DevLong
argin is stored in the internal and controller registers, if internal == controller. The motor unit position is unchanged. To resolve conflicts, write directly to the internal or controller registers.
Output: DevLong
Completion status
This command changes the internal value and the controller. The unit position remains unchanged
MoveHomeInput: DevVoid
Output: DevLong
completion status
executes the encoder homing procedure
CalibrateEncoderInput: DevVoid
Output: DevVoid
Uses the current motor unit position and the encoder home position to load the encoder raw position.
WriteReadInput: DevString
Output: DevString
Sends a command to the controller and returns the answer. The axis specification is automatically added to the command.
MoveToCwLimitInput: DevVoid
Output: DevLong
completion status
Moves the motor until the CW limit is reached (positive step direction, MA214700000). Software limits are ignored. StopMove works.
MoveToCcwLimitInput: DevVoid
Output: DevLong
completion status
Moves the motor until the CCW limit is reached (negative step direction, MA-214700000). Software limits are ignored. StopMove works.
ThreadActionInput: DevVoid
Output: DevVoid
Allows threads to execute preselected actions in the main thread
movevvcInput: DevVarStringArray
a list of strings representing the segments: ``slew:50000, position: 0.1``, ``slew: 30000, position: 0.2``, ``slew: 40000, position: 0.3``
Output: DevLong
1, if the setup was OK and the move could be started
executes a move using the variable velocity feature - the end positions of the segments have to be ordered - the current position has to comply with the order of the segments - no backlash is executed - the motor must not be in a limit - the motor must not be in closed loop - at the end of the last segment, the motor is decelerated to base - the collision check is done for the end position of the last segment
MoveLoopInput: DevString
A command containing a loop, e.g. AA;LS10;MA0;GO;MA10000;GO;MR,5000;GO;LE;MA0;ID - X is moved to 0 then to 10000 - Y is rel-moved by 5000 - X is moved to 0 after the loop expired - teh DONE flag is set at the end
Output: DevLong
1 for success
The input string is sent to a MaxV card, the state() is set to MOVING and the MoveThread takes control.
copyExpertLimitsToUserLimitsInput: DevVoid
Output: DevVoid
copy the unitLimitMaxExpert, ~min to unitLimitMax, ~min thereby overwriting the changes made by a user
copyUserLimitsToExpertLimitsInput: DevVoid
Output: DevVoid
copy the unitLimitMax, ~min to unitLimitMaxExpert, ~min thereby saving the current user mode values to the expert values

Pipes:

Properties:

Name Description
BaseDevULong vme base address
ChannelDevULong channel number
AccuMaxDevLong the maximum step register value
AccuMinDevLong minimum step register value
SlewRateMinHwDevLong the minumal slew rate, hardware
SlewRateMaxHwDevLong the maximum slew rate, hardware
AccelerationMinHwDevULong minimum acceleration, hardware
AccelerationMaxHwDevULong the maximum acceleration
TypeDevUShort Motor type. 0 -> StepperMotor 1 -> Servo
SimulationModeDevULong 0 real mode, 1 simulation mode
MaxVSerieDevShort 0 not MaxV 1 MaxV
IgnoreLimitSwDevULong set to 1: the server will ignore any limit switch signals, so you can move a motor with no switches connected set to 0: the server will honour limit switch signals
FlagEncoderDevLong 1 if an encoder Rnishaw rgh24 is connected 2 if an SSI encoder is connected
FlagUseCollisionsSensorDevLong Set to 1 for using CollisionsSensor Server for checking possible collisions.
CollisionsSensorDSDevString Name of the CollisionsSensor Device Server to be connected to.
CollisionsSensorBLDevString Beamline identification as string, needs for sending to CollisionsSensor.
ZMXDeviceDevString Name of the zmx device connected to this motor. If this property is set: - the connection will be tested during server startup. FlagCheckZMX == -1 if the connection fails - Before moves are executed: + FlagCheckZMX != -1 is tested + the state() of the ZMX is tested
FlagSendDataToCollisionsSensorDevLong If one limits are send to the collision sensor before checking the movement. It is necessary if any attribute of this server has to be used in the check routine.
FlagCutOrMapDevLong 0 - ignore, 1 - cut, 2 - map Cutting point: cannot be passed through, the position stays in [cut, cut+360[ Mapping point: the position is kept in [map, map+360[, automatic re-calibrations
AbsoluteEncoderOffsetDevLong SSI absolute encoder difference (in counts) between absolute encoder zero and your desired zero position
AbsoluteEncoderResolutionDevShort SSI encoder resolution in bits
AbsoluteEncoderFrequencyDevULong SSI encoder data rate in Hz. Valid rates are 31250, 62500, 125000, 250000, 500000, 1000000, 2000000 and 4000000
HomeDefinitionDevString EHhiba h home i index b phase a phase
HomeIndexDefinitionDevString 1 - enables encoder index, phase A and B 0 - disables I, A, B
VmeCardDevULong identifies the VME card, can be 0 or 1, default: 0


Please log in to comment.

Generated

PDF generated from POGO



README

b'\n./ivp.py -x\n for a complete IVP for the Oms Server\n\n./ivp.py -x -n \n for a complete IVP for the Oms Server, no prompts\n\n./VVC.py -x\n to perform the variable velocity contouring test\n (this test is also in ivp.py)\n '

6 Feb 2021, DS Admin
Updated:
The device class has been updated.
You can see previous version here .



19 May 2018, DS Admin
Updated:
The device class has been updated.
You can see previous version here .



31 Mar 2018, DS Admin
Updated:
A device class has been added.
You can see previous version here .



31 Mar 2018, DS Admin
Updated:
The device class has been updated.
You can see previous version here .



17 Feb 2018, DS Admin
Updated:
The device class has been updated.
You can see previous version here .



5 Jan 2018, DS Admin
Updated:
The device class has been updated.
You can see previous version here .



9 Sep 2017, Piotr Goryl
Updated:
The device class has been updated.
You can see previous version here .



20 Apr 2017, Piotr Goryl
Updated:
The device class has been updated.
You can see previous version here .



23 Feb 2017, Piotr Goryl
Updated:
The device class has been updated.
You can see previous version here .



19 Jan 2017, Piotr Goryl
Updated:
The device server has been updated.
You can see previous version here .



2 Jan 2017, Piotr Goryl
Created:
The device server has been added to catalogue.
Added by:pgoryl2 on:2 Jan 2017, 2:53 p.m.