Siemens
Digital Industries, Motion Control, Machine Tool Systems
8832
Follower:innenProgrammierte Achsposition lesen
24.10.2020, 15:23 Uhr
Hallo liebe Siemens Experten
Ich bin auf der Suche nach der Variable um die Programmierte Achsposition auszulesen. Nicht die Aktuelle.
Beispiel:
G00 W-100 V-2400
R10=Programmierte Position W-Achse
R11=Programmierte Position V-Achse
Vielleicht kann mir da jemand helfen.
Besten Dank schon im Voraus
Gruss Querox
Ich bin auf der Suche nach der Variable um die Programmierte Achsposition auszulesen. Nicht die Aktuelle.
Beispiel:
G00 W-100 V-2400
R10=Programmierte Position W-Achse
R11=Programmierte Position V-Achse
Vielleicht kann mir da jemand helfen.
Besten Dank schon im Voraus
Gruss Querox
24.10.2020, 15:51 Uhr
Noch eine kurz Erklärung warum.
Es kann z.B. sein das jemand im Jog Modus die Achsen verfährt. Und dann ohne Berechnung meine Unterprogramm laufen lässt.
( Mit Berechnung und Anfahren funktioniert nicht bei dieser Maschine. Ist eine Versuchsmaschine und der Hersteller hat keine Lösung für uns )
Deshalb möchte ich Im Unterprogramm auf die zuletzt Programmierte Position fahren um fatalen Crash vorzubeugen.
Es kann z.B. sein das jemand im Jog Modus die Achsen verfährt. Und dann ohne Berechnung meine Unterprogramm laufen lässt.
( Mit Berechnung und Anfahren funktioniert nicht bei dieser Maschine. Ist eine Versuchsmaschine und der Hersteller hat keine Lösung für uns )
Deshalb möchte ich Im Unterprogramm auf die zuletzt Programmierte Position fahren um fatalen Crash vorzubeugen.
13.11.2020, 19:24 Uhr
Hallo Querox,
leider verstehe ich Dein Problem nicht ganz. Aber ich hätte folgende Vorschläge, wie Du evtl. es anders programmieren könntest:
Anstelle fester Werte einfach gleich Parameter:
R100=-100
R200=-2400
STOPRE
;Hier die Abfrage, ob die Werte passen:
IF (R100<>-100) OR (R200<>-2400)
M0
ENDIF
G0 W=R100 V=R200
Oder Du programmierst vor der ersten G0 Bewegung, die womöglich mit einem Nullpunkt stattfindet einfach eine Bewegung, die sich auf den G500 bezieht.
G0 W-1 V+1 SUPA D0
D1
Somit stellst Du sicher, dass die Maschine immer von der gleichen Position startet bei NC - Start.
Hoffe, dass ich Dein Problem richtig aufgefasst habe..
LG
leider verstehe ich Dein Problem nicht ganz. Aber ich hätte folgende Vorschläge, wie Du evtl. es anders programmieren könntest:
Anstelle fester Werte einfach gleich Parameter:
R100=-100
R200=-2400
STOPRE
;Hier die Abfrage, ob die Werte passen:
IF (R100<>-100) OR (R200<>-2400)
M0
ENDIF
G0 W=R100 V=R200
Oder Du programmierst vor der ersten G0 Bewegung, die womöglich mit einem Nullpunkt stattfindet einfach eine Bewegung, die sich auf den G500 bezieht.
G0 W-1 V+1 SUPA D0
D1
Somit stellst Du sicher, dass die Maschine immer von der gleichen Position startet bei NC - Start.
Hoffe, dass ich Dein Problem richtig aufgefasst habe..
LG
15.11.2020, 19:51 Uhr
Hallo liebe Siemens Experten
Ich bin auf der Suche nach der Variable um die Programmierte Achsposition auszulesen. Nicht die Aktuelle.
Beispiel:
G00 W-100 V-2400
R10=Programmierte Position W-Achse
R11=Programmierte Position V-Achse
Vielleicht kann mir da jemand helfen.
Besten Dank schon im Voraus
Gruss Querox
Ich bin auf der Suche nach der Variable um die Programmierte Achsposition auszulesen. Nicht die Aktuelle.
Beispiel:
G00 W-100 V-2400
R10=Programmierte Position W-Achse
R11=Programmierte Position V-Achse
Vielleicht kann mir da jemand helfen.
Besten Dank schon im Voraus
Gruss Querox
Wenn dann kannst es so machen das nach jedem NC-Satz ein Unterprogramm die aktuellen Achs Positionen schreibt.
Siehe Bilder:
POS_TEST.JPG ( 64.32KB ) Anzahl der Downloads: 27
Ich habe dazu ein kleines Unterprogramm geschrieben was nach jedem Satz die aktuell Achsposition in R-Parameter schreibt:
POS_TEST_2.JPG ( 50.17KB ) Anzahl der Downloads: 19
Hier das Programm dazu:
DEF REAL X_POS, Y_POS, Z_POS
X_POS=$AA_IM[X]
Y_POS=$AA_IM[Y]
Z_POS=$AA_IM[Z]
R20=X_POS
R21=Y_POS
R22=Z_POS
M17
Was anderes fällt mir auf die schnelle auch nicht ein.
POS_TEST_3.JPG ( 82.09KB ) Anzahl der Downloads: 12
Weiß nicht ob das dem entspricht was du dir vorstellst?
Der Beitrag wurde von Boern bearbeitet: 15.11.2020, 19:53 Uhr
--------------------
Das dringendste Problem der Technologie von heute ist nicht mehr die Befriedigung von Grundbedürfnissen und uralten Wünschen der Menschen, sondern die Beseitigung von Übeln und Schäden, welche uns die Technologie von gestern hinterlassen hat.
Dennis Gabor (1900-79), ungar.-brit. Physiker, Entwickler der Holographie, 1971 Nobelpr.
15.11.2020, 20:00 Uhr
Ich würde aber auch ein festes Frei fahren im NC Programm bevorzugen!
Gruß Boern
Gruß Boern
--------------------
Das dringendste Problem der Technologie von heute ist nicht mehr die Befriedigung von Grundbedürfnissen und uralten Wünschen der Menschen, sondern die Beseitigung von Übeln und Schäden, welche uns die Technologie von gestern hinterlassen hat.
Dennis Gabor (1900-79), ungar.-brit. Physiker, Entwickler der Holographie, 1971 Nobelpr.
15.11.2020, 21:23 Uhr
Das Lesen der aktuellen Position mit $AA_IM[X] hat allerdings den Nachteil, dass der Lesebefehl jedes Mal einen Vorlaufstop auslöst, d.h. die Maschine hält nach jedem Verfahrsatz an. Weiterhin ist mit einem solchen Programm z.B. Werkzeugradiuskorrektur nicht mehr (sinnvoll) möglich.
Ein weiteres Problem sehe ich darin, dass $AA_IM ja eine Position im MKS (Maschinenkoordinatensystem) liefert, Querox aber vermutlich die Positionen im WKS (Werkstückkoordinatensystem) braucht, weil er die gespeicherten Werte ja später den Achsen in einem NC-Programm zuweisen will.
Selbst wenn man eine Möglichkeit finden würde, die WKS-Positionen ohne Vorlaufstop abzuspeichern, bliebe das Problem, wie man einen Framewechsel zwischen dem Abspeichern der Positionen und der erneuten Verwendung erkennen und behandeln würde.
Eine ganz andere Frage ist, was eigentlich der Sinn der ganzen Übung ist. Im Normalbetrieb, d.h. ohne Vorlaufstop, kann der Satz mit der letzten programmierten Position im Programm ja nahezu beliebig weit von dem Satz entfernt sein, der gerade abgefahren wird.
Da wir das eigentliche Problem, das mit dem Abspeichern der programmierten Positionen gelöst werden soll, nicht kennen, kann man auch nur schlecht Lösungsvorschläge machen. Möglicherweise gäbe es ja einen Weg, das Ganze anders anzugehen.
Ein weiteres Problem sehe ich darin, dass $AA_IM ja eine Position im MKS (Maschinenkoordinatensystem) liefert, Querox aber vermutlich die Positionen im WKS (Werkstückkoordinatensystem) braucht, weil er die gespeicherten Werte ja später den Achsen in einem NC-Programm zuweisen will.
Selbst wenn man eine Möglichkeit finden würde, die WKS-Positionen ohne Vorlaufstop abzuspeichern, bliebe das Problem, wie man einen Framewechsel zwischen dem Abspeichern der Positionen und der erneuten Verwendung erkennen und behandeln würde.
Eine ganz andere Frage ist, was eigentlich der Sinn der ganzen Übung ist. Im Normalbetrieb, d.h. ohne Vorlaufstop, kann der Satz mit der letzten programmierten Position im Programm ja nahezu beliebig weit von dem Satz entfernt sein, der gerade abgefahren wird.
Da wir das eigentliche Problem, das mit dem Abspeichern der programmierten Positionen gelöst werden soll, nicht kennen, kann man auch nur schlecht Lösungsvorschläge machen. Möglicherweise gäbe es ja einen Weg, das Ganze anders anzugehen.
16.11.2020, 18:28 Uhr
Hallo liebe Siemens Experten
Ich bin auf der Suche nach der Variable um die Programmierte Achsposition auszulesen. Nicht die Aktuelle.
Beispiel:
G00 W-100 V-2400
R10=Programmierte Position W-Achse
R11=Programmierte Position V-Achse
Vielleicht kann mir da jemand helfen.
Besten Dank schon im Voraus
Gruss Querox
Ich bin auf der Suche nach der Variable um die Programmierte Achsposition auszulesen. Nicht die Aktuelle.
Beispiel:
G00 W-100 V-2400
R10=Programmierte Position W-Achse
R11=Programmierte Position V-Achse
Vielleicht kann mir da jemand helfen.
Besten Dank schon im Voraus
Gruss Querox
kannst du mal bitte mehr Infos raus lassen, ins blaue Lösungsvorschläge schreiben macht tatsächlich keinen Sinn
--------------------
Das dringendste Problem der Technologie von heute ist nicht mehr die Befriedigung von Grundbedürfnissen und uralten Wünschen der Menschen, sondern die Beseitigung von Übeln und Schäden, welche uns die Technologie von gestern hinterlassen hat.
Dennis Gabor (1900-79), ungar.-brit. Physiker, Entwickler der Holographie, 1971 Nobelpr.
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: