.

Average: 0
Rating Count: 0

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.

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:01 a.m.