535.075 aktive Mitglieder*
4.360 Besucher online*
Kostenfrei registrieren
Anmelden Registrieren
Siemens Forum

Digital Industries, Motion Control, Machine Tool Systems

Variablenübergabe an Unterprogramm

Beitrag 29.11.2020, 02:16 Uhr
CNC_NEU
CNC_NEU
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 21.07.2019
Beiträge: 8

Hallo zusammen

Ist es möglich bei der Sinumerik 840d die Länge eines Feldes als Variable aus dem Hauptprogramm an das Unterprogramm zu übergeben?

In etwa so
Hauptprogramm
N10 DEF INT _ZAHL
N20 EXTERN SPF01(INT)
N30 ZAHL=5
N40 SPF01(_Zahl)
N50 M30

Unterprogramm
N10 PROC SPF01(INT _ZAHL)
N20 DEF REAL _FELD[_ZAHL]
N30 DEF INT _IN
N40 FOR _IN = 0 TO _Zahl-1
N50 _FELD[_IN] = _IN
N60 ENDFOR
N70 RET

So habe ich das mal versucht, funktioniert aber nicht und es kommt der Fehler "Syntaxfehler bei Text _ZAHL]"
Ich vermute, dass es generell nicht funktioniert, aber vielleicht weiß jemand von euch, wie man die Länge eines Feldes nachträglich verlängert?

Schöne Grüße und schon mal Danke
TOP    
Beitrag 29.11.2020, 10:33 Uhr
Sokke
Sokke
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 28.01.2017
Beiträge: 43

Guten Morgen,

das funktioniert auf jeden Fall. Ich kann spätestens nach der Arbeit morgen schnell in die Doku schauen.

Du findest das, was Du brauchst auf jeden Fall in der S840D Doku "Arbeitsvorbereitung"
TOP    
Beitrag 29.11.2020, 12:14 Uhr
CNCFr
CNCFr
Level 7 = IndustryArena-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.538

ZITAT(Sokke @ 29.11.2020, 10:33 Uhr) *
das funktioniert auf jeden Fall. Ich kann spätestens nach der Arbeit morgen schnell in die Doku schauen.

Du findest das, was Du brauchst auf jeden Fall in der S840D Doku "Arbeitsvorbereitung"

Ich habe da meine Zweifel. in der Doku "Arbeitsvorbereitung" steht dazu leider (wie öfter mal) nichts, oder ich habe es nicht gefunden.
Man liest dort, dass die Länge eines Arrays durch den Parameter n bestimmt wird. Was n ist, bleibt aber im Dunkeln.
Ich vermute (weiß es aber nicht und habe es auch nicht ausprobiert), dass es eine Konstante sein muss, wie das in vielen Programmiersprachen der Fall ist. Das würde bedeuten dass Variable oder nicht konstante Ausdrücke nicht erlaubt wären.
TOP    
Beitrag 29.11.2020, 14:23 Uhr
Sokke
Sokke
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 28.01.2017
Beiträge: 43

ZITAT(CNCFr @ 29.11.2020, 12:14 Uhr) *
Ich habe da meine Zweifel. in der Doku "Arbeitsvorbereitung" steht dazu leider (wie öfter mal) nichts, oder ich habe es nicht gefunden.
Man liest dort, dass die Länge eines Arrays durch den Parameter n bestimmt wird. Was n ist, bleibt aber im Dunkeln.
Ich vermute (weiß es aber nicht und habe es auch nicht ausprobiert), dass es eine Konstante sein muss, wie das in vielen Programmiersprachen der Fall ist. Das würde bedeuten dass Variable oder nicht konstante Ausdrücke nicht erlaubt wären.


Huhu,

'n' steht meist für Ganzzahl, also Integer (abgeleitet von natürliche Zahl). Da du in diesem Fall eine Variable nur als 'CALL BY VALUE' überträgst- also nur eben diesen Wert weiterreichst und nicht die Referenz- geht das.

Die Fehlermeldung würde sehr wahrscheinlich auch eine andere sein, sollte das das Problem sein.
TOP    
Beitrag 29.11.2020, 14:27 Uhr
Sokke
Sokke
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 28.01.2017
Beiträge: 43

Im Hauptprogramm im N30 fehlt der Unterstrich.

Hab es aber nur überflogen.

Das, was Du möchtest, ist auf jeden Fall möglich. Wie gesagt, morgen kann ich das bei mir an der Maschine kurz nachschauen.
TOP    
Beitrag 29.11.2020, 14:47 Uhr
CNCFr
CNCFr
Level 7 = IndustryArena-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.538

Es ist schon klar, dass n meist für eine Ganzzahl steht. Aber an eine ordentliche Dokumentation stelle ich schon die Forderung, dass das explizit gesagt und nicht dem Bauchgefühl des Lesers überlassen wird. Und "Ganzzahl" ist eben auch nur die halbe Wahrheit. Man kann nur vermuten, ob es eine Konstante sein muss, oder ob es auch Variable oder ein Ausdruck mit Konstanten oder Variablen sein darf. Dass man im Zweifelsfalle dazu genötigt wird, per trial and error an der Steuerung herauszufinden, was nun Sache ist, kann es ja nicht sein.
Ein ordentliche Dokumentation macht das einfach formal immer (immer, wirklich immer!) richtig und nicht nach dem Motto, "der Anwender wird sich schon denken können, wie es gemeint ist".
In den Siemens-Dokus ist das leider manchmal so und manchmal eben anders. Da könnte man sich mal ein Beispiel an den häufig zu Unrecht geschmähten Produkten von Microsoft nehmen.
TOP    
Beitrag 29.11.2020, 15:39 Uhr
Sokke
Sokke
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 28.01.2017
Beiträge: 43

Das stimmt schon. Eigentlich gehört sowas lückenlos dokumentiert und die erlaubten Wertbereiche ohne Interpretierspielraum angegeben.

Aber: Insgesamt mag ich die Siemens Doku sehr. Man braucht nur ne Handvoll pdfs und kann da recht gut drin suchen und finden.

CNCFr, magst bitte hier vielleicht noch schauen, ob Dir was einfällt: https://de.industryarena.com/forum/index.ph...mp;#entry496727

LG Sokke
TOP    
Beitrag 30.11.2020, 09:58 Uhr
CNCFr
CNCFr
Level 7 = IndustryArena-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.538

ZITAT(Sokke @ 29.11.2020, 15:39 Uhr) *
CNCFr, magst bitte hier vielleicht noch schauen, ob Dir was einfällt: https://de.industryarena.com/forum/index.ph...mp;#entry496727
LG Sokke

Damit habe ich leider auch wenig bis keine Erfahrung.
TOP    
Beitrag 30.11.2020, 15:56 Uhr
Sokke_CAM
Sokke_CAM
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 28.10.2020
Beiträge: 21

ZITAT(CNCFr @ 30.11.2020, 09:58 Uhr) *
Damit habe ich leider auch wenig bis keine Erfahrung.


Schade- trotzdem danke für das Feedback smile.gif


--------------------
~Sokke
TOP    
Beitrag 30.11.2020, 18:06 Uhr
CNC_NEU
CNC_NEU
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 21.07.2019
Beiträge: 8

ZITAT(Sokke @ 29.11.2020, 14:27 Uhr) *
Im Hauptprogramm im N30 fehlt der Unterstrich.

Hab es aber nur überflogen.

Das, was Du möchtest, ist auf jeden Fall möglich. Wie gesagt, morgen kann ich das bei mir an der Maschine kurz nachschauen.

Hallo Sokke
Mit dem Unterstrich stimmt. Das ist nur ein Fehler in dem Beispiel, was ich hier reingestellt habe. Ich denke, dass ich ein Feld mit sehr großer Länge definieren muss, bei dem ich sicher bin, dass es nie vollständig ausgefüllt wird. Leider reserviert es für das Feld immer viel Speicher, der dann mehr oder weniger brach liegt. Was ich gesehen habe ist, dass man ein Feld unbestimmter Länge in Unterprogrammen definieren kann, die aber durch ein Feld bestimmter Länge aus dem Hauptprogramm gefüllt wird. Dass ein Feld im Hauptprogramm eine unbestimmte Länge haben kann, glaube ich zumindest, geht sicher nicht.
Solltest du da was rausfinden, dass es doch geht, wäre das super.
Vielen Dank für deine Hilfe.

Gruß
TOP    
Beitrag 30.11.2020, 19:09 Uhr
Sokke_CAM
Sokke_CAM
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 28.10.2020
Beiträge: 21

Huhu,

ich komm heute leider nicht dazu. Kompressor wurde ausgemacht und Maschine ist im Notaus.

Mittwoch abend sollte möglich sein, ich werde es extra sagen.

Genau... Bei einem Array wird die Größe dann fest gesetzt und der Speicher reserviert, darum möchte man diesen Datentyp in den Hochsprachen vermeiden.

Ich melde mich nochmal!


--------------------
~Sokke
TOP    
Beitrag 30.11.2020, 20:47 Uhr
Hexogen
Hexogen
Level 7 = IndustryArena-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.732

ZITAT(CNC_NEU @ 29.11.2020, 04:16 Uhr) *
Hallo zusammen

Ist es möglich bei der Sinumerik 840d die Länge eines Feldes als Variable aus dem Hauptprogramm an das Unterprogramm zu übergeben?

In etwa so
Hauptprogramm
N10 DEF INT _ZAHL
N20 EXTERN SPF01(INT)
N30 ZAHL=5
N40 SPF01(_Zahl)
N50 M30

Unterprogramm
N10 PROC SPF01(INT _ZAHL)
N20 DEF REAL _FELD[_ZAHL]
N30 DEF INT _IN
N40 FOR _IN = 0 TO _Zahl-1
N50 _FELD[_IN] = _IN
N60 ENDFOR
N70 RET

So habe ich das mal versucht, funktioniert aber nicht und es kommt der Fehler "Syntaxfehler bei Text _ZAHL]"
Ich vermute, dass es generell nicht funktioniert, aber vielleicht weiß jemand von euch, wie man die Länge eines Feldes nachträglich verlängert?

Schöne Grüße und schon mal Danke



Das geht nicht.
Du darfst keine Definition mit einer Variablenübergabe machen.
Wenn dann musst die Definition so wählen das die Zahl der Zahl +1 da ist.
Also deine Zahl
N30 ZAHL=5
begrenzen

if zahl > 5 setal(66520,"zahl zu groß")

oder so

Unterprogramm dann so

N10 PROC SPF01(INT _ZAHL)
N20 DEF REAL _FELD[6]
N30 DEF INT _IN
N40 FOR _IN = 0 TO _Zahl-1
N50 _FELD[_IN] = _IN
N60 ENDFOR
N70 RET


Der Beitrag wurde von Hexogen bearbeitet: 30.11.2020, 20:51 Uhr


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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
TOP    
Beitrag 01.12.2020, 10:31 Uhr
CNC_NEU
CNC_NEU
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 21.07.2019
Beiträge: 8

ZITAT(Hexogen @ 30.11.2020, 20:47 Uhr) *
Das geht nicht.
Du darfst keine Definition mit einer Variablenübergabe machen.
Wenn dann musst die Definition so wählen das die Zahl der Zahl +1 da ist.
Also deine Zahl
N30 ZAHL=5
begrenzen

if zahl > 5 setal(66520,"zahl zu groß")

oder so

Unterprogramm dann so

N10 PROC SPF01(INT _ZAHL)
N20 DEF REAL _FELD[6]
N30 DEF INT _IN
N40 FOR _IN = 0 TO _Zahl-1
N50 _FELD[_IN] = _IN
N60 ENDFOR
N70 RET


Hallo Hexagon
Genau das ist das Problem. Ich weiß am Anfang nicht, wie lang das Feld sein wird. Die Länge des Feldes soll im Hauptprogramm festgelegt (berechnet) werden und dann an ein Unterprogramm übergeben werden, in dem dann das Feld unbestimmter Länge gefüllt wird.

