Step 7 Sprungverteiler mit zeitverzögertem bedingtem Sprung

BBK18

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich stehe zur Zeit bei einem Programm etwas auf dem Schlauch.
In diesem Programm wird eine Sprungliste abgearbeitet, an einem Punkt des Programms wird einer Abfrage von einem Sensor getätigt. Ist das VKE 1 wird zu einer Marke gesprungen. Hier wird dann die Anlage in Grundstellung gebracht.
Ich habe nun die Aufgabe den Ablauf so umzustricken das zu der Marke gesprungen wird, dann ein Greifer (A2.2) geöffnet wird und anschließend erst die Grundstellung angefahren wird. Leider hat der Greifer keine Endlagenerkennung.

Der Programmteil sieht in etwa so aus(verkürzt):
xx: x
x
x
UN E1.3 \\Teileerkennung
SPB 0015
x
x
x
0015: NOP0
CALL FC90 \\Reset


Wie mache ich das jetzt am einfachsten? Der Greifer gibt eine digitale Rückmeldung (E2.1) wenn er in Position ist, würde es ausreichen bei Marke 0015 folgendes einzufügen?

0015: NOP 0
SET
S A2.2 \\Greifer öffnen
U E2.1 \\Greifer in Position
FP M55.5 \\Flankenmerker
U M55.5
CC FC90 \\Reset

Ich frage da ich am Montag erst wieder an die Anlage kann und dann eine Lösung brauche. Mich verwirrt diese Sprungleiste etwas, die Frage die sich mir stellt wie arbeitet die SPS so ein Programm ab, bleibt die Position im Programm (hier bei Marke 0015) im nächsten Zyklus gespeichert bis irgendwann einmal der Merke M55.5 für einen Zyklus eine 1 führt??
 
Ich denke, die Sprungleiste implementiert einen Zustandsautomaten, den du einfach um einen Zustand erweitern musst. Allerdings hast du zu wenig Code gepostet, um den Aufbau zu erkennen.

Das Programm wird in jedem Zyklus von vorne begonnen. Du brauchst also vor der Abfrage von E2.1 eine weitere Sprungmarke 0016?, die du in den nächsten Zyklen anspringst, bis irgendwann mal E2.1 kommt. Dazu brauchst du einen weiteren Zustand, damit du in den nächsten Zyklen in der Sprungleiste erkennst, dass du die neue Sprungmarke anspringst. Danach sollte alles so weiterlaufen wie bisher.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es handelt sich hier eigentlich um eine Schrittkette. Nach jedem erledigtem Punkt der Spungleiste wird der Spungzähler (oder wie er auch heißt) um 1 erhöht.
Ich hänge mal den ganzen Code des Bausteins an.

Der für mich interessante Teil ist ab Marke M008 zu sehen wo die Abfrage mit UN E1.3 stattfindet. Denn das ist die Teileerkennung im Greifer wo, wenn kein Teil anwesend das Öffnen und danach der Reset realisiert werden soll und der Sprung zu Marke M015 stattfindet.


O E 2.0
O(
U E 2.1
U E 1.7
FP M 41.5
)
= #TEMP0
L MW 110
SPL M001
SPA M002
SPA M004
SPA M005
SPA M006
SPA M007
SPA M008
SPA M009
SPA M010
SPA M011
SPA M012
SPA M013
SPA M014
M001: NOP 0
BEA
M002: NOP 0
U M 40.4
U E 1.5
U E 0.4
U E 0.6
UN E 1.2
= #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
SET
R M 41.1
R A 0.7
S A 0.6
S M 41.6
SPA M003
M004: NOP 0
U E 0.5
= #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
SET
R A 1.2
S A 1.3
S M 41.6
SPA M003
M005: NOP 0
U E 1.0
= #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
SET
R A 1.0
S A 1.1
S M 41.6
SPA M003
M006: NOP 0
U E 0.7
= #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
S M 40.7
S M 41.6
SPA M003
M007: NOP 0
U M 40.7
NOT
= #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
SET
R A 1.1
S A 1.0
S M 41.6
SPA M003
M008: NOP 0
U E 0.6
= #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
UN E 1.3
SPB M015
SET
S M 40.5
S M 41.6
SPA M003
M009: NOP 0
U M 40.5
NOT
= #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
SET
R A 1.3
S A 1.2
S M 41.6
SPA M003
M010: NOP 0
U E 1.1
= #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
SET
R A 0.6
S A 0.7
S M 41.6
SPA M003
M011: NOP 0
U E 0.4
U E 1.6
U M 42.2
= #TEMP2
CALL SFB 4 , DB40
IN:=#TEMP2
PT:=T#500MS
Q :=#TEMP1
ET:=
U #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
SET
R A 1.4
S A 1.5
S M 41.6
CALL SFB 4 , DB40
IN:=FALSE
PT:=
Q :=
ET:=
SPA M003
M012: NOP 0
U E 1.4
= #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
SET
S M 40.3
S M 41.6
R M 42.2
SPA M003
M013: NOP 0
U M 40.3
NOT
= #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
SET
R A 1.5
S A 1.4
S M 41.6
SPA M003
M014: NOP 0
U E 1.5
= #TEMP1
S M 41.6
U #TEMP1
U #TEMP0
NOT
BEB
SET
R M 41.4
R M 41.6
L 0
T MW 110
BEA
M003: NOP 0
CALL FC 1
IO0:=MW110
SET
R M 41.6
BEA
M015: NOP 0
CALL FC 90
 
Ich denke du brauchst etwas in dieser Art:
1. Den neuen Zustand M015, in dem du wartest, bis der Greifer die digitale Rückmeldung (E2.1) gibt, wenn er in Position ist,
L MW 110
SPL M001
SPA M002
...
SPA M014
SPA M015
M001: NOP 0

2. Im Zustand M008 eine Erweiterung für Greifer öffnen:
M008: NOP 0
...
BEB
UN E 1.3
=A2.2 \\ Greifer öffnen
SPB M015 \\ <- Diese Stelle musst du so abändern, dass nicht mehr auf M015 gesprungen wird, sondern in MW 110 der Zustand M015 eingestellt wird
SET
S M 40.5
S M 41.6
SPA M003

Aus dem Code ist mir nicht ganz klar, wie man den Zustand M015 korrekt einstellt. Normalerweise wird der Zustand scheinbar immer über die Sequenz S... S... SPA M003 -> FC1 weitergeschaltet. Ich hoffe, du hast hier mehr Infos, wie das laufen muss. Außerdem fällt mir auf, dass in der Sprungleiste M003 fehlt, was man in den Werten in MW110 berücksichtigen muss!

3. eine Erweiterung für den neuen Zustand M015:
M015: NOP 0
U E2.1 \\Greifer in Position
FP M55.5 \\Flankenmerker
U M55.5
CC FC90 \\Reset

Ich hoffe, das hilft dir weiter, um auf die richtige Lösung zu kommen.
 
Zurück
Oben