# Was ist der Initialschritt



## rahnschule (17 Januar 2005)

Sehr geehrte Damen und Herren, 

ich befasse mich ausbildungstechnisch mit der SPS von Siemens.


Ich würde gern wissen was es mit dem Initialschritt  auf sich hat. Wie kann man ihn erklären und welche Dinge löst er aus. 

Können sie mir da vielleicht weiter helfen?

Vielen Dank im vorraus


----------



## Heinz (17 Januar 2005)

Es ist der Startschritt der Schrittkette.


----------



## RMA (17 Januar 2005)

Trotz Name, MUSS der Initialschritt NICHT der erste Schritt in der Schrittkette sein. Wenn ich mich richtig erinnere kann man auch mehere Initialschritte definieren.

Das wesentliche an dem Initialschritt ist das beim ersten Aufruf des FBs, wird er automatisch aktiv, ohne vorherige Bedingungen abfragen zu müssen.


----------



## Heinz (17 Januar 2005)

@RMA
Stimmt, er muss nicht der erste Schritt sein. 
Aus Verständnisgründen habe ich es so geschrieben. Graph 7 kann glaube ich nur einen Initschritt haben.


----------



## RMA (17 Januar 2005)

Nach kurzer Suche kann ich nicht finden wo ich das explizit gelesen habe, dass man mehrere Initialschritte definieren kann, aber in folgende FAQ bei Siemens Support sprechen sie von Initialschritten in der Mehrheit. Da unter Umständen mehrere Schritte gleichzeitig aktiv sein können, wäre es mindestens wünschenswert sie als Initialschritte definieren zu können.



> FRAGE:
> Wie kann ich es vermeiden, dass die in einer Aktion zugewiesenen Operanden hängen bleiben, obwohl der Schritt nicht mehr aktiv ist?
> 
> ANTWORT:
> ...


----------



## Heinz (17 Januar 2005)

Ich kann zwar in Graph 7 V5.0 mehrere Init Schritte in einer Kette definieren, aber die Folge ist die Fehlermeldung 





> Fehler >> Zu viele Initialschritte


Wie soll den Step 7 entscheiden, welcher der richtige Init-Schritt ist?



> Falls dies nicht der Fall sein sollte, überprüfen Sie bitte das im folgenden beschriebene Verhalten.
> Dabei müssen Sie beachten, dass beim Laden des S7-Graph Funktionsbausteins mit dem Instanzdatenbaustein im RUN-Zustand der CPU die gerade aktiven Schritte nicht deaktiviert werden, sondern nur die Initialschritte der Schrittkette gesetzt werden.


Das gilt, wenn Du mehrere Ketten in einem FB hast...


----------



## RMA (17 Januar 2005)

> Wie soll den Step 7 entscheiden, welcher der richtige Init-Schritt ist?



Es muss kein einziger Schritt sein, wenn man mehrere Schritte gleichzeitig aktiv hat, was durchaus erlaubt ist, geht es nur darum das man hier im Program einspringen darf. Ein Beispiel wäre ein Programm wo man mitten drin verschiedene Operationen synchronisieren musste. Dann wäre es durchaus sinnvoll, unter Umständen, hier in dem Program einzuspringen. Dies würde wahrscheinlich nur den Fall sein wenn man mehrere parallele Ketten hatte im Program. Ich muss zugeben, dass ich mich nicht vorstellen kann wann es sinnvoll sein könnte zwei unterschiedliche Initialschritte zu haben in derselben Kette.



> Das gilt, wenn Du mehrere Ketten in einem FB hast...



hab ich - 21 parallele Ketten.

Ich habe es ausprobiert und konnte ohne Problem drei Initialschritte definieren, darunter zwei in derselben Kette. (Und auch danach abgespeichert.)

Ich habe V5.2 + SP3, aber ich hätte nicht ein solch wichtiger Unterschied erwartet zwischen V5.0 & V5.2, komisch!


----------



## Heinz (17 Januar 2005)

Zum Initschritt:
Der Initschritt wird z.B: nach dem Laden des InstanzDB's, oder durch den Parameter INIT_SQ=1 aktiv. 
Bei mehreren Initschritte muss einschieden werden welcher der initschritte aktiv wird. Sonst weißt Du nicht auf welche Transsition gewartet wird.



