TIA S7-1500 Modbus TCP Verbindung mit Fremdgerät

Zuviel Werbung?
-> Hier kostenlos registrieren
Beim Empfang gibt es einen Modus, bei dem die Daten vom Netzwerk erst übernehmen wurden wenn die angegebene Länge eingetroffen ist. Wenn der Partner Daten mit variabler Länge sendet, dann erhältst du ggf. immer nur Bruchstücke. Es gibt noch einen Ad-Hoc Modus bei dem die Daten sofort übernommen werden, aber bei variabler Länge wirst du nicht umhin kommen, die Daten entweder an einer evtl. vorhanden Längenangabe oder Anfangs-/Ende-Kennung zusammenzusetzen, da du immer damit rechnen musst, dass die Daten nicht in einem Rutsch eintreffen.
 
Beim Empfang gibt es einen Modus, bei dem die Daten vom Netzwerk erst übernehmen wurden wenn die angegebene Länge eingetroffen ist. Wenn der Partner Daten mit variabler Länge sendet, dann erhältst du ggf. immer nur Bruchstücke. Es gibt noch einen Ad-Hoc Modus bei dem die Daten sofort übernommen werden, aber bei variabler Länge wirst du nicht umhin kommen, die Daten entweder an einer evtl. vorhanden Längenangabe oder Anfangs-/Ende-Kennung zusammenzusetzen, da du immer damit rechnen musst, dass die Daten nicht in einem Rutsch eintreffen.
Hallo zusammen,
nach einigen weiteren Tests sieht es nun wirklich fast danach aus, dass ich bisher nie sauber alle Daten empfangen habe, weil ich mein Empfangs-Array zu groß gewählt habe. Mit Wireshark konnte ich die Antwortlängen der relevanten Nachrichten (Spannungs- und Stromistwerte) bestimmen. Seit mein Array nun genau dieser Länge der Antworten entspricht, habe ich auch keine Probleme mehr, die Nachrichten zu empfangen.

Bei den Nachrichten, die Antworten in dem zweiten möglichen Format senden, muss ich entweder noch einen zweiten Empfangsbaustein erstellen oder das Empfangen nur enabeln, wenn ich Spannungs- und Stromwerte erwarte. Aber das sollte sich jetzt noch gut lösen lassen.

Vielen Dank für Eure Hilfe!
 
Zurück
Oben