Sprungleiste

mzva

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

versuche eine Sprungleiste zu benutzen. Die SPL wird aber andauernd durchlaufen. Habe im Forum schon nach einer Loesung gesucht.
Hoffe das mir jemand sagen kann was ich falsch mache.

Code:

NW1
L MB 50
SPL done
SPA Int1
SPA Int2
SPA Int3

done: SET
R A 0.2
R A 0.3
R A 0.6
L 0
T MB 50
SPA end

NW2
Int1: UN A 0.0
U "hand_mode"
S A 0.0
SPB Inc

NW3
Int2: U "Start"
S A 0.2
R A 0.0
SPB Inc

NW4
Int3: U "res"
S A 0.3
S A 0.6
SPB Inc

NW5
Inc: L MB 50
+ 1
T MB 50

NW6
end: NOP 0


Gruss

mzva
 
"spl" wird unabhängig von VKE ausgeführt, wenn du bedingt springen möchtest dann solltest du "spb" oder eine andere bedingte sprungleiste benutzen.

Ciao

Antonio
 
Hallo,

was fehlt ist der BEA (Bausteinende absolut) Befehl, nach den einzelnen Schritten.

Code:

NW1
L MB 50
SPL done
SPA Int1
SPA Int2
SPA Int3

done: SET
R A 0.2
R A 0.3
R A 0.6
L 0
T MB 50
BEA

NW2
Int1: UN A 0.0
U "hand_mode"
S A 0.0
SPB Inc
BEA

NW3
Int2: U "Start"
S A 0.2
R A 0.0
SPB Inc
BEA

NW4
Int3: U "res"
S A 0.3
S A 0.6
SPB Inc
BEA

NW5
Inc: L MB 50
+ 1
T MB 50

NW6
end: NOP 0


mfg
Daniel
 
Danke Daniel,

werde dies morgen ausprobieren.
Dachte der SPB nach Inc wird bedingt vom VKE ausgefuehrt.
So das mit dem hochzaehlen die Schrittkette realisiert wird.

mzva
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Beispiel von Siemens


AWL Erläuterung
L MB0 //Lade die Nummer des Sprungziels in AKKU1-L-L.
SPL LSTX //Sprungziel, wenn AKKU1-L-L > 3 ist.
SPA SEG0 //Sprungziel, wenn AKKU1-L-L = 0 ist.
SPA SEG1 //Sprungziel, wenn AKKU1-L-L = 1 ist.
SPA COMM //Sprungziel, wenn AKKU1-L-L = 2 ist.
SPA SEG3 //Sprungziel, wenn AKKU1-L-L = 3 ist.
LSTX: SPA COMM
SEG0: * //Zulässige Anweisung.
*
SPA COMM
SEG1: * //Zulässige Anweisung.
*
SPA COMM
SEG3: * //Zulässige Anweisung.
*
SPA COMM
COMM: *
*
 
Wenn du auf SPL die F1 drückst, kommst du zur Hilfe der SPL :rolleyes: .

Dort ist ein Beispiel, das ist richtig gut und auch einfach zu verstehen.

Gruß, pt
 
Hallo,

erstmal besten Dank an alle. Habe es nun "geschnallt".
Hab aber noch eine Frage:
Schrittverzoegerung im FB mit statischen Variablen (Time)
im FC mache ich dies wie?

Habe probiert:

S1:L S5T#500ms
SE T10
U T10
SPB Inc
SPA ende

Leider spring er darueber weg.

mzva
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Siemens-Hilfe:

SE <Zeit> startet die adressierte Zeit, wenn das VKE von "0" auf "1" wechselt. Die programmierte Zeitdauer läuft ab, solange das VKE = 1 ist. Wechselt das VKE auf "0", bevor die programmierte Zeitdauer abgelaufen ist, wird die Zeit angehalten.
Wenn du die Zeit im Schritt stehen hast, wechselt das VKE für diese Zeit nie von 0 auf 1, da ja beim Eintritt in den Schritt und auch beim Austritt, das VKE vor der Zeit immer schon auf 1 ist. Es sollte gehen, wenn du im Schritt davor die gleiche Zeit mit VKE 0 anstößt (Die läuft natürlich nicht los, aber da macht ja nichts) damit sie dann im nächsten Schritt einen Flankenwechsel erkennt. Sowas ist aber meiner Meinung nach nicht grad schön. Besser im Schritt einen Merker setzen, der dann die Zeit außerhalb der Schrittkette ansteuert. Ist die Zeit abgelaufen, Schrittzähler incrementieren und Merker zurücksetzen.

Hier http://www.sps-forum.de/showthread.php?t=10754&highlight=Sprungliste hatte ich ein Beispiel gepostet mit einer Sprungliste, allerdings in einem anderen Zusammenhang. Ich finde übrigens die Lösung mit BEA nach jedem Schritt nicht so gut, besser ans Ende des SPL-Netzwerkes springen, dann kann man dort noch Fehlerauswertungen oder das Incrementieren des Zählers etc. machen.
 
Hallo,

mit den Zeiten kann man das z.B so machen:

S1:SET
L S5T#500ms
SE T10
U T10
SPB Inc
SPA ende

S2:SET
L S5T#500ms
SE T10
U T10
SPB Inc
SPA ende

:
:
:
usw.

Inc:L MB 50
+ 1
T MB 50

CLR
L S5T#500ms
SE T10

ende: NOP 0


somit kann man den Timer T10 in jeden Schritt der Kette verwenden da er
bei jedem Schrittwechsel eine fallende Flanke bekommt.

MfG
Daniel :)
 
Zurück
Oben