Schrittkette

Deep Blue

Level-2
Beiträge
431
Reaktionspunkte
17
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, da ich es noch nie in so einem Stil realisiert habe möchte ich mich vorher mal bei Euch Anwendern schlau machen. Folgende Aufgabe muss ich umsetzen: Eine Waschanlage für Fahrkörbe (Bäckerei) soll nach erreichen der Grundstellung und Anwahl des Waschprogrammes (3 Stk.) Ihre Arbeit ausüben indem Sie mit Reinigungsdüsen an der Seite einen bestimmtem Weg hoch fährt und nach Zeit X stehen bleibt für eine Zeit Y. Danach fährt Sie wieder ein Stück hoch und bleibt für Zeit Y stehen. Das ganze geht dann bis zum erreichen des Endpunktes der Düsen. Zum Schluss fahren die Düsen wieder ganz nach unten und die Anlage geht in Grundstellung damit der Fahrkorb entnommen werden kann. Es ist nichts dramatisches aber den Weg, welche ich jetzt gehen würde halte ich für nicht elegant. Eine Schrittkette ist hier wohl genau das Richtige. Diese habe ich aber noch nie programmiert da ich in der SPS nur selten Änderungen durchführe. Mein Zuhause ist eher VB oder SQL.
Software: Step 7 Ver. 5.3 + SP 3

Im Vorherein schon einmal Danke.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schrittketten (die gängigsten Varianten):

- Graph
- Merker mit Setzen / Rücksetzen
- SPL (AWL-Befehl siehe Step7 Hilfe)
- in SCL z.B. mit CASE - Befehl


Mfg
Manuel
 
Mit der Vorkenntnis würde ich auch SCL in betracht ziehen.
Habe mit SCL noch nichts gemacht, würde für dieses Projekt dann doch lieber mit AWL programmieren um es auch für andere lesbar zu halten.
Welche Step7 Ver. 5.3 und welche Variante?
Ausgabestand: K5.3.3.0 S7/M7/C7 Proffesional

Habe über die Suchfunktion dann doch noch ein Bsp. anhand der S7 200 gefunden. Frage dazu: was ist dort der Unterschied zwischen einem SM 0.1 und einem "normalen" M 0.1 ?

P.S. Schön das es solch ein Forum gibt und sich doch so viele daran beteiligen. Danke !
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei der S7-200 sind SM... irgendwelche System-Merker.
Es gibt viele Systemmerker/Byte/Wörter.

Der von dir angesprochene SM0.1, ein Initialisierungspuls, der ist nur im ersten Zyklus aktiv.
Der M0.1 ist ein ganz normaler frei verwendbarer Merker.

Mfg
Manuel
 
Hier mal mein 1. Gehversuch

Damit ich nun halbwegs zufrieden und in dem Glauben sein kann, das soweit alles ok ist, stelle ich mal meinen Versuch hier rein. Könnte ja auch für andere "Frischling" wie mich mit Gehversuchen in der Schrittkette nützlich sein.

FUNCTION "Programm Backstikken" : VOID
TITLE =Programm 1
VERSION : 0.1
BEGIN
NETWORK
TITLE =Start Schrittkette - Schritt 0
//Schrittmerker M 50.1 - 50.6 löschen
U "Initalisierung Schrittk.";
UN "Sammelstörung";
U "Grundstellung";
S "Schrittmerker 0";
R "Schrittmerker 1";
R "Schrittmerker 2";
R "Schrittmerker 3";
R "Schrittmerker 4";
R "Schrittmerker 5";
R "Schrittmerker 6";
NETWORK
TITLE =Schritt 1
//Programmstart, Düsen heben, Waschmittel auftragen etc.
U "Schrittmerker 0";
U "B 21";
S "Schrittmerker 1";
R "Schrittmerker 0";
NETWORK
TITLE =Schritt 2
//oben angekommen, nach kurzer Pause wieder runter
U "Schrittmerker 1";
U "B 03";
L DB1.DBW 0;
SE "Timer 1";
S "Schrittmerker 2";
R "Schrittmerker 1";
NETWORK
TITLE =Schritt 3
//unten angekommen, alles aus und warten auf T 2
U "Schrittmerker 2";
U "B 02";
S "Schrittmerker 3";
R "Schrittmerker 2";

NETWORK
TITLE =Schritt 4
//nach Ablauf T 2 geht es wieder hoch
U "Schrittmerker 3";
U "Timer 2";
S "Schrittmerker 4";
R "Schrittmerker 3";

NETWORK
TITLE =Schritt 5
//oben angekommen, nach kurzer Pause wieder runter
U "Schrittmerker 4";
U "B 03";
L DB1.DBW 0;
SE "Timer 1";
S "Schrittmerker 5";
R "Schrittmerker 4";

NETWORK
TITLE =Schritt 6 - Ende Schrittkette
//unten angekommen, alles aus
U "Schrittmerker 5";
U "B 02";
S "Schrittmerker 0";
R "Schrittmerker 5";

END_FUNCTION

Ist das so in Ordnung ?
 
m.E. hast du ein paar kleine Fehler darin ...

Code:
TITLE =Schritt 2
//oben angekommen, nach kurzer Pause wieder runter
U "Schrittmerker 1"; 
U "B 03"; 
L DB1.DBW 0; 
SE "Timer 1"; 
[COLOR=red]U "Timer 1";[/COLOR] 
S "Schrittmerker 2"; 
R "Schrittmerker 1";

Code:
NETWORK
TITLE =Schritt 4
//nach Ablauf T 2 geht es wieder hoch
U "Schrittmerker 3"; 
U "Timer 2";    [COLOR=red]// wo wir der gestartet ?
[/COLOR]S "Schrittmerker 4"; 
R "Schrittmerker 3";

Code:
NETWORK
TITLE =Schritt 5
//oben angekommen, nach kurzer Pause wieder runter
U "Schrittmerker 4"; 
U "B 03"; 
L DB1.DBW 0; 
[COLOR=red]SE "Timer 3";   // du hattest hier T1 stehen - mann kann nicht 2x mit unterschiedlichen Bedingungen den gleichen Timer starten ...
U "Timer 3"; 
[/COLOR]S "Schrittmerker 5"; 
R "Schrittmerker 4";

Es fehlt noch die Zuordnung deiner Schrittmerker zu den Ausgängen.
...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Finale Version

Hier mal meine finale Version.
Hatte den 1. Versuch noch nicht beendet, das hier sollte aber alles sein.

Code:
FUNCTION "Programm Backstikken" : VOID
TITLE =Programm 1
VERSION : 0.1
BEGIN
NETWORK
TITLE =Start Schrittkette - Schritt 0
//Schrittmerker M 50.1 - 50.6 löschen
      U     "Initalisierung Schrittk."; 
      UN    "Sammelstörung"; 
      U     "Grundstellung"; 
      S     "Schrittmerker 0"; 
      R     "Schrittmerker 1"; 
      R     "Schrittmerker 2"; 
      R     "Schrittmerker 3"; 
      R     "Schrittmerker 4"; 
      R     "Schrittmerker 5"; 
      R     "Schrittmerker 6"; 
NETWORK
TITLE =Schritt 1
//Programmstart, Düsen heben, Waschmittel auftragen etc.
      U     "Schrittmerker 0"; 
      U     "B 21"; 
      S     "Schrittmerker 1"; 
      R     "Schrittmerker 0"; 
NETWORK
TITLE =Schritt 2
//oben angekommen, nach kurzer Pause wieder runter
      U     "Schrittmerker 1"; 
      U     "B 03"; 
      S     "Schrittmerker 2"; 
      R     "Schrittmerker 1"; 
NETWORK
TITLE =Schritt 3
//unten angekommen, alles aus und warten auf T 2
      U     "Schrittmerker 2"; 
      U     "B 02"; 
      S     "Schrittmerker 3"; 
      R     "Schrittmerker 2"; 
 
NETWORK
TITLE =Schritt 4
//nach Ablauf T 2 geht es wieder hoch
      U     "Schrittmerker 3"; 
      U     "Timer 2"; 
      S     "Schrittmerker 4"; 
      R     "Schrittmerker 3"; 
 
NETWORK
TITLE =Schritt 5
//oben angekommen, nach kurzer Pause wieder runter
      U     "Schrittmerker 4"; 
      U     "B 03"; 
      S     "Schrittmerker 5"; 
      R     "Schrittmerker 4"; 
 
NETWORK
TITLE =Schritt 6 
//unten angekommen, alles aus
      U     "Schrittmerker 5"; 
      U     "B 02"; 
      S     "Schrittmerker 6"; 
      R     "Schrittmerker 5"; 
 
NETWORK
TITLE =Ende Schrittkette - Aktivieren Schritt 0
      U     "Schrittmerker 6"; 
      S     "Schrittmerker 0"; 
      R     "Schrittmerker 1"; 
      R     "Schrittmerker 2"; 
      R     "Schrittmerker 3"; 
      R     "Schrittmerker 4"; 
      R     "Schrittmerker 5"; 
      R     "Schrittmerker 6"; 
NETWORK
TITLE =T 1
      U     "Schrittmerker 2"; 
      O     "Schrittmerker 5"; 
      L     DB1.DBW    0; 
      SE    "Timer 1"; 
 
NETWORK
TITLE =T 2
      U     "Schrittmerker 4"; 
      L     DB1.DBW    2; 
      SE    "Timer 2"; 
NETWORK
TITLE =Initialisierung der Schrittkette
      U     "Initalisierung Schrittk."; 
      O     "B 17"; 
      O     "Sammelstörung"; 
      S     "Schrittmerker 0"; 
      R     "Schrittmerker 1"; 
      R     "Schrittmerker 2"; 
      R     "Schrittmerker 3"; 
      R     "Schrittmerker 4"; 
      R     "Schrittmerker 5"; 
      R     "Schrittmerker 6"; 
NETWORK
TITLE =Ansteuerung Drehteller
      U     "Schrittmerker 1"; 
      U     "Schrittmerker 2"; 
      U     "Schrittmerker 4"; 
      U     "Schrittmerker 5"; 
      =     "KA 00"; 
 
NETWORK
TITLE =Ansteuerung Düsen heben
      U     "Schrittmerker 1"; 
      U     "Schrittmerker 4"; 
      =     "KA 01"; 
NETWORK
TITLE =Ansteuerung Düsen senken
      U     "Schrittmerker 2"; 
      U     "Schrittmerker 5"; 
      =     "KA 02"; 
NETWORK
TITLE =Ansteuerung Heizung Ein
      U     "Schrittmerker 1"; 
      U     "Schrittmerker 2"; 
      =     "KA 03"; 
NETWORK
TITLE =Ansteuerung Waschmittel 1 Ein
      U     "Schrittmerker 1"; 
      U     "Schrittmerker 2"; 
      =     "KA 07"; 
 
NETWORK
TITLE =Ansteuerung Hochdruck Ein
      U     "Schrittmerker 4"; 
      U     "Schrittmerker 5"; 
      =     "KA 04"; 
END_FUNCTION
 
Zuletzt bearbeitet:
Danke !!! Hab es gleich geändert und werde es Morgen mal auf Test_SPS aufspielen. Fürs erste recht herzlichen Dank an Alle ! :D
 
Zurück
Oben