> Ich kann zwar in *Graph 7 V5.0* mehrere Init Schritte in einer Kette definieren, aber die Folge ist die Fehlermeldung Zitat:
> Fehler >> Zu viele Initialschritte



Ich würde den Kettenentwurf so aufbauen:
Initschritt als "Startschritt" und den nur einmal je Kette.
Gibt es mehrere "Einsprünge" in die Kette, so würde ich die vom Initschritt aus Starten lassen. Quasi als Verteiler..

Aber hier gibt es diverse Ansichten und Kundenwünsche, wie eine Kette aufzubauen ist.

Ich kenne nicht welche S7 Du einsetzt, aber 21 Ketten in einem FB erscheint mir auf dem ersten Blick sehr viel.


----------



## RMA (17 Januar 2005)

Eigentlich habe ich in meine Schrittketten den ersten Schritt immer als (einzige) Initialschritt deklariert, ich wollte nur darauf hinweisen, dass die anderen Möglichkeiten existieren.



> Der Initschritt wird z.B: nach dem Laden des InstanzDB's, oder durch den Parameter INIT_SQ=1 aktiv.
> Bei mehreren Initschritte muss einschieden werden welcher der initschritte aktiv wird. Sonst weißt Du nicht auf welche Transsition gewartet wird.



Stimmt in Prinzip aber es ist keine Entscheidung nötig weil mehrere Schritte dürfen gleichzeitig ausgeführt werden.



> Ich kenne nicht welche S7 Du einsetzt, aber 21 Ketten in einem FB erscheint mir auf dem ersten Blick sehr viel.



Glücklicherweise steht mir für dieses Projekt eine 317-2 DP zur Verfügung, damit habe ich reichlich Speed und Speicher vorhanden. Trotzdem musste ich die grösste Schrittkette in zwei teilen weil ich sonst über die 256 Aktion/Transitionen gekommen wäre. Der grösste Teil ist trotzdem über 42kB groß! Ich habe ihn einmal unter AWL angeschaut und habe mich richtig erschrocken!


----------



## Heinz (18 Januar 2005)

@RMA
Stimmt es können mehrere Schritte aktiv sein.
Jedoch viel Spass beim Programmieren, das auch nur die richtigen Schritten zur richtigen Zeit aktiv sind   sowie dass die Maschine / Anlage auch immer passend zur Kette steht....

Bei den kleineren Maschinen von S7 kommt man schnell an Speichergrenzen. Eine Kette mit ca. 80 Schritten habe ich nicht in eine kleine C7 geschaft zu laden (mit PDIAG). Also die Kette umgebaut und vor Ort dann in eine 318 mit OP getauscht...


----------



## RMA (18 Januar 2005)

> Jedoch viel Spass beim Programmieren, das auch nur die richtigen Schritten zur richtigen Zeit aktiv sind  sowie dass die Maschine / Anlage auch immer passend zur Kette steht....



Ja, würde ich selber nicht wagen, das Leben ist schon spannend genug   aber wer weiß ob es jemand irgendwann hilft, zu wissen, dass es doch möglich ist.



> Bei den kleineren Maschinen von S7 kommt man schnell an Speichergrenzen. Eine Kette mit ca. 80 Schritten habe ich nicht in eine kleine C7 geschaft zu laden (mit PDIAG). Also die Kette umgebaut und vor Ort dann in eine 318 mit OP getauscht...



Stimmt, S7Graph ist ein echter Resourcenfresser aber für das richtige Projekt, ist das Geld für den größeren CPU locker gedeckt vom Zeitersparnis. In meinem Fall sind die 21 Module (fast) identisch aufgebaut (nur unterschiedlich groß) und müssen den selben Ablauf synchronisiert ausführen. Mit Cut&Paste hatte ich das Program in ein Bruchteil der Zeit fertig was sonst nötig gewesen wäre. Das Program ist auch SO viel übersichtiger, dass jeder der nach mir etwas ändern muss, sich sehr viel leichter zu recht finden wird.


----------



## Heinz (18 Januar 2005)

Das ist der einer der Vorteile von Graph...


----------

