Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

R-Parameter setzen und als Sprungmarke nutzen, Satzsuchlauf umgehen

Beitrag 07.04.2023, 11:43 Uhr
Crazydog
Level 1 = Community-Lehrling
*
Grüße,

es geht um eine Doosan SMX3100ST mit 840D sl und ich habe von dem Satzsuchlauf die Nase voll.
Dauert lange und gibt immer wieder Probleme mit Kleinigkeiten.
Das ganze muss dann mit 2 Kanälen funktionieren. Es ist aber immer nur ein Kanal im Eingriff, also keine Parallel Bearbeitung.
Jetzt ist meine Überlegung das Ganze mit Sprungmarken aus R-Parametern zu versehen, allerdings habe ich damit noch nicht gearbeitet.

Soviel habe ich aus den Handbüchern schonmal raus bekommen
Eine Sprungmarke hat 2-32 Zeichen und am zum Schluss ":" und die ersten beiden Zeichen müssen Buchstaben oder Unterstriche sein.
Dann wäre jetzt z.B. meine Sprungmarke WZ2 wobei dann die "2" aus dem R-Parameter kommen soll.
Das Problem mit R-Wert im Text anzeigen <<R100<< habe ich schon hier im Forum gefunden das hat sich schon erledigt biggrin.gif

Meine Überlegung sieht wie folgt aus:
Kanal 1 ist die obere Frässpindel und 2 unten der Revolver

[für Kanal1]
PRG. Kopf

IF R100==0 GOTOF ENDE
MSG ("Bist du sicher das du mit Werkzeug" <<R100<< "in der Bearbeitung weiter machen willst?")
M0
MSG()
"Wait-Marke1"
ELSE GOTOF ? <-- wie muss das Sprungziel geschrieben werden wenn die Zahl aus dem R-Parameter kommt? WZ<<R100 oder so?
ENDE:
ENDIF

[für Kanal2]
PRG. Kopf

IF R100==0 GOTOF ENDE
"Wait-Marke1"
ELSE GOTOF ?
ENDE:
ENDIF

Damit sollten beide Kanäle über die Wait-Marke springen wenn R100 null ist und das PRG normal abarbeiten, ansonsten wartet Kanal 2 auf die Bestätigung des Werkers wegen des M0 in Kanal 1.

Kanal 1__________________Kanal2
WZ2:....................................... Planschruppen
.......................................................
.................................................R100=2

................................................WZ2:
................................................Aussenschruppen
..........................................................
................................................R100=3
Wait-Marke______________Wait-Marke________________
WZ3:.......................................WZ3:
Aussen Stechen .....................WZ4:
...
R100=4

WZ4:
Mitte Bohren
....
R100=5
Wait-Marke________________________Wait-Marke_________________

und so weiter bis

R100=0
M30


Wenn man mal das Programm anhalten muss weil man vergessen hat beim Nächsten WZ die Platte zu kontrollieren soll es so möglich sein ohne langwierigen Satzsuchlauf direkt wieder einsteigen zu können oder sogar zum Feierabend Maschine aus und am nächsten Tag direkt da wieder einsteigen. Insofern der R-Parameter seinen Wert behält.
Das soll dann alles über den Postprozessor mit ausgegeben werden.
Kann man das so schreiben, gibt´s Verbesserungsvorschläge oder ist das totaler Unsinn?

Der Beitrag wurde von Crazydog bearbeitet: 07.04.2023, 11:56 Uhr
   
Beitrag 07.04.2023, 14:26 Uhr
MIXer18
Level 3 = Community-Techniker
***
Hallo Crazydog
R Parameter haben typ REAL.
Für die Sprungmarken braucht die Steuerung eine STRING.

CODE
DEF STRING[20] SPRUNGMARKE
SPRUNGMARKE="WZ"<<R1
IF R1==0
  GOTOF ENDE
ELSE
  GOTOF <<SPRUNGMARKE
ENDIF
GOTOF ENDE
WZ1:
MSG("Tool 1")
M0
ENDE:
MSG("Fehler")
M30
   
Beitrag 08.04.2023, 12:23 Uhr
Crazydog
Level 1 = Community-Lehrling
*
QUOTE (MIXer18 @ 07.04.2023, 13:26 Uhr) *
Hallo Crazydog
R Parameter haben typ REAL.
Für die Sprungmarken braucht die Steuerung eine STRING.

