.

Average: 0
Rating Count: 0

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

System Message: ERROR/3 (<string>, line 14)

Unexpected indentation.
changes by a defines increment, cf. attribute PositionCompareIncrement)

System Message: WARNING/2 (<string>, line 15)

Block quote ends without a blank line; unexpected unindent.

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.

13 Nov 2021, DS Admin
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.
Added by:dadmin on:10 Aug 2019, 4:02 a.m.