Danke und Gruß
TOP    
Beitrag 01.12.2020, 18:38 Uhr
Sokke_CAM
Sokke_CAM
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 28.10.2020
Beiträge: 21

Hallo nochmal,

bin schwer verwundert. Aber ja, es scheint (warum auch immer) nicht zu funktionieren. Für mich unverständlich. Denn zur Laufzeit ist die Angabe natürlich konstant- CALL BY VALUE.

Ich habe nur gefunden, dass:
ZITAT
DEFINE DIM1 AS 5
DEF REAL[DIM1]

funktioniert. Vielleicht kann man nun dieses DEFINE dazu bringen, auf DIM1 den Wert einer Variablen zu setzen? Ich hab es nicht geschafft und muss nun leider weiter arbeiten- obwohl das echt interessant ist.











--------------------
~Sokke
TOP    
Beitrag 02.12.2020, 13:44 Uhr
Hexogen
Hexogen
Level 7 = IndustryArena-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.732

ZITAT(Sokke_CAM @ 01.12.2020, 20:38 Uhr) *
Hallo nochmal,

bin schwer verwundert. Aber ja, es scheint (warum auch immer) nicht zu funktionieren. Für mich unverständlich. Denn zur Laufzeit ist die Angabe natürlich konstant- CALL BY VALUE.

Ich habe nur gefunden, dass:

funktioniert. Vielleicht kann man nun dieses DEFINE dazu bringen, auf DIM1 den Wert einer Variablen zu setzen? Ich hab es nicht geschafft und muss nun leider weiter arbeiten- obwohl das echt interessant ist.


Schlicht und kurz...
Geht nicht!
Du kannst zwar eine Variable auf ein R Parameter oder auf ein Maschinen Datum z.b. MD14510 MD14514 ... aber sobald du die Variable in einer DEF Anweisung nutzt kommt ein Macrofehler.

DEF Anweisungen dürfen keine weiteren Referenzen bekommen. Die Feld Variable muss Statisch definiert werden.

Einzige Möglichkeit... ist diese Übergabe Variable auf eine Bestimme Anzahl zu prüfen und diese zu begrenzen.

Ich lege fest, Max. Feldgröße soll 99 sein.
Also ist darf die Zahl <99 sein.
Muss dann so auslegen das die jemals größt mögliche Feldgröße abgedeckt ist.


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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
TOP    
Beitrag 02.12.2020, 13:46 Uhr
Hexogen
Hexogen
Level 7 = IndustryArena-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.732

ZITAT(CNC_NEU @ 01.12.2020, 12:31 Uhr) *
Hallo Hexagon
Genau das ist das Problem. Ich weiß am Anfang nicht, wie lang das Feld sein wird. Die Länge des Feldes soll im Hauptprogramm festgelegt (berechnet) werden und dann an ein Unterprogramm übergeben werden, in dem dann das Feld unbestimmter Länge gefüllt wird.

Danke und Gruß



Dann begrenz deine Berechnung auf die Max. mögliche Feldgröße.
Definiere dann am besten die Variable direkt im UGUD und begrenz deine Anzahl.


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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
TOP    
Beitrag 02.12.2020, 15:33 Uhr
CNC_NEU
CNC_NEU
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 21.07.2019
Beiträge: 8

ZITAT(Hexogen @ 02.12.2020, 13:46 Uhr) *
Dann begrenz deine Berechnung auf die Max. mögliche Feldgröße.
Definiere dann am besten die Variable direkt im UGUD und begrenz deine Anzahl.

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ß
TOP    
Beitrag 02.12.2020, 17:24 Uhr
Sokke_CAM
Sokke_CAM
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 28.10.2020
Beiträge: 21

