Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Softkey anwählen beim Rückübersetzen

Beitrag 23.07.2015, 09:52 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (guest @ 23.07.2015, 10:40 Uhr) *
Mir fällt aber gerade auf, daß die Datei direkt im Verzeichnis Werkstücke liegt.


stimmt hast recht, das darf nicht sein ...
ist mir jetzt net aufgefallen biggrin.gif


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 23.07.2015, 10:05 Uhr
Guest_guest_*
Themenstarter
Gast


Das Schreiben der Datei funktioniert ja.
Ich könnte mir auch vorstellen, daß der Aufruf nicht klappt, weil die Datei nicht im Suchpfad liegt.
(Verzeichnis des aufrufenden Programms, MPF_DIR, SPF_DIR, CUS_DIR ... )
   
Beitrag 23.07.2015, 12:06 Uhr
faltklo
faltklo
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 03.11.2009
Beiträge: 379
Ok, danke Ihr beiden, das hat jetzt geklappt. Ich bin etwas verwirrt, dass die read/write/delete Befehle den Pfad offensichtlich selber ergänzen, der call befehl aber nicht... Nun gut, es ist wie es ist biggrin.gif

Ich habe jetzt alles Zusammen um meine Revolverliste auszulesen. Was ich noch nicht verstehe, ist wie ich sie im Gegenzug woeder beschreibe.
Den Werkzeugnamen und die Interne T-Nummer habe ich ja.

Auslesen wäre ja $TC_MPP6[1,24] (für Platz 24). Aber wie schreibe ich einen Wert zurück? Sorry, falls das dumme fragen sind, aber ich sehe beim Blick in die Handbücher nur noch blinkende Sterne biggrin.gif Zeit für einen Kaffee...

Ach ja, wenn ich erfolgreich war, gibts hier natürlich auch die Lösung

Der Beitrag wurde von faltklo bearbeitet: 23.07.2015, 12:09 Uhr
   
Beitrag 23.07.2015, 12:08 Uhr
N0F3aR
N0F3aR
Level 6 = Community-Doktor
******
Gruppe: Mitglied
Mitglied seit: 05.12.2011
Beiträge: 980
Hallo,

ich habe jetzt nicht alles durchgelesen aber wenn hier jemand eine Werkzeugbelegung des Revolvers braucht ich habe da schon was fertiges man muss nur am schluss die datei von FM auf Html unbenennen! weis jetzt nicht ob das die neueste Version ist aber sollte soweit gehen.

Datei wird in den Unterprogrammordner hinterlegt und muss dann nur am Programm anfang aufgerufen werden!
/_N_SPF_DIR/

;Programmkopf

WZGLISTE
STOPRE

G0XYZ7
...
...

Dateiende von Txt auf SPF ändern wink.gif

Der Beitrag wurde von N0F3aR bearbeitet: 23.07.2015, 12:12 Uhr
Angehängte Datei(en)
Angehängte Datei  WZGLISTE.txt ( 19.16KB ) Anzahl der Downloads: 16
 
   
Beitrag 23.07.2015, 16:46 Uhr
Guest_guest_*
Themenstarter
Gast


QUOTE
Ich habe jetzt alles Zusammen um meine Revolverliste auszulesen. Was ich noch nicht verstehe, ist wie ich sie im Gegenzug woeder beschreibe.
Den Werkzeugnamen und die Interne T-Nummer habe ich ja.

Auslesen wäre ja $TC_MPP6[1,24] (für Platz 24). Aber wie schreibe ich einen Wert zurück? Sorry, falls das dumme fragen sind, aber ich sehe beim Blick in die Handbücher nur noch blinkende Sterne Zeit für einen Kaffee...


Nun da haben die Jungs in Erlangen eine Funktion im Programm-Manager von Operate eingebaut:
RSK = Rechter Soft Key

Taste: "Programm-Manager" - RSK8: ">>" - RSK1: "Archivieren" - RSK3: "Rüstdaten sichern"
Fenster:
Werkzeugdaten: "alle im Programm verwendeten"
Magazinbelegung: "Ja"
Nullpunkte: "alle im Programm verwendeten"
Basis-Nullpunkte: "Ja"
Dateiname: "Ruestdaten_TMZ"
RSK8: "Ok"

Zum einlesen:
Zeiger auf Datei "Ruestdaten_TMZ"
Input-Taste
Abfragefenster mit RSK8: "OK" bestätigen.

Belegte Plätze werden überschrieben.

Der Beitrag wurde von guest bearbeitet: 23.07.2015, 16:49 Uhr
   
Beitrag 23.07.2015, 17:11 Uhr
Guest_guest_*
Themenstarter
Gast


Ab Version 06.03 hieß die Rüstdatendaten-Sicherung "<Werkstückname>_TOA".

Taste: "MENU-SELECT" - HSK3: "Programm"
Zeiger auf Werkstück-Verzeichnis
RSK8: "Rüstdaten sichern" - Häkchen setzen - RSK6: "Sichern"
Rüstdaten werden in die Datei "<Werkstückname>_TOA" geschrieben.

Zurückschreiben:
Zeiger auf die Datei: "<Werkstückname>_TOA" stellen.
RSK7: "Anwahl"
Taste: "Machine"
Taste: "AUTO"
Taste: "CYCLE-START"
   
Beitrag 24.07.2015, 13:18 Uhr
faltklo
faltklo
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 03.11.2009
Beiträge: 379
Puh, mir reichts für diese Woche biggrin.gif Aber das Wochenende naht ja.

-guest, du hast völlig recht, zum Rüstdaten einlesen tut es die Siemens-Funktion natürlich sehr gut. Deswegen habe ich das Einlesen erst mal gecancelt. Trotzdem wollte ich gerne in jedem Programm eine mehr oder minder automatisch erzeugte Werkzeugliste haben (schon alleine aus dem Grund, weil ich mri Programme auch oft extern anschaue).

Was habe ich erreicht:

1. Es gibt ein Unterprogramm "REVOLVERLISTE_LESEN", welches im MDA abgearbeitet wird. Dieses UP schreibt die Werkzeugnamen, die sich auf dem Revolver befinden in die UGUDs _T1_NAME - _T24_NAME.
2. Im Editieren gibt es jetzt den Softkey "Revolverliste"
3. Hinter diesem Softkey verbirgt sich diese Maske:

Angehängte Datei  Maske_Revolverbelegung.JPG ( 78.17KB ) Anzahl der Downloads: 23


4. In dieser Maske KANN die Maschinenbelegung übernommen werden, man kann aber auch selber editieren.
5 Im Programm sieht das so aus:

Angehängte Datei  Revolverbelegung_Programm.JPG ( 108.24KB ) Anzahl der Downloads: 18


Mit der Maske und der Formatierung bin ich so sehr glücklich, das einzige, was mich noch massiv stört ist, dass ich das Unetrprogramm immer manuell abarbeiten muss. Gibt es nicht irgendwie die möglichkeit das noch im Hintergrund einzuflechten? EIne Projektierungsdatei kann doch keinen NC-Code ausführen, oder? Ich hänge euch Cracks jedenfalls mal die Dateien an, und hoffe, dass jemand eine Idee habe, wie ich das auslesen der Liste automatisieren könnte.

die Dateien müssen noch mit den richtigen Endungen versehen werden.

Gruß und schönes Wochenende,
Lucas
Angehängte Datei(en)
Angehängte Datei  REVOLVERLISTE_LESEN.SPF.TXT ( 916Byte ) Anzahl der Downloads: 10
Angehängte Datei  dds_revolverbelegung.com.txt ( 15.48KB ) Anzahl der Downloads: 13
 
   
Beitrag 25.07.2015, 12:30 Uhr
faltklo
faltklo
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 03.11.2009
Beiträge: 379
So, hier meine "standalone" Version, die ohne das Unterprogramm funktioniert.
Geänderte Einträge werden in der Maske grün hinterlegt, belegte Plätze orange und leere Plätze grau.

Durch Zufall bin ich gestern auf das Handbuch "Run My Screens" für die Version 4.7 gestoßen, und laut Handbuch gibt es dann auch in den .com Dateien endlich While-Schleifen und Switch/Case. Ohne ist das ganze ja echt nur begrenzt spaßig.
Sehr toll ist auch, dass die Schreibweisen von Nc-Programm und .com Datei teilweise so massiv abweichen.

Beispiel :

