TIA Serialize eine boolesche Variable

goldenmacha

Level-2
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist ein Bool eigentlich 1 oder 2 Byte, wenn es serialized wird? Ich habe ein Bool mit Serialize Block machen und es gibt dann 2 Byte an der Array, aber wenn ich diese Bool auf false oder true ändere, nur die erste Byte wird genutzt. Dann warum ist es 2 Byte, wenn die zweite Byte nie genutzt ist?
 
Byte Aligment / Byte Pattern
Alles kleiner Word wird nach zwei Byte serialisiert und immer an Module " grenzen aligned

Am einfachsten kann man es sehen wir serialisiert wird, wenn man einen DB auf nicht optimiert umstellt und seine Variablen dort anlegt - anhand der Adresse kann man das einfach nachvollziehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aus der Hilfe zu "Serialize":

Größe des Speicherbereichs

Aufgrund der Ausrichtungsregeln enthalten einfache Strukturen im optimierten Speicherbereich keine Füll-Bytes. Das führt dazu, dass eine Struktur im optimierten Speicherbereich kleiner ist als im standard Speicherbereich. ARRAYs von Strukturen und geschachtelte Strukturen, beinhalten Füll-Bytes. Im Allgemeinen kann keine Aussage getroffen werden, in welchem Speicherbereich eine zusammengesetzte Struktur mehr Platz braucht.

Gültig für CPUs der Baureihe S7-1500:

Bei einem Baustein mit der Bausteineigenschaft "Optimierter Bausteinzugriff" hängt die Länge eines BOOL davon ab, welcher Datentyp folgt. Das bedeutet, wenn z. B. ein BYTE folgt, hat das BOOL eine Länge von 1 Byte. Wenn z. B. ein WORD folgt, dann hat das BOOL eine Länge von 2 Byte. Dadurch kommt es vor, dass eine Struktur, die im wesentlichen aus dem Datentyp BOOL besteht, im optimierten Speicherbereich größer ist als im standard Speicherbereich. Zusammengesetzte Strukturen mit einem geringen Anteil an BOOL-Datentypen sind im optimierten Speicherbereich kleiner als im standard Speicherbereich.

Daher ist es empfehlenswert, dass der Quelldatenbereich für das Serialisieren mit den großen Datentypen beginnt und mit booleschen Elementen endet. Dadurch wird das Auffüllen mit Füll-Bits wesentlich reduziert.
 
Zurück
Oben