Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Nullpunkt auslesen / Aktiven NP auslesen

Beitrag 18.11.2019, 13:07 Uhr
danielnoest
danielnoest
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 18.11.2019
Beiträge: 1
Hallo,
Ich arbeite auch einer Tacchi 700 mit einer Sinumerik 840D.
Und ich möchte die alten Programme etwas verbessern und vereinfachen und dafür möchte ich folgende zwei Sachen.

Erstens den "Z - Wert" Grob auslesen.
if $P_UIFR[2,z,tr] = 500
G0 X... Z-

Wäre die theoretisch so Korrekt?

Und zweitens möchte ich im Programm unterprogramm auslesen ob G54 oder G55 gerade aktiv ist.
Denn das Unterprogramm kann man bei beiden NP einsetzen, nur müsste die Maschine bei einem in Z+ und beim anderen in Z- fahren.

Vielen dank für eure Hilfe

P.S.: Sorry gerade gesehen das es im Berreich Sonstigen ist. Bitte in den Berreich Drehen verschieben.
Danke

Der Beitrag wurde von danielnoest bearbeitet: 18.11.2019, 13:14 Uhr
   
Beitrag 18.11.2019, 14:42 Uhr
CaptainFu
CaptainFu
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.09.2019
Beiträge: 49
Vielleicht hilft das, ein kleiner Auszug aus der DocOnCd, Betref auslesen eines aktiven Nullpunktes siehe
Liste der Systemvariablen / 3.2 Kanalspezifische Systemvariablen

$P_UIFRNUM Nummer des aktiven einstellbaren Frames INT

Beschreibung:
Die Variable $P_UIFRNUM ermittelt die Nummer des aktiven einstellbaren Frames. Ein einstellbares Datenhaltungsframe $P_UIFR[n] wird durch die Ausführung von G500, G54 bis G599 zum aktiven einstellbaren Frame.

G500: $P_UIFRNUM = 0
G54: $P_UIFRNUM = 1
G599: $P_UIFRNUM = 99

lässt sich auch sehr schön an der Maschine überprüfen, wenn man die Systemvariable mal in die Diagnose eingiebt.


Die Grobverschiebung auslesen funktioniert so wie Du es gedacht hast (Z-Achse)

Var = $P_UIFR[1,Z,TR] ;(G54)
Var = $P_UIFR[2,Z,TR] ;(G55)

usw.. Die Feinferschiebung erhält man entsprechend mit $P_UIFR[n,Ax,FI] . Natürlich entsprechend dem Achsbezeichner

Und wenn das im Programm verglichen werden soll dann bitte mit zweimal "==" , ansonsten weist man einen neuen Wert zu!
If $P_UIFR[2,Z,TR] == Wert

Der Beitrag wurde von CaptainFu bearbeitet: 18.11.2019, 14:50 Uhr
   
Beitrag 18.11.2019, 14:46 Uhr
CaptainFu
CaptainFu
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.09.2019
Beiträge: 49
QUOTE (CaptainFu @ 18.11.2019, 14:42 Uhr) *
Vielleicht hilft das, ein kleiner Auszug aus der DocOnCd, Betref auslesen eines aktiven Nullpunktes siehe
Liste der Systemvariablen / 3.2 Kanalspezifische Systemvariablen

$P_UIFRNUM Nummer des aktiven einstellbaren Frames INT

Beschreibung:
Die Variable $P_UIFRNUM ermittelt die Nummer des aktiven einstellbaren Frames. Ein einstellbares Datenhaltungsframe $P_UIFR[n] wird durch die Ausführung von G500, G54 bis G599 zum aktiven einstellbaren Frame.

G500: $P_UIFRNUM = 0
G54: $P_UIFRNUM = 1
G599: $P_UIFRNUM = 99

lässt sich auch sehr schön an der Maschine überprüfen, wenn man die Systemvariable mal in die Diagnose eingiebt.


Die Grobverschiebung auslesen funktioniert so wie Du es gedacht hast (Z-Achse)

Var = $P_UIFR[1,Z,TR] ;(G54)
Var = $P_UIFR[2,Z,TR] ;(G55)

usw.. Die Feinferschiebung erhält man entsprechend mit $P_UIFR[n,Ax,FI] . Natürlich entsprechend dem Achsbezeichner

Und wenn das im Programm verglichen werden soll dann bitte mit zweimal "==" , ansonsten weist man einen neuen Wert zu!
If $P_UIFR[2,Z,TR] == Wert


Sorry war vielleicht ein bisschen schnell, ich bin davon ausgegannen das Du die "Grob Verschiebung" der Nullpunktverschiebung auslesen willst. Oder meinst Du die aktuelle Achsposition?

Der Beitrag wurde von CaptainFu bearbeitet: 18.11.2019, 14:51 Uhr
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: