@4l: Da man in FUP/AWL keine Bausteinanschlüsse unsichtbar schalten kann, wie im CFC, macht es manchmal durchaus Sinn einen FB über statische Variablen zu versorgen.
Hast dir schon mal nen Bausteinaufruf im AWL angeschaut, der über 1-2 Bildschirmseiten geht? :sm12:
Spart ausserdem Zykluszeit und unter Umständen Speicherplatz.
In diesem Zusammenhang und damit "zurück zum Thema" :
Wenn deine FB-Schnittstelle so groß ist, dann könnte es auch sein, dass ein Teil dessen, was da von Aussen kommt vielleicht auch mit in den FB gehört hätte.
Allgemein:
Der Trick bei der Erstellung von FB's ist, dass man dadurch universell verwendbare Sub-Funktionen (oder Prozeduren) erhält (das wurde auch von
Vierlagig schon recht treffend erwähnt). Um das sinnvoll hinzubekommen sollten im FB
gar keine globalen Variablen (wie Eingänge, Ausgänge, Merker, Timer, Zähler etc.) verwendet werden. Braucht man so etwas, so nimmt man dafür entweder IEC-Bausteine oder man baut sich aus den zu Verfügung stehenden (statischen) Variablen etwas zusammen. Braucht man Ein- oder Ausgänge oder auch Merker, so ist dafür die Schnittstelle (INPUT, OUTPUT, IN_OUT) vorgesehen.
Möchte ich von Aussen große Datenblöcke mit bekannter Dimension übernehmen, so kann man dies sehr schön über UDT's oder ARRAY's als Schnittstellen realisieren.
Allerdings:
Wenn mir ein Baustein (z.B. einer meiner Mess-FB's) eine Kurve aufzeichnet und ich die visualisieren möchte, dann verwende ich in der Visu an dieser Stelle auch sehr gerne die Daten des I-DB's. Diese Daten erst irgendwo anders hinzutransferieren macht gar keinen Sinn und wenn ich den Aufbau des FB's an der Schnittstelle oder im Stat-Bereich ändere, dann macht die Visu das automatisch mit ...
Gruß
LL