Forum: Mikrocontroller und Digitale Elektronik Schrittkette


von Paul Dierkes (Gast)


Lesenswert?

Hallo Forum, ich möchte eine Schrittkette in Step 7 programmiern. Nun 
ist es doch so, dass man dazu für jeden Schritt ein SR-Glied nimmt. 
Gesetzt wird eine Schritt vom vorangegangenen und rückgesetzt vom 
nachfolgendem Schritt. nur werden dann nicht die Aktionen der Schritte 
zurückgesetzt?
Ich frage, weil ich in meinem ersten Schritt die Reglerfreigabe für 
meinen Umrichter (über dig. Eingänge, von LTI) setzen will. Wird die 
aber im nächsten Schritt zurückgesetzt, ist das weitere Programm 
hinfällig. Die Frage ist jetzt ob es eine Möglichkeit gibt einzelne 
Aktionen konstant aufrechtzuhalten?

Um Tipps dankbar!
Paul

von Daniel (erfolgstyp)


Lesenswert?

Das ist schon ewig her...
Da gabs doch ein Tool mit dem man die Schrittketten gemacht hat oder?

von Paul Dierkes (Gast)


Lesenswert?

Daniel Münzi schrieb:
> Das ist schon ewig her...
> Da gabs doch ein Tool mit dem man die Schrittketten gemacht hat oder?

Meinst du zeichnen? Das geht z.B. mit Microsoft Visio.

von Dominik (Gast)


Lesenswert?

...S7-GRAPH ist bei Siemens nicht mehr stand der Dinge...

Warum baust Du das Programm nicht mit "Freigaben" für die jeweiligen 
Antriebe auf und den Prozess als solches packst Du in die Schrittkette? 
Mit den SR-Gliedern bist Du doch stark flexibel!

von Paul Dierkes (Gast)


Lesenswert?

Ich meine z.B. bei dem Beispiel im Link. Hier wird doch A1 in Schritt 2 
gesetzt und in Schritt 5 rückgesetzt. Wird nicht der Ausgang des 
SR-Glieds schon in Schritt 3 zurückgesetzt? Irgendwie hab ich da einen 
Denkfehler.

http://www.directupload.net/file/d/3635/hyy5p92a_jpg.htm

von heinz (Gast)


Lesenswert?

Ich hab mir das Bsp. nicht angeschaut

Wenn Du das so machst
u e0.0
s M1.0 // schrittmerker
s a0.0 // der bleibt stehen bis r a0.0

u m1.0
u e0.1
s m1.1 // naechster schritt
r m1.0
= a0.1 // der verschwindet im naechsten schritt

ist doch alles klar?

von Paul Dierkes (Gast)


Lesenswert?

heinz schrieb:
> Ich hab mir das Bsp. nicht angeschaut
>
> Wenn Du das so machst
> u e0.0
> s M1.0 // schrittmerker
> s a0.0 // der bleibt stehen bis r a0.0
>
> u m1.0
> u e0.1
> s m1.1 // naechster schritt
> r m1.0
> = a0.1 // der verschwindet im naechsten schritt
>
> ist doch alles klar?

AWL ist ungewohnt ;). ich dachte mir das so wnn jetzt a0.0 durch das 
aktivieren des nächsten Schrittes rückgesetzt wird (wie oben 
beschrieben), dann ist das doch nicht geeignet für mein Bsp.?

von Hilfe (Gast)


Lesenswert?

Ok du hast da etwas falsch verstanden. Die Schrittkette wird mit 
SR-Gliedern aufgebaut. Alles andere was in mehreren Schritten aktiv sein 
soll bekommt extra eigene SR-Glieder.

Außerdem muss beim nächsten Schritt die Transition und der vorherige 
Schritt abgeschlossen sein. Sonst können zwei Schritte aktiv sein.

von Hilfe (Gast)


Lesenswert?

Beispiel Schrittkette:

U SM_1 //Abfrage ob Schrittmerker 1 = 1
UN SM_5 //Abfrage ob Schrittmerker 5 = 0
U S1 //Abfrage Transition
UN S2 //Abfrage Transition
S SM_2 //Schrittmerker 2 setzen

U SM_3 //nächster Schritt?
R SM_2 //rücksetzte Schritt



U SM_2 //Abfrage ob Schrittmerker 2 = 1
UN SM_1 //Abfrage ob Schrittmerker 1 = 0
U S3 // Abfrage Transition
S SM_3 //Schrittmerker 3 setzen

U SM_4 //nächster Schritt?
R SM_3 //rücksetze schritt

...
Beispiel Ausgänge:

U SM_1
S A1

U SM_4
R A1

U SM3
= A2

von Paul Dierkes (Gast)


Lesenswert?

