31.01.2010 10:15 | |
Beigetreten: 07.10.2005 Letzter Bes: 11.09.2024 Beiträge: 3020 Bewertung:
|
Hallo JoachimS generell ist the Unterschied kosmetischer Natur da Du ohne Probleme Lese- auch als Schreibzugriffe auf OUT Variablen machen kannstim FB (intern wird imFB immer nur auf die Werte imInstanz DB zugegriffen). Beachten sollte man aber schon das es Unterschiede in den Moeglichkeiten der Parameter Uebergabe gibt wenn der FB noch andere Bausteine aufruft und es dadurch hilfreich sein koennte eine Variable als OUT oder IN_OUT zu erklaeren (unabhaengig davon ob intern im FB die Variable nurgeschrieben wird order ob auch Lesezugriff stattfindet). Anbei ist ein pdf das die Moeglichkeiten besser beschreibt (ist im Englischen, stammt aber von der eingebauten S7 Hilfe und sollte auch in der Deutschen Version zu finden sein). Ansonsten sollte man auch beachten das eine IN_OUT Variable beim Aurfuf erstmal uebergeben wird (soll heissen, der Wert im IDB wirdaktualisiert) und nach dem Aufruf wird dann die der aktuelle Wert aus dem IDB an die aufgeschaltete Variable zurueckgeschrieben. Eine OUT Variable wird nur nach dem Aufruf des FB's wieder auf die aufgeschaltete Variable geschrieben. Dieser (eher offensichtige) Unterschied hat zwei Konsequenzen: 1.) Man "verschwendet" weniger Zykluszeit mit 'ner OUT Variable im Vergleich zur IN_OUT. 2.) Wird lesend aufdie OUT Variable im FB zugegriffen vor einem Schreibzugriff, dannliest man den Wert aus dem IDB vom letzten Aufruf/Zyklus. Bei einer IN_OUT kann die aufgeschaltete Variable auch anderswo im Program veraendert werden und der neue Wert wird dann an den FB uebergeben. Das ist alles was mir zu dem Thema einfaellt und ich hoffe es hiflt Dir weiter. DateianhangPermitted Data Types when Transferring Parameters.pdf (130 Downloads) |
Cheers |
|
Folgen Sie uns auf