Step 7 SPB Sprung wird ständig durchgeführt

dizzi33

Level-1
Beiträge
31
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Liebe Helferlein

ich habe in meinem s7-315-2DP das Problem, daß in meinem supereinfach Sprung ( eigentlich aus dem Lehrbuch) dieser trotz VKE = 0 ständig ausgeführt wird.
lt. AWL Hilfe kann ich zwar nichts falsch machen (außer dem VKE) .
wenn der m1.0 high ist soll zu KAL gesprungen werden, aber ganz egal was im Merker steht, er springt immer hin.

Was ich nicht verstehte ist, daß im Beobachtungsbereich in der Zeile der Sprungdefinition das VKE 1 ist, in der Bedingung vorher aber 0

Bitte nicht zuviel Spott für meine wahrscheinlich supertriviale Frage, aber die 3 vorhandenen Foreneinträge helfen mir nicht weiter.
 

Anhänge

  • spb.jpg
    spb.jpg
    179 KB · Aufrufe: 92
Zuletzt bearbeitet:
Es ist so, wie ich es geschrieben hatte. Wenn die Sprungbedingung nicht erfüllt ist, durchläuft das Programm alle weiteren Anweisungen.

Ich würde es so lösen.

Code:
U M 1.0
= M1.1

SPB KAL

L 1
T MW 10
SPA ENDE

KAL: L 3
T MW 10

ENDE: NOP0
 
Es ist doch eindeutig:

So, wie es der TE programmiert hat, ist es egal, ob die Sprungbedingung erfüllt ist oder nicht: KAL wird immer durchlaufen. Deswegen hat er den Eindruck, die Sprungbedingung sei immer erfüllt.
 
Für die Sprungaktion ist der M 1.1 doch erst mal absolut uninteressant.

@PeterHollanda,

du lädst die Zahlenwerte verkehrt herum. Wenn M1.0 = 1, dann soll der Wert 3 ins MW 10 geschrieben werden. Bei dir wird dann aber 1 geschrieben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... wenn der m1.0 high ist soll zu KAL gesprungen werden, aber ganz egal was im Merker steht, er springt immer hin.

Das stimmt so nicht ganz.
Wenn der M1.0 high ist, springt das Programm zu KAL.
Ansonsten springt das Programm nicht, sondern führt die nächsten beiden Befehle aus,
um danach bei KAL weiterzumachen.

Wenn du eine „Endweder/Oder-Routine“ brauchst, benötigst du, wie GUNSAMS geschrieben, einen weiteren Sprung.

Oder eine andere Anordnung der Befehle.
z. B.:

L 3
T MW10

U M 1.0
= M 1.1

SPB KAL

L 1
T MW 10

KAL: NOP 0
 
Vielleicht sollte man zur weiteren Erklärung für den TE schreiben:

Lade- und Transferbefehle werden unabhängig vom VKE ausgeführt.
 
also: Problem ist durch den zusätzlichen Sprung ans Ende gelöst, der ganze Klimbim mit den Merkern und der Bedingung hab ich nur zum Ausprobieren
des Sprungs verwendet,
ABER, zum Verständnis(das ist jetzt wieder eine Frage): lt. AWL Hilfe, die ich jetzt als screenshot dazuhänge) wird entweder der Programmteil z w i s c h e n Sprungbefehl und Sprungmarke
oder der Programmteil n a c h der Sprungmarke ausgeführt. Wie man gesehen (oder erlebt hat) stimmt das aber nicht, sondern wenn das VKE null ist wird alles ausgeführt, ist dann die Hilfe Mist?
 

Anhänge

  • hilfe.JPG
    hilfe.JPG
    119,5 KB · Aufrufe: 32
Zuviel Werbung?
-> Hier kostenlos registrieren
Der code funktioniert.
Da mal hingestellt ob das er ein 2e Sprung braucht.


Schaue dir das MW 10 mal an über ein Variabelen Tabelle.
mach die 2e Anweisung weg, oder ein 2e Sprung und du wird sehen das die Sprungen geht.

Sieht so aus das der Online anzeige des FC's seine letzte zugewiesene wert anzeigt und bleibt anzeigen.

Das ist was ich meine

Anhang anzeigen 28610

Bram
 
Zuletzt bearbeitet:
Ja okee,

Wenn das MW auf nul schreibst mit die Variabelentabelle, wenn der Sprung ausgeführt wirdt. sehst du das du das MW auf null schreiben kannst.
Wenn der sprung nicht ausgeführt wird bleib die auf 3.
In mein Beispiel dann..
 
Zuviel Werbung?
-> Hier kostenlos registrieren
lt. AWL Hilfe, die ich jetzt als screenshot dazuhänge) wird entweder der Programmteil z w i s c h e n Sprungbefehl und Sprungmarke
oder der Programmteil n a c h der Sprungmarke ausgeführt.

Dass der Programmteil zwischen Sprungbefehl und Sprungmarke ausgeführt wird, steht da nicht.
Da steht, dass der Programmablauf an einer bestimmten Stelle fortgesetzt wird.
Das heißt, ALLE nachfolgenden Befehle ab dieser Stelle werden ausgeführt.

Das Programm arbeitet ja alle Befehle der Reihe nach ab.
Was nicht übersprungen wird, wird abgearbeitet.
 
lt. AWL Hilfe, die ich jetzt als screenshot dazuhänge
Es wäre perfekt gewesen, wenn Du in dem Screenshot mit der Hilfe nicht das beobachtete Programm verdeckt hättest. Dann wäre Dein Screenshot womöglich wirklich informativ geworden. :cool:

wird entweder der Programmteil z w i s c h e n Sprungbefehl und Sprungmarke
oder der Programmteil n a c h der Sprungmarke ausgeführt.
Nicht ganz. Da steht, daß entweder der Sprung ausgeführt wird oder mit der dem Sprungbefehl folgenden Anweisung fortgesetzt wird.

Harald
 
als KAL wird immer durchlaufen, weil im Zyklischen Ablauf dies ja nach
L 1
T MW 10 steht!

Somit wird immer das L3 als letztes ausgeführt und in das MW10 geschrieben, egal ob nun M1.0 "1" oder "0" ist ...

Code:
U M 1.0
= M1.1
L 3
SPB KAL
L 1
KAL: T MW 10

so sollte es auch gehen ...
 
Zuletzt bearbeitet:
Zurück
Oben