F_BA_Cmp

F_BA_Cmp 1:

Die Funktion F_BA_Cmp vom Rückgabetyp DINT vergleicht zwei Speicherbereiche gleicher Größe. Dabei definiert pValue den Beginn des Betrachtungsbereichs und pCompare den Beginn des zu vergleichenden Bereiches. Es wird Byte für Byte verglichen. Sobald ein Byte im Betrachtungsbereich gefunden wird, welches kleiner ist als das des vergleichenden Bereiches, so bricht die Funktion den Vergleich ab und nimmt den Rückgabewert "-1" an. Wird ein Byte im Betrachtungsbereich gefunden, welches größer ist als das des vergleichenden Bereiches, so bricht die Funktion ebenfalls ab und nimmt den Rückgabewert "1" an. Wird hingegen kein Unterschied gefunden, d.h. alle Bytes des Betrachtungsbereichs sind identisch mit denen des vergleichenden Bereiches, so nimmt die Funktion bei Beendigung des Vergleiches den Wert "0" an.

Der Ausgang nEqualBytes zeigt an, wie viele Bytes gleich waren, bevor die Vergleichsoperation beendet oder abgebrochen wurde.

Die Eingangsvariable nSize definiert die Größe der beiden Speicherbereiche.

Bei einer fehlerhaften Eingabe, d.h. pValue = 0 oder nSize = 0 wird die Funktion ebenfalls sofort abgebrochen und nimmt als Rückgabewert die "-1" an.

Syntax

FUNCTION F_BA_Cmp : DINT
VAR_INPUT
  pValue         : PVOID;
  pCompare       : PVOID;
  nSize          : UXINT;
END_VAR
VAR_OUTPUT
  nEqualBytes    : UINT;
END_VAR

F_BA_Cmp 2: Eingänge

Name

Typ

Beschreibung

pValue

PVOID

Zeiger auf den Beginn des Speicherbereiches, der untersucht werden soll.

pCompare

PVOID

Zeiger auf den Beginn des Vergleich-Speicherbereiches.

nSize

UXINT

Länge des Speicherbereiches.

F_BA_Cmp 3: Ausgänge

Name

Typ

Beschreibung

nEqualBytes

UINT

Anzeige wie viele Bytes gleich waren, bevor die Vergleichsoperation beendet oder abgebrochen wurde.

Voraussetzungen

Entwicklungsumgebung

Erforderliche SPS-Bibliothek

TwinCAT3.1 4024.35

Tc3_BA2_Common ab V2.1.20.0