neclib.devices.motor.cpz7415v#

Aliases#

Motor

None

busy

Manages the busy state of the object.

get_logger

Get logger instance which prints operation logs to console.

class CPZ7415V[source]#

Bases: Motor

Pulse controller, which can handle up to 4 motors (axes).

Notes

Configuration items for this device:

rsw_id{0, 1, …, 16} or {“0”, “1”, …, “9”, “A”, …, “F”}

Board identifier. This should be set to the same value as the rotary switch “RSW1” mounted on the side of the board. The board is shipped with default RSW1 setting of 0. This ID would be non-zero, when multiple PCI board of same model are mounted on a single FA (Factory Automation) controller.

useaxes{“x”, “y”, “z”, “u”} or concatenation of them

Axes to control.

{axis}_mode{“jog”, “org”, “ptp”, “timer”, …}

Motion mode for the axis. "jog" for speed control, "ptp" for absolute position control.

{axis}_pulse_confDict[str, int]

Keys should be [“PULSE”, “OUT”, “DIR”, “WAIT”, “DUTY”], and values should be 1 or 0. If “PULSE” is 1, 2-pulse mode is used. If “OUT” is 1, output pulse is active-high. If “DIR” is 1, direction output is high when CCW motion (1-pulse mode), direction output is always low (2-pulse mode). If “WAIT” is 1, delay of 200us is inserted on the direction change. If “DUTY” is 1, duty cycle is adaptively changed according to the speed, otherwise always 50%.

{axis}_motion_clockint

Pulse frequency scale factor, valid values are 2 through 4095. The frequency is calculated by 300 / (clock + 1).

{axis}_motion_acc_mode{“acc_normal”, “acc_sin”}

Acceleration mode. "acc_normal" for linear acceleration, "acc_sin" for S-curve acceleration.

{axis}_motion_low_speedint

Startup speed, valid values are 1 through 65535.

{axis}_motion_speedint

Steady state speed, valid values are 1 through 65535. This will be used in “ptp” motion.

{axis}_motion_accint

Acceleration time, valid values are 1 through 65535.

{axis}_motion_decint

Deceleration time, valid values are 1 through 65535.

{axis}_motion_stepint

Number of pulses, used in “ptp” (valid values are -134217728 through 134217727), “org_search”, “timer” (valid values are 1 through 134217727) motion. This setting is ignored in other modes.

axis_{alias}{“x”, “y”, “z”, “u”}

Mapping from the controller axes to telescope control axes. The {alias} should be [“az”, “el”].

speed_to_pulse_factor_{axis}float

Conversion factor from speed to pulse frequency. This includes the gear ratio. For axes which won’t be controlled in speed, there’s no need to define this parameter for them.

All parameters prefixed with {axis}_ need to be defined for each axis in useaxes. See http://www.interface.co.jp/download/tutorial/tut0053_14.pdf for details.

Manufacturer: str = 'Interface'#
Model: str = 'CPZ7415V'#
Identifier: ClassVar[Optional[str]] = 'rsw_id'#
property current_motion: Dict[str, int]#
get_speed(axis)[source]#
Parameters:

axis (str) –

Return type:

Quantity

get_step(axis)[source]#

Maybe device-specific absolute position.

Parameters:

axis (str) –

Return type:

int

set_speed(speed, axis)[source]#
Parameters:
  • speed (float) –

  • axis (str) –

Return type:

None

set_step(step, axis)[source]#

Drive to (maybe device-specific) absolute position.

Parameters:
  • step (Union[str, int]) –

  • axis (str) –

Return type:

None

finalize()[source]#
Return type:

None