ZITAT(CNC_NEU @ 02.12.2020, 15: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ß


Hä? Das war doch genau das, was ich geschrieben hatte wacko.gif wacko.gif wacko.gif


--------------------
~Sokke
TOP    
Beitrag 02.12.2020, 18:54 Uhr
CNC_NEU
CNC_NEU
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 21.07.2019
Beiträge: 8

ZITAT(Sokke_CAM @ 02.12.2020, 17:24 Uhr) *
Hä? Das war doch genau das, was ich geschrieben hatte wacko.gif wacko.gif wacko.gif

Hallo Sokke

Stimmt hattest du. Entschuldige, ich habe das erst gesehen, nachdem ich das selbst auch gelesen hatte.
Vielen Dank
TOP    
Beitrag 02.12.2020, 20:32 Uhr
Sokke
Sokke
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 28.01.2017
Beiträge: 43

ZITAT(CNC_NEU @ 02.12.2020, 18:54 Uhr) *
Hallo Sokke

Stimmt hattest du. Entschuldige, ich habe das erst gesehen, nachdem ich das selbst auch gelesen hatte.
Vielen Dank

Hehe, das ist doch kein Problem... ich fand es witzig- hab nur keinen lachenden Smiley gefunden smile.gif
TOP    
Beitrag 03.12.2020, 21:12 Uhr
Hexogen
Hexogen
Level 7 = IndustryArena-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.732

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






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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
TOP    
Beitrag 07.12.2020, 10:14 Uhr
W06FAN
W06FAN
Level 2 = IndustryArena-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 25.12.2005
Beiträge: 51

Hallo,

ich weiß nicht ob es für die Funktion der Abfrage entscheidend ist, aber damit eine im Hauptprogramm definierte Variable im Unterprogramm gelesen werden kann, muss das MD11120 $MN_LUD_EXTENDED_SCOPE=1 sein.

Grüße
TOP    
Beitrag 07.12.2020, 17:23 Uhr
Hexogen
Hexogen
Level 7 = IndustryArena-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.732

ZITAT(W06FAN @ 07.12.2020, 12:14 Uhr) *
Hallo,

ich weiß nicht ob es für die Funktion der Abfrage entscheidend ist, aber damit eine im Hauptprogramm definierte Variable im Unterprogramm gelesen werden kann, muss das MD11120 $MN_LUD_EXTENDED_SCOPE=1 sein.

Grüße



Hey...
ne.
DEF Anweisungen dürfen keine Referenten enthalten.


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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
TOP    
Beitrag 08.12.2020, 14:01 Uhr
CaptainFu
CaptainFu
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.09.2019
Beiträge: 25

Hallo allerseit. Ist ja schon recht viel zu diesem Thema geschrieben worden, ich hätte da vielleicht noch eine Möglichkeit. Falls das Unterprogramm nur ein paar Felder füllen soll, wäre es denkbar dieses Programm erst zur Laufzeit mit den "Write" Befehl entsehen zu lassen, siehe Beispiel.
Sollten die Werte wieder im Hauptprogramm gebraucht werden muss man eben eine entsprechende Proc-Zeile mit einer Referenz, Stichwort "Var" bei der Parameterübergabe, erstellen oder vielleicht in einen FiFo (falls an der Maschine vorhanden) schreiben. Dann kann ich mir vorstellen das man die Werte auch wieder herausbekommt. Muss man halt mal ein bisschen damit spielen, einen Versuch wäre es wert.


;Hauptprog.
Def Int _Zahl,lE
Def String[60] lPfad="/_N_Wks_Dir/_N_Speicher_Wpd/_N_SPF01_Spf"

_Zahl=5

;Unterprogramm erstellen
Delete(lE,lPfad)
Write(lE,lPfad,";SPF01 (Progname als Kommentar)")
Write(lE,lPfad,"Def Real _Feld["<<_Zahl<<"]")
Write(lE,lPfad,"Def Int _In")
Write(lE,lPfad,"FOR _In = 0 To "<<_Zahl<<"-1")
Write(lE,lPfad," _Feld[_In] = _In")
;...
;...usw., usw.
;...
Write(lE,lPfad,"Endfor")
Write(lE,lPfad,"Ret")
Stopre

;Unterprogramm abarbeiten
Call lPfad

;Hauptprogramm ende
M30
TOP    



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