Schreib dir ne Funktion in ST
FUNCTION CompareStruct : BOOL
VAR_INPUT
adrS1: POINTER TO BYTE; (* Bekommt mit dem ADR Operator die Adresse von der 1. Struktur*)
adrS2: POINTER TO BYTE; (* Bekommt mit dem ADR Operator die Adresse von der 2. Struktur*)
uiSize: UINT; (* Bekommt die mit SIZEOF ermittelte Größe einer der beiden Strukturen*)
END_VAR
VAR
i: UINT;
END_VAR
CompareStruct := TRUE;
FOR i:= 1 TO uiSize DO
IF adrS1^ <> adrS2^ THEN
CompareStruct:= FALSE;
EXIT;
END_IF
adrS1:= adrS1 + 1;
adrS2:= adrS2 + 1;
END_FOR
Die Funktion rufst du mit den Adressen und Größe der Strukturen auf und erhälst als Rückgabewert ein True wenn sie gleich sind.
Wenn du nicht weißt wie man die Function aufruft mache ich dir noch ein Beispiel. Dafür brauche ich aber dann die Sprache in der du die Funktion aufrufst
Gruß vom Prof
Bookmarks