CODE
DEF STRING[20] SPRUNGMARKE
SPRUNGMARKE="WZ"<<R1
IF R1==0
  GOTOF ENDE
ELSE
  GOTOF <<SPRUNGMARKE
ENDIF
GOTOF ENDE
WZ1:
MSG("Tool 1")
M0
ENDE:
MSG("Fehler")
M30


Hallo MIXer18,

vielen Dank für die Hilfe.
Das 2te "GOTOF ENDE" ist nötig für die Steuerung damit sie die nächsten Zeilen überliest oder wofür?

Dann müsste es so aussehen?:
...
ELSE
GOTOF WARNUNG <--- muss es in einer extra Zeile stehen?
ENDIF
GOTOF ENDE
WARNUNG:
MSG("TEXT")
M0
WAIT-Marke
GOTOF <<SPRUNGMARKE <--- ab hier werden ja erst die R-Werte genutzt
ENDE:
   
Beitrag 10.04.2023, 10:32 Uhr
MIXer18
Level 3 = Community-Techniker
***
QUOTE (Crazydog @ 08.04.2023, 13:23 Uhr) *
Hallo MIXer18,

vielen Dank für die Hilfe.
Das 2te "GOTOF ENDE" ist nötig für die Steuerung damit sie die nächsten Zeilen überliest oder wofür?

Dann müsste es so aussehen?:
...
ELSE
GOTOF WARNUNG <--- muss es in einer extra Zeile stehen?
ENDIF
GOTOF ENDE
WARNUNG:
MSG("TEXT")
M0
WAIT-Marke
GOTOF <<SPRUNGMARKE <--- ab hier werden ja erst die R-Werte genutzt
ENDE:


GOTOF ENDE ist nicht zwingend nötig.
   
Beitrag 11.04.2023, 13:53 Uhr
Crazydog
Level 1 = Community-Lehrling
*
QUOTE (MIXer18 @ 07.04.2023, 13:26 Uhr) *
Hallo Crazydog
R Parameter haben typ REAL.
Für die Sprungmarken braucht die Steuerung eine STRING.

CODE
DEF STRING[20] SPRUNGMARKE
SPRUNGMARKE="WZ"<<R1
IF R1==0
  GOTOF ENDE
ELSE
  GOTOF <<SPRUNGMARKE
ENDIF
GOTOF ENDE
WZ1:
MSG("Tool 1")
M0
ENDE:
MSG("Fehler")
M30


DEF STRING[20] SPRUNGMARKE
SPRUNGMARKE="WZ"<<R1

Hier kam unzulässige Definition
----------------------------------
DEF STRING[20] SPRUNGMARKE="WZ"<<R1

so kam Syntaxfehler <<R1
--------------------------------
GOTO "WZ"<<R1

das funktioniert.

Jetzt habe ich aber festgestellt das jeder Kanal seine eigenen R-Parameter zu haben scheint.
Also 599 pro Kanal.
Wie kann ich Kanalübergreifend nur einen Lesen und Schreiben?
   
Beitrag 11.04.2023, 21:10 Uhr
Hexogen
Level 7 = Community-Professor
*******
QUOTE (Crazydog @ 11.04.2023, 14:53 Uhr) *
DEF STRING[20] SPRUNGMARKE="WZ"<<R1


Du kannst keine Variablen deklarieren mit Wertzuweisung durch Verkettung, das ist nicht erlaubt. Du kann nur feste Werte zuweisen.

QUOTE (Crazydog @ 11.04.2023, 14:53 Uhr) *
Jetzt habe ich aber festgestellt das jeder Kanal seine eigenen R-Parameter zu haben scheint.
Also 599 pro Kanal.
Wie kann ich Kanalübergreifend nur einen Lesen und Schreiben?


R-Parameter sind Kanalspezifische Variablen.
Ich würde hier Kanalübergreifende User-Variablen in UGUD.DEF definiert verwenden.
DEF NCK INT MYVAR...
Als Zähler reicht auch eine Integer Variable. Die NCK definierte Variablen sind Kanalübergreifend lesbar und schreibbar.


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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 12.04.2023, 05:50 Uhr
CNCFr
Level 7 = Community-Professor
*******
Es gibt auch globale R-Paramter (Bezeichnung RG), also z.B. RG1 statt R1.
Siehe dazu das Handbuch "Arbeitsvorbereitung" im Kapitel "2.1.2.2 Globale Rechenparameter (RG)".
Je nach Ausgabe des Handbuchs kann es auch sein, dass die Kapitelnummer eine andere ist.

Der Beitrag wurde von CNCFr bearbeitet: 12.04.2023, 05:50 Uhr
   
Beitrag 12.04.2023, 10:34 Uhr
Crazydog
Level 1 = Community-Lehrling
*
Angehängte Datei  RG_Versuch.png ( 1.64MB ) Anzahl der Downloads: 29


Die Globalen Rechenparameter habe ich heute früh im Handbuch (bei mir 4.1.1.3) gefunden und war erstmal überglücklich, aber der erste versuch im MDA war nicht sonderlich Erfolg versprechend, wie im Bild zu sehen ist. Wenn es ohne Klammer geschrieben wird kommt das Gleiche.
Den zweiten Satz habe ich geschrieben um lesen zu können ob es geklappt hat da es keine Stelle gibt wo ich die RG-Daten sehen oder direkt einschreiben kann wie bei den R-Parametern.
In den Maschinendaten ist auch kein MD15800 zu finden. Da wollte ich schauen ob was anderes als RG drin steht.

Bleiben denn die definierten Variablen auch bestehen wenn ich das Programm abgebrochen, beendet oder gar die Maschine ausgeschaltet habe?
   
Beitrag 12.04.2023, 11:01 Uhr
CNCFr
Level 7 = Community-Professor
*******
Eigenartig.
Ich weiß von der (angeblichen?) Existenz globaler R-Parameter auch nur aus der Doku.
Das angegebene Maschinendatum finde ich auch nicht. Ich habe auch nach dem Namen des MDs gesucht, für den Fall, dass in der angegebenen Nummer 15800 ein Schreibfehler ist. War aber auch erfolglos.
Sieht so aus, als wären die globalen R-Parameter reine Chimären.
   
Beitrag 12.04.2023, 11:27 Uhr
SeanClaud
Level 3 = Community-Techniker
***
bei der 840d ist sollte es MD18156 unter allgemeine MD`s sein.
bin mir aber nicht sicher ob es eine reorganisation des Speichers braucht.
   
Beitrag 12.04.2023, 12:34 Uhr
CNCFr
Level 7 = Community-Professor
*******
Scheint eine relativ neue Erweiterung zu sein, die in den etwas älteren Handbüchern (in meinem Fall das für die Maschinendaten) noch nicht dokumentiert ist.
In meiner SINUTRAIN-Installation habe ich das MD unter der von dir angegebenen Nummer 18156 jetzt auch entdeckt.
Da ist als Standardwert 100 eingetragen. Wenn da eine 0 drin steht, wird es nicht funktionieren.

Mit der Variante
RG[1] = 5
funktioniert es.
Mit der Variante
RG1 = 5
d.h. ohne eckige Klammer, wie bei den normalen R-Parametern, funktioniert es (bei mir) nicht (Alarm 12550 "Satz 1 Name RG1 ist nicht bekannt oder nicht definiert).
   
Beitrag 12.04.2023, 13:11 Uhr
Crazydog
Level 1 = Community-Lehrling
*
Das ganze habe ich jetzt auch gemacht. MD18156 gefunden und eine 11 eingetragen da MAX_INDEX=MD18156-1 ist ergibt das 10 mögliche RG Parameter laut der Erklärung im Handbuch

Beide Kanäle können den RG wert lesen und er bleibt auch erhalten wenn die Maschine aus gemacht wurde.

Bei mir muss es ebenfalls mit [ ] Klammern geschrieben werden, habe auch beides probiert.

\o/ ick freu mir

Danke für die Hilfe allesamt.
Jetzt kann ich den Leuten für den Postprozessor auf den Sack gehen. biggrin.gif

Der Beitrag wurde von Crazydog bearbeitet: 12.04.2023, 13:12 Uhr
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: