Development status:
Released,
Release: Release_1_9
Information status: Updated
Repository:
http://svn.code.sf.net/p/tango-ds/code/DeviceClasses/Motion/MotorControllers/Smaract/SmarActMCS2Motor
Contact:
Class Description
Motor class for smaract mcs controller.
The server supports using a Picoscale interferometer as encoder. If you don`t want or need this call make PICOSCALESUPPORT=no.
If your controller has an IO module added, you will see some additional attributes on the motor devices
OutputTriggerMode: This attribute specifies the output trigger mode of a motor channel. Valid values are: 0: constant mode (output trigger does not change) 1: position compare (output trigger will change when the position
changes by a defines increment, cf. attribute PositionCompareIncrement)
2: target reached (output trigger will change when the motor has reached it`s target position) 3: active move (utput trigger will change when the motor starts/stops)
PositionCompareDirection: This attribute specifies the position compare direction when having set OutputTriggerMode to 2. Valid values are: 0: forward direction, the trigger pulse is output when the position value passes the threshold from below. 1: backward direction, the trigger pulse is output when the position value passes the threshold from above. 2: either direction, the trigger pulse is output when the position value passes the threshold from below or above.
OutputTriggerPolarity: This attribute specifies the output trigger polarity. Valid values are: 0: active low (the idle levelis high and a low pulse is generated when the trigger occurs) 1: active high (he idle levelis low and a high pulse is generated when the trigger occurs)
OutputTriggerPulseWidth: This attribute specifies the output trigger pulse width. Valid range is:
100 ns ... 4 × 10^9 ns
PositionCompareStartThreshold: This attribute specifies the position compare start threshold when having set OutputTriggerMode to 2. As soon as the position passes this threshold in the configured direction (cf. attribute PositionCompareDirection) an output pulse is generated. Additionally the threshold is incremented by the value of the atribute PositionCompareIncrement to define the next trigger threshold.
PositionCompareIncrement: This attribute specifies the position compare output trigger increment. Valid range is 1 ... 1 × 10^12 pm or n° (watch out, attribute conversion is taken into account)
PositionCompareLimitMin: This attribute specifies the lower limit for the position compare output trigger. The limits act as an additional gate for the generation of output pulses. Output pulses are only generated when the current position lies between the configured minimum and maximum limits. Note that the maximum limit must be configured to a higher value than the minimum limit for the limit checks to be active. If both limits are set to the same value the checks are disabled and output pulses are generated according to the configured start threshold, increment and direction.
PositionCompareLimitMax: This attribute specifies the upper limit for the position compare output trigger in pm or n°. The limits act as an additional gate for the generation of output pulses. Output pulses are only gener- ated when the current position lies between the configured minimum and maximum limits. Note that the maximum limit must be configured to a higher value than the minimum limit for the limit checks to be active. If both limits are set to the same value the checks are disabled and output pulses are generated according to the configured start threshold, increment and direction.
For more detailed information on the use of trajectory streaming and the IO modules check the smaract documentation.
Families: Motion
Key words:
Platform: Unix Like
Language: Cpp
License: GPL
Contact:
Hardware
Manufacturer: Smaract
Product:
Bus: Not Applicable
Class interface
Attributes:
Name | Description |
---|---|
MoveModeScalar: DevLong | Get/Set move mode. This might mofify meaning and behaviour of Position attribute 0 : closed loop absolute 1 : closed loop relative 2 : scan mode absolute 3 : scan mode relative 4 : step mode Smaract property: SA_CTL_PKEY_MOVE_MODE |
StepAmplitudeScalar: DevLong | Gets/sets step amplitude for open-loop movements. Value range: 1 - 65535 65535 corresponds to 100V Smaract property: SA_CTL_PKEY_STEP_AMPLITUDE |
StepFrequencyScalar: DevLong | Gets/sets step frequency for open-loop movements. Value range: 1 - 20000 Hz Smaract property: SA_CTL_PKEY_STEP_FREQUENCY |
PositionScalar: DevDouble | Native units are picometer for linear axes and nanodegrees for rotary axes. Can be changed by adjusting conversion attribute. Smaract property (for reading): SA_CTL_PKEY_POSITION Smaract command (for writing): SA_CTL_Move |
ConversionScalar: DevDouble | Factor for converting encoder steps to units, defaults to 1 |
UnitLimitMinScalar: DevDouble | MInimum position in units we are allowed to go to. If both UnitLimitMin and UnitLimitMax are set to 0 limit settings are ignored. |
UnitLimitMaxScalar: DevDouble | Maximum position in units we are allowed to go to. If both UnitLimitMin and UnitLimitMax are set to 0 limit settings are ignored. |
AutoZeroScalar: DevBoolean | If set to true, the current position will be set to 0 when the reference mark is found on running the Home command. Smaract property: SA_CTL_PKEY_REFERENCING_OPTIONS/SA_CTL_REF_OPT_BIT_AUTO_ZERO |
HoldTimeScalar: DevULong | Closed loop velocity hold time (time in ms the position is actively held after reaching the target posi- tion) Range: 0 - 4294967295 (0 disables holding, max value is for infinite, i.e. hold until motor is stopped) Smaract property: SA_CTL_PKEY_HOLD_TIME |
SpeedScalar: DevLong64 | Closed loop velocity, pm s^-1 for linear movements, n° s^−1 for rotary movements Range: 0 - 100000000000 Smaract property depends on MoveMode: for closed loop relative/absolute: SA_CTL_PKEY_MOVE_VELOCITY for scan mode relative/absolut: SA_CTL_PKEY_SCAN_VELOCITY for step mode: not applicable, throws exception use attributes StepFrequency/StepAmplitude to adjust |
PositionKnownScalar: DevBoolean | True, if physical position is known (i.e. Home command ran successfully). Not applicable in scan mode / step mode, throws exception. Smaract property: SA_CTL_PKEY_CHANNEL_STATE/SA_CTL_CH_STATE_BIT_IS_REFERENCED |
AxisTypeScalar: DevULong | The axis type, 0: linear movement 1: rotary movement 2: goniometer 3: tilt movement Smaract property: SA_CTL_PKEY_POS_MOVEMENT_TYPE |
MaxFrequencyScalar: DevLong | The maximum closed loop frequency in hz (50 - 20000). If you experience sudden stops on one axis when starting a movement on another try setting this to a lower value. Smaract property: SA_CTL_PKEY_MAX_CL_FREQUENCY |
SensorTypeScalar: DevULong | Sensor type number, check with hardware doc (MCS2PositionerTypes.pdf) Smaract property: SA_CTL_PKEY_POSITIONER_TYPE |
StepLimitMinScalar: DevLong64 | This attribute uses the controllers ability to store limit values. If this value is set a movement will stop if this limit is hit. The attribute does not take conversion into account, it treats values as encoder steps. To enable this feature set StepLimitMax to a value greater than StepLimitMin. Valid range: -100000000000000 - 100000000000000 Smaract property: SA_CTL_PKEY_RANGE_LIMIT_MIN |
StepLimitMaxScalar: DevLong64 | This attribute uses the controllers ability to store limit values. If this value is set a movement will stop if this limit is hit. The attribute does not take conversion into account, it treats values as encoder steps. To enable this feature set StepLimitMax to a value greater than StepLimitMin. Valid range: -100000000000000 - 100000000000000 Smaract property: SA_CTL_PKEY_RANGE_LIMIT_MAX |
SensorModeScalar: DevLong | sensor mode 0: sensor disabled 1: sensor continuously supplied with power 2: sensor power supply pulsed to keep the heat generation low Smaract property: SA_CTL_PKEY_SENSOR_POWER_MODE |
ActuatorModeScalar: DevLong | actuator mode 0: normal 1: quiet 2: low vibration (needs feature permission activated and payed for) Smaract property: SA_CTL_PKEY_ACTUATOR_MODE |
AccelerationScalar: DevLong64 | Closed loop acceleration, pm s^−2 for linear positioners and n° s^−2 for rotary positioners Range: 0 - 100000000000 Smaract property: SA_CTL_PKEY_MOVE_ACCELERATION |
FollowingErrorLimitScalar: DevLong64 | Following error limit, pm for linear movements and n° for rotary movements. A value of 0 disables following error detection. Range: 0 - 100000000000 Smaract property: SA_CTL_PKEY_FOLLOWING_ERROR_LIMIT |
SearchDirectionScalar: DevBoolean | Toggling the value will reverse start direction on reference mark search. true: search in negative direction false: search in positive direction The search direction value does not take the sign of the conversion attribute into respect. Smaract property: SA_CTL_PKEY_REFERENCING_OPTIONS/SA_CTL_REF_OPT_BIT_START_DIR |
SensorNameScalar: DevString | Sensor type description, check with hardware doc (MCS2PositionerTypes.pdf) Smaract property: SA_CTL_PKEY_POSITIONER_TYPE_NAME |
Commands:
Name | Description |
---|---|
StateInput: DevVoid Output: State Device state |
This command gets the device state (stored in its device_state data member) and returns it to the caller. |
StatusInput: DevVoid Output: ConstDevString Device status |
This command gets the device status (stored in its device_status data member) and returns it to the caller. |
HomeInput: DevVoid Output: DevVoid |
Drive to reference mark (and set position to 0 if AutoZero ist true) Smaract command: SA_CTL_Reference |
CalibrateAxisInput: DevVoid Output: DevVoid |
performs a calibration routine for a channel Smaract command: SA_CTL_Calibrate Mostly needed if you hooked up another positioner to this channel. |
StopInput: DevVoid Output: DevVoid |
Stop movement on this axis (holding will be disabled if in closed loop mode). Smaract command: SA_CTL_Stop |
CalibrateInput: DevDouble Calibration value Output: DevLong either one or an exception will be thrown |
Set logical motor position to input value. |
Pipes:
Properties:
Name | Description |
---|---|
SmarActMCS2CtrlDeviceDevString | Name of SmarActMCS2Ctrl device |
AxisNumberDevULong | axis index number |
PicoScaleEncodedDevBoolean | Set to true, if this axis uses a picoscale interferometer as encoder (may need server code recompile with `make PICOSCALESUPPORT=yes`) |
SensorTypeDevULong | Normally the sensor type will be configured by Smaract for the positioners the controller was ordered/delivered with. If this property is 0 (the default value) we assume that this is still the case, no modification to the controller-stored sensor type will be done. If you ever change to a different type of positioner its sensor type code has to be given to the controller. Check out the type code from the smaract docs (MCS2PositionerTypes.pdf.gz) and enter it here. It will be written to the controller at server start. |
Please log in to comment.
Updated:
The device class has been updated.
You can see previous version here .
11 Sep 2021, DS Admin
Updated:
The device class has been updated.
You can see previous version here .
14 Aug 2021, DS Admin
Updated:
The device class has been updated.
You can see previous version here .
27 Mar 2021, DS Admin
Updated:
The device class has been updated.
You can see previous version here .
13 Jun 2020, DS Admin
Updated:
The device class has been updated.
You can see previous version here .
12 Oct 2019, DS Admin
Updated:
The device class has been updated.
You can see previous version here .
24 Aug 2019, DS Admin
Updated:
The device class has been updated.
You can see previous version here .
10 Aug 2019, DS Admin
Created:
The device class has been added to catalogue.