Verzögerung mit CP343-1lean

simon.s

Level-2
Beiträge
237
Reaktionspunkte
11
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Habe in einer Steuerung einen CP343-1 lean verbaut. In dieser läuft ein Zählwert (int) im Sekundentakt.
Dieser Wert wird nun über den Cp an eine andere Steuerung (400/443-1) gesendet. Dort wird der empfangene Wert
einfach zurück zur ersten Steuerung geschickt.
Nun ist mir aufgefallen, daß die Werte von Steuerung 1 (gesendet/empfangen) ziemlich unterschiedlich sind.
Nach 2 Tagen beläuft sich der Unterschied auf ca 18-20 Einheiten.
Wie kann dies sein??


Simon
 
Das kann eigentlich nicht sein. Dann macht die 400er Steuerung was anderes als einfach nur den Wert zurücksenden.
Vielleicht erzeugt die 400er Steuerung einen eigenen Rückgabewert aus seinem eigenen Sekundentakt?
Steht in der 400er Steuerung tatsächlich etwas in dieser Art:
Code:
L "DB-RECV".Empfangswert
T "DB-SEND".Rueckgabewert

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Habe in einer Steuerung einen CP343-1 lean verbaut. In dieser läuft ein Zählwert (int) im Sekundentakt.
Dieser Wert wird nun über den Cp an eine andere Steuerung (400/443-1) gesendet. Dort wird der empfangene Wert
einfach zurück zur ersten Steuerung geschickt.
Nun ist mir aufgefallen, daß die Werte von Steuerung 1 (gesendet/empfangen) ziemlich unterschiedlich sind.
Nach 2 Tagen beläuft sich der Unterschied auf ca 18-20 Einheiten.
Wie kann dies sein??


Simon

Das kann schon sein, und ich nehme an Du meinst die Anzahl der gesendeten Werte. Beachte, dass die 300er viel langsamer sind als 400er, da zumindest bei den älteren Modellen (314 zB) die Datenübertragung mit voller MPI-Geschwindigkeit über den Rückwandbus flitzt, das sind die bekannten 187,5 Kilobit pro Sekunde. Falls da über den CP sonst noch eine Übertragung läuft, so kann es eng werden... Ebenso falls ein OP oder gar noch ein Profibus werkeln. Du kannst Dich auf das mit der Sekunde also nicht verlassen.
 
Steuerung 1

Code:
L db.zähler
T DBsend.wert


Steuerung 2

Code:
L DBrecive.wert
T DBsend.wert

Gesendet wird auf beiden Seiten jeweils im Sekundenrythmus, natürlich
nur wenn Bussy ok....

Es geht mir nicht genau um die Sekunde. Mir ist schon klar dass bei Belastung des Netzes sich dies verzögert....
Ein Wert von 1-3 wäre ja somit zu erklären, warum aber summiert
sich dies über den Tag:???:
Nach einem Neustart des CP, egal ob Steuerung 1 oder 2, funktioniert
dies auch mit der obgenannten Verzögerung.
Nun ich sende zb "635" ---> senden ok ---> empfange nach 1...2 sec
einen Wert der "633" .
1 sec später sende "636" -- ok --- empfange "634" untersch.1-2
2 sec später sende "637" -- ok --- empfange "635" untersch.1-2
.
.
1 tag später sende "635" -- ok --- empfange "623" untersch.12-15

Wo sind die dazwischen geblieben????
nach einem Tag beträgt der unterschied schon 12-15-16.
 
Ich vermute, Du hast entweder schwere Netzwerkprobleme oder das Senden/Empfangen ist nicht richtig programmiert.
Zwischen Senden und zurück-Empfangen sollte deutlich weniger als 1 Sekunde vergehen. Die Datenpakete dürfen sich auch nicht in den CP aufstauen.

Was ist das für eine Verbindung zwischen den Steuerungen?
Wird in beiden Steuerungen AG_RECV in jedem OB1-Zyklus aufgerufen?
Wird ein neuer AG_SEND-Auftrag nur angestossen, wenn der vorherige abgearbeitet ist (ACT mit DONE verriegelt)?
Was sagt die Spezialdiagnose der beiden IE-CP? Wird nach jedem Datenpaket die Verbindung abgebaut und wieder neu aufgebaut?
Was sagt die Ethernet-Statistik? Hast Du ungewöhnlich viele Broadcasts oder Sende-Kollisionen oder Empfangsfehler?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo

Also die Verbindung ist als Iso on Tcp ausgelegt, aktiver Verbindungsaufbau nur von Steuerung 2.
AG-recive u AG-send sind in einem FB der zyklisch von OB1 aufgerufen wird,
der Sendeauftrag wird jede Sekunde angestoßen und ist auch mit Done verriegelt. Ist das Beispiel von der Siemens-Seite.
Spezialdiagnose werde ich Montag nochmal prüfen...
Danke inzwischen...
 
Ist es dir möglich, parallel Steuerung 1 und 2 zu beobachten/aufzuzeichnen ? Nicht das auf der Sendeseite der Steuerung 1 ein "Stau" entsteht und die 400er wirklich nur das zurückschickt, was sie empfängt.

Thomas
 
hallo

Also die Verbindung ist als Iso on Tcp ausgelegt, aktiver Verbindungsaufbau nur von Steuerung 2.
AG-recive u AG-send sind in einem FB der zyklisch von OB1 aufgerufen wird,
der Sendeauftrag wird jede Sekunde angestoßen und ist auch mit Done verriegelt. Ist das Beispiel von der Siemens-Seite.
Spezialdiagnose werde ich Montag nochmal prüfen...
Danke inzwischen...

Bin mir jetzt nicht sicher, aber Du hast zwei Verbindungen projektiert: Eine zum Senden, die andere zum Empfangen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bin mir jetzt nicht sicher, aber Du hast zwei Verbindungen projektiert: Eine zum Senden, die andere zum Empfangen?
Für diese Art der Kommunikation wird eigentlich nur eine Verbindung projektiert.

Zum Problem:
Nach dem Eingangspost hätte ich vermutet dass die 300er die Sendeaufträge nicht alle abarbeiten kann.
Wenn du aber, wie du schreibst, nur jede Sekunde sendest liegt der Fehler ja nicht an der Menge.
Habe im Moment leider auch keine Idee.

PS: Was bezweckst du mit dem Versuch?
 
..
Nun ich sende zb "635" ---> senden ok ---> empfange nach 1...2 sec
einen Wert der "633" .
1 sec später sende "636" -- ok --- empfange "634" untersch.1-2
2 sec später sende "637" -- ok --- empfange "635" untersch.1-2
.
.
1 tag später sende "635" -- ok --- empfange "623" untersch.12-15

Wo sind die dazwischen geblieben????
nach einem Tag beträgt der unterschied schon 12-15-16.

Es ist m.E. völlig unmöglich dass beide Zähler von einer Zeitbasis stammen. Wird vielleicht "DBsend.wert" in der S7400 an anderer Stelle im Programm noch einmal überschrieben? Ansonsten kann's eigentlich nur am Flux-Kompensator liegen.
 
Zurück
Oben