17.08.2016 20:42 | |
Beigetreten: 01.06.2011 Letzter Bes: 01.10.2024 Beiträge: 18 Bewertung: (4) |
Servus, dokumentiert ist das ganz sicher irgendwo in der Siemensdoku. Aber auch im Programmierleitfaden fürs TIA-Portal ist das Verhalten in einem kurzen Kapitel beschrieben. Dort wird es jetzt als "Call by value" und "Call by reference" bezeichnet. Ist aber im Step7 Classic auch das Selbe gewesen. Siehe: https://support.industry.siemens.com/cs/at/de/view/90885040 Das ganze siehst Du, wenn Du einen Instanzdatenbaustein eines FBs mit InOut Formalparametern öffnest. Für InOut's ist dann dort nur eine Adresse hinterlegt (vorausgesetzt es ist kein Elementardatentyp), es ist also kein Speicherplatz für eine Kopie vorhanden. Weil es mich interessiert hat wie das jetzt im TIA Portal aussieht, hab ich es dort mal probiert. Leider wird es nicht so schön wie im Step7 Classic angezeigt (dort sieht man direkt die Pointerkonstante), aber na ja. Bei einem nicht optimierten Baustein kann man es sich dann mit den Adressoffsets zusammenreimen. Einmal ist die Struktur ("typeMyStruct" 14 Byte groß) ein Ouput-Formalparameter - Speichergröße 14Byte und einmal ein InOut-Formaparameter - Speicherplatz 6 Byte (6 Byte für den Datentyp Pointer). Bei einem Optimierten FB sieht man den Unterschied nicht gut, da ja keine Adressen mehr angezeigt werden. Der einzige Unterschied ist dass das Aufklappen des Datentyps einmal möglich ist und einmal nicht. sg |
Für diesen Beitrag bedanken sich1 Benutzer |
Folgen Sie uns auf