Passiert das Problem nur in einer Richtung? Welche?Wieviele Datenbytes werden denn übertragen? Von der 1515 zur 1214 oder umgekehrt oder in beiden Richtungen? In einem Stück? Wie werden die Daten-Werte zu einem Sende-Block zusammengestellt? Wie sieht der Sende-Datenblock aus? Wie sieht der Aufruf des TSEND_C aus? Wie sieht die Verknüpfung von Busy, Error und Done aus? Wie sieht der Aufruf des TRCV aus? Verwendest Du vielleicht TSEND_C und TRCV_C in einer SPS? Wird nach jedem Senden die Verbindung abgebaut? Gibt es Errors und Fehler-Status? Wie werden die Empfangsdaten beim Empfänger abgeholt? Woran siehst Du, daß bei Bool-Werten nur alle 10-15 Sekunden Änderungen ankommen? Ist das ein Beobachtungsproblem oder ändern sich die Ausgangsdaten so selten oder entsteht das Problem beim Empfang? Hast Du mal an allen möglichen Stellen testweise Zähler an Signale angeschlossen (BUSY, DONE, NDR, Empfangsdaten-Bits) und ändern sich die Zähler auch so langsam? Wenn Du Busy, Error und Done nicht verknüpfst, dann tritt das Problem nicht mehr auf?
Welche Firmware-Versionen haben Deine CPUs?
Ich habe dem Fragesteller bereits geschrieben, daß er vom Takt nur die steigende Flanke nehmen soll, und er schreibt, daß er das so umgesetzt hat. Wenn das stimmt, dann wird garantiert höchstens einmal pro Sekunde gesendet. Und nun?Das Problem ist, daß der Empfangspuffer überläuft. Da du durch das Done das senden neu auslöst wird mehrmals pro Sekunde gesendet
Nein es passiert nur in eine Richtung schicke ich ein Bit zur 1214 geschieht das quasi in Echtzeit nur andersrum dauert es extrem lange.Passiert das Problem nur in einer Richtung? Welche?
Wann wird der Code mit dem TSEND_C/TRCV aufgerufen?
Ich hätte gewohnheitsmäßig nicht -|P|- verwendet, sondern P_TRIG. Das ist an der Stelle in Deinem Programm aber egal und müsste auch funktionieren. Wo ist die Variable #P_TRIG deklariert? Sie darf nicht in TEMP deklariert sein, sondern muß in Static. Dein Code wird anscheinend in einem FB aufgerufen? Und der FB wird in einem Zyklus-OB (z.B. OB1) aufgerufen?Ich hoffe das ich es mit der Flanke richtig verstanden bzw. umgesetzt hatte.
Wenn die Programme sonst ziemlich gleich sind, dann scheint es an einer der CPUs zu liegen.Nein es passiert nur in eine Richtung schicke ich ein Bit zur 1214 geschieht das quasi in Echtzeit nur andersrum dauert es extrem lange.
Ich vermute mal, Du meinst die Variable #P_TRIGAlso die Variable #P ist derzeit als eine TEMP Variable, werde ich aber jetzt ändern nach deinem Tipp.
Der Code wird derzeit in einem FC aufgerufen und dieser im OB1.
Falls Du wirklich online in den CPUs nachgeschaut hast, warum nennst Du hier nicht die tatsächliche Firmware-Version? Die Firmware-Versionsnummer hat 3 Stellen...Also die 1515R-2 PN hat Firmwarestand V2.9
1214C V4.5
Sie sind auch als diese projektiert.
Kann schon sein, es gibt auf jeden Fall Unterschiede und Einschränkungen. Siehe hier ab Seite 393:Hat das Problem vielleicht damit zu tun, daß Du eine redundante CPU 1515R hast?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?