Physik Instrumente Stage Controller
This service controls Physik Instrumente (PI) motion stages using the pipython library. It has been tested with:
E-727.3SDA controller with S-330.2SH stages
For controller specs, see the PI website. Note that using PI controllers requires manual installation of the GCS DLL drivers from physikinstrumente.com
Configuration
physik_stage_controller:
service_type: physik_stage_controller
simulated_service_type: physik_stage_controller_sim
requires_safety: false
controller_name: 'E-727.3SDA'
stages: 'S-330.2SH'
refmodes: 'FNL'
SN: '123456'
axis_map:
x: 1
y: 2
initial_position:
x: 1350
y: 1685
Properties
position_{axis_name}: Get or set the position for each configured axis (e.g., position_x, position_y).
Commands
move_to(positions): Move to absolute positions. positions is a dict mapping axis names to target positions (e.g., {'x': 1350.0, 'y': 1685.0}).
move_relative(deltas): Move relative to current positions. deltas is a dict mapping axis names to relative movements (e.g., {'x': 10.0, 'y': -5.0}).
get_positions(): Get current positions of all axes as a dict.
stop_motion(): Emergency stop all motion immediately.
Datastreams
positions: Current positions of all axes (float64 array, updated at 10 Hz).
target_positions: Target positions when moves are commanded (float64 array).
is_moving (sim only): Whether any axis is currently in motion (int8).