This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Selbst erstelltes Makro funktioniert nicht mehr
#1
Hallo zusammen
Mein selbsterstelltes Makro zur 0-Punktermittlung mittels Kreuzlinienlaser funktioniert nur noch zum Teil.
Zur Vorgeschichte, ich betrieb die Fröse mit der Beamicon2 Version 2.16, damit hat das Makro auch problemlos funktioniert. Dann bin ich auf die (blöde), Idee gekommen wieder einmal ein Update der SW durchzuführen und habe auf die Ver. 3.28 upgedatet, dabei hat es mir das Netbob V1.x zerschossen. Das wurde in der Zwischenzeit von Benezan neu geflasht und funktioniert auch wieder. Herzlichen Dank dafür.

Was aber nicht mehr richtig läuft ist mein Makro zur 0-Punktbestimmung der X & Y Position.

Die Vorehensweise ist folgende:
Mit dem Kreuzlinienlaser fahre ich den gewünschten 0-Punkt an und starte das Makro. Nun wird die Position ermittelt, der Versatz vom Laser zum Fräser davon abgezogen und die Spindel verfährt auf den errechenten 0-Punkt. Soweit so gut.
Jetzt sollte der angefahrene Punkt als Werkstück 0-Punkt übernommen werden, was leider nicht mehr gemacht wird. Natürlich kann ich jetzt die X & Y Achse manuell Nullen, das ist aber nicht der Zweck des Makros und vor dem Update hat das auch funktioniert.

Das heist, der Befehl L53 wird nicht mehr ausgeführt.

Das Makro habe ich mal angehängt evtl. kann mir da jemand helfen? ( Das Makro kann sicher noch Programmtechnisch optimiert werden, aber bis jetzt hat es ja funktioniert und da sah ich keinen Bedarf dazu.)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#NAME User02.txt #LABEL "X-/Y- Nullpunkt mit Fadenkreuz"

%

#10=#909 (Aktueller Werkstückoffset speichern G5x)

G53 (Maschinenekoordinaten aktivieren)
F=500 (Geschweindigkeit auf 500mm/Min setzen)
#9=Z
#12=X
#13=Y
IF #12<57 THEN (Prüfen ob X im bearbeitbaren Bereich ist)
G1 X=58
PRINT "X ist ausserhalb des zulaessigen Bereichs, Werkstueck neu positionieren"
M2
ELSE
IF #13<34 THEN (Prüfen ob Y im bearbeitbaren Bereich ist)
G1 Y=35
PRINT "Y ist ausserhalb des zulaessigen Bereichs, Werkstueck neu positionieren"
M2
ENDIF
ENDIF

IF #9<0 THEN (Prüfen ob Z auf 0 war damit der Fokus stimmt)
G1 Z0 (Z-Achse auf 0 fahren)
PRINT "Z war nicht 0 bitte nochmal einmessen"
M2
ENDIF

#11=X (X-Pos. vor Messung)
#12=Y (Y-Pos. vor Messung)
#15=55.865 (X-Offset)
#16=34.032 (Y-Offset)
(Ausgeben der Werte X12, X12, X15 & X16)
PRINT "Wert 11 = ";#11;" Wert 12 = ";#12;" Wert 15 = ";#15;" Wert 16 = ";#16

(--  Berechnung der Verschiebung  ----------------------------------------------)

#21=#11-#15 (X Versatz Laser > Fräser)
#22=#12-#16 (Y Versatz Laser > Fräser)

(--  Ausgabe der neuen Positionen  ---------------------------------------------)

PRINT "Neue Positionen X = ";#21;" Y = ";#22

(--  Setzen des Werkstück 0-Punktes  ------------------------------------------)

#900=#21 (Offset kompensiert X-Achse)
#901=#22 (Offset kompensiert Y-Achse)

G1 X=#21 Y=#22 (Anfahren des Werstücknullpunktes)

IF #10=0 THEN
#10=#10+1 (Setzen des Werkstückoffsets)
ENDIF

#909=#10 (Aktivieren des Werkstückoffsets)
#900=X (Ubernehmen der X Koordinaten)
#901=Y (Ubernehmen der Y Koordinaten)
L53 (Nullen der X & Y Koordinaten im aktiven Werkstückoffset)

RETURN

Simulation:
PRINT "Nullpunkt mit Fadenkreuz (simulation)"
RETURN


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Herzlichen Dank im Voraus.
Markus
Reply
#2
Hallo Markus,

ich hab Dein Macro mal kurz getestet. Meiner Meinung macht die Steuerung genau das, was Du programmiert hast:

* ich hab den G54-Offset auf X=100 Y=100 gestellt.
* ich bin auf den Nullpunkt gefahren, d.h. die Koordinatenanzeige steht jetzt auf X0 Y0 und ich stehe absolut auf G53 X100 Y100
* ich starte Dein Macro. Es gibt folgendes aus:
Wert11=100 Wert12=100 Wert15=55.865 Wert16=34.032
Neue Positionen X=44.135 Y=65.968
* Der neue Offset von G54 steht danach auf X-55.865 Y-34.0325

Möglicherweise ist das nicht, was Du erwartet hast, aber es erscheint logisch, wenn man den Code anschaut.

G1 X=#21 Y=#22 (Anfahren des Werstücknullpunktes)
...
#909=#10 (Aktivieren des Werkstückoffsets)
#900=X (Ubernehmen der X Koordinaten)
#901=Y (Ubernehmen der Y Koordinaten)
L53 (Nullen der X & Y Koordinaten im aktiven Werkstückoffset)

Mit "#909=#10" setzt Du zuerst den aktivierten Offset von G53 auf G54 zurück. Die Maschine ist vorher mit G1 auf die neue Position gefahre, also X=44.135 Y=65.968. Das entspricht im alten Offset G54 gerechnet aber den Koordinaten X-55.865 Y-34.032. (Die 0,5µm Differenz bei Y kommt wahrscheinlich durch die Rundung auf ganzzahlige Schritte des Antriebs) Mit "#900=X" und "#901=Y" werden die Momentan-Werte von X und Y genommen und mit "L53" gespeichert. Alles OK aus der Sicht der Steuerung, denke ich.

Was Du wahrscheinlich machen wolltest, war aber:
#900=#21 (Offset kompensiert X-Achse)
#901=#22 (Offset kompensiert Y-Achse)
L53

Das würde den berechneten Offset speichern und nicht die aktuell angezeigten Koordinaten. Ich vermute mal, dass Dein Macro mit der alten Version funktioniert hatte, war eigentlich "Glücksache" und dadurch bedingt, dass X und Y bei "#909=..." nicht aktualisiert wurde, also noch auf den Werten von G53 stand. War also mehr oder weniger eine Verkettung von zwei Bugs, einer von mir und einer von Dir. Wink Programmiert man es eindeutig, dann funktioniert es unabhängig von der Softwareversion.
Reply
#3
Herzlichen Dank für das Überprüfen des Makros und die schnelle Antwort.
Ich überabeite das Makro entsprechend dem Hinweis.

Herzlichen Dank
Markus
Reply


Forum Jump: