Herunterladen Inhalt Inhalt Diese Seite drucken

Konvertierung Zwischen Beliebigen Datentypen Und Byte-Feldern; Allgemeines; Funktion Anytype_To_Bigbytearray, Funktion Anytype_To_Littlebytearray - Siemens SIMOTION SCOUT Funktionshandbuch

Vorschau ausblenden Andere Handbücher für SIMOTION SCOUT:
Inhaltsverzeichnis

Werbung

Programmierung allgemeiner Standardfunktionen

7.7 Konvertierung zwischen beliebigen Datentypen und Byte-Feldern

7.7
Konvertierung zwischen beliebigen Datentypen und Byte-Feldern
7.7.1

Allgemeines

Die nachfolgend angegebenen Funktionen ermöglichen das Wandeln von Variablen
beliebigen Datentyps (elementare Datentypen, Standarddatentypen der Technologiepakete
und Geräte, anwenderdefinierte Datentypen) in Byte-Felder und umgekehrt.
Weitere Informationen (z. B. zur Anordnung der Bytefelder, Anwendungsbeispiel) siehe
Konvertieren zwischen beliebigen Datentypen und Byte-Feldern (Marshalling) (Seite 397) ).
Diese Funktionen werden häufig verwendet, um definierte Übertragungsformate für den
Datenaustausch zwischen verschiedenen Geräten zu schaffen (siehe auch
Kommunikationsfunktionen (Seite 401)).
7.7.2

Funktion AnyType_to_BigByteArray, Funktion AnyType_to_LittleByteArray

Die Funktionen wandeln eine Variable beliebigen Datentyps (elementare Datentypen,
Standarddatentypen der Technologiepakete und Geräte, anwenderdefinierte Datentypen) in
ein Bytefeld.
● Bei AnyType_to_BigByteArray:
● Bei AnyType_to_LittleByteArray:
Ein optionaler konstanter Offset (Vorbelegung = 0) ist der Feldindex des ersten zu
belegenden Elements im Feld. Er muss innerhalb der Feldgrenzen liegen.
Beim Übersetzen der ST-Quelle wird überprüft, ob der Offset innerhalb der Feldgrenzen liegt
und ob die Variable vollständig auf das Bytefeld (zwischen Offset und oberer Feldgrenze)
abgebildet werden kann.
Es werden nur die Elemente des Bytefelds mit Werten belegt, die von der zu
konvertierenden Variablen überdeckt werden. Andere Elemente des Bytefelds bleiben
unverändert.
Hinweis
Aufruf und Verarbeitung der Funktionen müssen entweder nur in einer Task erfolgen oder
bei Einsatz von mehrerer Tasks müssen diese bzgl. Aufruf und Verarbeitung durch
geeignete Mittel synchronisiert werden (z.B. _testAndSetSemaphore, _releaseSemaphore).
Wenn der Aufruf und die Verarbeitung des Ergebnisses in verschiedenen Tasks liegen,
können undefinierbare Werte entstehen. Falls bei der Funktion BigByteArray_to_AnyType
der Zielspeicher eine globale Variable ist, die in einer höherprioren Task ausgewertet wird,
sollte die Konvertierung zunächst über eine temporären Zielvariable erfolgen. Diese wird
dann nach der Konvertierung auf die globale Variable umkopiert. Dies gilt auch bei einfachen
Datentypen.
324
Das Bytefeld ist vom Typ Big Endian (höchstwertiges Byte an niedriger
Speicheradresse).
Das Bytefeld ist vom Typ Little Endian (niedrigstwertiges Byte an niedriger
Speicheradresse).
Basisfunktionen
Funktionshandbuch, 05/2009

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis