Step 7 Graph7 Reihenfolge in der Bearbeitung [Transition oder Aktion]

DaMeista

Level-2
Beiträge
75
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Sportfreunde,

nach verschiedenen Erfahrungen und Aussagen von Kollegen habe ich mal eine grundlegende Frage an das Forum:

Ist die Reihenfolge der Bearbeitung in einem Graph7-Schritt zwingend fest gelegt?

Soll heißen:
  • Wird immer erst geschaut, ob die Transition erfüllt ist und dann ggf. sofort in den Folgeschritt geschaltet ohne die Aktionen auszuführen?
  • oder
  • Wird immer zuerst die Seite mit den Aktionen behandelt und dann geschaut ob die Transition erfüllt ist?
  • oder
  • lässt sich die Reihenfolge der Bearbeitung nicht bestimmt vorhersagen?

Hintergrund:
Hier das corpus delicti

Transition vs Aktion.JPG

Die statische Lokalvariable "Erg_eingetragen" ist das Ziel der Untersuchung.

Funtioniert der Schritt so:
  1. Der Schritt wird aktiv
  2. Die Aktionen werden behandelt
  3. die statische Lokal-Variable "Erg_eingetragen" wird auf FALSE gesetzt
  4. Der FC wird aufgerufen
  5. Als Ergebnis setzt der FC ggf. die statische Lokalvariable "Erg_eingetragen"
  6. Die Transition "Erg_eingetragen" wird abgefragt
  7. Der Folgeschritt wird ggf. aktiv

Oder funktioniert der Schritt so:
  1. Der Schritt wird aktiv
  2. die Transition wird behandelt
  3. Ist die statische Lokalvariable "Erg_eingetragen" aus einem vorhergehenden Zyklus noch TRUE wird sofort der Folgeschritt aktiv
  4. Selbst wenn hier die programmierten Aktionen noch ausgeführt würden, so hätte das Ergebnis des FC "Erg_eingetragen" keinen Einfluss mehr auf die Transition.

Oder noch schlimmer:
  • Die Reihenfolge ist nicht vorhersehbar [logisches SOMETIMES]

Tja das ist die große Frage:
Wer darf zuerst - oder wer war zuerst da - das Ei oder das Huhn?
Ich bin sehr gespannt auf Eure Kommentare.

Dass man dieses Konstrukt grundsätzlich anders lösen könnte und dem Dilemma durch einen vorgeschalteten zusätzlichen Schritt entgehen könnte ist schon klar.
Darum geht es auch gar nicht.
Zum Zwecke der Beweisführung möchte ich eben nur ein für alle mal klar gestellt wissen, in welcher Reihenfolge der Graph die Anweisungen abarbeitet.

Viele Grüße und vielen Dank im Voraus.
DaMeista
 
Hallo,
ich bin nun nicht der S7Graph Spezi, aber würde sagen, du hast die Funktionsweise schon richtig beschrieben:

  1. Der Schritt wird aktiv
  2. Die Aktionen werden behandelt
  3. die statische Lokal-Variable "Erg_eingetragen" wird auf FALSE gesetzt
  4. Der FC wird aufgerufen
  5. Als Ergebnis setzt der FC ggf. die statische Lokalvariable "Erg_eingetragen"
  6. Die Transition "Erg_eingetragen" wird abgefragt
  7. Der Folgeschritt wird ggf. aktiv

Die Bearbeitung des Schrittes kann so schnell sein, dass du es mit "Beobachten" nicht erkennst...

Gruß
DerMatze
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt bei der Graph eine Einstellung "Schritte überspringen".
Diese bewirkt, dass bei erfüllter Transitionen die Aktion nicht aufgerufen wird.

So gesehen, sind 2 deiner Varianten möglich.

Ich habe mir aus diesem Grund angewöhnt, dass ich immer Ergebnisse entweder bei der Initialisierung oder im Schritt zuvor resete.

Gruß
Dieter
 
Hallo Dieter,

vielen Dank für Deinen Hinweis!
Ich hatte gar nicht daran gedacht diese Variante auch noch zu betrachten.
Die Checkbox in den Ketteneigenschaften ist aber nicht angewählt.

Grüße
DaMeista
 
Ich weiss ja nicht was Du da bezwecken willst, aber das funktioniert nicht, eventuell mal sporadisch.

Du setzt ERG_eingetragen ja permanent zurück (R), man kann hier nicht sehen was der Baustein macht, aber normaler Weise sollte ERG_eingetragen mit "S1 R" beim aktivieren zurückgesetzt werden.
Dann erfolgt der Aufruf. Aber da gibt es keinen weiteren abzweig, so das die Kette stehen bleibt bis ERG_eingetragen = True ist, also wäre hier eventuell N besser.

Nur mal so, da ich die anderen Funktionen hier nicht sehe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo DaMaista,

deine Vermutung ist korrekt: 3.Ist die statische Lokalvariable "Erg_eingetragen" aus einem vorhergehenden Zyklus noch TRUE wird sofort der Folgeschritt aktiv
Denn eine Transition "wartet" nicht auf den Schritt. Abhilfe: in der Transition -1 Abfrage ob die Lokalvariable "Erg_eingetragen" = True ist wäre vom Vorteil.

spro1000
 
Gelöst!

Liebe Gemeinde,

nachdem sich die Wogen etwas geglättet haben, bleibt jetzt kurz Zeit diesen Fall aufzulösen.

Zunächst vielen Dank für eure Antworten und Tipps!

Ich habe unabhängig von den Ergebnissen hier im Forum einen Service-Request bei SIEMENS los getreten und wurde in meiner Annahme bestätigt.
Wie von "DerMatze" schon ganz richtig festgestellt ist folgende Reihenfolge zutreffend:

  1. Der Schritt wird aktiv
  2. Die Aktionen werden behandelt
  3. die statische Lokal-Variable "Erg_eingetragen" wird auf FALSE gesetzt
  4. Der FC wird aufgerufen
  5. Als Ergebnis setzt der FC ggf. die statische Lokalvariable "Erg_eingetragen"
  6. Die Transition "Erg_eingetragen" wird abgefragt
  7. Der Folgeschritt wird ggf. aktiv

Natürlich ist der Einwand von "Blockmove" auch zutreffend, denn die beschriebene Variante funktioniert mit den Baustein-Standard-Einstellungen, sprich mit abgewählter Einstellung "Schritte überspringen".
Folgender, ganz einfacher "Versuchsaufbau" verdeutlicht die Arbeitsweise:

Beweis.JPG

Vielen Dank an alle die sich beteiligt haben!


Viele Grüße aus dem sommerlichen Kassel
Michael
 
Zurück
Oben