ZITAT(CNC_NEU @ 02.12.2020, 17:33 Uhr)

Hallo Hexogen
Ich denke, dass man das so machen muss. Ich habe zwar noch was gefunden, indem man Makros mit "DEFINE DIM1 AS 5" und "DEFINE DIM2 AS 4" mit einer Zahl belegt. Dies wird dann im Unterprogramm bei der Definition eines Feldes mit "DEF INT FELD[DIM1,DIM2]" übernommen. Allerdings muss bei der Definition mit DEFINE im oberen Programm eine Zahl vergeben werden. Mit einer Variablen funktioniert das dann wieder nicht.
Danke und Gruß
Hey
du kannst im DEFINE eine Umschreibung durchführen.
Also ---> DEFINE BLUB AS R100
Jetzt schreibst in R100 einen Wert rein
Und kannst ihn mit BLUB auslesen.
R101=BLUB
Steuerung interpretiert es so >>>
R101=R100(BLUB)
Daher funktioniert das mit der DEF Anweisung auch nicht.
Da die Steuerung den Satz so interpretiert das >
DEFINE BLUB AS 5
Du schreibst so > DEF INT INTVAR[BLUB] Steuerung liest DEF INT INTVAR[5]
DEFINE BLUB AS R99
Du schreibst so > DEF INT INTVAR[BLUB] Steuerung liest DEF INT INTVAR[R99] <<< schon kommt ein Macro Fehler. Das ist nicht erlaubt. Call by referenz.
DEFINE kannst auch mit Maschinendaten belegen.
DEFINE BLUB AS $MN_USER_DATA_FLOAT[12]
Allerdings wird das erst eingelesen wenn die Steuerung hoch fährt.
Solange bleibt der alte Wert erhalten.
Noch eine Möglichkeit vom DEFINE ist eine Funktion umzuschreiben.
Z.b. M19
DEFINE M19 AS M5 SPOS[S1]=0
Du Programmierst M19 > Steuerung liest > M5 SPOS[S1]=0