mundo_conex

The CONEX-CC driver plugin adds support for the Newport CONEX-MFACC linear stage.

class plugins.mundo_conex.main.CONEXPlugin(
context: mundo.api.context.ApplicationContext
)

CONEX plugin adds support for the CONEX-CC controller that is used to control the Newport MFA-CC linear stages.

__init__(
context: mundo.api.context.ApplicationContext
) None

Initializes the plugin.

It is recommended to always call this constructor in your own plugins, even if you implement your own.

Parameters

context – Instance of the ApplicationContext class

CONEX driver

class plugins.mundo_conex.driver.CONEX(
resource_manager: pyvisa.highlevel.ResourceManager,
path: str
)

Implements a driver for the CONEX-CC controller that is used to control the Newport CONEX-MFACC linear stage.

__init__(
resource_manager: pyvisa.highlevel.ResourceManager,
path: str
) None

Sets the required configuration needed for communicating with the controller and initializes it to a ready state for incoming communication.

Parameters
  • resource_manager – the pyvisa object that contains the resources for the connected instrument(s).

  • path – The relative path for the given instrument.

Raises

InitializationError – Raised if the setup process failed

property name: Optional[str]

The name of the controller. This value is not persistent and will be reset upon application termination. For example, this might be used to keep track of what axis a controller is assigned to.

Returns

The custom runtime name of the controller

property identifier: str

Returns controller identifier, e.g. ‘URS100CC’

Returns

The identifier of the controller

Raises

CommandExecutionError – Raised if the previously executed command resulted in an error

property unit_size: float

The size of a unit in nanometers.

property travel_range: float

The maximum physical distance that the motor can travel from the starting (0) point, specified in nanometers.

property tolerance: float

The maximum allowed difference between the position encoder and the physical position, in nanometers.

property position: float

Returns the current position of the instrument.

Recall though that when the stage is in ‘moving’ state, this value will always change. In ‘ready’ state, this value should be equal or very close to the set-point and target position (due to the precision of the instrument itself).

Returns

The current position of the instrument in nanometers

Raises

CommandExecutionError – Raised if the previously executed command resulted in an error

configure(
config: mundo.api.config.system.SystemConfig
) None

Configure specific profile for the given Conex-CC controller.

Parameters

profile – The profile configuration

move_relative(
distance: float
) None

Move the controller distance relative to the current position.

The command initiates a relative move. When received, the instrument will move with the predefined acceleration and velocity to a new target position nn units away from the current target position.

Parameters

distance – The distance to move, in nanometers

Raises
  • ValueError – Raised if the the float conversion fails

  • CommandExecutionError – Raised if the previously executed command resulted in an error

  • StateChangeError – Raised if the method is executed when not in state READY_FROM_ANY

move_absolute(
position: float
) None

Move to absolute position, in nanometers.

The command initiates an absolute move. When received, the instrument will move, with the predefined acceleration and velocity, to the new target position specified by nn.

Parameters

position – The position to move the instrument to, in nanometers

Raises
  • ValueError – Raised if the the float conversion fails

  • CommandExecutionError – Raised if the previously executed command resulted in an error

  • StateChangeError – Raised if the method is executed when not in state READY_FROM_ANY

stop() None

Stops any movement of the motor.

pause() None

Stop the stage from moving any further.

This command is a safety feature. It stops a move in progress by decelerating the positioner immediately with the acceleration defined by the set/get acceleration command until it stops.

Raises
resume() None

Resumes movement of an instrument that was previously paused using pause(). Calling this method without first pausing is a noop.

Raises

CommandExecutionError – Raised if the previously executed command resulted in an error

reset() None

Resets the position of the instrument to the home (0) position.

This method is blocking and should only return once the instrument has completely performed the movement and stopped.

Controller states

class plugins.mundo_conex.states.State(
value
)

The enumeration for the different states that are used in the CONEX-CC controller.

The error buffer gets updated periodically, approx. every 1 ms. The TS command reads the error buffer and clears the error buffer at the same time (same as for commands TE, TB). So when launching the TS command, it is important to process the TS feedback accordingly. The error “Wrong EPS stage” gets only detected during the booting of the controller. When read the error is cleared. With no errors in the error buffer the color of the LED will change from red to either green or orange depending on the controller state.

