S7 Graph - Transition übersprungen

Rumpel25

Level-2
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

In meiner ersten ersten programmierten S7 Graph Ablaufkette tritt neuerdings eine eigenartige Erscheinung auf, die ich nicht behoben bekomme.

Aus meinem Ausgangsschritt heraus, werden verschiedene Ketten aktiviert über verschiedene Übergänge. Die Übergänge sind nur erfüllt, wenn am angeschlossenen OP ein Taster betätigt wird. Weitere Verarbeitugen des Bits in der SPS sind nicht vorhanden.
Ist eine Kette durchlaufen worden, erfolgt ein Rücksprung in den Ausgangschritt. Es tritt nun das Problem auf, dass wenn eine Schrittkette durchlaufen ist und der Ausgangsschritt aktiviert ist, sofort die Ablaufkette wieder in den ersten Schritt einer Kette springt.obwohl die Transition nicht erfüllt ist! Es wird immer die die gleiche Kette aktiviert, obwohl der Ausgangsschritt aktiv bleiben müsste. Dieses Problem tritt total unregelmäßig auf. manchmal klappt es, meistens jedoch leider nicht.
Selbst wenn ich per INIT_SQ den Ausgangsschritt setze, springt die Ablaufkette automatisch weiter.

Mir gehen langsam die Ideen aus, wo das Problem liegen könnte.
Vielleicht habt ihr ne Idee.

Zum Einsatz kommt eine CPU 314.
FB Graph Bausteineinstellungen: Anwenderdefiniert, Standard FC (Fc72), Strukturfelder. Graph FB ist 7,0kB groß und der InstDB rund 5kB. In der S7 Hilfe bin ich auch nicht wirklich fündig geworden.

Ein paar Tipps zur Fehlersuche sind willkommen.
 

Anhänge

  • Kette.JPG
    Kette.JPG
    86,1 KB · Aufrufe: 104
Zuviel Werbung?
-> Hier kostenlos registrieren
So ganz kann ivh Dir auf grund des einen Bildes nicht folgen.

Achte aber darauf das Du wenn Du aus einer Kette die andere startest, das diese andere kette zum Beispiel diese Startsignal wieder zurücknimmt.
In den Startschritt der Hauptkette darf erst zurückgeschaltet werden, wenn z.B. alle Startbits an die ketten auf 0 sind.

Dadurch wird ein Handshake zwischen den Ketten erzielt.
Soll aus der hauptkette immer nur eine andere Kette aufgerufen werden, oder können mehrere Gleichzeit laufen?
 
So ganz kann ivh Dir auf grund des einen Bildes nicht folgen.

Achte aber darauf das Du wenn Du aus einer Kette die andere startest, das diese andere kette zum Beispiel diese Startsignal wieder zurücknimmt.
In den Startschritt der Hauptkette darf erst zurückgeschaltet werden, wenn z.B. alle Startbits an die ketten auf 0 sind.

Dadurch wird ein Handshake zwischen den Ketten erzielt.
Soll aus der hauptkette immer nur eine andere Kette aufgerufen werden, oder können mehrere Gleichzeit laufen?

Die Abläufe sind so ausgelegt, dass immer nur eine Kette aktiv sein kann, je nachdem welchen Ablauf der Bediener betätigt. Startet dieser Bediener Kette 1 dann ist die Transition für Kette 1 erfolgt. Startet er den Ablauf 5, dann ist es Kette 5, usw. Nach dem starten durch den Bediener wird sofort das Startbit rückgesetzt.

Die Anlage lief bis letztes Jahr noch mit 4 alternativen verzweigungen. Die Ketten sind eigentlich nur dazu da, damit ne gewisse Übersichtlichkeit der kompletten Ablaufsteuerung noch gegeben ist... Mit 4 ketten gab es auch keine Probleme. Nun sind 2 weitere Ketten integriert worden und nun tritt erst dieses Problem auf.

Um das genauer zu erklären. Man durchläuft zum Beispiel die Kette 2 fehlerfrei und alles funktioniert. Am Ende wird dann der Ausgangsschritt wieder aktiviert. Man durchläuft dann z.B die Kette 5 und am Ende sollte ja wieder der Ausgangsschritt aktiv sein, jedoch wird dieser Schritt einfach übersprungen und genau eine Kette aktiviert. Die Transition zum Starten dieser Ablaufkette war aber überhaupt nicht ok, da kein Bedienereingriff erfolgte. Dieses "ungewollte" aktivieren der Schrittkette ist wie gesagt total unvorhersehbar.

Ich hoffe nun ist es vielleicht etwas verständlicher.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast Du denn in jeder Kette am Ende überwacht, das der Start definitiv nicht mehr anliegt ?.

Schalte mal T_Perm ein, wie im Bild mit z.B. bei mir Merker M0.6.
(Dieser wird bei mir im OB100 immer auf 0 gesetzt)
Das Einschalten von T_Perm kostet Ablaufgeschwindigkeit in der Kette, und sollte nur zur Diagnose eingeschaltet werden. Dadurch kannst Du die Transitionen in der Hauptkette beobachten ob diese schalten auch wenn der Schritt nicht aktiv ist.
 

Anhänge

  • t_perm.jpg
    t_perm.jpg
    27,4 KB · Aufrufe: 40
Nimm einfach in jede der Transitionen am Anfang noch ein Testmerker-Bit auf, das nie gesetzt ist (per &-Verknüpfung). Dann muss ja am Anfang angehalten werden und du kannst dir in Ruhe ansehen warum immer durchgeschaltet wird ;-)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

grundlegend will ich einfach mal fragen ob du unter Bausteineigenschaften
"Gesichertes Schalten" aktiviert hast? Damit sollte immer nur ein Schritt zum aktuellen Zeitpunkt aktiv sein. Vieleicht loest dass schon dein Problem.
mfg
 
Zurück
Oben