Motor driver for motors from Precision MicroControl Corporation.



The pmc daemon can be installed using the following package managers:



The pmc daemon is composed of the following traits:



The pmc daemon has been tested with the following hardware:



Example configuration files.

accel_gain (float) default: 0
Acceleration Gain

acceleration (float) default: 70000
Acceleration for the motor in steps/sec/sec

axis (int) default: 0
Axis number for the individual motor in the controller

backlash (int) default: 1000
Number of steps to exceed the destination when backlash correcting. Must be a positive integer as backlash correction only applies in one direction.

controller (int) default: 0
Index of the controller in MCAPI

counts_per_mm (int) default: 58200
Encoder counts per mm of travel

decel_gain (float) default: 0
Deceleration Gain

delay_at_target (float) default: 0
Delay At Target

derivative_gain (float) default: 6000
Derivative Gain

derivative_sample (float) default: 0.001364
Derivative Sample

enable (boolean) default: True
Disable this daemon. The kind entry-point will not attempt to start this daemon.
from is-daemon

enable_backlash_correction (boolean) default: False
Enable correction which sends the motor past its destination when travelling to higher mm values (lower step values)

encoder_scaling (float) default: 0
Encoder Scaling

following_error (float) default: 0
Following Error

gain (float) default: 2211
Gain parameter

integral_gain (float) default: 0
Integral Gain

integration_limit (int) default: 0
Integration Limit

integration_option (int) default: 0
Integration Option

limits (array) default: [-inf, inf]
Configuration limits are strictly optional.
from has-limits

log_level ({'name': 'level', 'symbols': ['debug', 'info', 'notice', 'warning', 'error', 'critical', 'alert', 'emergency'], 'type': 'enum'}) default: info
Set daemon log-level.
from is-daemon

log_to_file (boolean) default: False
Optionally force logging to a file.
from is-daemon

make (['null', 'string']) default: None
from is-daemon

model (['null', 'string']) default: None
from is-daemon

out_of_limits (enum) default: closest
Control behavior of daemon when set_position is given a value outside of limits.
from has-limits

output_deadband (float) default: 0
Output Deadband

output_offset (float) default: 0
Output Offset

port (int)
TCP port for daemon to occupy.
from is-daemon

position_deadband (float) default: 0
Position Deadband

serial (['null', 'string']) default: None
Serial number for the particular device represented by the daemon
from is-daemon

startup_behavior ({'name': 'startup', 'symbols': ['trust_driver', 'trust_state'], 'type': 'enum'}) default: trust_driver
Where to get the current position. If trust state, then it will use the position stored to state (if present)

tolerance (int) default: 20
Tolerance in motor steps

units (string) default: mm

update_rate (int) default: 0
Update Rate

velocity (float) default: 11000

velocity_gain (float) default: 0
Velocity Gain


The pmc daemon will provide the following state information:

destination (double)
from has-position

hw_limits (array)
from has-limits

position (double)
from has-position


The pmc daemon will expose the following public messages:

busy ➜ boolean
Returns true if daemon is currently busy.
from is-daemon

get_config ➜ string
Full configuration for the individual daemon as defined in the TOML file. This includes defaults and shared settings not directly specified in the daemon-specific TOML table.
from is-daemon

get_config_filepath ➜ string
String representing the absolute filepath of the configuration file on the host machine.
from is-daemon

get_destination ➜ double
Get current daemon destination.
from has-position

get_limits ➜ {'items': 'double', 'type': 'array'}
Get daemon limits.Limits will be the intersection of config limits and driver limits (when appliciable).
from has-limits

get_position ➜ double
Get current daemon position.
from has-position

get_state ➜ string
Get version of the running daemon
from is-daemon

get_units ➜ ['null', 'string']
Get units of daemon. These units apply to the position and destination properties.
from has-position

id ➜ {'type': 'map', 'values': ['null', 'string']}
JSON object with information to identify the daemon, including name, kind, make, model, serial.
from is-daemon

in_limits ➜ boolean
Check if a given position is within daemon limits.
from has-limits

position (double)

mm_to_steps ➜ int
Convert mm travel to motor steps

mm (float)
mm of travel

reset_to_known_position ➜ null
Reset the represented position to a known actual position

position (float)
Current actual position in mm

set_position ➜ null
Give the daemon a new destination, and begin motion towards that destination.
from has-position

position (double)

set_relative ➜ double
Give the daemon a new destination relative to its current position. Daemon will immediately begin motion towards new destination. Returns new destination.
from has-position

distance (double)

shutdown ➜ null
Cleanly shutdown (or restart) daemon.
from is-daemon

restart (boolean) default: False

steps_to_mm ➜ float
Convert motor steps to mm travel

steps (int)
Number of motor steps

stop ➜ null
Halt motion of the motor

built 2024-02-09 01:44:16                                      CC0: no copyright