shadowdb
Level-1
- Beiträge
- 115
- Reaktionspunkte
- 8
-> Hier kostenlos registrieren
[gelöst] Speicher kopieren? (so a la "memcpy" möglich?)
Moin,
um das Fetch/Write in TIA/SCL neu zu implemtieren, da Siemens' dumme Herrlichkeit FB210 gestichen hat,
lese ich Daten via TCP/IP in einem Buffer (im L#/I-DB des FBs) ein.
Um den elegant zu verarbeiten, soll möchte ich aus dem Buffer/Empfangspeicher die Daten umkopieren in eine vorbereitete Struktur.
z.B. für den Monitor in einen "dummy" DB:
#ret_val := MOVE_BLK_VARIANT(SRC := #buffer, COUNT := 16, SRC_INDEX := 0, DEST_INDEX := 0, DEST => p#db1.dbx 0.0 dint 4);
b.z.w:
#ret_val := MOVE_BLK_VARIANT(SRC := #buffer, COUNT := 16, SRC_INDEX := 0, DEST_INDEX := 0, DEST => #telegram);
Hinter #telegramm verbirgt sich eine Lokale, statische Struktur Variable, 16 Bytes groß, die die RFC1006 Struktur beinhaltet.
Im Prinzip will ich ein "memcpy wie in C" machen.
Jedocch Antwortet das MOVE_BLK_VARIANT mit 8084 := Datentypen stimmen nicht. WTF? Genau die sollen/müssen ja "egal" sein, 16 ... n Bytes sind zu kopieren. Mehr nicht.
Idee, was falsch ist?
Euer Jojo
Moin,
um das Fetch/Write in TIA/SCL neu zu implemtieren, da Siemens' dumme Herrlichkeit FB210 gestichen hat,
lese ich Daten via TCP/IP in einem Buffer (im L#/I-DB des FBs) ein.
Um den elegant zu verarbeiten, soll möchte ich aus dem Buffer/Empfangspeicher die Daten umkopieren in eine vorbereitete Struktur.
z.B. für den Monitor in einen "dummy" DB:
#ret_val := MOVE_BLK_VARIANT(SRC := #buffer, COUNT := 16, SRC_INDEX := 0, DEST_INDEX := 0, DEST => p#db1.dbx 0.0 dint 4);
b.z.w:
#ret_val := MOVE_BLK_VARIANT(SRC := #buffer, COUNT := 16, SRC_INDEX := 0, DEST_INDEX := 0, DEST => #telegram);
Hinter #telegramm verbirgt sich eine Lokale, statische Struktur Variable, 16 Bytes groß, die die RFC1006 Struktur beinhaltet.
Im Prinzip will ich ein "memcpy wie in C" machen.
Jedocch Antwortet das MOVE_BLK_VARIANT mit 8084 := Datentypen stimmen nicht. WTF? Genau die sollen/müssen ja "egal" sein, 16 ... n Bytes sind zu kopieren. Mehr nicht.
Idee, was falsch ist?
Euer Jojo
Zuletzt bearbeitet: