Problem mit FBs in Step7

Baumi

Level-1
Beiträge
18
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS-Gemeinde!

Ich bin gerade mitten im "S7 - Learning by doing" und habe nun eine Frage:

Ich habe einen FB geschrieben in dem ich einen Analog-Eingang (PT100) einlese und je nach Temperatur und Zeit 3 Ausgänge schalte.
Diesen FB möchte ich in einer FC nun 4x aufrufen, jeweils mit einem anderen Analog-Eingang und anderen Ausgängen.
Es stellt sich jedoch das Problem dass, egal welcher Temperatufühler den eingestellten Wert erreicht, alle Ausgänge schalten oder gar keiner.
Habe ich hier ein Verständnisproblem oder einen Programmierfehler?
Ich hoffe ich habe mich verständlich ausgedrückt.

lg Chris
 
Ja, ich hab 4 DBs erstellt.
Wenn ich den FB beobachte springen die Temperatur ganz eigenartig, als ob alle 4 zugleich angezeigt werden.
Achja wenn ich nur einen FB aufrufe funktionierts nach meinen Vorstellungen.
 
Wenn du einen FB der mehrmals mit verschiedenen Instanz-DBs aufgerufen wird beobachten willst, musst du Step7 mitteilen in welchem Kontext, sprich mit welchem Instanz-DB du den FB gerade beobachten willst.

Dazu öffnest du ganz normal deinen FB den du beobachten willst. Dann über den Menüpunkt "Test" -> Unterpunkt "Betrieb..." auf Testbetrieb umstellen und mit OK bestätigen.
Dann nochmal den Menüpunkt "Test" -> Unterpunkt "Aufrufumgebung" aufrufen. Den Haken bei "Offene Datenbausteine" setzen, und in das Feld "Instanz-DB Nummer" die Nummer eingeben mit der du den FB beobachten willst.

Gibt noch eine andere Möglichkeit, aber versuch es erstmal so.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Super Danke, das hilft mir schon weiter.
Ich habe in dem FB mehrere Ein- und Ausschaltverzögerungen verwendet die ich mit T15.....T20 bezeichnet habe. Kann dass der Fehler sein?
Die Zeit läuft nämlich erst ab wenn alle TF den Wert erreicht haben.
 
Das ist auch ein Fehler.
Entweder musst du deinen FB um einen oder mehrere Parameter vom Typ "Timer" erweitern, und dann im FB als Timernummer diese Parameter verwenden. Bei der Beschaltung des FB muss dann jeder Aufruf eine andere Timer-Nummer bekommen.

Oder du verwendest die IEC-Timer (SFB4 TON, SFB5 TOF) im FB als Multiinstanz, dann hast du mit den Timer-Nummern nichts mehr am Hut, weil es dann sozusagen Lokale-Variablen sind. Meiner Meinung nach die saubere Lösung.
 
Zurück
Oben