Subroutine / Unterprogramm oder wie auch immer in AWL

noeppkes

Level-1
Beiträge
150
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

verstehe ich das richtig.
Jedes Unterprogramm / subroutine muss ich in einen eigenen FB oder FC legen.

Beispiel.
In einem FC soll des öfteren in ein Unterprogramm gesprungen werden(wobei auch der ein oder andere Parameter übergeben werden soll)
Muss dieses Unterprogramm nun in einem eigenen FC oder FB liegen oder kann es der selbe sein ?

Ich danke für euere Antwort und Hilfe.

noeppkes ...
 
Hallo,
du hast das richtig verstanden. Das was du unter Subroutine verstehst ist in Step7 ein FC oder FB - je nach Anwendungsfall.
Ein FB hat immer auch einen eigenen Datenbereich (Instanz). Dies kann ein zugehöriger DB sein oder auch ein Bestandteil des DB's vom aufrufenden FB (wenn Multi-Instanz-fähig).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und

wie sieht das mit den Sprüngen aus, kann man die net auch als Unterprogramm bezeichen? Damit kann man doch schön auch in einem FB/ FC rumhopsen... Dann zum Ende des Bausteins, fertig. Stichwort Sprungmarken

Für manch kleine Auswahl, Verzweigung und so hat sich das oft schon bewährt.

ok, wenn die Aufgabe, die ich gezielt abarbeiten muss, oft vorkommt und fest abgegrenzt ist, dann nehme ich nat auch den Sprung zu nem anderen Baustein..

Greetz, Tom
 
Unterprogramm

Hallo ThommyG,

wenn ich gezielt auf ein Programm springe, dann ist das doch kein Unterprogramm mehr.
Unter Unterprogramm verstehe ich den Aufruf eines Programmteiles, welches mir wieder an Stelle zurückspringt, wo es auch rausgesprungen ist.
Das bekomme ich mit einer Sprungmarke doch nicht hin oder ?

noeppkes ...
 
... nein, wie du schon richtig annimmst.

TommyG hat seinen Beitrag ja auch relativiert ... Es kommt eben auf die Aufgabenstellung an ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ThommyG,

wenn ich gezielt auf ein Programm springe, dann ist das doch kein Unterprogramm mehr.
Unter Unterprogramm verstehe ich den Aufruf eines Programmteiles, welches mir wieder an Stelle zurückspringt, wo es auch rausgesprungen ist.
Das bekomme ich mit einer Sprungmarke doch nicht hin oder ?


Doch schon, du kannst auch zurückspringen.
Dann macht das Programm da weiter wo du rausgesprungen bist.

Code:
      U     M     10.0
      SPB   NOR1 // Unterprogramm aufrufen
NOR2: NOP   0 // Rückkehr aus Unterprogramm

// [Unterprogramm]
NOR1: NOP   0
      SPA   NOR2
Nur mag ich keine Rücksprünge.

mfG René
 
Vor allem birgt ein Rücksprung ein erhebliches Risiko einer Zykluszeitüberschreitung ... und somit einer roten Lampe / Anlagenstillstand.

Mfg
Manuel
 
Unterprogramm

Hallo Vollmi,

ja das weiss ich, dass man so springen kann.
Nur, wenn ich das Unterprogramm mehrfach benutze, dann geht das so nicht, da das Unterprogramm ja immer an die gleiche Adresse zurückspringt.

noeppkes ...
 
ja das weiss ich, dass man so springen kann.
Nur, wenn ich das Unterprogramm mehrfach benutze, dann geht das so nicht, da das Unterprogramm ja immer an die gleiche Adresse zurückspringt.

Und darum gibts ja auch die Möglichkeit der FB und FCs. Davon hats mehr als genug, also kein Grund etwas komplizierter als nötig zu machen.

mfG René
 
Zurück
Oben