Step 7 S7-300 mit komischen FB-Verhalten

Kreativ

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,

Leider stehen wir mit unserem Latein am Ende, vielleicht kann uns jemand von Euch weiterhelfen!

Zur Hardware:
1x S7 315-2 - 6E7 315-2EH14-0AB0 / V3.2
2x CP 342-5 - 6GK7 342-5DA03-0XE0 / V6.0
10x ET200S - 6ES7 151-1AA05-0AB0

Wir haben einen FB der 16mal im Programm Verwendung findet und welcher bereits auf Funktion getestet wurde - mit Erfolg.

Jedoch gibt es eine In/Bool Variable im FB die uns derzeit Schlaflose Nächte verursacht.
Steht diese Variable am Eingang(!) selbst auf 1 erkennt dies unser FB nicht und zeigt in diesem eine "0". Auch haben wir Kontrolliert ob diese Variable überschrieben wird - Fehlanzeige. Das ganze wurde nochmal eine Ecke seltsamer als nach ca 15min der Befehl, ohne Schalthandlungen etc, durchging und auch im FB richtig angezeigt wurde.

Mir wurde schon der Tipp bzgl des SFB 4 "TON" gegeben, welchen wir 16mal aufrufen, das dieser auch mal hängen kann.

Hat jemand eine Idee? Ich hoffe ich habe mich halbwegs verständlich ausgedrückt.


Vielen Dank
 
Hallo,

Wie wird die Variable an den FB übergeben und wie wird sie im FB gelesen? Sind da indirekte Adressierung oder Pointer dabei? Wie ist der IN-Parameter deklariert?
Es würde viel helfen, wenn Du den relevanten Code des FB zeigen würdest.

Ansonsten nur der allgemeine Tipp, den Instanz-DB zu löschen und neu zu generieren und zu laden.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Steht diese Variable am Eingang(!) selbst auf 1 erkennt dies unser FB nicht ...
Was heißt, er erkennt es nicht?
Bleibt die Variable beim Beobachten des Aufrufs 0?
Bleibt die Variable beim Beobachten des Instanzdatenbausteins 0?

Beobachtet Ihr mit Sicherheit den richtigen Aufruf?
Hat jeder Aufruf einen anderen Instanz-DB?
 
Hier der FB Aufruf:

Aufruf_FB.jpg

Im FB sieht es so aus:, ist übrigens die einzige Verwendungsstelle im FB

FB_Aufruf.jpgFB_Eingang_Abfrage.jpg



Wenn nun "IM_BF_LASTABW" oder "IM_BF_E01_AUS" auf TRUE ist (siehe Bild1), bleibt "BEF_AUS_AUTO" (=FB Input) auf FALSE, sowohl im FB als auch in seinem I_DB.

Alle 16 FB´s haben an dieser Stelle den gleichen Eingang, selbst wenn wir die Falschen Variablen beobachten müsste er auf TRUE sein.


Ansonsten nur der allgemeine Tipp, den Instanz-DB zu löschen und neu zu generieren und zu laden.

Danke Harald, haben wir auch probiert leider hat es nichts gebracht. Ich hoffe die Bilder helfen weiter.
 

Anhänge

  • Querverweise.jpg
    Querverweise.jpg
    103,2 KB · Aufrufe: 57
Zuletzt bearbeitet:
Anregungen:
  • Beobachten im Aufrufpfad
  • Für Testzwecke: Hinter dem ODER-Glied welches den Eingang beschaltet eine Variable erzeugen, diese dann auf den Eingang des FB bringen. Die Variable könnte man z.B. zusätzlich fangen und schauen, ob die Variable richtig beschrieben wird.
  • Wird wirklich ein Eingang und nicht etwa eine Ein-/Ausgang verwendet?
  • Querverweise beschauen


Viel Erfolg!
 
Was mir dazu einfällt:
- Versehentlich selbe instanz mehrfach verwendet?
- Wie beobachtest Du? Multiinstanzen beobachten: Testbetrieb, Aufrufender Baustein laden, zu beobachtender Baustein Rechtsklick ->Beobachten im Aufrufpfad
- Benutzt Du Temp Variabeln? Ich benutze die nicht mehr. Hatte immer wieder "komische" Konstellationen mit denen, wo das System die Zustände von Baustein zu Baustein nicht mehr korrekt gelöscht hat usw. Stattdessen Stat Variablen verwenden.
- Bereichsüberschreitung beim Zugriff auf einen DB welcher sich vor dem IDB des FB befindet?

Ansonsten schliesse ich mich meinem Vorredner an; alle anderen Instanzen testweise deaktivieren.
 
Ist Euer Problem lediglich, daß Ihr den TRUE-Zustand der Variable nicht sehen/beobachten könnt oder wird auch die programmierte Schaltfunktion so ausgeführt, als ob die Variable FALSE wäre?

Das einzelne "AUF #DB_WCC0A" läßt mich allerhand "Schweinereien" in dem FB vermuten. Gibt es in dem FB vor der Verwendungstelle des Input BEF_AUS_AUTO Zugriffe auf DBX/DBB/DBW/DBD/DIX/DIB/DIW/DID ohne DB-Angabe oder Anweisungen wie "L P##..." oder "L P#..." oder indirekte Adressierungen mit AR1 oder AR2? Wird womöglich gar das AR2 verändert?

Gibt es bei dem FB-Aufruf weiter unten nach der Verknüpfung zum FB-Eingang BEF_AUS_AUTO vielleicht noch ein SR/RS-Flipflop oder einen Konnektor # oder eine sonstige Zuweisung, welche den FB-Eingang #INST.BEF_AUS_AUTO (oder dessen Adresse DB?.DB...) benutzt?

Ist die Bausteinkonsistenz-Prüfung des FB und des übergeordneten IDB OK?
Leuchtet die rote LED "SF" an der CPU?


- Benutzt Du Temp Variabeln? Ich benutze die nicht mehr. Hatte immer wieder "komische" Konstellationen mit denen, wo das System die Zustände von Baustein zu Baustein nicht mehr korrekt gelöscht hat usw.
Das System löscht TEMP-Variablen generell nicht. Man muß selber beachten, daß der Zustand der TEMP-Variablen beim Eintritt in einen Baustein per Definition "unbestimmt" ist. (Hilfe zu Step7 > Lokaldaten-Stack)

Harald
 
Zurück
Oben