Eigner FC ohne Fragezeichen

Beiträge
32
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich habe mir einen FC zusammengebaut mit mehreren In und Out´s und habe jetzt dazu folgende Frage:

Kann mir einer sagen wie man die Out-Variablen eines FC´s so hin bekommt, dass man sie nicht zwingend mit einem Ausgang belegen muss? Ich benutze den FC mehrfach im Programm und mal brauche ich den einen und mal den anderen
Out des FC und will nicht immer an den anderen eine unnötigen Merker oder Temp. anbinden.

Ich hoffe einer von euch kann mir helfen :)
MFG Dennis
 
Hi,
bei einem FC musst du meines Wissen immer die Schnittstellen belegen.
Mach einen FB drauss und du musst nicht unbedingt die Schnittstelle belegen.

Gruss
SPS_GmbH
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ausgänge am FC müssen belegt werden.

Pack die Sache in einen FB (mit instanzdatenbaustein). Da darf der Out frei bleiben. Und Zwischenergebnisse,Speicher (Merker etc...) können dann in den Instanzdaten abgelegt werden.

Wichtiger Unterschied bei Ausgangsparametern von FC und FB
In Funktionsbausteinen (FB) wird beim Zugriff auf Parameter die Kopie des Aktualparameters im Instanz-DB verwendet. Wird beim Aufruf eines FB ein Eingangsparameter nicht übergegeben bzw. im Baustein ein Ausgangsparameter nicht beschrieben, so werden die im Instanz-DB noch vorhandenen älteren Werte weiter verwendet (Instanz-DB = Gedächtnis des FB).
Funktionen (FC) haben kein Gedächtnis. Die Versorgung der Formalparameter ist deshalb im Gegensatz zum FB nicht optional, sondern zwingend erforderlich. Der Zugriff auf FC-Parameter erfolgt über Adressen (bereichsübergreifende Zeiger). Wird als Aktualparameter ein Operand aus dem Bereich Daten (Datenbaustein) oder eine lokale Variable des rufenden Bausteins verwendet, wird für die Parameterübergabe eine Kopie des Aktualparameters in den Lokaldaten des rufenden Bausteins temporär gespeichert.
 
Das geht nicht. Ein FC muss immer voll beschaltet sein. Mein Tipp wäre das du dir eine temp Variable z.B.: "temp_unused" definierst und diese Variable an die entsprechende Ausgänge hängst. Das ist doch kaum Aufwand und du brauchst doch auch nur diese eine Variable.
 
Zurück
Oben