TIA In Transition auf in Schritt gesetztes bit warten

meikelneit

Level-2
Beiträge
151
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Schönen guten Tag,

ich habe hier eine Graph-Schrittkette vor mir, die kann etwas das verstehe ich nicht. Hier wird in einem Schritt ein xxx.done bit gesetzt, und auf das selbe Bit Negiert in der Transiotion gewartet, welches durchaus aus einer anderen Schrittkette zurück gesetzt wird, und das Funktioniert auch. Aber ich verstehe das von der Logik her nicht, in den Ketteneingenschaften ist kein Haken bei Schritte überspringen sonst könnte ich es ja nach vollziehen.

Also aktiviert der doch den Schritt, bearbeitet alle Anweisungen setzt das bit und kann somit nie eine Gültige Transition haben??!!

PS: Das Projekt ist in TIAV14 geschrieben
 
Ist das zum Ende/Anfang der Schrittkette? Ich würde vermuten das das irgendeine "Unterschrittkette" ist und die immer nur durchlaufen soll wenn das Done von außen FALSE gesetzt wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Selbst da frage ich mich wie das dann vom Zyklus her ablaufen soll. Klar wird von außen das Bit zurück gesetzt, aber in der Schrittkette selbst wird ja dann noch immer der Zyklus durchlaufen, das Bit wird im Schritt gesetzt und dann in die Transition geschaut. das Dürfte doch niemals Wahr sein.

Hier mal ein Screenshot:
Unbenannt1.JPG

Das läuft ganz normal Zyklisch durch, ist die P&P Schritkette für eine Prüfstation.
 
Ich glaube da gab es etwas im Ablauf. Erst wird die Transition geprüft und dann wird erst der Schritt aktiv/abgearbeitet oder so. Ist bei mir schon etwas her. Hab nur noch im Kopf das die Reihenfolge nicht ganz ersichtlich war aber irgendwie schon Sinn ergeben hat.
 
In der TIA-Hilfe habe ich dazu nichts gefunden, aber im Step 7 Classic stand dort, dass die Transition vor den Aktionen ausgewertet wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

ich hantiere auch mit Graph rum. Ich würde auch denken, dass es so nicht funktionieren sollte. Zumindest käme ich nicht auf den Gedanken, es so zu programmieren.
Ich habe es immer so gehalte, dass ich für den Unterschrittkettenaufruf ein Bit mit "S1" (kommender Schritt) auf "FLASE" gesetzt habe. In der nachfolgenden Transition habe ich dann auf ein "TRUE" gewartet, das die Unterschrittkette setzen musste.

In der TIA-Hilfe habe ich dazu nichts gefunden, aber im Step 7 Classic stand dort, dass die Transition vor den Aktionen ausgewertet wird.

Das muss aber auch explizit dazu geschrieben werden. Denn weder meikelneit noch ich würden das ohne Hilfe so verstehen.

VG

MFreiberger
 
Ich würde auch vermuten das dass bei TIA anders gehandhabt wird. Aus folgendem Grund, da gibt es extra eine Einstellung in den Eigenschaften der Graphkette selbst, da gibt es einen Haken der da heißt "Schritt Überspringen" und sagt: Wenn die vorangehende Transition und die Nachfolgende TRUE sind, wird der Schritt übersprungen, diese Funktion machte für mich dann keinen Sinn wenn der Standartmäßig zuerst in die Transition guckt.

Außer, das er Standartmäßig dann den Schritt sammt Transition im Selben Zyklus bearbeitet und auch wieder verlässt, so das dann aber folgendes zu beobachten sein müsste, er verlässt den Schritt mit der Transtion auf false obwohl das bit auf true sitzt, das beobachte ich mal, kann ich aber echt nicht glauben.
 
Zuletzt bearbeitet:
Ich würde auch vermuten das dass bei TIA anders gehandhabt wird. Aus folgendem Grund, da gibt es extra eine Einstellung in den Eigenschaften der Graphkette selbst, da gibt es einen Haken der da heißt "Schritt Überspringen" und sagt: Wenn die vorangehende Transition und die Nachfolgende TRUE sind, wird der Schritt übersprungen, diese Funktion machte für mich dann keinen Sinn wenn der Standartmäßig zuerst in die Transition guckt.

Den Haken gab es so auch schon im Step7 Classic
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mal kurz eine Testkette erstellt.
Test-Graph-Transition.png

Wenn ich das Bit "Start" setze, bleibt die Kette im Schritt 2 stehen. Würde also bedeuten, dass erst die Aktion ausgeführt wird.
Wenn ich aber das Bit "Trans" extern auf false setze, schaltet die Kette jedesmal weiter. Das würde wiederum bedeuten, dass erst die Transition ausgeführt wird.
Ist also, meiner Meinung nach, nicht eindeutig feststellbar!
 
Hi...,
Nach meiner Erfahrung mit Graph wird:

1. Der Interlock bearbeitet
2. Die Schrittaktionen und zwar in ihrer Reihenfolge von oben nach unten
3. Die Transition bearbeitet

Ist die Kette im Tippbetrieb ist Vorsicht mit der Transitionsreihenfolge in Alternativverzweigungen geboten.
In verschiedenen Ketten Versionen wird im Tippbetrieb die Transition zur Weiterschaltung markiert und auch dann verzweigt, die bei Schrittakivierung erfüllt war.
Eine erneute Prüfung findet erst dann statt wenn keine Transition bei Schrittaktivierung aktiv war.
Hier also etwas mit Vorsicht...
 
Moin NBerger,

[..]Nach meiner Erfahrung mit Graph [..]

das ist ja das Problem: Irgendwie scheint Niemand eine eindeutige Aussage/Beschreibung zu haben. Jeder macht so seine Erfahrungen!?

Ich habe folgendes Phänomen:
Immer, wenn die CPU gestartet wird, wird der Initialschritt gesetzt! Das passiert sogar, wenn ich den Graph-Baustein gar nicht aufrufe (FALSE vor den ENABLE) oder den INIT-Eingang fest mit FALSE beschreibe. Irgendwer meinte, dass es mit der Bausteinremanenz zu tun hätte. Aber auch die Änderung dieser Einstellung hatte keinen Effekt.

Ich habe noch keine Möglichkeit gefunden das zu umgehen. Daher habe ich den INIT-Eingang als erste Transition hinter meinen Initialschritt programmiert.

VG

MFreiberger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Graph hat eh so ein paar Eigenheiten die mich echt nerfen... (Von den Problemchen die man so umgehen muss mal abgesehen... davon fangen wir hier mal nicht an...)

Bei Siemens scheint Graph von einer eigenständigen Gruppe entwickelt zu werden die sich eh nicht an TIA-Vorgaben hält. Im Umgang mit Graph fällt mir das immer wieder auf!!!

- Hatte schon mehrere Service-Requests wegen Verhaltensfehlern die dann auch mit einem /dem nächsten Update behoben waren, dann in der nächsten Version/Servicepack aber wieder drin waren.
- Also drumrum arbeiten.
Daher habe ich den INIT-Eingang als erste Transition hinter meinen Initialschritt programmiert.
Was bringt das für einen Unterschied? Wird die Kette nicht auch mit OFF initialisiert?
EDIT: Fasse in meinen Projekten den Kettenaufruf eigendlich nie an, jetzt schon seit Jahren nicht.
 
Moin NBerger,

Was bringt das für einen Unterschied?

Das macht einen gewaltigen Unterschied. Ich initialisiere die Kette immer mit "INIT_SQ". Wenn die CPU neu startet und dadurch der INIT-Schritt gesetzt wird, läuft die Kette los. Wenn ich in der ersten Transition nach dem INIT-Schritt als Bedingung INIT_SQ = true habe, wartet sie, bis "INIT_SQ" true ist.
Durch INIT_SQ wird der INIT-Schritt initialisiert, aber durch den CPU-Neustart auch. Aber mit der Transistion verhindere ich ein "loslaufen" der Kette, ohne, dass "INIT_SQ" = true ist.


Wird die Kette nicht auch mit OFF initialisiert?

Ich hoffe nicht!


VG

MFreiberger
 
Arbeitest du vielleicht mit dem minimalen oder Sandard-Parametersatz?
Dann ist das ja OK.

Mit SQ_OFF werden all Schritte deaktiviert Ein Init_SQ ist dann notwendig um den/die Initialschritt/e zu setzen. (das geschieht bei dir wohl auch mit CPU-Start)

Arbeite mit dem maximalen Parametersatz und habe aufgrund dessen auch die Möglichkeit die Kette anzuhalten und wieder zu starten.
 
Zurück
Oben