Student braucht Hilfe

Gory

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen, bin neu hier und hab eigentlich nen kleines Problem, aber ich komm einfach nicht drauf wie ichs lösen kann.

War heute das erste mal in unserem tollen SPS-Labor und meinem Kollegen und mir wurde das Projekt "SPS-Wand" zugewiesen. So weit so gut. Es handelt sich um ne alte S5, genaueres kann ich nicht sagen, wird aber auch wohl nicht von Bedeutung sein. Nun zum Prob.: auf dieser "SPS-Wand" befinden sich mehrere Zylinder und Motoren und der erste Teil unserer Aufgabe ist es : Zylinder1 ausfahren lassen, halten, dann Zylinder2 ausfahren- einfahren und wieder ausfahren zu lassen. Sind die Zylinder ausgefahren berühren sie nen ind. näh. Schalter. Für die meißten hier wohl nen Witz, aber mein Kollege und Ich, die zum ersten mal mit SPS in Kontakt kamen standen vorm Nervenzusammenbruch :D . Wir schafften es einfach nicht dass der Zylinder2 als er Raus dann wieder Rein fuhr, ihn nochmals rausfahren zu lassen. ich hoffe hier kann mir jmd weiterhelfen und Denkanstöße bzw nen Beispiel-Programm geben wie ich dieses banale Problem in den Griff bekomme.

mfg Gory
 
Wir schafften es einfach nicht dass der Zylinder2 als er Raus dann wieder Rein fuhr, ihn nochmals rausfahren zu lassen. ich hoffe hier kann mir jmd weiterhelfen und Denkanstöße bzw nen Beispiel-Programm geben wie ich dieses banale Problem in den Griff bekomme.

mfg Gory

Probiert es doch mal mit einer Ablaufsteuerung --> Wenn Z2 ausgefahren dann Z2 einfahren und dann wieder ausfahren....grob gesagt

Gruss
 
Ja wir sollen es mit einer Schrittkette machen, versuchten es mit Zähler, Timer etc. aber irgendwie wollte nichts funktionieren, zylinder1 ausfahren und halten war kein problem -> SR-Glied genommen, Zylinder2 raus,rein ging auch mit SR-Glied, nur schaffen wirs ned damit er wieder rausfährt ... irgendwie fehlen uns da die perepherien da wir ja nur einen Ind.näh.Schalter pro zylinder haben... mir platzt der Kopf wenn ich mir darüber gedanken mache :rolleyes:
 
Schau dir mal das Beispiel an (Mein letzter Post). Das geht vom reinen Code her fast ganauso in S5. Die Schrittmerker könnt ihr nutzen, um die Zylinder ausfahren bzw. einfahren zu lassen. Zylinder 2 wird über zwei Schrittmerker aus- und eingefahren.

Bsp.

Code:
NW1 -Ende der SK
U M 21.6
= M21.7 (Endemerker der SK)
R M21.6
R M20.0 (Laufmerker)
 
...
 
NWX - Schritt 4 Zylinder 2 ausfahren 2. Mal
U M20.4
U E 1.2 (Zylinder 2 ist ausgefahren)
S M20.5
R M20.4
 
NWX - Schritt 3 Zylinder 2 einfahren 1. Mal
U M20.3
U E 1.1 (Zylinder 2 ist eingefahren)
S M20.4
R M20.3
 
NWX - Schritt 2 Zylinder 2 ausfahren 1. Mal
U M20.2
U E 1.2 (Zylinder 2 ist ausgefahren)
S M 20.3
R M20.2
 
NWX - Schritt 1 Zylinder 1 ausfahren
U M20.1
U E1.0 (Zylinder 1 ist ausgefahren)
S M20.2 
R M20.1
 
NWX - Start
U M10.0 (Start)
U M 10.1 (Grundstellung der Zylinder)
UN M21.7 (Endemerker)
UN M20.0 (Laufmerker)
S M20.0 (Laufmerker SK)
S M20.1
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Anregung

Also hinter den SR Baustein mal die Aus-Einfahrkette gesetzt und quasi Schrittkette in der Schrittkette verkapseln.
Also Zylinder ausfahren->einfahren->eingefahren->über Zähler Freigabe zum wieder ausfahren. Nach ablauf von X Zyklen über einen Zähler der X+1 mit runter Gezählt wird in den nächsten Schritt überleiten.
Eine Idee ohne selbst ausgetestet obs geht.
Halt einfach mal eine Überlegung wie es evtl zur Lösung führt.
 
@ Ralle, hab noch nie AWL geschrieben, seh ich das richtig dass du SR-Glieder meinst mit ner UND verknüpfung an S ?
 
Na ja nicht ganz. Man kann Merker an beliebiger Stelle im Programm
setzen bzw. rücksetzen.

U E0.0
S M20.0

setzt den Merker 20.0 auf 1
M20.0 bleibt solange auf 1 bis man mit

U E0.1
R M20.0

diesen wieder auf 0 zurücksetzt.

Ein SR-Glied sieht in S7-AWL so aus:

U E0.0
S M20.0
U E0.1
R M20.0
NOP 0 //NOP 0 kann man auch weglassen, dient nur der Darstellbarkeit in KOP/FUP

Der Code, den ich dir im letzen Post aufgeschrieben habe bildet eine Merker-Schrittkette.
Ein Merker nach dem anderen wird jeweils durch seinen Vorgänger aktiviert
und von seinem Nachfolger deaktiviert. Der jeweils nächste Schrittmerker
wird immer dann aktiviert, wenn der Vorgang, der durch den aktiven
Schritt ausgeführt werden soll erfolgt ist. Das wird durch die Endlagen
der Zylinder sichergestellt. Schritt 1 fährt Zylinder 1 aus (M20.1 muß den
Ausgang des Zylinder 1 schalten) und wird beendet, wenn die Endlage
"Zylinder 1 ausgefahren" erreicht ist. Dann wird Schritt 2 aktiviert (S M20.2) und Schritt 1 deaktiviert (R M20.1).
Die Schrittkette beginnt im letzten Netzwerk! Das stellt sicher, daß ein
Schritt immer mindestens 1 Zyklus lang aktiv ist, selbst wenn seine
Weiterschalt-Bedingung aus irgend einem Grunde schon erfüllt ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine Frage hab ich noch,wo im ganzen Programm mach ich die Merker-Schrittkette hin ? zuerst die ganzen "Ausfahr-Bedingungenen", dann die Meker-Schrittkette direkt darunter ?
 
Zuletzt bearbeitet:
Ich hab immer einen Baustein mit der reinen Schrittkette (kann bei S5 ja auch ein SB sein, muß aber nicht) und einen Baustein mit der Ansteuerung der Merker für Hand/Automatik, Beschaltung der Ausgänge, Fehlerüberwachung der Ausgänge etc.

Nimm z.Bsp. den SB 10 für die Schrittkette und den PB10 für die Beschaltung der Ausgänge.

Im OB 1 ruft du dann die beiden Bausteine auf, erst SB10, dann PB10.

Oder du rufst im OB 1 den PB10 auf und am Anfang vom PB10 den SB10.
 
Zurück
Oben