Siemens
Digital Industries, Motion Control, Machine Tool Systems
Syntaxfehler in Cycle95

Hallo Zusammen
Seit letzten November steht eine Grossdrehmaschine bei uns in der Halle, welche im Jahr 2002 mit einer SINUMERIK 840D ausgerüstet
wurde. Die Drehmaschine brauchen wir vor allem um grosse Trommeln fertig zu Drehen. Da wir aber im Sinn haben in Zukunft auch andere Arbeiten
darauf zu erledigen, habe ich mich mal an die Programmierung gemacht.
Soweit so gut. Ein Programm war schnell geschrieben auf der Maschine. Als ich das Programm dann ablaufen lassen wollte gab mir die Steuerung den Fehler 12080 Syntaxfehler in Text _ZSD[0] aus. Dieser Fehler bezieht sich auf den Cycle95. Leider komme ich hier nicht mehr weiter und ich dachte mir, ev. hatte jemand von euch auch mal diesen Fehler?
Ich habe euch unten mein Programm angehängt, damit ihr da mal reinschauen könnt. Ebenfalls habe ich den Cycle95 von der Maschine gezogen, bin mir aber nicht sicher, ob ich den hier hochladen darf?
Vielen Dank und liebe Grüsse aus der Schweiz.
Seit letzten November steht eine Grossdrehmaschine bei uns in der Halle, welche im Jahr 2002 mit einer SINUMERIK 840D ausgerüstet
wurde. Die Drehmaschine brauchen wir vor allem um grosse Trommeln fertig zu Drehen. Da wir aber im Sinn haben in Zukunft auch andere Arbeiten
darauf zu erledigen, habe ich mich mal an die Programmierung gemacht.
Soweit so gut. Ein Programm war schnell geschrieben auf der Maschine. Als ich das Programm dann ablaufen lassen wollte gab mir die Steuerung den Fehler 12080 Syntaxfehler in Text _ZSD[0] aus. Dieser Fehler bezieht sich auf den Cycle95. Leider komme ich hier nicht mehr weiter und ich dachte mir, ev. hatte jemand von euch auch mal diesen Fehler?
Ich habe euch unten mein Programm angehängt, damit ihr da mal reinschauen könnt. Ebenfalls habe ich den Cycle95 von der Maschine gezogen, bin mir aber nicht sicher, ob ich den hier hochladen darf?
Vielen Dank und liebe Grüsse aus der Schweiz.
Angehängte Datei(en)

Ich denke es muss dieses sein: CYCLE95("ANFANG:ENDE:",0,0.1,0.5, (doppelpunkt bei ende)
Gruus:Fred
Gruus:Fred

Was steht den in der Variablen _ZSD[0] drin?
Da sind wohl nur die Wert 0, 1 oder 2 zulässig.
Dieses Settingdatum ist in GUD7.DEF definiert. Du müsstest ihn aber auch einfach lesen und mit einer Message (d.h. mit MSG) ausgeben können.
@Blokzijf
Der String mit dem Programmnamen "ANFANG:ENDE" scheint mir richtig zu sein. Zumindest steht ein Programmierbeispiel exakt so in der Programmieranleitung, d.h. ohne Doppelpunkt hinter dem "ENDE".
Da sind wohl nur die Wert 0, 1 oder 2 zulässig.
Dieses Settingdatum ist in GUD7.DEF definiert. Du müsstest ihn aber auch einfach lesen und mit einer Message (d.h. mit MSG) ausgeben können.
@Blokzijf
Der String mit dem Programmnamen "ANFANG:ENDE" scheint mir richtig zu sein. Zumindest steht ein Programmierbeispiel exakt so in der Programmieranleitung, d.h. ohne Doppelpunkt hinter dem "ENDE".

Was steht den in der Variablen _ZSD[0] drin?
Da sind wohl nur die Wert 0, 1 oder 2 zulässig.
Dieses Settingdatum ist in GUD7.DEF definiert. Du müsstest ihn aber auch einfach lesen und mit einer Message (d.h. mit MSG) ausgeben können.
@Blokzijf
Der String mit dem Programmnamen "ANFANG:ENDE" scheint mir richtig zu sein. Zumindest steht ein Programmierbeispiel exakt so in der Programmieranleitung, d.h. ohne Doppelpunkt hinter dem "ENDE".
Da sind wohl nur die Wert 0, 1 oder 2 zulässig.
Dieses Settingdatum ist in GUD7.DEF definiert. Du müsstest ihn aber auch einfach lesen und mit einer Message (d.h. mit MSG) ausgeben können.
@Blokzijf
Der String mit dem Programmnamen "ANFANG:ENDE" scheint mir richtig zu sein. Zumindest steht ein Programmierbeispiel exakt so in der Programmieranleitung, d.h. ohne Doppelpunkt hinter dem "ENDE".
Ich habe mal einen Auszug kopiert vom Cycle95:
IF _ZSD[0]==0 GOTOF _MY30
IF _ZA==AXNAME($MC_DIAMETER_AX_DEF)
MID=MID*PLAN/_ZSD[0]
ENDIF
_MY30:IF ((HH1-HH2)*(HH1-HH3)<0) AND ((_KT[0,3+LP]-_KT[0,5+LP])*(_KT[0,3+LP]-_KT[ZLE,5+LP])<0) GOTOF FEHL5
IF PLAN==1 GOTOF _MQ3 IF _ZA<>AXNAME($MC_DIAMETER_AX_DEF) GOTOF _MPX3
MID=MID/2 SM[1]=SM[1]/2 _ZRF=PLAN
GOTOF _MQ3
Ich habe das mit den Werten 0,1 und 2 schon versucht, leider ohne Erfolg.
Wie meinst du das mit dem ausgeben? Das Thema SINUMERIK ist für Neuland


Hallo, habe erst gestern einem Monteur erzählt das ich sowas mal an einem BAZ mit 840D hatte.
Es war ebenfalls ein Syntaxfehler im Cycle. Durch Zufall hatte ich den Fehler beim durchsehen des Cycle gefunden weil ich gar nicht wusste wo ich ansetzen soll. Da stand irgendwo mittendrin statt IF -> IT , ich glaube mit dem Herstellerkennwort konnte ich den Cycle bearbeiten, geändert und ab da hat es funktioniert. Die Maschine lief vorher mind. 10Jahre in einem anderen Unternehmen, haben den Cycle wohl nicht gebraucht. Gruß
Der Beitrag wurde von smoerre81 bearbeitet: 10.02.2022, 19:14 Uhr
Es war ebenfalls ein Syntaxfehler im Cycle. Durch Zufall hatte ich den Fehler beim durchsehen des Cycle gefunden weil ich gar nicht wusste wo ich ansetzen soll. Da stand irgendwo mittendrin statt IF -> IT , ich glaube mit dem Herstellerkennwort konnte ich den Cycle bearbeiten, geändert und ab da hat es funktioniert. Die Maschine lief vorher mind. 10Jahre in einem anderen Unternehmen, haben den Cycle wohl nicht gebraucht. Gruß
Der Beitrag wurde von smoerre81 bearbeitet: 10.02.2022, 19:14 Uhr

Hallo, habe erst gestern einem Monteur erzählt das ich sowas mal an einem BAZ mit 840D hatte.
Es war ebenfalls ein Syntaxfehler im Cycle. Durch Zufall hatte ich den Fehler beim durchsehen des Cycle gefunden weil ich gar nicht wusste wo ich ansetzen soll. Da stand irgendwo mittendrin statt IF -> IT , ich glaube mit dem Herstellerkennwort konnte ich den Cycle bearbeiten, geändert und ab da hat es funktioniert. Die Maschine lief vorher mind. 10Jahre in einem anderen Unternehmen, haben den Cycle wohl nicht gebraucht. Gruß
Es war ebenfalls ein Syntaxfehler im Cycle. Durch Zufall hatte ich den Fehler beim durchsehen des Cycle gefunden weil ich gar nicht wusste wo ich ansetzen soll. Da stand irgendwo mittendrin statt IF -> IT , ich glaube mit dem Herstellerkennwort konnte ich den Cycle bearbeiten, geändert und ab da hat es funktioniert. Die Maschine lief vorher mind. 10Jahre in einem anderen Unternehmen, haben den Cycle wohl nicht gebraucht. Gruß
Hallo smoerre81
Vielen Dank für den Tipp. Ich habe den Cycle durchsucht und leider kein IT gefunden.

Trotzdem vielen Dank.

Wie meinst du das mit dem ausgeben?
Wenn du irgendwo im Programm die folgenden beiden Zeilen schreibst, wird die in der Meldungszeile angezeigt, welcher Wert in der Variablen _ZSD[0] steht:
MSG("ZSD[0] = : " << _ZSD[0])
M0
Mein Sinutrain liefert da den Wert -1. Wenn das bei dir genauso ist, hat der Zyklus vielleicht ein Problem. Laut Doku (ich habe damit keine eigene Erfahrung) stellt man mit den Werten 1 und 2 ein, ob die X-Maße als Radius- oder als Durchmessermaße interpretiert werden sollen. Mit dem Wert 0 stellt man ein Verhalten ein, da so ist wie es war, bevor es diese Wahlmöglichkeit gab.
Woher hast du die Information, dass der Syntaxfehler mit der Variablen _ZSD[0] zusammenhängt?

Guten Morgen
@CNCFr
Ich werde das mit der Meldung heute morgen ausprobieren. Bin gespannt was ausgegeben wird.
Ich bin davon ausgegangen das etwas mit dem Zyklus nicht stimmt, weil ich über die Programmkorrektur die Zeile mit dem Zyklus angezeigt bekomme.
Die Steuerung sagt mir dann aber, dass sie keine Zugriffsberechtigung hat um zu öffnen.
@CNCFr
Ich werde das mit der Meldung heute morgen ausprobieren. Bin gespannt was ausgegeben wird.
Ich bin davon ausgegangen das etwas mit dem Zyklus nicht stimmt, weil ich über die Programmkorrektur die Zeile mit dem Zyklus angezeigt bekomme.
Die Steuerung sagt mir dann aber, dass sie keine Zugriffsberechtigung hat um zu öffnen.

Aaalso. Ich habe das mit den zwei Programmzeilen heute morgen ausprobiert.
Die Maschine gibt mir nun eine andere Fehlermeldung aus.
Anbei das Foto von der Fehlermeldung.
Die Maschine gibt mir nun eine andere Fehlermeldung aus.
Anbei das Foto von der Fehlermeldung.
Angehängte Datei(en)

Und das Foto vom Programm

Angehängte Datei(en)

Dann ist das Problem klar: Der Zyklus will eine Variable lesen, die nicht definiert ist. Das führt dann zu dem Syntaxfehler.
Vielleicht kann ich dir weiterhelfen. Am leider geht das im Moment nicht, weil ich für einige Stunden weg muss. Evtl. kann ich heute Abend danach schauen.
Vielleicht kann ich dir weiterhelfen. Am leider geht das im Moment nicht, weil ich für einige Stunden weg muss. Evtl. kann ich heute Abend danach schauen.

@CNCFr
Das wäre natürlich toll :)
Ich hatte auch die Vermutung, dass der Zyklus entweder zerschossen oder irgendwo in einem Parameter dieser Wert nicht freigegeben ist.
Bin ja sehr gespannt, was du ev. für eine Lösung in Petto hast ;)
Das wäre natürlich toll :)
Ich hatte auch die Vermutung, dass der Zyklus entweder zerschossen oder irgendwo in einem Parameter dieser Wert nicht freigegeben ist.
Bin ja sehr gespannt, was du ev. für eine Lösung in Petto hast ;)

Nach längerem Durchforsten der Steuerung an der Maschine ist mir aufgefallen, dass keine GUD7.DEF Datei vorhanden ist.
Auch beim Durchsuchen der Maschinensicherungen auf diversen USB Sticks habe ich die Datei nicht gefunden.
Eventuell trägt das ja zur Lösung des Problems bei?
Auch beim Durchsuchen der Maschinensicherungen auf diversen USB Sticks habe ich die Datei nicht gefunden.
Eventuell trägt das ja zur Lösung des Problems bei?

Du könntest mal probieren, in deinem Hauptprogramm vor der ersten ausführbaren Anweisung die folgenden beiden Zeilen einzufügen (die zweite Zeile kann auch an beliebiger Stelle im Programm stehen, aber natürlich vor dem Zyklenaufruf):
DEF INT _ZSD[15]
_ZSD[0] = 0
Damit wird die die benötigte Variable als PUD (Programmglobale Anwendervariable) definiert und das erste Element (mit dem Index 0) explizit mit 0 initialisiert.
Das Feld _ZSD wird mit der Länge 15 angelegt, der Cycle95 verwendet aber anscheinend nur den ersten Wert. Der Grund ist offensichtlich, dass auch andere Zyklen auf dieses Feld zugreifen, und wahrscheinlich hat man das standardmäßig relativ großzügig angelegt, um Platz für spätere Erweiterungen zu haben, ohne dass man an dieser Stelle etwas ändern muss.
Eigentlich ist vorgesehen, das die Variable im GUD7 definiert wird, den Zyklus sollte das aber nicht interessieren.
Die andere (und eigentlich vorgesehene) Möglichkeit wäre, die GUD7.DEF Datei anzulegen und die Variable dort zu definieren.
DEF INT _ZSD[15]
_ZSD[0] = 0
Damit wird die die benötigte Variable als PUD (Programmglobale Anwendervariable) definiert und das erste Element (mit dem Index 0) explizit mit 0 initialisiert.
Das Feld _ZSD wird mit der Länge 15 angelegt, der Cycle95 verwendet aber anscheinend nur den ersten Wert. Der Grund ist offensichtlich, dass auch andere Zyklen auf dieses Feld zugreifen, und wahrscheinlich hat man das standardmäßig relativ großzügig angelegt, um Platz für spätere Erweiterungen zu haben, ohne dass man an dieser Stelle etwas ändern muss.
Eigentlich ist vorgesehen, das die Variable im GUD7 definiert wird, den Zyklus sollte das aber nicht interessieren.
Die andere (und eigentlich vorgesehene) Möglichkeit wäre, die GUD7.DEF Datei anzulegen und die Variable dort zu definieren.

Vielen Dank für deinen Tipp.
Ich werde dies ev. morgen oder sicher am Montag versuchen :)
Das mit dem neu Schreiben der GDU7.DEF Datei ist mir auch schon in den Sinn gekommen.
Ich frage mich aber, woher ich alle diese Parameter und Variablen herbekomme?
Heute Nachmittag habe ich im SinuTrain mal die Dateien durchgestöbert und bin dabei auf die GDU7 Datei gestossen. Wäre es ev. möglich, dass ich diese Datei in die Steuerung lade und es dann funktioniert?
Ich werde dies ev. morgen oder sicher am Montag versuchen :)
Das mit dem neu Schreiben der GDU7.DEF Datei ist mir auch schon in den Sinn gekommen.
Ich frage mich aber, woher ich alle diese Parameter und Variablen herbekomme?
Heute Nachmittag habe ich im SinuTrain mal die Dateien durchgestöbert und bin dabei auf die GDU7 Datei gestossen. Wäre es ev. möglich, dass ich diese Datei in die Steuerung lade und es dann funktioniert?

Ich denke schon, dass das unkritisch ist. Bisher hat ja offensichtlich niemand versucht auf diese Datei zuzugreifen, und der Cyle95 ist das erste Programm, das eine Variable aus dem Baustein braucht. Und der Zyklus braucht wohl nur genau die eine Variable _ZSD[0].

Na dann werde ich das mal versuchen und den GDU7 aus SinuTrain in die Steuerung laden.
Falls es nicht funktionieren sollte, kann ich ihn ja wieder löschen.
Vielen Dank mal soweit und ein schönes Wochenende. Ich werde berichten, was bei meinem Versuch herausgekommen ist.
Falls es nicht funktionieren sollte, kann ich ihn ja wieder löschen.
Vielen Dank mal soweit und ein schönes Wochenende. Ich werde berichten, was bei meinem Versuch herausgekommen ist.

Guten Morgen
Leider hat das Einfügen der zwei Programmzeilen nichts gebracht.
Die Maschine gibt mir immer noch den Syntaxfehler aus. Ich habe auch versucht, eine GUD7 Datei anzulegen und die Zeilen da reinzuschreiben. Leider ebenfalls ohne Erfolg. :(
Leider hat das Einfügen der zwei Programmzeilen nichts gebracht.
Die Maschine gibt mir immer noch den Syntaxfehler aus. Ich habe auch versucht, eine GUD7 Datei anzulegen und die Zeilen da reinzuschreiben. Leider ebenfalls ohne Erfolg. :(

Falls ich mich richtig erinnere, werden die GUD-Definitionen erst nach einem Neustart der Steuerung wirksam.
Wenn das auch nichts hilft, bzw. falls du das schon probiert hast, bin ich mit meinem Latein fürs Erste auch am Ende.
Wenn das auch nichts hilft, bzw. falls du das schon probiert hast, bin ich mit meinem Latein fürs Erste auch am Ende.

Falls ich mich richtig erinnere, werden die GUD-Definitionen erst nach einem Neustart der Steuerung wirksam.
Wenn das auch nichts hilft, bzw. falls du das schon probiert hast, bin ich mit meinem Latein fürs Erste auch am Ende.
Wenn das auch nichts hilft, bzw. falls du das schon probiert hast, bin ich mit meinem Latein fürs Erste auch am Ende.
Ich habe jeweils einen NCK Reset gemacht. Ich kann aber noch versuchen, die Maschine komplett auszuschalten und wieder hochzufahren.
Wenn das nicht hilft, dann bleibt mir wohl nur der Gang zu Siemens übrig. Trotzdem vielen Dank mal bis hierhin


Guten Morgen Zusammen
Also das Ausschalten und wieder Hochfahren der Steuerung hat leider nichts gebracht. Nach einigen Telefonaten kann ich nun
wirklich davon ausgehen, das die GUD Dateien nicht in der Steuerung vorhanden sind. Ob die jemals vorhanden waren oder gelöscht wurden,
kann ich nicht nachvollziehen. Mein Problem wird aber voraussichtlich morgen behoben, da ein Spezialist vorbeikommt und mir die GUD Dateien
samt allen Zyklen wieder auf die Maschine lädt. Ich hoffe, dass dann auch alles funktioniert.
Vielen Dank nochmal für eure Ratschläge.
Also das Ausschalten und wieder Hochfahren der Steuerung hat leider nichts gebracht. Nach einigen Telefonaten kann ich nun
wirklich davon ausgehen, das die GUD Dateien nicht in der Steuerung vorhanden sind. Ob die jemals vorhanden waren oder gelöscht wurden,
kann ich nicht nachvollziehen. Mein Problem wird aber voraussichtlich morgen behoben, da ein Spezialist vorbeikommt und mir die GUD Dateien
samt allen Zyklen wieder auf die Maschine lädt. Ich hoffe, dass dann auch alles funktioniert.
Vielen Dank nochmal für eure Ratschläge.

1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: