QUOTE (umei @ 10.08.2016, 21:46 Uhr)
Das Programm von guest habe ich auch mal versucht, leider kam eine Fehlermeldung "Syntax Fehler R99".
Kann das sein, dass die Steuerung von Doosan so beeinflusst wir, damit die Befehle "def real" nicht mehr erkannt werden?
Das "def real" kann durch den Steuerungshersteller nicht deaktiviert werden. Dies ist ein Grundelement des G-Codes. Ohne dieses würden keine Zyklen mehr funktionieren, da diese ebenfalls solche Variablendeklarationen verwenden.
In meiner Sinutrain funktioniert es jedoch auch nicht, mit derselben Fehlermeldung. Abhilfe schafft hier das Auslagern der Zuweisung in einen eigenen Befehl. So wie es aussieht sind Variablenzuweisungen im DEF Befehl nur mit Konstanten Zahlen zulässig. Eine Zuweisung des Wertes aus einer anderen Variable darf erst nach allen DEF Befehlen erfolgen.
CODE
...
def real A_HS_GS; Abstand Haupt-Spindel zu Gegen-Spindel
def real ASL_GS;Ausspann-Länge Gegen-Spindel
def real SMH_GS;Spann-Mittel-Höhe Gegen-Spindel
def real _Tiefe=3,55;Zentriertiefe
def real _SA=5;sicherheits-Abstand
ASL_GS=R99
SMH_GS=R98
...
Wenn du das Programm sowieso im Ordner Anwenderzyklen angelegt hast würde sich eine Übergabe über den PROC Befehl anbieten. So könntest du das Programm wie einen Siemens Zyklus im G-Code aufrufen und ersparst dir den Umweg über R-Parameter.
CODE
; Zyklus zur Verwendung der Gegenspindel als Reitstock
PROC GS_REITSTOCK(REAL ASL_GS, REAL SMH_GS, REAL _Tiefe, REAL _SA)
DEF REAL A_HS_GS; Abstand Haupt-Spindel zu Gegen-Spindel
...;Der Untere Teil mit den Berechnungen ist genau gleich
So kannst du den Zyklus in deinem Bearbeitungsprogramm aufrufen:
CODE
GS_REITSTOCK(60,40,3.55,5)
Wenn du es so machst, kannst du wenn du dann etwas mehr Erfahrung hast auch eine eigene Eingabemaske erstellen um den Zyklus aufzurufen. Bis dahin reicht auch ein Zettel mit einer Skizze und der Erklärung der Eingabereihenfolge für die Bediener.
Da du die Befehle nicht zu kennen scheinst hier eine kleine Einführung:
DEF
Variablendeklaration: Hier sagst du der Steuerung das du eine eigene Variable mit einem bestimmten Namen und Typen erstellen willst. Diese Variable ist nur in dem Programm in welchem du sie erstellst gültig. Die DEF Anweisung ist nur am Programmanfang zulässig, bevor irgendwelche Verfahrbefehle oder sonstiges ausgeführt werden.
REAL
Datentyp Fliesskommazahl: Eine Zahl mit Kommastellen, gleicher Datentyp wie die R-Parameter.
Anstelle von REAL könnte hier auch ein anderer Datentyp, z.B. INT für Ganzzahlen... stehen. Mehr zu Datentypen und ihren Einsatzzwecken findest du in Tutorials zu Programmiersprachen wie C, Java... Die Datentypen sind überall in etwa ähnlich, haben jedoch manchmal leicht abweichende Namen.
A_HS_GS, ALS_GS...
Das ist der Variablenname. Dieser ist frei wählbar solange keine globale Variable mit demselben Namen in der Steuerung existiert. Die ersten Beiden Zeichen des Namens müssen jedoch entweder Buchstaben oder _ Zeichen sein. Mit diesem Namen kann nachher gerechnet und Verfahren werden wie z.B. mit R-Parametern:
A_HS_GS=ALS_GS+20
G0 Z=A_HS_GS
Die Variablennamen sollten immer sinnvoll gewählt werden. Idealerweise erkennt man am Variablennamen den Zweck den die Variable erfüllt. So ist das Programm im Vergleich zu R-Parameterprogrammen leichter lesbar.
Wenn mehrere Variablen den selben Datentyp haben musst du nicht alle Deklarationen in eine eigene Zeile schreiben. Du kannst dann die Namen über Kommas trennen:
DEF REAL RVARI_1, RVARI_2, RVARI_3
DEF INT IVARI_1, IVARI_2
Nun noch grob zur PROC Anweisung:
Die PROC Anweisung dient zur Übernahme von Werten beim Aufruf, wie dies bei Zyklen nötig ist. Diese Anweisung muss als allererste Zeile im Programm stehen. (Kommentare dürfen darüber geschrieben werden)
Nach PROC kommt ein Abstand und danach der Zyklenname. Dieser muss gleich sein wie der Name es Programmes und dient als Aufrufname im Bearbeitungsprogramm. Er kann auch frei gewählt werden, es sollten jedoch keine schon von anderen Zyklen verwendeten Namen verwendet werden.
Direkt am Namen kommen eine öfnnende und eine schliessende Klammer. Zwischen diesen Klammern stehen die Variablennamen und Datentypen. Die einzelnen Variablen werden über ein Komma getrennt:
PROC IRGENDEINZYKLUS(REAL RVARI_5, INT IVARI_45, REAL RVARI_42)
Damit die Übergabe dann funktioniert muss das Programm (bei Versionen vor Operate) geladen und freigegeben sein (siehe Bild). Anschliessend muss die Maschine neu gestartet werden. Nach jeder Änderung der PROC Zeile muss wieder ein Neustart der Maschine durchgeführt werden. Bei Änderungen an anderen Programmteilen ist dies nicht nötig.
Zum Schluss empfiehlt sich die Lektüre des "Programmierhandbuch Arbeitsvorbereitung" welches du von der Siemens Seite gratis herunterladen kannst (und evtl. sogar bei deiner Maschinendokumantation schriftlich oder auf der CD beiliegt). Dort findest du genauere Angaben zu den Befehlen, Datentypen und vielen anderen tollen Sachen die man auf der 840D programmieren kann.