Zum Inhalt springen
MotionAby Dübon Engineering

Python-API

Referenz des Moduls multiaxes_control_motiona, mit dem Sie Linearachsen aus Python fahren.

Erzeugt aus dem Quelltext (Stand 4b182ce6 2025-11-01). Englische Texte stammen aus den Docstrings; die deutschen Erläuterungen beschreiben das Verhalten dieser Version. Einstieg: Erste Schritte.

MVParams

Bewegungsauftrag für eine Achse: Ziel, Dauer und Grenzwerte. Mehrere davon als Liste an move() starten gemeinsam.

Encapsulates movement parameters for a single motor axis.

Konstruktor

MVParams(axis_no: int, pos: float, T: float = -0.5, speed_limit: float | None = None, accel_limit: float | None = None, jerk_limit: float | None = None)

ParameterStandardBedeutung
axis_noPflichtAchsnummer, beginnend bei 1 (im Konfigurator-Programm: axes["x"].no).
posPflichtZielposition in Ihren Einheiten; mit der Systemdatei aus dem Konfigurator Meter ab Hubanfang (0 … stroke).
T-0.5Dauer in Sekunden. Negativ (Standard): kürzeste Dauer, die die Grenzwerte einhält. Gleiches T für mehrere Achsen: sie kommen gleichzeitig an.
speed_limitNoneHöchstgeschwindigkeit je Sekunde; None = globaler Wert (set_global_speed_limit).
accel_limitNoneHöchstbeschleunigung je s²; None = globaler Wert.
jerk_limitNoneHöchster Ruck je s³; None = globaler Wert.

MultiaxesControlMotionA

Die Steuerung aller Achsen. Im Konfigurator-Programm bekommen Sie sie fertig verbunden als api.

Main interface for controlling motors asynchronously.

Konstruktor

MultiaxesControlMotionA(AGProgram: AGProgramType = AGProgramPosControlled, timeout = 1)

Wird von der Laufzeit angelegt; im Programm nicht nötig.

ParameterStandardBedeutung
AGProgramAGProgramPosControlledSteuerprogramm: positionsgeregelte Antriebe (Standard) oder Schrittmotoren.
timeout1Wird in dieser Version gespeichert, aber nicht ausgewertet.

set_client

api.set_client(client: Client)

Verbindet die API mit der laufenden Steuerung (pyactiongraph.Client). Im Konfigurator-Programm schon erledigt.

ParameterStandardBedeutung
clientPflicht–

set_global_scaling

api.set_global_scaling(val: float | None)

Umrechnung Ihrer Einheiten in Motoreinheiten für alle Achsen: Position, Geschwindigkeit, Beschleunigung und Ruck werden mit dem Faktor multipliziert, auch bei der Referenzfahrt. Ein Achsfaktor (set_axis_scaling) hat Vorrang. None schaltet ab.

Set global scaling for all movements including homing. The position, speed, acceleration, jerk of the motor will be the user provided values multiplied by this value. Per axis scaling factors have higher prios. Set to None to disable

ParameterStandardBedeutung
valPflichtthe scaling coefficient value

set_axis_scaling

api.set_axis_scaling(axis_no: int, val: float | None)

Wie set_global_scaling, aber für eine Achse; hat Vorrang vor dem globalen Faktor. None schaltet ab.

Set axis scaling for all movements including homing on this axis The position, speed, acceleration, jerk of the motor will be the user provided values multiplied by this value. Global scaling factor has lower prio. Set to None to disable

ParameterStandardBedeutung
axis_noPflichtThe axis number to configure the scaling
valPflichtthe scaling coefficient value

set_global_speed_limit

api.set_global_speed_limit(value)

Höchstgeschwindigkeit für alle Bewegungen ohne eigenes speed_limit. Standard 10.

ParameterStandardBedeutung
valuePflicht–

set_global_acceleration_limit

api.set_global_acceleration_limit(value)

Höchstbeschleunigung für alle Bewegungen ohne eigenes accel_limit. Standard 20.

ParameterStandardBedeutung
valuePflicht–

set_global_jerk_limit

api.set_global_jerk_limit(value)

Höchster Ruck für alle Bewegungen ohne eigenes jerk_limit. Standard 100.

ParameterStandardBedeutung
valuePflicht–

do_homing

await api.do_homing(axis_no: int, homing_distance: float | None = None, sensor_position_sign: int | None = None, fast_speed: float | None = None, accurateSpeed: float | None = None, min_pos: float | None = None, max_pos: float | None = None, timeout: float | None = 30)

Referenzfahrt einer Achse: Endschalter schnell und dann genau anfahren, Nullpunkt setzen. Kehrt zurück, wenn die Achse referenziert ist. Nicht gesetzte Parameter behalten ihren bisherigen Wert.

Perform homing procedure for a specified axis.

ParameterStandardBedeutung
axis_noPflichtThe axis number to home.
homing_distanceNoneWeg, auf dem der Endschalter gesucht wird.
sensor_position_signNoneRichtung, in der der Endschalter liegt (Vorzeichen). In den Konfigurator-Beispielen -1: Endschalter am Hubanfang.
fast_speedNoneGeschwindigkeit der ersten, schnellen Anfahrt.
accurateSpeedNoneGeschwindigkeit der zweiten, genauen Anfahrt. (Im Docstring als accurate_speed bezeichnet; der Parameter heißt accurateSpeed.)
min_posNoneUntere Positionsgrenze der Achse.
max_posNoneObere Positionsgrenze der Achse.
timeout30Wird in dieser Version nicht ausgewertet.

Ausnahmen: ValueError – Achsnummer größer als die Zahl der Achsen der Steuerung.

move

await api.move(params: MVParams | List[MVParams], timeout: float | None = 120)

Fährt eine oder mehrere Achsen. Bei einer Liste werden alle Achsen erst vorbereitet und dann gemeinsam gestartet; move() kehrt zurück, wenn alle angekommen sind.

Move one or more axes according to the specified parameters.

ParameterStandardBedeutung
paramsPflichtEin MVParams oder eine Liste davon (je Achse höchstens einer).
timeout120Wird in dieser Version nicht ausgewertet.

Ausnahmen: MovementError – If any axis movement fails.; ValueError – Achsnummer größer als die Zahl der Achsen der Steuerung.

# Move axes 1, 2, and 3 to position 1 in 0.5 s with no limits
await api.move([
    MVParams(i, 1,
            T=0.5,
            speed_limit=math.inf,
            accel_limit=math.inf,
            jerk_limit=math.inf)
    for i in range(1, 4)
])

# Move axis 1 to position 0.3
await api.move(MVParams(1, 0.3))

MovementError (Exception)

Die Bewegung ist mit den angegebenen Grenzwerten nicht ausführbar. Die Meldung nennt die betroffenen Achsen.

Exception raised when a movement operation fails.