Personal tools
You are here: Home Device classes Abstract classes Motor
Document Actions

Motor

by chaize last modified 2007-08-28 16:07

Abstract class for stepper motors

A stepper motor is generally used to control the position of an axe. It has a certain number of standard tuning parameters such as acceleration, velocity, first step rate.  It's position can be controlled. Usually the velocity has a trapezoidal shape. the motor starts at a "fist_step"rate, then accelerate until a cruise speed, then decelerate until the destination position.

The present abstract class implements all these parameters as memorized attributes. i.e. the set value is automatically re-applied when starting the server. The position in step or in natural unit are also implemented as attributes. To move the motor in natural unit, you have just to write a new value to the Position attribute or to the Step attribute depending on the unit you chose.

A standard ATK java panel is available to provide a comfortable interface to any device deriving from this abstract class.

Version 1-1


Commands


The following commands must be implemented :

  1. On - switch ON the power on the motor controller  (state = ON)
  2. Off -switch OFF the power on the motor controller  (state = OFF)
  3. Stop - stop immediately the current movment  (state = OFF)
  4. GoHome - Move the the home switch position.
  5. StepUp - Perform a relative movment in the forward direction of StepSize physical units. StepSize being defined as an attribute.
  6. StepDown - Perform a relative movment in the backward direction of StepSize physical units. StepSize being defined as an attribute.

Attributes


The following attributes must be implemented :

Attribute
TypeAccess 
Description
Steps_per_unitDOUBLERW memorized    
number of steps per natural unit.(mm, degree etc...)
StepsLONGRWmemorizednumber of step in the step counter. A Write on this attribute starts the movment to the desired number of steps
PositionDOUBLERW
position expressed in natural unit (mm, degree etc..) it is proportional to the Steps attribute. A Write on this attribute starts the movment to the desired position
FirstStepVelocity
LONG
   RW
memorized
starting speed in steps/s
AccelerationLONGRWmemorizednumber of step/s2 in the acceleration phase
VelocityLONGRWmemorizedcruise velocity in steps/s
BacklashDOUBLERWmemorizednumber of natural unit for correcting the mechanical backlash. It can be positive or negative.
Home_positionDOUBLERWmemorizedPosition of the home switch expressed in natural unit
Home_side
BOOLEAN
    RO

True when the axis is above the home switch position, False if below.
LimitlowBOOLEANRO
True when the low limit switched is pressed
LimitupBOOLEANRO
True when the upper limit switch is pressed
PresetPositionDOUBLERW

used to load the step counter with a preset value after conversion. It is expressed in natural unit.
StepSize
DOUBLE
RW
memorized
size of the step performed by the StepUp and StepDown commands


States


The following states must be implemented :

  1. ON - the motor is powered
  2. OFF - the motor is not powered
  3. FAULT - the motor controller indicates a fault.
  4. ALARM - a limit switch is pressed or the motor controller indicates an alarm
  5. MOVING - the motor is moving

Properties

 Calibrated: Boolean property used to lock/unlock a certain number of parameters when the axis has been calibrated and all the parameters have been tuned depending on the masses, inertia, backlash etc...
When this property is different from 0, the motor is considered as calibrated and a certain number of attributes cannot be changed anymore.( e.g. step_per_unit, acceleration, backlash...) The goal is to avoid undesired change when the calibration process has been performed.

Implementations


The following device servers implement the motor abstract class :

  • Vpapmotor - for VPAP VME 8 axis stepper motor controller
  • MultipleAxes - group of several Vpapmotor axes. each motor position is represented as an attribute of a single device.

Clients


The following client programs depend on the Motor interface :

  • papmotorframe panel in atk
  • jmaxe atk GUI application

Contact


Please contact Jean-Michel Chaize (chaize at esrf dot fr) if you want to make proposals to change this interface or have questions about it.

Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: