TIA Übersetzen von Grafcet in S7-Graph: Mehrere Ketten/Initialschritte und Zwangsbefehle

Qwisp

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Übersetzen von Grafcet in S7-Graph: Mehrere Ketten/Initialschritte und Zwangsbefehle

Hallo liebe Community,
ich darf im Rahmen meiner Ausbildung einen Ablauf, der mir in Grafcet ausgehändigt wurde, auf einer SPS in der Sprache S7-Graph realisieren.
Ich verwende als Software Tia V15 mit Step 7 Professional V15.

Mein Problem ist, dass der Ablauf, den ich programmieren möhte, in Grafcet nicht in einer, sondern in 3 Ablaufketten dargestellt ist (mit 3 Initialschritten). Zwei der Grafcets wirken dabei über Zwangsbefehle auf den 3ten Graph, und frieren ihn ein / zwingen ihn in einen bestimmten Schritt.

Ich würde das Programm gerne 1 zu 1 in S7-Graph programmieren, allerdings wieß ich nicht, wie ich mehrere, an sich unabhängige Schrittketten in S7-Graph in einem Funktionsbaustein realisieren soll. Ich hatte angenommen, dass es möglich ist, auch in einem FB mit S7-Graph mehrere Schrittketten zu programmieren, da ich in mehreren Quellen gelesen hatte, dass S7-Graph eine mögliche Implementierung der Grafcet Norm darstellt.

Also hier meine Frage:

Wie realisiere ich mehrere unabhängige Schrittketten in EINEM FB in S7-Graph?
Ich habe schon gesehen, dass ich mehrere Schrittketten in einem Funktionsbaustein machen kann. Wenn ich eine neue Kette erzeuge, ist deren erster Schritt dann automatisch auch ein Initialschritt?

Mittels Setzen der lokalen Variable "INIT_SQ" des Bausteins lässt sich die Kette in den Initialzustand versetzen. Wie funktioniert das dann, wenn es mehrere Ketten in einem FB gibt? Werden die alle in ihren jeweiligen Initialzustand gezwungen? Falls ja, wie lassen sich nur einzelne Ketten in den Initialzustand versetzen?

Desweiteren gibt es in Grafcet ja auch Zwangsbefehle, mit der eine Ablaufkette in einem bestimmten Schritt festgehalten werden kann. Wie lassen sich diese in S7-Graf umsetzen?
 
Zuletzt bearbeitet:
Hallo Qwisp,

ich weiß das willst du nicht hören, aber das was du da beschriebst würde ich so definitiv in 3 Graph FBs machen. Um eine Schrittkette einzufrieren kann man z.B. den Interlock verwenden. Den kann man auch von außen beschalten.

Gruß Christian
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Christian.


Wenn ich deinen Lösungsansatz verfolge (also nur eine Ablaufkette pro FB), dann müsste ich jeweils die komplette Ablaufkette im FB einfrieren.
Wie würdest du das mit dem Interlock machen? Ich dachte, der wäre nur dazu da, um Bedingungen dafür aufzustellen, ob eine Aktion ausgeführt wird, wenn ein Schritt aktiv ist.
Um eine Kette, die als einzige in einem FB drinne ist, abzuschalten, hätte ich einfach die Variable "OFF_SQ" des Funktionsbausteins von außen auf true gesetzt. Das wäre aber nur meine erste Idee gewesen. Deine Idee mit dem Interlock interessiert mich trotzdem!
 
Um eine ganze Schrittkette einzufrieren gab es einen Eingang am FB. Da ich bei meinem aktuellen Arbeitgeber kein Graph habe kann ich das leider nicht nachgucken. Kann schons ein, dass ich mich mit dem Interlock da jetzt vertue und es der OFF_SQ war. Ich habe bei meinem vorherigen Arbeitgeber sehr viel mit Graph gemacht und da negative Erfahrungen mit mehreren SK in einem FB gemacht. Es ist zudem unübersichtlich.

Du kannst zwischen den FBs zum Beispiel mit Handshakesignalen arbeiten oder die eine SK verwaltet eine Art Schrittfreigabe. Diese kannst du wahlweise an den Eingang des anderen FB packen (dann würde sie auf jeden Schritt wirken) oder du packst sie an bestimmte Transitionen als Bedingung um nur bestimmte Schritte zu verriegeln.

In der Graph Hilfe waren die Attribute/Eingänge sehr gut beschrieben.
 
Wie realisiere ich mehrere unabhängige Schrittketten in EINEM FB in S7-Graph?
Kette öffnen, links im Fenster Navigation auf Ketten Rechtsklick > neue Kette einfügen

ch habe schon gesehen, dass ich mehrere Schrittketten in einem Funktionsbaustein machen kann. Wenn ich eine neue Kette erzeuge, ist deren erster Schritt dann automatisch auch ein Initialschritt?

Grundsätzlich kannst du jeden beliebigen Schritt als Initialschritt deklarieren (Auch mehrere) Rechtsklick auf den Schritt und Häkchen Initialschritt setzen.
Mit Init_SQ werden dann alle Initialschritte aktiv...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei meiner Ausbildung damals (und bei weiteren Generationen danach) hat das Programm generell nicht Funktioniert, wenn man das Grafcet 1:1 in eine SPS umsetzt ;-D

Ich habe das damals ganz klassisch in FUP umgesetzt. Aber wie gesagt: Funktioniert hat es nie.

In der Aufgabenstellung waren auch diverse Grafcets mit 2 Schritten, die Schrittabhängig Merker gesetzt haben. Ich bin mir nicht sicher, ob das das Programm lesbarer macht, wenn man ein simples RS-Glied in ein Grafcet mit 2 Schritten umsetzt :-D

Vielleicht hast du ja mal die genaue Aufgabenstellung für uns.

Bei sehr geringen sowie bei extrem hoher Komplexität der Schrittketten finde ich andere Programmiersprachen sinnvoller. S7-Graph benutzen wir generell nicht.
 
Hallo Qwisp,

mit der Software Grafcet-Studio könnte man den Grafcet 1:1 abzeichnen und dann in die SPS übertragen.

Die notwendigen Schritte:


  1. SPS für Grafcet-Studio vorbereiten d.h. die SPS wird "Grafcet-fähig" gemacht.
    Bei einer S7-300 kann der Grafcet-Treiber (Grafcet-Engine) direkt mit Grafcet-Studio in die SPS geladen werden.
    Bei einer S7-1200/1500 muss der Grafcet-Treiber (Grafcet-Engine) einmalig mit dem TIA-Portal in die SPS geladen werden.
  2. Mit Grafcet-Studio die Symbolik festlegen und den Grafcet abzeichnen.
  3. Neues Device anlegen und die Verbindungsparameter (IP-Adresse) festlegen.
  4. Grafcet mit Grafcet-Studio in die SPS laden.
  5. Mit der Beobachten Funktion kann die Grafcet-Logik beobachtet bzw. debuggt werden.

Bei Schritt 1 ist für S7-1200/1500 das TIA PORTAL notwendig, bei den folgenden 2 Schritten nicht mehr.
Man kann eine kostenlose 30-Tage-Vollversion hier kostenlos anfordern:
https://www.mhj-online.de/demo-anfordern

Hier kann man die Grafcet-Bausteine für die S7-1200/1500 herunterladen:
https://www.mhj-wiki.de/de/grafcet-studio/grafcet-in-geraet-uebertragen/grafcet-engine-1200-1500

Hier die Vorgehensweise für eine S7-1200/1500:
https://www.mhj-wiki.de/de/grafcet-studio/grafcet-in-geraet-uebertragen/s7-1500

Hier die Vorgehensweise für eine S7-300:
https://www.mhj-wiki.de/de/grafcet-studio/grafcet-in-geraet-uebertragen/s7-300-s7-400

Hier ein Link mit Tipps zum schnelleren Abzeichnen von Grafcet-Plänen:
https://www.mhj-wiki.de/de/grafcet-studio/grafcet-drawing-tips

Bei Probleme können Sie sich gerne an den Support von MHJ-Software wenden: support@mhj.de

Gruß
 
Du kannst zwischen den FBs zum Beispiel mit Handshakesignalen arbeiten oder die eine SK verwaltet eine Art Schrittfreigabe. Diese kannst du wahlweise an den Eingang des anderen FB packen (dann würde sie auf jeden Schritt wirken) oder du packst sie an bestimmte Transitionen als Bedingung um nur bestimmte Schritte zu verriegeln.

In der Graph Hilfe waren die Attribute/Eingänge sehr gut beschrieben.

Die sind tatsächlich sehr gut beschrieben, danke :).


Grundsätzlich kannst du jeden beliebigen Schritt als Initialschritt deklarieren (Auch mehrere) Rechtsklick auf den Schritt und Häkchen Initialschritt setzen.
Mit Init_SQ werden dann alle Initialschritte aktiv...

Würde aber auch bedeuten, dass jeweils blos alle Schrittketten auf den Initialschritt setzen kann, nicht jedoch einzelne Schrittketten in einem FB. Ich denke, dann mach ich's doch in mehreren FBs.


In der Aufgabenstellung waren auch diverse Grafcets mit 2 Schritten, die Schrittabhängig Merker gesetzt haben. Ich bin mir nicht sicher, ob das das Programm lesbarer macht, wenn man ein simples RS-Glied in ein Grafcet mit 2 Schritten umsetzt :-D

Bei so simplen Sachen geb' ich dir recht.

Vielleicht hast du ja mal die genaue Aufgabenstellung für uns.
Es ist gerade Prüfungsvorbereitung, deshalb bin ich mir unsicher, ob ich hier Aufgaben veröffentlichen darf.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Um was für eine Art von Prüfung handelt es sich denn?

Berufsausbildung? Studium?

Wenn es eine normale Ausbildung ist, dann sind die GRAFCETs eh nur drin, weil es so ein moderner Begriff ist und nicht weil es Sinn machen würde, die Aufgabenstellung in Schritte zu gliedern.
 
Um eine Kette, die als einzige in einem FB drinne ist, abzuschalten, hätte ich einfach die Variable "OFF_SQ" des Funktionsbausteins von außen auf true gesetzt. Das wäre aber nur meine erste Idee gewesen.
Vorsicht, OFF_SQ deaktiviert alle Schritte im Baustein. Danach muss eine initialisierung statt finden.
Schrittkette einfrieren wäre "HALT_SQ" bzw Ausgänge abschalten mit "ZERO_OP". (Diese eingänge sind nicht standardmäßig vorhanden und müssen händisch eingetrage werden oder der Baustein mit maximalen Parametern angelegt werden. Siehe auch Siemens Hilfe "Bausteinschnittstelle")

Wenn alle 3 Abläufe in einem FB statt finden, und eine Davon gesperrt werden soll, würde ich in der übergeordneten Kette eine Temp Variable setzen/rückstzen und in der untergeordneten dieses bit einfach in die Weiterschaltbedingungen einfügen.
 
Zurück
Oben