MEMSET geht nicht

shrimps

Level-1
Beiträge
422
Reaktionspunkte
49
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich verwende Twincat V2.x und bin auf ein kleines Problem gekommen:
Ich wollte mein Array zurücksetzen, dazu habe ich in einer Schleife alles erledigt.
Nun fand ich die Funktion MEMSET !
Also ran an den Freund:

Aber ich bekomme eine Fehlermedung aus der ich momentan nicht schlau werden.

Könnt ihr mir helfen ?

LG
Shrimps

Auszug aus dem Code und Fehlermeldung:
Code:
TYPE _stPosition :
STRUCT
        iMotorNummer    : INT;
        iPosition                       : INT;
        bMerker                 : BOOL;
END_STRUCT
END_TYPE
**************************
astTeachData    :  ARRAY [1..50] OF _stPosition;          

**************************
astTeachData := MEMSET(ADR(astTeachData),0,SIZEOF(astTeachData));

**************************
Fehler 4010: Unverträgliche Typen: Kann UDINT nicht in Array [1..4] of
_stPosition konvertieren
 
Wie die Fehlermeldung schon angibt, ist der Rückgabewert der Funktion Memset ein UDINT der einfach nur anzeigt wie viele Byte überschrieben wurden.
Deswegen ist die Zuweisung
Code:
astTeachData := MEMSET(ADR(astTeachData),0,SIZEOF(astTeachData));
falsch.

Einfach nur
Code:
MEMSET(ADR(astTeachData),0,SIZEOF(astTeachData));
sollte funktionieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo MasterOhh,
Danke !
Funktioniert natürlich exakt wie du es beschrieben hast.
Ich hatte wohl die Funktion nicht vollständig gelesen und den Rückgabewert dadurch falsch angewendet.
Nun passt alles und ist sagenhaft kleiner Code geworden.
LG
Shrimps
 
Zurück
Oben