7i95 Einrichten mit Tool

More
30 Mar 2022 13:04 #238729 by strahlensauger
Das klingt doch schon vielversprechend,
überprüfe dabei auch nochmal die dip Schalter der Motoren. Vermutlich hast du da eine Übersetzung drin.
Ich habe alle drei Achsen gleich eingerichtet. Das wird damit zusammenhängen.
The following user(s) said Thank You: Muecke

Please Log in or Create an account to join the conversation.

More
31 Mar 2022 19:49 #238931 by Muecke
Replied by Muecke on topic 7i95 Einrichten mit Tool
Das Problem mit dem Treibern (ENA-Signal) habe ich vorerst auf die ToDo Liste gepackt daher habe ich mich heute Intensiv um die HAL Beschäftigt, Zeile für Zeile.
Leider mit sehr geringen Erfolg.

Ich habe die HAL von @strahlensauger mir vorgenommen und habe den ersten Block nun durch und noch so viele Fragen.

Ich hoffe Ihr könnt mir etwas weiter helfen.

Gelernt habe ich das "[Kategorie]Parameter" wenn was in Eckigen klammern steht es sich um eine Variable handelt deren Inhalt aus der INI Datei kommt.
Wobei wenn nach der Eckgenklammer eine () Runde Klammer flog ich noch nicht zu 100% verstanden habe.
Das hat irgend wie was damit zu tun das dann der Wert als Neuer Name weiter verwendet werden kann, oder so ähnlich, kann das schlecht beschreiben.


Originaltext mit Zeilen Nummer:

1. loadrt [KINS]KINEMATICS
2. loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
3. loadrt hostmot2
4. loadrt hm2_eth board_ip="192.168.1.121" config="num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=0xxxxx"
5. setp [HMOT](CARD0).watchdog.timeout_ns 5000000
6. loadrt pid names=pid.x,pid.y,pid.z,pid.s
7.
8. addf [HMOT](CARD0).read servo-thread
9. addf motion-command-handler servo-thread
10. addf motion-controller servo-thread
11. addf pid.x.do-pid-calcs servo-thread
12. addf pid.y.do-pid-calcs servo-thread
13. addf pid.z.do-pid-calcs servo-thread
14. addf pid.s.do-pid-calcs servo-thread
15. addf [HMOT](CARD0).write servo-thread


Was ich wie Verstanden habe.
Zeile 1:
> Hier werden die Achsennamen zu den JOINT Nummer definiert.
> Wert aus der INI: trivkins coordinates=XYZ
> Bedeutet JOINT_0 = X-Achse, JOINT_1 = Y-Achse ...

Zeile 2:
> Das verstehe ich nicht was hier genau angegeben wird.
> Wert aus der INI: [EMCMOT]EMCMOT = motmod
> [EMCMOT]SERVO_PERIOD = 1000000
> [KINS]JOINTS = 3

Zeile 3:
> LinuxCNC HAL-Treiber für Mesa Electronics HostMot2 Firmware

Zeile 4:
> Schnittellen Daten
> board_ip = IP des Mesa Karte
> config hier werden alle möglichen Dinge aufgelistet
> num_encoders = Anzahl der Encoder
> num_pwmgens = Anzahl der PWM Signale Ein oder Ausgänge
> num_stepgens = Anzahl der Schrittmotoren
> sserial_port_0 = Anzahl der Erweiterungskarten

Zeile 5:
> Mir ist nicht klar für was der Wert ist, es ist nicht der Latenz Wert das habe ich
> zumindest so verstanden
> Wert aus INI: hm2_7i95.0

Zeile 6:
> Verstehe ich überhaupt gar nicht.
> Achsen wurden schon benannt, daher gehe ich davon aus das es ein Funktion ist
> die Verknüpft wird, doch was für eine?

Zeile 8 - 15:
> diesen gesamten teil habe ich nicht verstanden
> ich kann mir auch nichts zusammen reimen was das sein könnte.


Wenn Ihr mir da etwas helfen könntet wäre ich euch sehr dankbar.
Morgen werde ich zuerst einmal alle Variablen auflösen und Fix in die HAL schreiben das erleichtert mir glaube ich das lesen.
Oder ist das eine schlechte Idee da LinuxCNC dann die Werte nicht mehr richtig verarbeiten kann? im laufendem Betrieb?

Gruß Mücke

Please Log in or Create an account to join the conversation.

More
31 Mar 2022 20:31 #238936 by roland
Replied by roland on topic 7i95 Einrichten mit Tool
Das steht doch alles in der Doku. Kennst du die etwa nicht?
linuxcnc.org/docs/stable/html/

Da gibts den Bereich HAL (Hardware Abstraction Layer)

Please Log in or Create an account to join the conversation.

More
01 Apr 2022 08:35 #238970 by Muecke
Replied by Muecke on topic 7i95 Einrichten mit Tool

linuxcnc.org/docs/stable/html/


Ja die Seite kenne ich, und habe verschiedene Dinge nicht verstanden.

z.B.
Zeile 2: loadrt motmod servo_period_nsec=1000000 num_joints=3

[quote="http://linuxcnc.org/docs/html/man/man9/motion.9.html"]
motmod - akzeptiert NML-Bewegungsbefehle, interagiert mit HAL in Echtzeit 

Standardmäßig ist die Basis-Thread unterstützt keine Gleitkommazahlen. Software Stepping, Software-Encoder-Zählung und Software-PWM nicht Fließkomma verwenden. base_thread_fp kann verwendet werden Fließkomma im Basis-Thread aktivieren (zum Beispiel für bürstenlose DC-Motorsteuerung).

Diese Stifte und Parameter werden vom Echtzeit -Motmod -Modul erstellt. Dieses Modul bietet eine HAL-Schnittstelle für LinuxCNCs Bewegungsplaner. Grundsätzlich motmod eine Liste von auf Wegpunkte und erzeugt ein schönes gemischtes und Beschränkungs-begrenzter Strom von Gelenkpositionen, denen zugeführt werden soll die Motorantriebe.

Optional die Anzahl der Digital I/O wird mit num_dio eingestellt. Die Zahl der Analoge I/O werden mit num_aio gesetzt. Der Standardwert ist jeweils 4.

Pin-Namen beginnend mit „joint“ bzw "axis" werden von der gelesen und aktualisiert Motion-Controller-Funktion. 
[/quote]

Naja, damit kann ich leider nichts anfangen.


[code]Zeile 5: setp hm2_7i95.0.watchdog.timeout_ns 5000000

Der Watchdog (Wachhund) ist eine Überwachungsfunktion die regelmäßig "Streicheleinheiten" vom PC bekommt. Bleibt das "Streicheln" aus wird "gebissen" und die Ausgänge der Karte zurückgesetzt. Im Falle eines Absturzes des PC kann so (hoffentlich) das Schlimmste verhindert werden.

Was soll das Bedeuten?
Wenn der Rechner nicht mehr anfragt dann bleibt die Maschine Stehen?

Zeile 6: loadrt pid names=pid.x,pid.y,pid.z,pid.s

Diese Komponente bietet eine Proportional-/Integral-/Differentialsteuerung Schleifen. Es ist nur eine Echtzeitkomponente. Der Einfachheit halber diese Diskussion geht jedoch davon aus, dass es sich um Positionsschleifen handelt Komponente kann verwendet werden, um andere Rückkopplungsschleifen wie Geschwindigkeit, Brennerhöhe, Temperatur usw. Das Blockdiagramm des PID-Regelkreises ist a Blockdiagramm einer einzelnen PID-Schleife.

Das macht mich kein Stück schlauer, ich verstehe das einfach nicht was da steht.
Werden Hier Variablen angelegt in die LinuxCNC was rein schreibt und wenn ja was? oder was passiert hier?

Zeile 8- 15: addf ...

Der Befehl addf fügt einem Thread eine Echtzeitkomponentenfunktion hinzu. Sie müssen einem Thread eine Funktion aus einer HAL-Echtzeitkomponente hinzufügen um die Funktion mit der Rate des Threads zu aktualisieren.

Wenn Sie den Stepper Config Wizard zum Generieren Ihrer Konfiguration verwendet haben, werden Sie dies tun zwei Threads haben.
* base-thread (der Hochgeschwindigkeits-Thread): Dieser Thread verarbeitet Elemente, die benötigen eine schnelle Reaktion, wie das Erzeugen von Schrittimpulsen und das Lesen und Schreiben der Parallelport.

* Servo-Thread (der langsame Thread): Dieser Thread behandelt Elemente, die kann eine langsamere Reaktion tolerieren, wie der Bewegungscontroller, ClassicLadder und der Bewegungsbefehlshandler.

Daraus werde ich irgend wie nicht schlau. :-(

Please Log in or Create an account to join the conversation.

Time to create page: 0.124 seconds
Powered by Kunena Forum