CC und Parameterübergabe

PHANTOMIAS

Level-1
Beiträge
30
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle!

beim Durchwälzen meiner SPS-AWL-Dokumentation kam mir nun die Erleuchtung warum mein WinSPS das nicht annimmt:
Code:
       U    "PufferFrei"                 // Puffer ist freigegeben
       UN   "PufferVoll"                 // Puffer ist nicht voll
       U    "NeuerMW"                    // Neuer Messwert
       FP   "FlankeNeuerMW"              // liegt als positive Flanke an
       CC   "SchreibePuffer"
         NeuerWert:="AblNeuMW"
         Pufferlaenge:="AnzahlWerte"
         PufferVoll:="PufferVoll"
         PufferFrei:="PufferFrei"
         Ptr:="Pointer"

CC erlaubt nämlich keine Parameter. Leider wird in meiner Doku aber nicht erwähnt wie man das dann lösen kann.
Kann ich das so korrekt lösen?


Code:
       U    "PufferFrei"                 // Puffer ist freigegeben
       UN   "PufferVoll"                 // Puffer ist nicht voll
       U    "NeuerMW"                    // Neuer Messwert
       FP   "FlankeNeuerMW"              // liegt als positive Flanke an
       SPB test
       BE
test: NOP 1
       CC   "SchreibePuffer"
         NeuerWert:="AblNeuMW"
         Pufferlaenge:="AnzahlWerte"
         PufferVoll:="PufferVoll"
         PufferFrei:="PufferFrei"
         Ptr:="Pointer"�

Gruß -PHANTOMIAS-
 
Zuletzt bearbeitet:
um welche winsps handelt es sich denn?

warum rufst du nicht mit call auf?
dann kannst auch deine parameter übergeben
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, irgendwie war mein Text nicht so ganz da beim ersten Abschicken.
Habe bei meinen paar Beiträgen öfters das Problem, besonders dass nach Code-Teilen der Rest nicht mehr erscheint.

Der Text sollte aber nun da sein :)

Gruß -PHANTOMIAS-
 
der befehl heisst
CALL
Code:
U    "PufferFrei"                 // Puffer ist freigegeben
       UN   "PufferVoll"                 // Puffer ist nicht voll
       U    "NeuerMW"                    // Neuer Messwert
       FP   "FlankeNeuerMW"              // liegt als positive Flanke an
       SPB test
       BE
test: NOP 1
       [COLOR=Red]CALL[/COLOR]   "SchreibePuffer"
         NeuerWert:="AblNeuMW"
         Pufferlaenge:="AnzahlWerte"
         PufferVoll:="PufferVoll"
         PufferFrei:="PufferFrei"
         Ptr:="Pointer"�
 
Zuletzt bearbeitet:
Ich sollte schlafen gehen, genug AWL heute gesehen.
Klar, du hast recht, da habe ich ohne nachzudenken den Sprung eingefügt.

Also wird das dann so laufen wir ich mir das denke? Nur wenn das VKE auf 1, dann wird der Sprung aufgerufen und somit der FC mit Parametern aufgerufen?

Gruß -PHANTOMIAS-
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich sollte schlafen gehen, genug AWL heute gesehen.
Klar, du hast recht, da habe ich ohne nachzudenken den Sprung eingefügt.

Also wird das dann so laufen wir ich mir das denke? Nur wenn das VKE auf 1, dann wird der Sprung aufgerufen und somit der FC mit Parametern aufgerufen?

Gruß -PHANTOMIAS-

BE
Beschreibung
BE (Bausteinende) unterbricht den Programmablauf im aktuellen Baustein und springt zu dem Baustein, der den aktuellen Baustein aufgerufen hat. Der Programmablauf wird mit der ersten Anweisung nach dem Bausteinaufruf fortgesetzt. Der aktuelle Lokaldatenbereich wird freigegeben und der vorherige Lokaldatenbereich wird zum aktuellen Lokaldatenbereich. Die Datenbausteine, die zum Zeitpunkt des Aufrufens des Bausteins geöffnet waren, werden erneut geöffnet. Zusätzlich wird die MCR-Abhängigkeit des aufrufenden Bausteins wiederhergestellt, und das VKE wird vom aktuellen Baustein in den aufrufenden Baustein übertragen. Die Operation BE ist nicht von Bedingungen abhängig. Wird die Operation BE übersprungen, wird der aktuelle Programmablauf nicht beendet, sondern am Sprungziel innerhalb des Bausteins fortgesetzt.

Was bedeutet, dass der Baustein nur aufgerufen wird, wenn das VKE = 1 ist. Wie von functiondoc beschrieben, muss der Befehl aber CALL heisen.

Gruss
Audsuperuser
 
Zurück
Oben