NC Code: _tnumber_exist = $TC_MPP6[1,_tnumber]
.com Code : _tnumber_exist.val = RNP("$TC_MPP6[1,"<<_tnumber<<"]")

Na herzlichen Dank mad.gif
Naja, jetzt klappts ja. Wünsche ein schönes Wochendene allerseits.
Angehängte Datei(en)
Angehängte Datei  dds_revolverbelegung.com.txt ( 21.05KB ) Anzahl der Downloads: 8
 
   
Beitrag 25.07.2015, 13:57 Uhr
DMC635V
DMC635V
Level 6 = Community-Doktor
******
Gruppe: Mitglied
Mitglied seit: 12.08.2010
Beiträge: 844
QUOTE (faltklo @ 25.07.2015, 12:30 Uhr) *
So, hier meine "standalone" Version, die ohne das Unterprogramm funktioniert.
Geänderte Einträge werden in der Maske grün hinterlegt, belegte Plätze orange und leere Plätze grau.

Durch Zufall bin ich gestern auf das Handbuch "Run My Screens" für die Version 4.7 gestoßen, und laut Handbuch gibt es dann auch in den .com Dateien endlich While-Schleifen und Switch/Case. Ohne ist das ganze ja echt nur begrenzt spaßig.


Interessant.

Ohne Schleifen ist halt immer mühsam. Du kannst ja mal probieren ob folgendes Konstrukt funktioniert. Laut Handbuch kann man in UP Blöcken weiter aufrufen, ob das 25mal geht ist halt die andere Frage.
CODE
sub(format25)
  _strlen = LEN(_temp)
  call("LEERHINZU")
END_SUB

SUB(LEERHINZU)
  IF _strlen >= 25
    _temp.val = LEFT(_temp,25);ueberzaehlige Zeichen abschneiden
  ELSE
    _temp.val = _temp<<" ";01 Zeichen Leerstring
    _strlen = _strlen+1
    CALL("LEERHINZU")
  ENDIF
END_SUB


QUOTE (faltklo @ 25.07.2015, 12:30 Uhr) *
Sehr toll ist auch, dass die Schreibweisen von Nc-Programm und .com Datei teilweise so massiv abweichen.

Beispiel :

NC Code: _tnumber_exist = $TC_MPP6[1,_tnumber]
.com Code : _tnumber_exist.val = RNP("$TC_MPP6[1,"<<_tnumber<<"]")

Na herzlichen Dank mad.gif
Naja, jetzt klappts ja. Wünsche ein schönes Wochendene allerseits.


Im NC Programm ist es halt ein rein prozedurales Programmieren, deshalb keine Punkte, wie C halt. Die Masken sind Objektorientiert, die Felder und Variablen sind Objekte mit Verschiedenen Attributen und Werten, dazu gehören z.B. Farbe, Zugriff, und Wert. Die einzelnen Werte werden mit dem Punkt abgefragt, so z.B. für den Wert ein xyz.val. Dies ist eher Vergleichbar z.B. mit Java.
Das die Abfrage von Systemvariablen nicht ohne Methode geht ist schade und führt zu weiteren Unannehmlichkeiten wie der Stringverknüpfung wenn man es variabel gestalten will.


--------------------
Freundliche Grüsse
DMC635V
   
Beitrag 26.07.2015, 18:38 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (faltklo @ 25.07.2015, 13:30 Uhr) *
Na herzlichen Dank mad.gif
Naja, jetzt klappts ja. Wünsche ein schönes Wochendene allerseits.


wart ab wenn du " erzeugen willst wink.gif


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 27.07.2015, 13:06 Uhr
DMC635V
DMC635V
Level 6 = Community-Doktor
******
Gruppe: Mitglied
Mitglied seit: 12.08.2010
Beiträge: 844
QUOTE (Hexogen @ 26.07.2015, 18:38 Uhr) *
wart ab wenn du " erzeugen willst wink.gif

Geht doch Super

"CYCLE_FASE(" """" CONTNAME """" ","REFPO","FAHO","FAWI","RADKORR","N_DZ","FTYPE","F_XY","F_Z","APPRTYPE","APPRL","DEPTYPE","DEPL")"

sauer.gif


--------------------
Freundliche Grüsse
DMC635V
   
Beitrag 18.08.2015, 14:19 Uhr
faltklo
faltklo
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 03.11.2009
Beiträge: 379
So, nach längerer Pause sitz ich jetzt gerade wieder mal an "meinem" Zyklenbaum.

Folgende Frage:
Gibt es die Möglichkeit, selbst erstellte Zyklen mit den Siemens Positionsmustern zu verbinden? Also Kreis und Linie?
Welche Bedingungen müssen dafür erfüllt sein?

Gruß, Lucas
   
Beitrag 18.08.2015, 17:12 Uhr
DMC635V
DMC635V
Level 6 = Community-Doktor
******
Gruppe: Mitglied
Mitglied seit: 12.08.2010
Beiträge: 844
QUOTE (faltklo @ 18.08.2015, 14:19 Uhr) *
So, nach längerer Pause sitz ich jetzt gerade wieder mal an "meinem" Zyklenbaum.

Folgende Frage:
Gibt es die Möglichkeit, selbst erstellte Zyklen mit den Siemens Positionsmustern zu verbinden? Also Kreis und Linie?
Welche Bedingungen müssen dafür erfüllt sein?

Gruß, Lucas

Wenn du die normalen Positionszyklen ohne Verkettung verwendest musst du einfach ein MCALL vor den Zyklus schreiben. Nach den Positionen mit MCALL wieder aufheben.

CODE
MCALL CYCLE81(...)
HOLES2(...)
MCALL



Wenn es dir um die Verkettung von Zyklen mit ShopMill Positionen geht sag ich mal ja. Leider weiss ich noch nicht genau wie. Selbst habe ich vor langer Zeit mal damit experimentiert und es so weit geschafft, das der Zyklus nach dem Generieren nicht sichtbar war tounge.gif .
Das ganze ist über den Zyklus E_DR_01 bis E_DR08 möglich, mehr (nur wenig) dazu findest du im Inbetriebnahmehandbuch ShopMill unter "10.2.2 Zyklen im Arbeitsplan verketten". Leider habe ich die dort erwähnten Beispiele nicht,


--------------------
Freundliche Grüsse
DMC635V
   
Beitrag 28.08.2015, 05:30 Uhr
faltklo
faltklo
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 03.11.2009
Beiträge: 379
QUOTE (DMC635V @ 18.08.2015, 18:12 Uhr) *
Wenn du die normalen Positionszyklen ohne Verkettung verwendest musst du einfach ein MCALL vor den Zyklus schreiben. Nach den Positionen mit MCALL wieder aufheben.

CODE
MCALL CYCLE81(...)
HOLES2(...)
MCALL



Wenn es dir um die Verkettung von Zyklen mit ShopMill Positionen geht sag ich mal ja. Leider weiss ich noch nicht genau wie. Selbst habe ich vor langer Zeit mal damit experimentiert und es so weit geschafft, das der Zyklus nach dem Generieren nicht sichtbar war tounge.gif .
Das ganze ist über den Zyklus E_DR_01 bis E_DR08 möglich, mehr (nur wenig) dazu findest du im Inbetriebnahmehandbuch ShopMill unter "10.2.2 Zyklen im Arbeitsplan verketten". Leider habe ich die dort erwähnten Beispiele nicht,


Danke für den Hinweis auf das richtige Handbuch, genau so etwas habe ich gesucht! Mal schauen ob ich in der Richtung weiterkomme.

Momentan habe ich aber noch ein anderes Problem.
Wenn man in einer Maske mit den Pfeiltasten navigiert, dann wird ja das Eingabefeld nur Fokussiert. Erst sobald man eine Eingabe tätigt, bekommt man den blinkenden Cursor. Die Eingabe wird dann aber erst beim Drücken von Pfeiltasten oder Input/Enter gespeichert.
Wenn mann vorher schon den Softkey "OK" drückt, wird die Eingabe vom aktuellen Feld verworfen. Meine aktuelle Lösung dafür seht ihr unten. Diese bewirkt, dass beim Drücken des Softkeys die Eingabe durch verschieben des Fokus gespeichert wird, un erst beim zweiten Mal Drücken der Dialog verlassen wird. Am liebsten wäre mir, wenn die ganze Routine immer beim Druck auf OK ausgelöst würde, aber komischerweise werden die Eingaben nur gespeichert, wenn mann es auf 2 Tastendrücke aufteilt. Hat da jemand eine bessere Lösung?

