GuentherA.
Level-1
- Beiträge
- 2
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen,
ich habe bei einer S7 1500 mit TIA v16 folgendes Problem:
Über eine TCP Verbindung erhalte ich unterschiedliche Telegramme. Die Länge der Telegramme ist immer gleich, auch die ersten 4 Byte. Diese enthalten immer eine Telegramm Nummer (ersten 2 Byte) und eine Länge (zweiten 2 Byte). Anschließend folgt ein Array of Byte mit ~2500 Einträgen. Dies sind dann die Nutzdaten. Dies ist auch der Aufbau des "Empfangs DB". Ich muss jetzt im nächsten Schritt die Nutzdaten, abhängig von der übertragenen Telegramm ID in einen von 3 DBs kopieren/verschieben, in welchem ich dann die empfangenen Daten weiter verarbeite. Mein Problem ist nun, dass diese 3 DBs natürlich völlig unterschiedlich sind, sowohl im Aufbau als auch im Inhalt.
Die - soweit ich das gefunden habe - einfachste Lösung wäre mit deserialize. Da habe ich nur das Problem dass ich ja keine Länge angeben kann. Und ich finde nichts dazu, was die CPU dann mit den Daten macht, die "zu viel sind"? Denn ich kopiere ja dann mit diesem Vorgang alle Bytes aus meinem Empfangspuffer (~2000) auf einen DB der eine Größe von ca. 60-200Byte hat. Was passiert dann mit den Nulln aus Byte 201 - 2000 aus dem Empfangspuffer? Überschreibt mir da die CPU die nachfolgenden Speicherbereiche?
Ich hoffe jemand von Euch hat einen guten Vorschlag und danke jetzt schon mal für Eure Unterstützung.
Danke und LG
Günther
ich habe bei einer S7 1500 mit TIA v16 folgendes Problem:
Über eine TCP Verbindung erhalte ich unterschiedliche Telegramme. Die Länge der Telegramme ist immer gleich, auch die ersten 4 Byte. Diese enthalten immer eine Telegramm Nummer (ersten 2 Byte) und eine Länge (zweiten 2 Byte). Anschließend folgt ein Array of Byte mit ~2500 Einträgen. Dies sind dann die Nutzdaten. Dies ist auch der Aufbau des "Empfangs DB". Ich muss jetzt im nächsten Schritt die Nutzdaten, abhängig von der übertragenen Telegramm ID in einen von 3 DBs kopieren/verschieben, in welchem ich dann die empfangenen Daten weiter verarbeite. Mein Problem ist nun, dass diese 3 DBs natürlich völlig unterschiedlich sind, sowohl im Aufbau als auch im Inhalt.
Die - soweit ich das gefunden habe - einfachste Lösung wäre mit deserialize. Da habe ich nur das Problem dass ich ja keine Länge angeben kann. Und ich finde nichts dazu, was die CPU dann mit den Daten macht, die "zu viel sind"? Denn ich kopiere ja dann mit diesem Vorgang alle Bytes aus meinem Empfangspuffer (~2000) auf einen DB der eine Größe von ca. 60-200Byte hat. Was passiert dann mit den Nulln aus Byte 201 - 2000 aus dem Empfangspuffer? Überschreibt mir da die CPU die nachfolgenden Speicherbereiche?
Ich hoffe jemand von Euch hat einen guten Vorschlag und danke jetzt schon mal für Eure Unterstützung.
Danke und LG
Günther