Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Geänderten Nullpunkt verfahren, Nicht mit Aufruf z.B. G54

Beitrag 04.09.2006, 14:26 Uhr
true_mirek
true_mirek
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.01.2006
Beiträge: 49
Hallo alle miteinander.

Ein Rundteil ist aussermittig auf einen Drehtisch gespannt.
In einem Unterprogramm wird bei jeder Änderung des Drehtisches
der neue Nullpunkt zur Werkstückmitte bestimmt und dem aktuellen
Nullpunkt in die Fine Translation (FI) übergeben.

Allerdings verfährt die Maschine den neuen Nullpunkt solange nicht,
bis ich z.B. im Unterprogramm G54 eingebe.

Da die Nullpunkte wechseln können kann ich aber nicht im UP G54
schreiben. Adresse G ist fest, sodas ich auch nicht schreiben kann
G=$P_UIFR[$P_UIFRNUM] ;Übergabe aktueller Nullpunkt an G

Nun könnte ich das ganze mit TRANS machen, aber es könnte ja sein das
TRANS im Hauptprogramm vor diesem UP schon aktiv ist, dann würde das eine das andere überschreiben.
ATRANS im UP da bin ich mir auch nicht sicher ob das in jedem Fall gut geht.

Das einzige was mir zur Zeit einfällt ist ein Vergleich des aktuellen NP
mit allen möglichen 40 Nullpunkten um dann den richtigen einzutragen.


Kurz gesagt brauche ich eine Aktualisierung so wie beim Aufruf mit G54..G540
   
Beitrag 04.09.2006, 16:37 Uhr
cnc-wolle
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 01.08.2006
Beiträge: 205
hi mirek,

G=$P_UIFR[$P_UIFRNUM]

soeinen befehl habe ich auch schon vermißt.

aber in der dokumentation gibt eine beschreibung als unterprogramm.

hier die lösung bei uns


UP zum aktuellen Nullpunkt ermitteln.

%_N_Npv_num_SPF
;$PATH=/_N_SPF_DIR
CASE $P_UIFRNUM Of 1 Gotof _G54 2 Gotof _G55 3 Gotof _G56 4 Gotof _G57 5 Gotof _G505 ;;; usw

_G54: G54
Gotof Ende

_G55: G55
Gotof Ende

_G56: G56
Gotof Ende

_G57: G57
Gotof Ende

_G505: G505
Gotof Ende

;; usw

Ende:

M17


ich hoffe ich habe dich richtig verstanden.

gruß

cnc-wolle
   
Beitrag 04.09.2006, 20:19 Uhr
nixalsverdruss
nixalsverdruss
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
Hallo

sucht ihr das hier ?

Indirekte G-Code-Programmierung

DEF INT INT_VAR
INT_VAR = 2
...
G[8] = INT_VAR G1 X0 Y0 ;G54
INT_VAR = INT_VAR + 1 ;G-Code-Berechnung
G[8] = INT_VAR G1 X0 Y0 ;G55


--------------------
There are only 10 types of people in the world: Those who understand binary, and those who don't
Wir haben einen exponentiellen Zuwachs an Doofen Pack im Forum
   
Beitrag 04.09.2006, 20:42 Uhr
cnc-wolle
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 01.08.2006
Beiträge: 205
hi nixalsverdruss,

genau das habe ich gebraucht aber leider in den ganzen dokumentationen von siemens nicht richtig gesucht.

wenn man ließt ist man im vorteil thumbs-up.gif

ps.
(ich hoffe den name ist nicht programm)

gruß
cnc-wolle
   
Beitrag 04.09.2006, 20:51 Uhr
nixalsverdruss
nixalsverdruss
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
QUOTE
von siemens nicht richtig gesucht.


wenn du nicht weißt das mann über die g gruppe addresieren muss
kannst du lange suchen steht wenn ich nicht irre irgendwo bei shopmill

bei der doku ist der name programm


--------------------
There are only 10 types of people in the world: Those who understand binary, and those who don't
Wir haben einen exponentiellen Zuwachs an Doofen Pack im Forum
   
Beitrag 05.09.2006, 08:39 Uhr
cnc-wolle
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 01.08.2006
Beiträge: 205
hi nixalsverdruss,

die information steht in der dokumentation siemens arbeitsvorbereitung.

das dein name sich auf siemens 840d bezieht kann ich nachvollziehen.

bei mir ist es eine ART von "HASS/LIEBE" faßt alles möglich nur wenn der zusammenhang OK ist.

gruß
cnc-wolle
Angehängte Datei(en)
Angehängte Datei  G_Code.doc ( 77.5KB ) Anzahl der Downloads: 76
 
   
Beitrag 06.09.2006, 13:36 Uhr
true_mirek
true_mirek
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.01.2006
Beiträge: 49
danke.gif für die Antworten

Indirekte Programmierung kannte ich noch nicht.

Leider funktionierte G[8]= $P_UIFR[$P_UIFRNUM] nicht.
Diese Systemvariable darf wohl nur gelesen aber nicht direkt uebergeben werden.

Ich werde es wohl so ähnlich machen wie cnc-wolle mit dem UP geschrieben hat, aber als Schleife. Hab's aber noch nicht probiert.

DEF INT IST_NP=1

REPEAT
IST_NP=IST_NP+1 ;MUSS BEGINNEN MIT 2 = G54 DA 1=G500
IF IST_NP>101 ;ABBRUCH BEI UEBER 100 MOEGLICHEN NP
MSG("FEHLER. ZAHL MOEGLICHE NP UEBERSCHRITTEN.")
M0
ENDIF
UNTIL IST_NP==$P_UIFR[$P_UIFRNUM] ;ENDE WENN NP GEFUNDEN

G[8]=IST_NP ;UEBERGABE

PS: Hatte ich vergessen. Steuerung ist SINUMERIK 840D
   
Beitrag 06.09.2006, 19:22 Uhr
cnc-wolle
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 01.08.2006
Beiträge: 205
hi mirek,

ab version 5.xx 840D ist die schreibweise erlaubt.

hier eine flexiblere version

========================
def INT np_zaehl

G0 g505 x12 y0
;>>>>
For np_zaehl=1 To 100;.............; 1 --> 100 Nullpunkte
If np_zaehl == $P_UIFRNUM;....; NP5 aktiv --> G505
MSG ("aktiven NP gefunden")
np_zaehl = npzaehl+1;.............; 5=G57 5+1=G505
Gotof Ende
Endif
Endfor
;<<<<
Ende:
G[8]=np_zaehl;..........................; G505

so habe ich es getestet.

gruß
cnc_wolle
   
Beitrag 07.09.2006, 05:50 Uhr
true_mirek
true_mirek
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.01.2006
Beiträge: 49
super.gif

Gut das teste ich heute nacht. Hatte in meinem letzten Beitrag auch noch
einen Fehler, der nun nicht mehr editierbar ist.
UNTIL IST_NP==$P_UIFRNUM muß es heißen.
   
Beitrag 08.09.2006, 15:50 Uhr
true_mirek
true_mirek
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.01.2006
Beiträge: 49
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Schleife ist gar nicht notwendig.

DEF INT IST_NP

IST_NP=$P_UIFRNUM
IST_NP=IST_NP+1
G[8]=IST_NP
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: