- Posts: 17524
- Thank you received: 0
Encoder an Mesa-Karte 7i95
3 years 4 months ago #273210
by PCW
Replied by PCW on topic Encoder an Mesa-Karte 7i95
Probably wiring or signal levels
(or 7I95 single ended vs differential encoder setting)
(or 7I95 single ended vs differential encoder setting)
Please Log in to join the conversation.
3 years 4 months ago #273212
by Muecke
Replied by Muecke on topic Encoder an Mesa-Karte 7i95
ja du hast recht!
Aus HAL gelöscht
dafür aufgenommen
Jetzt wird etwas angezeigt wenn der Encoder bewegt wird.
Jetzt muss ich noch die Wärter einstellen.
Aus HAL gelöscht
Code:
# Encoder // net z-pos-fb <= [HMOT](CARD0).stepgen.04.position-fb
# Encoder // net z-pos-fb => joint.2.motor-pos-fb
dafür aufgenommen
Code:
net z-pos-fb <= [HMOT](CARD0).encoder.02.position
net z-pos-fb => joint.2.motor-pos-fb
net z-vel-fb <= [HMOT](CARD0).encoder.02.velocity
net z-index-enable joint.2.index-enable <=> [HMOT](CARD0).encoder.02.index-enable
net z-pos-rawcounts <= [HMOT](CARD0).encoder.02.rawcounts
Jetzt wird etwas angezeigt wenn der Encoder bewegt wird.
Jetzt muss ich noch die Wärter einstellen.
Please Log in to join the conversation.
3 years 4 months ago #273224
by Muecke
Replied by Muecke on topic Encoder an Mesa-Karte 7i95
Ich habe ein Problem mit meinem Encoder und der HAL-Konfiguration in LinuxCNC und hoffe, dass ihr mir helfen könnt. Hier ist eine Zusammenfassung meiner Situation:
Wenn ich den Encoder drehe, ändert sich die Position der Z-Achse in LinuxCNC, was korrekt ist. Allerdings bleibt der Wert "Counts" in der HAL-Konfiguration immer bei 0 stehen.
Mein Encoder sollte jedoch bei einer Umdrehung 1024 Schritte gezählt haben, und meine Spindel hat eine Steigung von 4 mm. Der Verbauten Schrittmotoren machen 200 Vollschritte der Treiber ist auf 1/64 eingestellt, pro umdrehung solten demnach 12.800 Steps generiert werden.
Ich habe meine HAL- und INI-Dateien als Anhang beigefügt und möchte euch einen Auszug aus meiner HAL zeigen:
Ich meine das die Verdrahtung in der HAL noch Fehlerhaft ist, oder ich etwas vergessen habe vom Motor auf den Encoder umzustellen. (der Encoder hat Spur A, B und Z)
Könnt ihr mir dabei helfen, das Problem zu identifizieren und eine Lösung zu finden? Ich bin für jede Unterstützung dankbar.
ps. welche Werte müsste ich im HAL-Konfiguration anzeigen lassen um Motor / Encoder / Skalirung Motor & Encoder /Wegstrecke zu überprüfen.
Gruß Mücke
Wenn ich den Encoder drehe, ändert sich die Position der Z-Achse in LinuxCNC, was korrekt ist. Allerdings bleibt der Wert "Counts" in der HAL-Konfiguration immer bei 0 stehen.
Mein Encoder sollte jedoch bei einer Umdrehung 1024 Schritte gezählt haben, und meine Spindel hat eine Steigung von 4 mm. Der Verbauten Schrittmotoren machen 200 Vollschritte der Treiber ist auf 1/64 eingestellt, pro umdrehung solten demnach 12.800 Steps generiert werden.
Ich habe meine HAL- und INI-Dateien als Anhang beigefügt und möchte euch einen Auszug aus meiner HAL zeigen:
Code:
#*******************
# AXIS Z JOINT 2
#*******************
setp pid.z.Pgain [JOINT_2]P
setp pid.z.Igain [JOINT_2]I
setp pid.z.Dgain [JOINT_2]D
setp pid.z.bias [JOINT_2]BIAS
setp pid.z.FF0 [JOINT_2]FF0
setp pid.z.FF1 [JOINT_2]FF1
setp pid.z.FF2 [JOINT_2]FF2
setp pid.z.deadband [JOINT_2]DEADBAND
setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.z.error-previous-target true
setp pid.z.maxerror 0.000500
# Encoder // net z-index-enable <=> pid.z.index-enable
net z-enable => pid.z.enable
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-output <= pid.z.output
# Step Gen signals/setup
setp [HMOT](CARD0).stepgen.04.dirsetup [JOINT_2]DIRSETUP
setp [HMOT](CARD0).stepgen.04.dirhold [JOINT_2]DIRHOLD
setp [HMOT](CARD0).stepgen.04.steplen [JOINT_2]STEPLEN
setp [HMOT](CARD0).stepgen.04.stepspace [JOINT_2]STEPSPACE
setp [HMOT](CARD0).stepgen.04.position-scale [JOINT_2]STEP_SCALE
setp [HMOT](CARD0).stepgen.04.step_type 0
setp [HMOT](CARD0).stepgen.04.control-type 1
setp [HMOT](CARD0).stepgen.04.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp [HMOT](CARD0).stepgen.04.maxvel [JOINT_2]STEPGEN_MAXVEL
# --- Encoder feedback signals/setup ---
setp [HMOT](CARD0).encoder.02.counter-mode 0
setp [HMOT](CARD0).encoder.02.filter 1
setp [HMOT](CARD0).encoder.02.index-invert 0
setp [HMOT](CARD0).encoder.02.index-mask 0
setp [HMOT](CARD0).encoder.02.index-mask-invert 0
setp [HMOT](CARD0).encoder.02.scale [JOINT_2]ENCODER_SCALE
net z-pos-fb <= [HMOT](CARD0).encoder.02.position
net z-pos-fb => joint.2.motor-pos-fb
net z-vel-fb <= [HMOT](CARD0).encoder.02.velocity
net z-index-enable joint.2.index-enable <=> [HMOT](CARD0).encoder.02.index-enable
net z-pos-rawcounts <= [HMOT](CARD0).encoder.02.rawcounts
# ---closedloop stepper signals---
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-vel-cmd <= joint.2.vel-cmd
net z-output <= [HMOT](CARD0).stepgen.04.velocity-cmd
# Encoder // net z-pos-fb <= [HMOT](CARD0).stepgen.04.position-fb
# Encoder // net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
net z-enable => [HMOT](CARD0).stepgen.04.enable
# ---setup home / limit switch signals---
net z-home-sw => joint.2.home-sw-in
net z-neg-limit => joint.2.neg-lim-sw-in
net z-pos-limit => joint.2.pos-lim-sw-in
Könnt ihr mir dabei helfen, das Problem zu identifizieren und eine Lösung zu finden? Ich bin für jede Unterstützung dankbar.
ps. welche Werte müsste ich im HAL-Konfiguration anzeigen lassen um Motor / Encoder / Skalirung Motor & Encoder /Wegstrecke zu überprüfen.
Gruß Mücke
Attachment not found
Attachment not found
Please Log in to join the conversation.
3 years 4 months ago #273225
by chris@cnc
Replied by chris@cnc on topic Encoder an Mesa-Karte 7i95
Das ist sehr seltsam. Wenn das Signal encoder.**.count nicht zählt kann sich auch nichts in der Anzeige ändern. Das gleiche wie rawcounts. Encoder rohdaten ohne Scalierung.
Deine config sieht fast so aus wie meine bis auf
net z-index-enable <=> pid.z.index-enable
der ist bei mir auch aktiv.
Für screenshots installiere
sudo apt install xfce4-screenshooter
damit kannst du auch Ausschnitte aufnehmen und zeigen.
Deine config sieht fast so aus wie meine bis auf
net z-index-enable <=> pid.z.index-enable
der ist bei mir auch aktiv.
Für screenshots installiere
sudo apt install xfce4-screenshooter
damit kannst du auch Ausschnitte aufnehmen und zeigen.
Please Log in to join the conversation.
- tommylight
-
- Away
- Administrator
-
Less
More
- Posts: 22012
- Thank you received: 4
3 years 4 months ago #273233
by tommylight
Replied by tommylight on topic Encoder an Mesa-Karte 7i95
Scale = shrit motor pulses per mm
Encoder_scale = encoder pulses per mm
1024 PPR encoder = 4096 pulse pro umdrehung.
Encoder_scale = encoder pulses per mm
1024 PPR encoder = 4096 pulse pro umdrehung.
Please Log in to join the conversation.
3 years 4 months ago #273236
by PCW
Replied by PCW on topic Encoder an Mesa-Karte 7i95
Also delete this line in your hal file
loadrt encoder num_chan=5
It may be causing confusion by creating 5 non-working software encoders
loadrt encoder num_chan=5
It may be causing confusion by creating 5 non-working software encoders
Please Log in to join the conversation.
3 years 4 months ago #273246
by Muecke
Das habe ich gemacht.
Jetzt bekomme ich auch im COUNT etwas angezeigt. (Bild)
Frage: Ist die Basis zum Zählen 0 oder 1?
Der Mesa 7i95 hat Encoder 0 bis 5.

