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
-
__init__(
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
CommandExecutionError – Raised if the previously executed command resulted in an error
StateChangeError – Raised if the method is executed when not in state MOVING
- 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.
-
__init__(
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 = 'OR'¶
- 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'¶