MEMCMP
Mit der Funktion MEMCMP können die Werte der SPS-Variablen in zwei unterschiedlichen Speicherbereichen verglichen werden.
FUNCTION MEMCMP : INT
VAR_INPUT
pBuf1 :DWORD;
pBuf2 :DWORD;
n :UINT;
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 : INT;
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.