Ok.
Meine Daten Schrittmotor + Spindel
STEP_SCALE = (200 x 64) / 4
STEP_SCALE = (12.800) / 4
STEP_SCALE = 3.200
Der Motor müsste 3.200 Steps machen um 1mm bewegung zu erzeugen?
Meine Daten: Encoder + Spindel
Berechnung:
STEP_SCALE = Pulse pro Umdrehung / 4
STEP_SCALE = (1.024) / 4
STEP_SCALE = 256
oder
STEP_SCALE = Pulse pro Umdrehung / 4
STEP_SCALE = (4.096) / 4
STEP_SCALE = 1.024
net z-index-enable <=> pid.z.index-enable
Ich habe sie eingefügt, aber noch keinen Unterschied gesehen.
Allerdings habe ich die Zeile wie von PCW vorgeschlagen entfernt und bekomme etwas angezeigt.
Für Screenshots habe ich den Flameshot installiert, kann der Xfce4-Screenshooter mehr oder auch Videos aufnehmen?
Jetzt muss ich mich an die Arbeit machen und herausfinden, was die Fehlermeldungen bedeuten (wann ein Fehler auftreten soll (Dieferenz) und wie ich die Skala richtig hinbekomme und dann muss ich das an der Achse überprüfen
.
Außerdem möchte ich mit dem HAL-Oszilloskop den Motor richtig einstellen, starten usw.
Aber das kann ich auch noch nicht, jetzt müssen erst mal die anderen Einstellungen passen.
Es ist noch ein langer Weg, habe ich das Gefühl.
Replied by Muecke on topic Encoder an Mesa-Karte 7i95
Also delete this line in your hal file
loadrt encoder num_chan=5
It may be causing confusion by creating 5 non-working software encoders
Das habe ich gemacht.
Jetzt bekomme ich auch im COUNT etwas angezeigt. (Bild)
Frage: Ist die Basis zum Zählen 0 oder 1?
Der Mesa 7i95 hat Encoder 0 bis 5.
Scale = schritt motor pulse
sper mm
Encoder_scale = encoder pulses per mm
1024 PPR encoder = 4096 pulse pro umdrehung.
Ok.
Meine Daten Schrittmotor + Spindel
- Schrittmotor: 1,8° = 200 Schritte pro Umdrehung
- Spindel: 4mm Steigung
- Treiber: 1/64 Mikroschritte
STEP_SCALE = (200 x 64) / 4
STEP_SCALE = (12.800) / 4
STEP_SCALE = 3.200
Der Motor müsste 3.200 Steps machen um 1mm bewegung zu erzeugen?
Meine Daten: Encoder + Spindel
- Encoder: 1.024 P/R
Wie kommst du auf 4.096 pulse pro Umdrehung? Was bedeutet P/R ?Pulse / Rotation ? - Spindel: 4mm Steigung
Berechnung:
STEP_SCALE = Pulse pro Umdrehung / 4
STEP_SCALE = (1.024) / 4
STEP_SCALE = 256
oder
STEP_SCALE = Pulse pro Umdrehung / 4
STEP_SCALE = (4.096) / 4
STEP_SCALE = 1.024
Was macht die Zeile?Das ist sehr seltsam. Wenn das Signal encoder.**.count nicht zählt kann sich auch nichts in der Anzeige ändern. Das gleiche wie rawcounts. Encoder rohdaten ohne Scalierung.
Deine config sieht fast so aus wie meine bis auf
net z-index-enable <=> pid.z.index-enable
der ist bei mir auch aktiv.
Für screenshots installiere
sudo apt install xfce4-screenshooter
damit kannst du auch Ausschnitte aufnehmen und zeigen.
net z-index-enable <=> pid.z.index-enable
Ich habe sie eingefügt, aber noch keinen Unterschied gesehen.
Allerdings habe ich die Zeile wie von PCW vorgeschlagen entfernt und bekomme etwas angezeigt.
Für Screenshots habe ich den Flameshot installiert, kann der Xfce4-Screenshooter mehr oder auch Videos aufnehmen?
Jetzt muss ich mich an die Arbeit machen und herausfinden, was die Fehlermeldungen bedeuten (wann ein Fehler auftreten soll (Dieferenz) und wie ich die Skala richtig hinbekomme und dann muss ich das an der Achse überprüfen
Außerdem möchte ich mit dem HAL-Oszilloskop den Motor richtig einstellen, starten usw.
Aber das kann ich auch noch nicht, jetzt müssen erst mal die anderen Einstellungen passen.
Es ist noch ein langer Weg, habe ich das Gefühl.
Attachment not found
Please Log in to join the conversation.
3 years 4 months ago #273248
by PCW
Replied by PCW on topic Encoder an Mesa-Karte 7i95
Dies ist für die Referenzierung zum Index erforderlich, da die Encoder-Position macht bei der Indexerkennung einen Sprung auf 0. Dies informiert den PID-Regler keine Ableitungsberechnungen für FF1 oder FF2 im aktuellen Zyklus durchzuführen da sie nach diesem Sprung völlig falsch wären.Was macht die Zeile?
net z-index-enable <=> pid.z.index-enable
Ich habe sie eingefügt, aber noch keinen Unterschied gesehen.
Please Log in to join the conversation.
3 years 4 months ago #273249
by Muecke
Auf meinem Screenshot sind die Spuren A, B und Z (Index) zu sehen.
A und B zeigen Veränderungen an (dargestellt durch den roten bzw. gelben Punkt).
Im Gegensatz dazu scheint sich der Z (Index) nie zu ändern.
Ist es üblich, dass der Z (Index) nicht erfasst wird oder habe ich etwas missverstanden?
Replied by Muecke on topic Encoder an Mesa-Karte 7i95
[/quote]Ich habe eine gewisse Vorstellung davon, was Du meinen.
Ich habe sie eingefügt, aber noch keinen Unterschied gesehen.Was macht die Zeile?
net z-index-enable <=> pid.z.index-enable
Dies ist für die Referenzierung zum Index erforderlich, da die Encoder-Position macht bei der Indexerkennung einen Sprung auf 0. Dies informiert den PID-Regler keine Ableitungsberechnungen für FF1 oder FF2 im aktuellen Zyklus durchzuführen da sie nach diesem Sprung völlig falsch wären.
Auf meinem Screenshot sind die Spuren A, B und Z (Index) zu sehen.
A und B zeigen Veränderungen an (dargestellt durch den roten bzw. gelben Punkt).
Im Gegensatz dazu scheint sich der Z (Index) nie zu ändern.
Ist es üblich, dass der Z (Index) nicht erfasst wird oder habe ich etwas missverstanden?
Please Log in to join the conversation.
3 years 4 months ago #273250
by PCW
Replied by PCW on topic Encoder an Mesa-Karte 7i95
Normalerweise würden Sie nicht erwarten, das Indexsignal zu sehen, da es für LinuxCNC zu kurz ist, um es zu erkennen, es sei denn, Sie bewegen sich sehr langsam. Bei der Hardware-Encoder-Logik wird es mit der Hardware erkannt.
Sie können den Indexvorgang überprüfen, indem Sie sagen:
halcmd sets z-index-enable true
und dann die Z-Achse verschieben, bis der Index erreicht ist. In diesem Fall sollte z-index-enable auf false gesetzt werden
Sie können den Indexvorgang überprüfen, indem Sie sagen:
halcmd sets z-index-enable true
und dann die Z-Achse verschieben, bis der Index erreicht ist. In diesem Fall sollte z-index-enable auf false gesetzt werden
Please Log in to join the conversation.
Time to create page: 0.121 seconds
