Z-Level-COmpensation

More
17 Apr 2024 12:15 #298435 by KlausB
Z-Level-COmpensation was created by KlausB
Hallo,ich bin neu in diesem Forum und möchte mich zunächst für dieses tolle Projekt bedanken.Im Herbst habe ich mir eine sehr einfache Portal-Fräse eines chinesischen Herstellers bestellt um mich mit diesem Thema zu beschäftigen. Dank toller Anleitungen von z. Bsp.: „Talla83“ bin ich recht schnell zu einer ersten Konfiguration gekommen. Später kamen dann Referenzschalter und ein Werkzeuglängensensor zum dynamischen Werkzeugwechsel hinzu. Als CAD / CAM Software nutze ich FreeCAD, da ich auch zuvor bereits damit konstruiert hatte.Vor Kurzem habe ich mit dem aktuellen Image (Debian 12 mit LinuxCNC 2.9.2) eine Neuinstallation vorgenommen um die Oberfläche „QtDragon_hd“ mit den dort konfigurierten Funktionen testen zu können. Das Antasten einer Tastplatte funktioniert bereits nach „entprellen“ des Probe-Eingang nach Anleitung von „talla83“.Probleme bereitet mir aber die z-level 

File Attachment:

File Name: AXIS_2024-04-17-5.zip
File Size:9 KB
-compensation. Eine Datei „probe_points.txt“ habe ich mit „g-code-ripper“ erstellt. Ich habe die „custom_postgui.hal“ so erstellt, wie in der „QtDragon GUI“ beschrieben, abgesehen von den Zeilen:net xpos-cmd2 z_level_compensation.x-pos <= axis.x.pos-cmdnet ypos-cmd2 z_level_compensation.y-pos <= axis.y.pos-cmdnet zpos-cmd2 z_level_compensation.z-pos <= axis.z.pos-cmd“da die Bezeichnungen „xpos-cmd“ u.s.w. bereite in der HAL benutzt wurden.Nach Start von LinuxCNC sehe ich in „HAL-Show“ auch die Signale. Das Modul „z-level-comnpensation“ wird offensichtlich geladen.Starte ich nun die Kompensation mit dem Button in der Oberfläche, erscheint eine Fehlermeldung in der Konsole (wenn ich LinuxCNC darüber starte):Traceback (most recent call last):
File "/usr/bin/z_level_compensation", line 204, in <module>
comp.run()
File "/usr/bin/z_level_compensation", line 179, in run
compensation = self.compensate()
^^^^^^^^^^^^^^^^^
File "/usr/bin/z_level_compensation", line 105, in compensate
compensation = int(zo / self.scale)
^^^^^^^^^^^^^^^^^^^^
ValueError: cannot convert float NaN to integerAnschließend ist das Modul entladen, jedenfalls sind die Einträge in der HAL (zu sehen über HAL-Show) nich mehr vorhanden.Hat jemand eine Idee, was ich falsch mache? ( In der Anlage ist meine komplette Konfiguration.)Vielen DankKlaus
Attachments:

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

More
17 Apr 2024 12:36 #298437 by spicer
Replied by spicer on topic Z-Level-COmpensation
Ich kann nur sagen, dass in der Variable zo oder self.scale keine Zahl gespeichert ist.
Darum diese Python Fehlermeldung.
Mehr kann ich Dir leider nicht sagen.

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

More
17 Apr 2024 21:52 #298501 by cmorley
Replied by cmorley on topic Z-Level-COmpensation
Höchstwahrscheinlich sind die Pins, die Sie nicht angeschlossen haben, die Fehlerquelle.
Wenn die Pins, wie z. B. axis.x.pos-cmd, bereits mit Signalen verbunden sind, verwenden Sie diese Signale, um eine Verbindung zur Z-Ebenen-Komponente herzustellen.

Chris
The following user(s) said Thank You: tommylight

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

More
19 Apr 2024 15:43 #298624 by KlausB
Replied by KlausB on topic Z-Level-COmpensation
Hallo spicer, Hallo Chris,

vielen Dank, dass ihr euch das angesehen habt.

Heute habe ich noch einmal einiges probiert.
Soweit ich das verstanden habe, befinden sich in xpos-cmd, ypos-cmd und zpos-cmd die Koordinaten meines Koordinatensystems. In axis.x.pos-cmd u.s.w. befinden sich die Maschinenkoordinaten. Die Originalzeilen aus der Dokumentation können also nur exemplarisch gemeint sein, da der Eingangspin nur einen Wert bekommen kann.

Ich habe die HAL-Datei jetzt so umgestellt, dass die PINs "z_level_compensation.x-pos" u.s.w die Werte meines Koordinatensystems bekommen:
net xpos-cmd z_level_compensation.x-pos
net ypos-cmd z_level_compensation.y-pos
net zpos-cmd z_level_compensation.z-pos

Das scheint auch zu funktionieren:
Component Pins:
Owner Type Dir Value Name
75 bit IN FALSE z_level_compensation.clear <== eoffset-clr2
75 s32 OUT 0 z_level_compensation.counts ==> eoffset-zlevel-count
75 bit IN FALSE z_level_compensation.enable-in <== z_compensation_on
75 float IN 0 z_level_compensation.fade-height
75 s32 IN 1 z_level_compensation.method
75 float OUT 0 z_level_compensation.scale
75 float IN -1.76964 z_level_compensation.x-pos <== xpos-cmd
75 float IN -3.283469 z_level_compensation.y-pos <== ypos-cmd
75 float IN 0.7778383 z_level_compensation.z-pos <== zpos-cmd

Sobald ich den Button "ENABLE Z COMP" anklicke, bekomme ich wieder die Fehlermeldung:
Traceback (most recent call last):
File "/usr/bin/z_level_compensation", line 204, in <module>
comp.run()
File "/usr/bin/z_level_compensation", line 179, in run
compensation = self.compensate()
^^^^^^^^^^^^^^^^^
File "/usr/bin/z_level_compensation", line 105, in compensate
compensation = int(zo / self.scale)
^^^^^^^^^^^^^^^^^^^^
ValueError: cannot convert float NaN to integer

Die obigen PINs sind nach erneutem Aufruf von "HALL SHOW" dann nicht mehr zu sehen.

Hat jemand noch eine Idee, was ich falsch mache?

Viele Grüße
Klaus

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

More
25 Apr 2024 19:13 #299079 by KlausB
Replied by KlausB on topic Z-Level-COmpensation
Hallo, falls es noch jemanden Interessiert.
Ich habe das Problem eingrenzen können.
Die HAL Datei habe ich so konfiguriert, dass die Maschinen Koordinaten genutzt werden:
net xpos-cmd_ z_level_compensation.x-pos <= axis.x.pos-cmd
net ypos-cmd_ z_level_compensation.y-pos <= axis.y.pos-cmd
net zpos-cmd_ z_level_compensation.z-pos <= axis.z.pos-cmd

Die Z-Compensation funktioniert, allerdings nur so lange, wie sich die Spindel innerhalb des Bereichs befindet, der in der probe_points.txt beschrieben ist.
Verlässt die Spindel diesen Bereich, gibt es den oben beschriebenen Fehler. Da mein Testbereich recht klein war, war das bei immer der Fall.
Wünschenswert wäre, wenn das "z_level_compensation" Modul das abfangen würde, damit es nicht zum dem Fehler kommt.

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

Time to create page: 0.092 seconds
Powered by Kunena Forum