TIA Tcp-IP <-> S7-1510sp

litlegerman

Level-2
Beiträge
314
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
Ich möchte bei einer Anlage mithilfe einer S7-1510sp CPU über einer TCP-IP Verbindung Signale abgreifen.
Aus der Bedienungsanleitung der Firma:
Für das Senden/Empfangen von größeren Datenmengen gibt es ... die Möglichkeit einer TCP/IP-Schnittstelle. Das Gerät sendet aktuelle Informationen (Status, Fehlermeldungen, …) und Messdaten an den Kommunikationspartner. Die Gegenstelle kann, bei Bedarf, Befehle und Einstellungen an die Dickenmessung zurücksenden und diese so steuern. Standardmäßig stellt die Dickenmessung den TCP/IP Server zur Verfügung. Sollen Daten gesendet/empfangen werden, muss sich der Client aktiv auf den Server verbinden. Bei erfolgreicher Verbindung sendet der Server zyklisch Daten an den Client. Sobald der Client Daten erhält, sendet dieser seine Daten an den Server retour.
Es wird immer die maximale Anzahl ... gesendet.
Das Entspricht 49740Byte

Ich habe die Verbindung auch aufgebaut bekommen, und bekomme auch Daten rein.
Aber leider dauert das empfangen der Daten zwischen 10-18 Sekunden und dann werden auch oft falsche Daten (viele nullen) Empfangen.
Ich habe den Ablauf so aufgebaut:
1. Verbindung mit TCON aufbauen, bei Erfolg
2. Datenmenge von 600 Byte (laut Anleitung) senden mit TSEND (dauert ca. 3-6ms) , bei Erfolg
3. Datenmenge von 49740 Byte (laut Anleitung) empfangen mit TRCV (dauert ca. 10-18s) , bei Erfolg
4. Daten Prüfen, Bei Erfolg
5. Daten Abspeichern
6. zu Schritt 2
Jetzt zu meinen Fragen
Aus der Anleitung, lese ich, dass ich immer alles lesen muss, habe ich das richtig verstanden?
Wieso bekomme ich so oft nullen rein?
kann mir da jemand helfen?

Programmiert ist das ganze mit TIA V15.1
Gruß
 
Wenn dein Partner immer 49740 Bytes sendet, dann musst du auch immer diese Anzahl einlesen, weil du ansonsten nicht erkennen kannst, wann ein neuer Datensatz folgt. Zumindest nicht, wenn in diesem Datensatz kein weiteres Protokoll, evtl. mit Header usw. vorhanden ist.

Wie prüfst du denn ob die Daten überhaupt korrekt sind, und woher weißt du, dass an einigen Stellen keine Nullen sein sollen? Wenn du an dem TRCV nicht genau die Länge eines dieses Datensatzes einliest, z.B. nur 49738 anstatt 49740, dann sehen die Daten des ersten Empfangs plausibel aus, dann sind bei jedem weiteren Empfang alle Daten um 2 Bytes verschoben.

Die Kommunikation ist wirklich schon sehr langsam. Was für ein Gerät ist denn der Partner? Ein normaler PC kann viel schneller senden, und Empfang sollte mit einer 1500er auch schneller sein. Mit einer ganz alten 1214 mit Firmware 2 lese ich 8192 Bytes (maximale Größe an TRCV die ich damit lesen kann) gesendet von einem PC bei einer Zykluszeit von 150 ms in 2-3 Zyklen ein.
 
Zurück
Oben