CODE
//M(Maske_G81/"G81 Laengsdrehen einfach"/"dds_hh_g81_main.png")
;PROC HH_G81_test1(real _xend, real _zend, real _winkel, real _max_spantiefe, real _safety_distance, int _glaetten) <------ Übergabeparameter

DEF _xend = (R/-500,500/100/"Zieldurchmesser","Enddurchmesser",," mm"//"G81_xend.png")
DEF _zend = (R/-500,500/-50/"Endpunkt Z","Ende Z",," mm"//"G81_zend.png")
DEF _winkel = (R/0,90/90/"Winkel der Schraege","Winkel",," Grad"//"G81_winkel.png")
DEF _max_spantiefe = (R/0,15/2.5/"Spantiefe Maximal","Spantiefe",," mm"//"G81_max_spantiefe.png")
DEF _safety_distance = (R/0,20/1/"Sicherheitsabstand","Sicherheitsabstand",," mm"//"G81_safety_distance.png")
DEF _glaetten = (I/*0,1,2/0/"Nachziehen der Schraege","Glaetten",," 0-2"//"G81_glaetten.png")

DEF _temp
DEF _aktuell

VS7=("\\sk_cancel.png")
VS8=("\\sk_ok.png")

LOAD
LB("sub1")
_aktuell = 0
END_LOAD

OUTPUT(Code_G81)
"DDS_G81(" _xend "," _zend "," _winkel "," _max_spantiefe "," _safety_distance "," _glaetten ")"
END_OUTPUT

PRESS (SL)
exit
END_PRESS

PRESS (VS7)
lm("dds_zyklen","dds_zyklen.com")
END_PRESS

PRESS (VS8)
DEBUG("curpos = "<<curpos)
IF curpos <> 0
IF _aktuell == 0
call("reload")
ELSE
GC("Code_G81")
exit
ENDIF
ELSE
GC("Code_G81")
exit
ENDIF
END_PRESS

//END

//b(sub1)

SUB(reload)
DEBUG("sub reload angesprungen")
_temp = FOC
IF FOC == "_xend"
FOC = "_zend"
FOC = _temp
ELSE
FOC = "_xend"
FOC = _temp
ENDIF
_aktuell = 1
END_SUB

//END


Gruß, Lucas
   
Beitrag 28.08.2015, 19:32 Uhr
DMC635V
DMC635V
Level 6 = Community-Doktor
******
Gruppe: Mitglied
Mitglied seit: 12.08.2010
Beiträge: 844
QUOTE (Inbetribenahmehandbuch)
wr5: Der eingegebene Wert wird bei jeder Tastenbetätigung
sofort abgespeichert (im Gegensatz zu wr2 - dort wird erst bei
Verlassen des Feldes oder bei Betätigung von RETURN abgespeichert).

Sollte so einfacher gehen wink.gif


--------------------
Freundliche Grüsse
DMC635V
   
Beitrag 30.08.2015, 19:57 Uhr
faltklo
faltklo
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 03.11.2009
Beiträge: 379
QUOTE (DMC635V @ 28.08.2015, 20:32 Uhr) *
Sollte so einfacher gehen wink.gif


Argh, manchmal sieht man echt den Wald vor lauter Bäumen nicht...

Vielen Dank!
   
Beitrag 15.10.2015, 07:48 Uhr
faltklo
faltklo
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 03.11.2009
Beiträge: 379
Ich mal wieder mit einer bescheuerten Frage:

Wenn ich im ShopTurn einen G-Code Satz erstelle und einfach z.B. "CYCLE99()" eingebe, dann kann ich ja den DIN Zyklus Rückübersetzen und auch unter Shopturn verwenden. Da wir manchmal auf die Din Zyklen angewiesen sind (z.B zum Arbeiten mit alternierender Drehzahl) möchte ich meinen Maschinenbediernern den Code per Softkey ausgeben. Wenn ich das mache wird aber natürlich immer in meine Maske gesprungen und nicht in den Zyklus.
Wie bekomme ich es hin "nackten" Code ohne jegliche Rückübersetzungskommentare auszugeben?

Gruß, Lucas
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: