-> Hier kostenlos registrieren
Die Situation:
Ich muss eine größere Menge Daten (~120 Byte) direkt im EA-Prozessabild deklarieren. Die Daten sind zusammengehörig und ich habe sie folglich als Datentyp deklariert (1 Datentyp, viele Untertypen). Wie TIA das mit den Füllbytes usw. behandelt, habe ich mir angesehen und mein aktuelle E-Mapping passt soweit mal. Die komplette Eingangsstruktur wird nun von einem optimierten FB eingelesen, dekodiert und wiederum in eine Datenstruktur hinausgeschrieben.
Nun die Frage:
Übergibt man strukturierte Datentypen an einen FB oder FC, wird ja im Leitfaden empfohlen, diese als INOUT zu übergeben (was ja Sinn macht). Übergebe ich die Eingangsvariable (Start I1320.0, Länge 120 Bytes) an den optimierten FB über einen INOUT, wird dann der Inhalt der Variable kopiert oder ein Zeiger übergeben?
Meines Erachtens nach behandelt die Steuerung E- und A-Adressen wie nicht optimierte Speicherstellen, weshalb es dann zu einem IN-Kopieren und einem OUT-kopieren kommen würde. Schreiben auf IN-Variablen zugreifen ist aber hässlich.
Sauberer wäre in diesem Fall die Übergabe der Eingangsvariable als IN-Parameter.
Was meint ihr dazu? Der Leitfaden macht hierzu ja keine Aussage.
lg
PS: Ich hoffe ich habe mich verständlich genug ausgedrückt.
Ich muss eine größere Menge Daten (~120 Byte) direkt im EA-Prozessabild deklarieren. Die Daten sind zusammengehörig und ich habe sie folglich als Datentyp deklariert (1 Datentyp, viele Untertypen). Wie TIA das mit den Füllbytes usw. behandelt, habe ich mir angesehen und mein aktuelle E-Mapping passt soweit mal. Die komplette Eingangsstruktur wird nun von einem optimierten FB eingelesen, dekodiert und wiederum in eine Datenstruktur hinausgeschrieben.
Nun die Frage:
Übergibt man strukturierte Datentypen an einen FB oder FC, wird ja im Leitfaden empfohlen, diese als INOUT zu übergeben (was ja Sinn macht). Übergebe ich die Eingangsvariable (Start I1320.0, Länge 120 Bytes) an den optimierten FB über einen INOUT, wird dann der Inhalt der Variable kopiert oder ein Zeiger übergeben?
Meines Erachtens nach behandelt die Steuerung E- und A-Adressen wie nicht optimierte Speicherstellen, weshalb es dann zu einem IN-Kopieren und einem OUT-kopieren kommen würde. Schreiben auf IN-Variablen zugreifen ist aber hässlich.
Sauberer wäre in diesem Fall die Übergabe der Eingangsvariable als IN-Parameter.
Was meint ihr dazu? Der Leitfaden macht hierzu ja keine Aussage.
lg
PS: Ich hoffe ich habe mich verständlich genug ausgedrückt.