Hilfe schrieb:
> Ok du hast da etwas falsch verstanden. Die Schrittkette wird mit
> SR-Gliedern aufgebaut. Alles andere was in mehreren Schritten aktiv sein
> soll bekommt extra eigene SR-Glieder.
>
> Außerdem muss beim nächsten Schritt die Transition und der vorherige
> Schritt abgeschlossen sein. Sonst können zwei Schritte aktiv sein.

Ja ich denke das wars. Also setze ich einen Ausgang einfach wiederrum 
mit einem SR-Glied an einem Schritt und setzte ihn an einem anderen 
Schritt wieder zurück.

von Hilfe (Gast)


Lesenswert?

Ja genau du hast es verstanden. Durch die Überprüfung ob der vorherige 
Schritt aktiv ist und ob der Schritt vor dem vorherigen Schritt nicht 
aktiv ist sorgt dafür das ein Schritt nicht übersprungen werden kann.

von Possetitjel (Gast)


Lesenswert?

Paul Dierkes schrieb:

> Also setze ich einen Ausgang einfach wiederrum mit einem
> SR-Glied an einem Schritt und setzte ihn an einem anderen
> Schritt wieder zurück.

Das kann man so machen - das ist dann ein speichernder Ausgang.

Es gibt aber auch nichtspeichernde Ausgänge; die bekommen einfach
ein ODER mit vielen Eingängen; für jeden Schritt, in dem der
Ausgang aktiv sein soll, wir der zugehörige Schrittmerker mit
dem ODER vorm Ausgang verbunden.

Hat beides seine Berechtigung.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Schrittketten sind am einfachsten in SCL zu schreiben. Der Schrittmerker 
ist eine einfache Integer Zahl und nicht viele Einzelmerker.

CASE iStep OF
0: // Schritt 0
  IF Bedingung THEN
    iStep := 1;
  END_IF;
1: // Schritt 1
....
END_CASE;

Einfach, übersichtlich und es ist garantiert immer nur ein Schritt 
aktiv.
Auch überspringen von Schritte und Verzweigungen sind kein Problem.

von abc.def (Gast)


Lesenswert?

Schön, das ganze AWL-Zeug. Ja, ich weiß, mein Prof hat gesagt (vor 25 
Jahren): Ingenieure programmieren in AWL, andere in FUP, und was KOP 
ist, kann man gar nicht sagen.
Praxis habe ich so erlebt: Da stehst Du nachts um 3 an der Anlage und 
nix geht. PG steht auf einer Kiste, 4m entfernt. Und dann sollst Du in 
Status online noch sehen, ob der Ini, den Du jetzt betätigst, in der 
Steuerung an geht.
Habe dann das binäre Zeug nur noch in KOP gemacht, das verstehe ich auch 
noch nachts um 3. (bei UNEOMUAUEUEUNA=A wird es schon schwerer)
Schrittkette: Wird im Neustart-OB initialisiert, läuft dann pro Schritt 
1 Merker. Da es sein kann, daß ein Schritt unmittelbar durchläuft (wenn 
die Bedingung schon zu Beginn erfüllt ist) ist das R und S der Ausgänge 
nicht unbedingt zu empfehlen. Habe meist alle Schritte, die einem 
Ausgang akivieren, verODERt. Ist auch anschaulich im Status online. 
Aufpassen nur, wenn man später einen Schritt einfügt (einen Merker 
nehmen, der noch frei ist. Reihenfolge innerhalb des Byte spielt keine 
Rolle)
Die damit gewonnennen Ausgangssignale sind aber auch Merker! In einem 
zuletzt aufgerufenen Sicherheits-PB werden die Merker in Ausgänge 
übertragen. Aber gegengeprüft, ob das überhaupt sein darf (z.b X-Achse 
nur dann vor, wenn Y-Achse in Grundstellung weil es sonst kracht)
Ausgängen nur an einer Stelle etwas zuweisen! (R S ist eine Ausnahme, 
aber gut, wenn es im gleichen NW passiert). Bei Merkern am besten auch 
so.
Nummer eines Schrittes kann man auch als Zahl in einem byte ablegen (256 
Schritte pro byte möglich), muß dann aber mit byte-Vergleichn arbeiten. 
Ist auf einem Controller besser, und in der SPS auch möglich; 
Geschmackssache.

von Jan M. (m_o)


Lesenswert?

abc.def schrieb:
> Da es sein kann, daß ein Schritt unmittelbar durchläuft (wenn
> die Bedingung schon zu Beginn erfüllt ist) ist das R und S der Ausgänge
> nicht unbedingt zu empfehlen.

Dieser Fall wurde doch schon erläutert.

>> Die Überprüfung ob der vorherige
Schritt aktiv ist und ob der Schritt vor dem vorherigen Schritt nicht
aktiv ist sorgt dafür das ein Schritt nicht übersprungen werden kann.

Sonst geht man das Problem an der falschen Stelle an. Bei einer 
Schrittkette dürfen Schritte nicht übersprungen werden. Das mit den S-R 
Glied macht man bei Ausgängen die mehrere Schritte an sein soll.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.