NOT_REFERENCED_FROM_RESET: str = '0A'
NOT_REFERENCED_FROM_HOMING: str = '0B'
NOT_REFERENCED_FROM_CONFIGURATION: str = '0C'
NOT_REFERENCED_FROM_DISABLE: str = '0D'
NOT_REFERENCED_FROM_READY: str = '0E'
NOT_REFERENCED_FROM_MOVING: str = '0F'
NOT_REFERENCED_NOPARAMINMEM: str = '10'
CONFIGURATION: str = '14'
HOMING: str = '1E'
MOVING: str = '28'
READY_FROM_HOMING: str = '32'
READY_FROM_MOVING: str = '33'
READY_FROM_DISABLE: str = '34'
READY_T_FROM_READY: str = '36'
READY_T_FROM_TRACKING: str = '37'
READY_T_FROM_DISABLE_T: str = '38'
DISABLE_FROM_READY: str = '3C'
DISABLE_FROM_MOVING: str = '3D'
DISABLE_FROM_TRACKING: str = '3E'
DISABLE_FROM_READY_T: str = '3F'
TRACKING_FROM_READY_T: str = '46'
TRACKING_FROM_TRACKING: str = '47'
NOT_REFERENCED_FROM_ANY = ['0A', '0B', '0C', '0D', '0E', '0F', '10']
READY_FROM_ANY = ['32', '33', '34']
READY_T_FROM_ANY = ['36', '37', '38']
DISABLE_FROM_ANY = ['3C', '3D', '3E', '3F']
TRACKING_FROM_ANY = ['46', '47']
UNKNOWN: str = '??'

Controller commands

class plugins.mundo_conex.commands.Command(
value
)

Commands that can be executed on the CONEX-CC controller.

Each command has the following syntax: “nnAAxx”, where: nn - Optional or required controller addess AA - Command name xx - Optional or required value or “?” to query current value

ACCELERATION = 'AC'
BACKLASH_COMPENSATION = 'BA'
HYSTERESIS_COMPENSATION = 'BH'
DRIVER_VOLTAGE = 'DV'
LP_FILER_for_Kd = 'FD'
FOLLOWING_ERROR_LIMIT = 'FE'
FRICTION_COMPENSATION = 'FF'
HOME_SEARCH_TYPE = 'HT'
STAGE_IDENTIFIER = 'ID'
JERK_TIME = 'JR'
DERIVATIVE_GAIN = 'KD'
INTEGRAL_GAIN = 'KI'
PROPORTIONAL_GAIN = 'KP'
VELOCITY_FEED_FORWARD = 'KV'
DISABLE_STATE = 'MM'
HOME_SEARCH_VELOCITY = 'OH'
HOME_SEARCH_TIME_OUT = 'OT'
MOVE_ABSOLUTE = 'PA'
MOVE_RELATIVE = 'PR'
GET_MOTION_TIME_for_RELATIVE_MOVE = 'PT'
CONFIGURATION_STATE = 'PW'
MOTOR_CURRENT_LIMITS = 'QI'
RESET_CONTROLLER = 'RS'
RESET_CONTROLLER_TO_ADDR_ONE = 'RS##'
CONTROLLER_RS485_ADDR = 'SA'
CONTROL_LOOP_STATE = 'SC'
SIMULTANEOUS_STARTED_MOVE = 'SE'
NEGATIVE_SOFTWARE_LIMIT = 'SL'
POSITIVE_SOFTWARE_LIMIT = 'SR'
STOP_MOTION = 'ST'
ENCODER_INCREMENT_VALUE = 'SU'
GET_COMMAND_ERROR_STR = 'TB'
GET_LAST_COMMAND_ERR = 'TE'
GET_SET_PNT_POS = 'TH'
TRACKING_MODE = 'TK'
GET_CURRENT_POS = 'TP'
GET_POSITIONER_ERR_and_CONTROLLER_STATE = 'TS'
VELOCITY = 'VA'
GET_CONTROLLER_REVISION_INFO = 'VE'
GET_ALL_AXIS_PARAMS = 'ZT'