MEMSET zum loeschen einer Struktur

gloeru

Level-1
Beiträge
339
Reaktionspunkte
35
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen

Ich lese eine grosse Menge Daten ueber die serielle Schnittstelle ein, die ich in div. STRUCTs ablege.
Wenn nun die Komunikation zum GPS Empfaenger gestoert ist, muss ich die Werte in der betreffenden STRUCT zuruecksetzen.
Kann ich dafuer MEMSET(destAddr := ADR(struct), fillByte := 16#00, n := LEN(struct)); verwenden, auch wenn ich verschiedenste Datentypen in der Sctruct habe (von BOOL ueber LREAL bis STRING)

Danke schonmal
 
Hallo,

das sollte keine Probleme machen, wenn Adressen und Längen korrekt sind und nicht FBs in der Struktur enthalten sind. Je nach Version TwinCAT3, CODESYS V3 würde ich FBs so nicht "nullen".

Viele Grüße
 
Das müsste eigentlich auch funktionieren:

- eine Konstante der Struktur anlegen z.B. structDataLeer
- jetzt structData:=structDataLeer;

hat den Vorteil das man in der Deklaration der Strukturelemente entsprechende Initialwerte festlegen kann...


Gruß
 
Hi,
am saubersten vom Programmierstandpunkt aus ist die Variante mit leerer Struct da alles typisiert ist und nichts direkt per Speicher gemacht wird.
Verbraucht jedoch (da ja deklariert) auch Speicher. Kommt drauf an welches Zielsystem -> wenn genügend Speicher vorhanden und Struct nicht s groß dann Variante 1

Gruss, RE
 
Zurück
Oben