Step 7 SPS Funktion Start- Taster

Zuviel Werbung?
-> Hier kostenlos registrieren
Man baut im OB1 ein Richtimpuls
zb.so (gibst merere möglichkeiten)
un m100.0
= m 100.1
u m100.1
s m100.0

m 100.0 muss nicht remanent sein.(ist auch meistens so vorieigestelt)
Dann hat man beim einschalten von SPS eine 1 (m 100.1) für ein Zyklus
Und damit kann man Schritt 0 Setzen (am Besten ist Schritt 0 Setzdominant RS) und alle Andere Zurücksetzen.

Alles natürlich vorshlag! und Anlagenabhendig.
Für so etwas gibt es den OB 100
Der wird vor dem erstem OB 1 Zyklus ein mal durchlaufen

OB 100
SET
S M 100.1

OB1 (im letzten Netzwerk)
SET
R M100.1
 
Vielen Dank an alle für die tolle Unterstützung, ich bin schon
einiges voran gekommen, denke ich im Vergleich zu gerstern
früh;)

Danke an hucki hat mir sehr geholfen.
Nun habe ich gesehen, für Aufgaben, welche ein
elekotromangetisches Ventil am Zylinder haben--> 2 Stellungen ohne Rückstellfeder
somit Grundstellung erforderlich, dass das auch mit RESET geht.

Wie genau kann ich die Grundstellung über RESET realisieren?
Ich habe es gestern Abend so versucht:
Bei den Schritten an den SR- Baustein bei R--> den Folgeschritt und Reset.

Wie sieht dann Schritt 1 aus?
Ist dann bei der Startbedingung einfach am ersten Baustein
ein ODER mit --> letzter Schritt oder Reset ?

Danke:)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie genau kann ich die Grundstellung über RESET realisieren?
Ich habe es gestern Abend so versucht:
Bei den Schritten an den SR- Baustein bei R--> den Folgeschritt und Reset.
Hast Du Dir das wirklich überlegt?
Soll ein Schritt wirklich nur zurückgesetzt werden, wenn der Folgeschritt aktiv ist UND Reset gedrückt wird? Oder vlt. doch eher, wenn eins davon zutrifft?
;)


Wie sieht dann Schritt 1 aus?
Ist dann bei der Startbedingung einfach am ersten Baustein
ein ODER mit --> letzter Schritt oder Reset ?
Wie in meinem vorigen Post erklärt, befindet sich Deine Schrittkette in Grundstellung, wenn kein Schrittmerker aktiv ist.
Du löschst also alle Schrittmerker und fertig.

Die Aktionen für die Grundstellung legst Du wieder über Deine Zuweisungen für die Ausgänge fest. Da die beiden Zylinder auch gleichzeitig laufen können, mußt Du hier nichts weiter beachten. (Komplizierter wird's, wenn die Zylinder nacheinander laufen müßten.)



Versuch' immer das Programm so einfach wie möglich aufzubauen. Die ganzen Initialisierungen, die hier aufgeführt wurden, wirst Du bestimmt irgendwann mal brauchen. Aber nicht hier. Die Programme müssen keine eierlegende Wollmilchsau sein, sondern sollen nur ihren Zweck erfüllen.
Je einfacher der Programmcode, desto einfacher ist das Programm zu warten und um so weniger Fehlerquellen beinhaltet es.
 
Stimmt, es muss eindeutig ein ODER sein und kein UND.

Bei dieser Aufgabe muss ich jetzt jedoch eine Grundstellung als Schritt 1 realisieren?
Wenn ja, was ich annehme, wie wäre der Ansatz für eine Grundstellung über Reset als Eingang?

Dankeschön.Aufgabe.JPG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke bei dieser Aufgabe stehen die Zylinder
nicht von alleine in der hinteren Stellung.
Sie können ja anfangs auch z.B. einer ausgefahren und einer
eingefahren sein.
 
Die Zylinder können aber nur 2 Positionen einnehmen.
In Deinem vorigen Programm hast Du in bestimmten Schritten die Anweisung zum Ausfahren zugewiesen. Die Rückstellung erfolgte von allein.
Bei der neuen Aufgabe erfolgt die Rückstellung, wenn kein Ausfahren vorliegt.

Der Schritt 1 (Start) kann hier auf Grund der Transitionen nicht erfolgen, bevor die Grundstellung (beide Zylinder eingefahren) vorliegt.
(Initialisierungsschritte sind meistens nur nötig, wenn Aktionen nacheinander erfolgen müssen. Und oft auch dann nicht.)


Du siehst, meist denkt man viel zu kompliziert. Das einfache Denken ist die eigentliche Kunst beim Programmieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie muss ich eine Aufgabe wie Beispiel 1 & 2, die ich
als Bilder in diesem Thema reingestellt habe anfangs angehen?

Mein Problem ist, dass mein Warteschritt immer der letzte Schritt ist,
wenn ich meine Programme schreibe.
Das kommt daher dass ich immer das Bild anschaue wie die
Anlage im Ruhezustand ist und dann fang ich halt an Schritt
für Schritt den Text abzuarbeiten.
In Folge dessen ist mein letzter Schritt immer der Warteschritt.
 
Angenommen die Analge steht, beide Zylinder sind vorne & ich starte mein Programm.

Der Zylinder 1A bleibt doch vorne, bis ich aktiv den Ausgang 1M2 auf 1 setze.
Der Zylinder 2A bleibt doch vorne, bis ich aktiv den Ausgang 2M2 auf 1 setze.

Hab ich einen Denkfehler?
Ja.
Du hast doch oben eine Zuweisung, z.B. wenn Schritt 1 oder 2 oder 3 gleich Zylinder ausfahren.
Jetzt muss Dein Programm im nächsten Netzwerk die Aufgabe der Feder übernehmen: Wenn nicht Zylinder ausfahren gleich einfahren. (Nebenbei hast Du hier dadurch noch gleich 'ne Verriegelung der beiden Ausgänge, da nicht beide gleichzeitig aktiv sein können.)
Somit wird immer, wenn nicht Schritt 1, 2 oder 3 aktiv ist, der Zylinder eingefahren - und ist beim Einschalten oder nach einem Reset einer der 3 Schritte aktiv?

Und solange die Zylinder noch nicht eingefahren sind, sorgen die Transitionen von Schritt 1 dafür, das dieser nicht gestartet werden kann.

Und immer daran denken: Das Programm wird ständig (zyklisch) von oben nach unten abgearbeitet, nicht wie ein PC-Programm nur einmal!


Mein Problem ist, dass mein Warteschritt immer der letzte Schritt ist,
wenn ich meine Programme schreibe.
Das kommt daher dass ich immer das Bild anschaue wie die
Anlage im Ruhezustand ist und dann fang ich halt an Schritt
für Schritt den Text abzuarbeiten.
In Folge dessen ist mein letzter Schritt immer der Warteschritt.
Das ist genau das, was Dir Godi mitteilen wollte.

Du beginnst absolut richtig. Du fragst bei Schritt 1 die Ausgangslage und den Starttaster (Flanke) ab. Wenn beides zusammen vorliegt, kann die Schrittkette starten.

Deine Schrittkette läuft komplett durch.
Jetzt machst Du nur den "Fehler", am Ende einen Warte- = Grundstellungsschritt einzufügen. Den einfach weglassen. Dafür die Transitionen, die Du zum Setzen dieses Schrittes nutzt, direkt zum Rücksetzen des vorigen Schrittes benutzen. Somit ist nach Beendigung des nunmehr letzten Schrittes kein Schrittmerker mehr aktiv. Du bist also wieder in der Ausgangslage, wie direkt nach dem Einschalten.
 
Zuletzt bearbeitet:
okay.
Ist jetzt mein Programm zu Aufgabe 2 Druckeinrichtung.
Ich komm leider nicht drauf, wie das letzte Netzwerk 4 dann aussehen
müsste.
Danke für die Hilfe auch bisher!! NW1_2.JPGNW3_4.JPGNW5_8.JPG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der letze Schritt wird nicht durch einen weiteren Schritt zurückgesetzt, sondern durch eine Bedingung = Transition, z.B. Zylinder x hinten.

Zylinder einfahren wird (bei dieser Aufgabenstellung) nicht durch einen Schritt ausgelöst. Was macht denn die Rückstellfeder bei der 1. Aufgabe?
Die prüft nicht, ob irgend ein Schritt aktiv ist, sondern ob der Ausgang für's Ausfahren angesteuert wird oder nicht! Genau das muss auch die Zuweisung für's Einfahren machen.
Das bedeutet auch, das erst die Zuweisung für's Ausfahren erfolgt und danach die für's Einfahren. Das funktioniert zwar aufgrund der zyklischen Abarbeitung des Programms auch anders 'rum, aber für's Lesen des Programms ist das schwieriger.


PS: Das Benennen der Netwerke nicht vergessen!
 
Zuletzt bearbeitet:
Wenn Du das Archiv des Programm's hier hochlädst, würde ich ausnahmsweise eine entsprechende Korrektur mal vornehmen, damit Du eine entsprechende Vorstellung bekommst. (Komplett alles neu zu machen, hab' ich jetzt keine Lust. )
 
Ich hab' nur das Bild und da spricht nichts dagegen, das beide Zylinder auch gleichzeitig fahren (Zylinder 2 aus, Zylinder 1 ein). Deshalb hab' ich mal Schritt 2 und 3 zusammengefaßt.
Theoretisch könnte man hier sogar Schritt 3 auch noch wegfallen lassen. Also Schritt 2 direkt mit "Zylinder 2 vorne" beenden.
Außerdem hab' ich mal noch eine Abschaltung der Spulen bei Erreichen der jeweiligen Endstellung mit reingenommen.
Und kann es sein, das für die 4 Ausgänge eigentlich nur Impulsausgaben (= Timer) gefordert sind?


 

Anhänge

  • Druckein V2.zip
    32,7 KB · Aufrufe: 9
Zuletzt bearbeitet:
Hallo, es spricht auch nach dem Aufgabentext nichts dagegen,
Z1 im gleichen Schritt einzufahren, in welchem Z2 ausfährt.

Danke, jetzt seh ich langsam das Potential meine Programme
sauberer zu schreiben und mir somit unnötige Zwischenschritte
zu ersparen.
Toll, deine Hilfe!:s12:
Dankeschön:)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei der obigen Version bleiben die Zylinder aber nie ausgefahren. Wenn das doch benötigt wird, darf das Einfahren z.B. bei Zylinder 1 nicht über "NICHT AUSFAHREN" erfolgen, sondern über z.B. "NICHT (Schritt 1 ODER Schritt 2)".
 
Zuletzt bearbeitet:
Zurück
Oben