Development status:
Released,
Release: Release_1_8
Information status: Updated
Repository:
http://svn.code.sf.net/p/tango-ds/code/DeviceClasses/Motion/MotorControllers/Smaract/SmarActMCS2Ctrl
Contact:
Class Description
Controller device server for MCS2 Smaract Control System.
Commands / attributes of this class should never be called directly, they are meant to be called from the SmarActMCS2Motor devices.
If your controller is equipped with an IO module, you will see an additional attribute:
IoModuleOutputVoltage: This attribute specifies the IO module output voltage for the digital outputs. Valid value are: 0: 3V 1: 5V
Families: Motion
Key words:
Platform: Unix Like
Language: Cpp
License: GPL
Contact:
Hardware
Manufacturer: Smaract
Product:
Bus: Not Applicable
Class interface
Attributes:
Name | Description |
---|---|
StreamBaseRateScalar: DevLong | Stream base rate for trajectory streaming. Range: 10 - 1000 hz Smaract property: SA_CTL_PKEY_STREAM_BASE_RATE |
StreamTriggerModeScalar: DevLong | Stream trigger mode for trajectory streaming: 0: Direct Mode 1: External Once Mode 2: External Synchronization Mode 3: External Check the Smaract docs on the specific meaning of these modes Smaract command: SA_CTL_OpenStream |
ExternalSyncRateScalar: DevLong | External stream synchronization rate in Hz for the trajectory streaming. May be used to synchronize the internal position streaming clock to an external clock signal. StreamBaseRate must be a whole-number multiple of the external sync rate. Value is ony used when trigger mode is set to external sync ( = 2). Smaract property: SA_CTL_PKEY_STREAM_EXT_SYNC_RATE |
StreamLoadMaxScalar: DevLong | Shows the maximum load generated by the current stream in percent. It acts like a peak detector. The highest load level generated by the currently running stream is shown. When starting the trajectory streaming the load value is reset to zero. Smaract property: SA_CTL_PKEY_STREAM_LOAD_MAX |
StreamReadyScalar: DevBoolean | Will change to true when sufficient trajectory stream data have been transmitted to the controller so streaming an be started. A change event with value true when the stream is ready and with value false when the stream is started will be emitted. Smaract event: SA_CTL_EVENT_STREAM_READY |
StreamStartedScalar: DevBoolean | Will change to true when the trajectory stream is started and to false when the stream is finished. A change event with value true when the stream is started and with value false when the stream is finished will be emitted. Smaract event: SA_CTL_EVENT_STREAM_FINISHED |
IOModulePresentScalar: DevBoolean | True, if io module is installed in the controller. Checked by setting SA_CTL_PKEY_IO_MODULE_OPTIONS with SA_CTL_IO_MODULE_OPT_BIT_DIGITAL_OUTPUT_ENABLED and evaluating the return code. |
LinearInterpolationScalar: DevBoolean | Enable / disable linear interpolation of path between consecutive stream target positions true: enabled false: disabled Smaract property: SA_CTL_PKEY_STREAM_OPTIONS/SA_CTL_STREAM_OPT_BIT_INTERPOLATION_DIS |
EventInfoSpectrum: DevULong | Used to propagate events from hardware to axis devices: 0: axis index 1: event type 2: further event description |
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. |
AxisStateInput: DevULong Axis number Output: DevUShort Axis status |
Returns 16-bit value describing channel state: 0 SA_CTL_CH_STATE_BIT_ACTIVELY_MOVING 0x0001 1 SA_CTL_CH_STATE_BIT_CLOSED_LOOP_ACTIVE 0x0002 2 SA_CTL_CH_STATE_BIT_CALIBRATING 0x0004 3 SA_CTL_CH_STATE_BIT_REFERENCING 0x0008 4 SA_CTL_CH_STATE_BIT_MOVE_DELAYED 0x0010 5 SA_CTL_CH_STATE_BIT_SENSOR_PRESENT 0x0020 6 SA_CTL_CH_STATE_BIT_IS_CALIBRATED 0x0040 7 SA_CTL_CH_STATE_BIT_IS_REFERENCED 0x0080 8 SA_CTL_CH_STATE_BIT_END_STOP_REACHED 0x0100 9 SA_CTL_CH_STATE_BIT_RANGE_LIMIT_REACHED 0x0200 10 SA_CTL_CH_STATE_BIT_FOLLOWING_LIMIT_REACHED 0x0400 11 SA_CTL_CH_STATE_BIT_MOVEMENT_FAILED 0x0800 12 SA_CTL_CH_STATE_BIT_IS_STREAMING 0x1000 14 SA_CTL_CH_STATE_BIT_OVER_TEMPERATURE 0x4000 15 SA_CTL_CH_STATE_BIT_REFERENCE_MARK 0x8000 |
GetPositionInput: DevULong Axis number Output: DevLong64 Current position |
returns current position in encoder steps |
SetMoveModeInput: DevVarLongArray 0: axis number 1: move mode: - 0 : closed loop absolute - 1 : closed loop relative - 2 : scan mode absolute - 3 : scan mode relative - 4 : step mode Output: DevVoid |
set move mode 0 : closed loop absolute 1 : closed loop relative 2 : scan mode absolute 3 : scan mode relative 4 : step mode |
GetMoveModeInput: DevULong axis number Output: DevLong move mode: 0 : closed loop absolute 1 : closed loop relative 2 : scan mode absolute 3 : scan mode relative 4 : step mode |
get move mode 0 : closed loop absolute 1 : closed loop relative 2 : scan mode absolute 3 : scan mode relative 4 : step mode |
GetStepAmplitudeInput: DevULong axis number Output: DevLong currently set step amplitude |
Gets step amplitude for open-loop movements. Value range: 1 - 65535 65535 corresponds to 100V |
SetStepAmplitudeInput: DevVarLongArray 0: axis number 1: step amplitude Output: DevVoid |
Sets step amplitude for open-loop movements. Value range: 1 - 65535 65535 corresponds to 100V |
GetStepFrequencyInput: DevULong axis number Output: DevLong currently set step frequency |
Gets step frequency for open-loop movements. Value range: 1 - 20000 Hz |
SetStepFrequencyInput: DevVarLongArray 0: axis number 1: step frequency Output: DevVoid |
Sets step frequency for open-loop movements. Value range: 1 - 20000 Hz |
SetPositionInput: DevVarLong64Array 0: Axis number 1: target position Output: DevVoid |
moves axis the effect of writing a position value depends on the set move mode |
SetAutoZeroInput: DevVarULongArray 0: axis number 1: true = set position counter to 0 after reference mark was found 2: false = do nothing after reference mark was found Output: DevVoid |
sets auto zero property |
GetAutoZeroInput: DevULong 0: axis number Output: DevBoolean true = position counter to will be set to 0 after reference mark was found false = nothing happens to position counter after reference mark was found |
gets auto zero property |
GetVelocityInput: DevULong axis number Output: DevLong64 currently set closed loop velocity |
Gets closed loop velocity. |
SetVelocityInput: DevVarLong64Array 0: axis number 1: new closed loop velocity Output: DevVoid |
Sets closed loop velocity Value range: 0 - 100000000000 |
GetHoldTimeInput: DevULong axis number Output: DevULong currently set hold time |
Gets hold time for closed -loop movements. |
SetHoldTimeInput: DevVarULongArray 0: axis number 1: hold time Output: DevVoid |
Sets hold time (time in ms the position is actively held after reaching the target posi-tion) for closed-loop movements. Value range: 0 - 4294967295 (0 disables holding, max value is for infinite, i.e. hold until motor is stopped) |
GetPositionKnownInput: DevULong axis number Output: DevBoolean true: physical position is known false: physical position is not known |
Finds out whether the physical position of this axis is known. If false and the motor has an encoder with reference mark, run command `Home`. |
GetAxisTypeInput: DevULong axis number Output: DevULong axis type: 0: linear movement 1: rotary movement 2: goniometer 3: tilt movement |
— |
GetMaxFrequencyInput: DevULong axis number Output: DevLong currently set maximum closed loop frequency |
Gets maximumfrequency for closed-loop movements. |
SetMaxFrequencyInput: DevVarLongArray 0: axis number 1: maximum closed loop frequency Output: DevVoid |
Sets maximum frequency for closed-loop movements. Value range: 50 - 20000 Hz |
GetSensorTypeInput: DevULong axis number Output: DevULong Sensor type number |
Get sensor type number, check with hardware doc |
GetMaxStepLimitInput: DevULong axis number Output: DevLong64 currently set range limit maximum |
— |
GetMinStepLimitInput: DevULong axis number Output: DevLong64 currently set range limit minimum |
— |
SetMaxStepLimitInput: DevVarLong64Array 0: axis number 1: maximum range limit Output: DevVoid |
— |
SetMinStepLimitInput: DevVarLong64Array 0: axis number 1: minimum range limit Output: DevVoid |
— |
CalibrateInput: DevULong axis number Output: DevVoid |
Perform calibration for channnel <axis number>. Should only be necessary if setup was changed (e.g. new / different positioner connected). Requires encoded positioner, encoder has to be enabled. |
SetCalibrationOptionsInput: DevVarULongArray 0: axis number 1: calibration options bit field Output: DevVoid |
Set calibration option (used with Calibrate command) bit 0: Direction bit 1: Detect Distance Code Inversion bit 2: Advanced Sensor Correction bit 8: Limited Travel Range all other bits are reserved |
GetCalibrationOptionsInput: DevULong axis number Output: DevULong currently set calibration options |
Get calibration option (used with Calibrate command) bit 0: Direction bit 1: Detect Distance Code Inversion bit 2: Advanced Sensor Correction bit 8: Limited Travel Range all other bits are reserved |
HoldPositionInput: DevULong axis number Output: DevVoid |
Enables holding the current position by setting the move mode to closed loop relative movement and then driving by 0 encoder steps. (c.f. programmer manual, 2.6.4) |
StopInput: DevULong axis number Output: DevVoid |
Stop movement on axis <axis number> |
SetSensorModeInput: DevVarLongArray 0: axis number 1: sensor mode 0: sensor disabled 1: sensor continuously supplied with power 2: sensor power supply pulsed to keep the heat generation low Output: DevVoid |
— |
GetSensorModeInput: DevULong axis number Output: DevLong sensor mode 0: sensor disabled 1: sensor continuously supplied with power 2: sensor power supply pulsed to keep the heat generation low |
— |
GetAccelerationInput: DevULong axis number Output: DevLong64 currently set closed loop acceleration |
Gets closed loop acceleration |
SetAccelerationInput: DevVarLong64Array 0: axis number 1: new closed loop acceleration Output: DevVoid |
Sets closed loop acceleration |
GetActuatorModeInput: DevULong axis number Output: DevLong currently set actuator mode |
Gets currently set actuator mode |
SetActuatorModeInput: DevVarLongArray 0: axis number 1: actuator mode Output: DevVoid |
— |
HomeInput: DevULong axis number Output: DevVoid |
— |
GetFollowingErrorLimitInput: DevULong axis number Output: DevLong64 currently set following error limit |
Gets currently set following error limit |
SetFollowingErrorLimitInput: DevVarLong64Array 0: axis number 1: new following error limit Output: DevVoid |
Sets following error limit Value range: 0 - 100000000000000 |
StartStreamingInput: DevVoid Output: DevVoid |
Start trajectory streaming. Make sure attribute TrajectoryData has been written before calling this. Smaract commands: SA_CTL_OpenStream/SA_CTL_StreamFrame/SA_CTL_CloseStream |
SetSearchDirectionInput: DevVarULongArray 0: axis number 1: toggling true / false will reverse search direction on reference mark search Output: DevVoid |
sets search direction property |
GetSearchDirectionInput: DevULong 0: axis number Output: DevBoolean |
gets search direction property |
GetSensorNameInput: DevULong axis number Output: DevString Sensor type name |
Get description of sensor type number, check with hardware doc |
GetSensorReferenceTypeInput: DevULong axis number Output: DevULong Sensor reference mark type |
Get sensor reference mark type: no reference mark: 0 end stop: 1 single mark: 2 distance coded: 3 |
SetConversionInput: DevVarDoubleArray 0: axis number 1: conversion factor if this axis Output: DevVoid |
Internal use only |
AbortStreamingInput: DevVoid Output: DevVoid |
Immediately abort trajectory streaming. Smaract command: SA_CTL_AbortStream |
SetSensorTypeInput: DevVarULongArray 0: axis number 1: sensor type code (cf. Smaract docs). Use with care, setting a wrong sensortype may damagage hardware Output: DevVoid |
Sets sensort type code (use with care!) |
SetOffsetInput: DevVarLong64Array 0: Axis number 1: offset value Output: DevVoid |
Set logical scale offset in encoder steps (Property SASA_CTL_PKEY_LOGICAL_SCALE_OFFSET) |
GetOffsetInput: DevULong Axis number Output: DevLong64 Currently set offset |
returns current logical scale offset (Property SASA_CTL_PKEY_LOGICAL_SCALE_OFFSET) |
SetOffsetAbsoluteInput: DevVarLong64Array 0: Axis number 1: offset value Output: DevVoid |
Since it`s almost impossible to set the offset to a precise value using the axis devices Calibrate command (because the positioner will constantly waggle a bit and the current position is used to calculate the offset) you can use this to set the offset to an absolute value. |
Pipes:
Properties:
Name | Description |
---|---|
HostNameDevString | Hostname / IP address of device |
PortNumberDevString | Port number of controller |
ConnectTypeDevString | either `net` or `usb` |
USBIDDevString | Usb id of the device |
PicoScaleHostNameDevString | If any axis use a Picoscale interferometer as encoder and the PicoScale is connected via network, put the Picoscales hostname/ip address here. |
PicoScaleUSBIDDevString | If any axis use a Picoscale interferometer as encoderan an the Picoscale is connected vi usb, put the Picoscales usb id here. |
PicoScaleConnectTypeDevString | either `net` or `usb` |
GlobalInputPresentDevBoolean | Set this to true if your device sits in a MCS2 19``-rack-housing with a global input |
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.