MEMCMP
Mit der Funktion MEMCMP können die Werte der SPS-Variablen in zwei unterschiedlichen Speicherbereichen verglichen werden.
FUNCTION MEMCMP : DINT
VAR_INPUT
pBuf1 : UDINT;
pBuf2 : UDINT;
n : UDINT;
END_VAR
pBuf1: Anfangsadresse des ersten Speicherbereichs (der erste Datenpuffer).
pBuf2: Anfangsadresse des zweiten Speicherbereichs (der zweite Datenpuffer).
n: Anzahl der zu vergleichenden Bytes.
Die Funktion vergleicht die ersten n-Bytes in den beiden Datenpuffern und liefert einen Wert, der deren Verhältnis entspricht.
Rückgabeparameter | Verhältnis des ersten unterschiedlichen Bytes im ersten und zweiten Datenpuffer |
---|---|
-1 | pBuf1 kleiner als pBuf2 |
0 | pBuf1 identisch mit pBuf2 |
1 | pBuf1 größer als pBuf2 |
0xFF | Falsche Parameterwerte. pBuff1 = 0 oder pBuff2 = 0 oder n = 0 |
Beispiel für einen Aufruf in FUP
VAR
Buffer1 : ARRAY[0..3] OF BYTE;
Buffer2 : ARRAY[0..3] OF BYTE;
CmpResult : DINT;
END_VAR

Im Beispiel werden 4 Byte Daten vom Buffer2 mit dem Buffer1 verglichen. Das erste unterschiedliche Datenbyte ist im Buffer1 größer als in Buffer2.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.7.0 | PC or CX (x86) | PLCHelper.Lib |
TwinCAT v2.8.0 | PC or CX (x86) | TcSystem.Lib |
TwinCAT v2.10.0 Build >= 1301 | CX (ARM) | TcSystem.Lib |