controller module
Das Modul regelt die serielle Kommunikation mit dem CNC-Controller.
- class controller.Controller(grundeinstellungen)[Quellcode]
Bases:
object
- __init__(grundeinstellungen)[Quellcode]
Der Konstruktor wird aufgerufen, wenn ein Controller-Objekt erzeugt wird und speichert unter Anderem Grundeinstellungen wie Verbindungsparameter und Korrekturfaktoren in lokale Variablen.
In ihm wird auserdem die Methode verbindung_initialisieren() aufgerufen, welche den Handshake mit dem Controller durchführt.
- Parameter
grundeinstellungen (dict) – Aus dem Config-File eingelesene Grundeinstellungen des Roboters.
- abtastposition_anfahren()[Quellcode]
Fährt die Abtast-Startsposition lt. Grundeinstellungen an.
Wird benötigt, wenn ein Oberflächenprofil abgetatet wird. Die Sonde des Nivellierungssensors befindet sich in dieser Position zentral über der Optik.
Bemerkung
X-, Y- und Z-Position lassen sich in den Grundeinstellungen unter den Attributen
babtast_start_position_x
,abtast_start_position_y
undabtast_start_position_z
ändern.
- beladeposition_anfahren()[Quellcode]
Fährt die Beladeposition lt. Grundeinstellungen an.
Wird vor der Reinigung angefahren, damit die Optik eingelegt werden kann.
Bemerkung
X-, Y- und Z-Position lassen sich in den Grundeinstellungen unter den Attributen
belade_position_x
,belade_position_y
undbelade_position_z
ändern.
- controller_initialisieren()[Quellcode]
Führt eine Refernzfahrt durch und legt den Nullpunkt des Koordinatensystems fest.
Bemerkung
Der Befehl
$H
fährt die Schlitten zum Endtaster der jeweiligen Achse.
- drehteller_ausschalten()[Quellcode]
Stoppt den Drehteller.
- drehteller_einschalten(drehzahl)[Quellcode]
Schaltet den Drehteller durch Aktivierung des DC-Getriebemoters ein.
Bemerkung
Vor dem Senden an den CNC-Controller wird die Drehzahl korrigiert, damit eingestellte und tatsächliche Drehzahl übereinstimmen. Das ist Aufgrund der Untersetzungen und dem nicht-sauberen PWM-Signal des CNC-Controllers notwendig.
- Parameter
drehzahl (int) – Gewünschte Drehzahl in 1/min.
- gcode_senden(cmd)[Quellcode]
Übernimmt einen G-CODE und sendet diesen über eine serielle Verbindung (USB) an den CNC-Controller.
Examples
Beispiel für einen G-CODE:
G01 X120.5 Y20 Z-3.25 F950
Bemerkung
Um einen Mehrfachzugriff (durch Threads) auf die Serielle- Schnittstelle zu vermeiden, wird der entsprechende Codeteil mit
lock.aquire()
gesperrt und mitrelease()
wieder freigegeben.- Parameter
cmd (str) – Enthält den zu sendenden G-CODE.
- Rückgabe
Gibt die Antwort des Controllers zurück.
- Rückgabetyp
antwort (str)
- geraet_entsperren()[Quellcode]
Hebt den Alarmstatus auf.
Bemerkung
Es wird das Zeichenkette
$X
an den Controller gesendet.
- geraet_fortsetzen()[Quellcode]
Setzt die Fahrt fort, indem alle Schrittmotoren wieder aktiviert werden.
Bemerkung
Es wird das Zeichen
~
an den Controller gesendet.
- geraet_halten()[Quellcode]
Pausiert die aktuelle Fahrt, indem alle Schrittmotoren gestoppt werden.
Beim Pausieren gehen keine Schritte verloren.
Bemerkung
Drehteller dreht sich auch beim Pausieren weiter.
- geraet_softreset()[Quellcode]
Führt einen Software-Reset des CNC-Controllers durch.
Bemerkung
Es wird
CTRL+X
an den Controller gesendet, welches im Oktalformatentspricht.
- geraete_status()[Quellcode]
Fragt den aktuellen Maschinenstatus ab und speichert die Ergenisse in lokale Variablen.
Der Gerätestatus kann
Idle
,Run
,Alarm
usw. annehmen. Die aktuelle Position wird als X-, Y-, und Z-Koordinate gespeichert.
- reinigungsposition_anfahren()[Quellcode]
Fährt die Reingung-Startsposition lt. Grundeinstellungen an.
Wird vor der Reinigung angefahren. Das Polyester-Pad befindet sich in dieser Position zentral über der Optik.
Bemerkung
X-, Y- und Z-Position lassen sich in den Grundeinstellungen unter den Attributen
reinigungs_start_position_x
,reinigungs_start_position_y
undreinigungs_start_position_z
ändern.
- verbindung_initialisieren()[Quellcode]
Führt den Handshake mit dem CNC-Controller durch.
Bemerkung
Ein erfolgreicher Aufbau wir vom Controller mit der Zeichenkette
Grbl 1.1f [$ for help]
beantwortet.