Hallo,
so jetzt habe ich es endlich mal geschafft mich anzumelden,
nachdem ich schon einige Zeit hier mit lese.
Aktuell habe ich ein Problem mit der Datenübernahme einer Siemens Logo 0ba6.
Ich lese analoge und digitale Zustände der Logo über die RS232 Schnittstelle aus,
um sie per PL4 zu Visualisieren.
Das klapt auch super !
Aber wie es scheint, laufen die Daten in einen Speicher,
nach einigen Stunden werden nicht mehr die aktuellen Zustände der Logo angezeigt,
sondern Daten aus der Vergangenheit, die Anzeige hinkt der Logo einige Minuten hinterher.
Beende ich PL und starte es neu sind die aktuellen Daten wieder da.
Wenn ich die RS232 Verbindung öffne, scheinen noch gepufferte Daten
in PL einzulaufen.
Hat jemand eine Idee was das sein könnte ?
Ich habe mal einen Ausschnitt aus dem Programm angehängt.
Gruß Paul
Siemens Logo 0ba6
Re: Siemens Logo 0ba6 / RS232 Problem
Der Beschreibung nach landen vermutlich mehr Daten im Eingangspuffer als ausgelesen werden,
so dass sich ein Stau bildet, der irgendwann in einem Pufferüberlauf endet.
Frage zum Verständnis: Das String Senden/Empfangen in Ihrem Projekt ist eine Request/Response-Kommunikation?
Wahrscheinlich sind die Zeiten für PG1 zu kurz gewählt, so dass evtl. schon eine neue Abfrage ausgelöst wird,
obwohl die vorhergehende Antwort noch gar nicht eingetroffen ist und somit nicht ausgelesen wird.
Die Taktgebung der COM-Komponenten muss in diesem Projekt überarbeitet werden.
Am Besten den nachfolgenden Request mit einer Verbindung BSY->CLK (vom Empfänger zum Sender) auslösen.
Dann wird mit jeder eingehenden Antwort sofort die nächste Anfrage abgeschickt. Das ganze muss man
dann nur bei Programmstart (oder nach einem Timeout) einmal "anschupsen".
so dass sich ein Stau bildet, der irgendwann in einem Pufferüberlauf endet.
Frage zum Verständnis: Das String Senden/Empfangen in Ihrem Projekt ist eine Request/Response-Kommunikation?
Wahrscheinlich sind die Zeiten für PG1 zu kurz gewählt, so dass evtl. schon eine neue Abfrage ausgelöst wird,
obwohl die vorhergehende Antwort noch gar nicht eingetroffen ist und somit nicht ausgelesen wird.
Die Taktgebung der COM-Komponenten muss in diesem Projekt überarbeitet werden.
Am Besten den nachfolgenden Request mit einer Verbindung BSY->CLK (vom Empfänger zum Sender) auslösen.
Dann wird mit jeder eingehenden Antwort sofort die nächste Anfrage abgeschickt. Das ganze muss man
dann nur bei Programmstart (oder nach einem Timeout) einmal "anschupsen".
ABACOM support
Re: Siemens Logo 0ba6 / RS232 Problem
Noch einfacher dürfte es so sein...
als Anfragen gestellt werden.
Gemeint ist die RS232 und nicht dieses Forum, ha ha!
Hier wird einfach öfter "nachgeschaut" ob Antworten vorliegen, als Anfragen gestellt werden.
Gemeint ist die RS232 und nicht dieses Forum, ha ha!
ABACOM support
Re: Siemens Logo 0ba6 / RS232 Problem
Hallo,
ja richtig Request/Response-Kommunikation ist das.
Ich sende einen Befehl, und die Logo antwortet.
Ich habe mir schon gedacht, das es an den Befehlen Senden und Empfangen liegen könnte,
ich werde das testen und berichten, erst mal vielen Dank.
Ich bin davon ausgegangen, dass wenn ich eine Befehl Anforderung sende,
und die Antwort gleich abfrage (ich halte hier 2 Sec. für sehr lange)
es eigentlich zu keinen Problemen kommen sollte,
lange Zeit ist das auch gar nicht aufgefallen.
Ansonsten ist PL4 ein super Tool,
ich bin immer wieder begeistert.
Ich hoffe viele andere User werden viel Spaß mit der Logo haben.
Für alle Interessierten, werde ich vielleicht wenn ich die Zeit finde,
die Abfragen der 0ba6 und 0ba5 ausarbeiten und beschreiben.
THX
Gruß Paul
ja richtig Request/Response-Kommunikation ist das.
Ich sende einen Befehl, und die Logo antwortet.
Ich habe mir schon gedacht, das es an den Befehlen Senden und Empfangen liegen könnte,
ich werde das testen und berichten, erst mal vielen Dank.
Ich bin davon ausgegangen, dass wenn ich eine Befehl Anforderung sende,
und die Antwort gleich abfrage (ich halte hier 2 Sec. für sehr lange)
es eigentlich zu keinen Problemen kommen sollte,
lange Zeit ist das auch gar nicht aufgefallen.
Ansonsten ist PL4 ein super Tool,
ich bin immer wieder begeistert.
Ich hoffe viele andere User werden viel Spaß mit der Logo haben.
Für alle Interessierten, werde ich vielleicht wenn ich die Zeit finde,
die Abfragen der 0ba6 und 0ba5 ausarbeiten und beschreiben.
THX
Gruß Paul
Re: Siemens Logo 0ba6 / RS232 Problem
Hallo,
so ich habe das mal kurz getestet,
klar jetzt wo keine Daten mehr im "Puffer" sind läuft der String leer,
und es werden keine Daten mehr an die einzelnen Stringteilnehmer übertragen.
Ich habe den String jetzt gepuffert und schalte diesen mit Timer für die Anforderung der Daten.
Mal schaun wie sich die Schnittstelle jetzt verhält,
bis jetzt habe ich ein gutes Gefühl.
Gruß Paul
so ich habe das mal kurz getestet,
klar jetzt wo keine Daten mehr im "Puffer" sind läuft der String leer,
und es werden keine Daten mehr an die einzelnen Stringteilnehmer übertragen.
Ich habe den String jetzt gepuffert und schalte diesen mit Timer für die Anforderung der Daten.
Mal schaun wie sich die Schnittstelle jetzt verhält,
bis jetzt habe ich ein gutes Gefühl.
Gruß Paul
Re: Siemens Logo 0ba6 / RS232 Problem
Hallo,
so ich habe jetzt mal eine "angeschupste" Version erstellt. Der Baustein Com String empfangen erhält beim Programmstart ein Low für die Aktivierung.
Er wartet auf Daten auf dem Com Port und schaltet Busy auf High.
Dieses Busy startet die Datenanforderung über Com String senden.
Sind die Daten im Baustein Com String empfangen angekommen schaltet dieser Busy auf Low,
und aktiviert sich hierdurch selbst für die nächste Abfrage.
Ich hoffe das es zu keinen Überläufen des Puffers mehr kommt.
Gruß Paul
so ich habe jetzt mal eine "angeschupste" Version erstellt. Der Baustein Com String empfangen erhält beim Programmstart ein Low für die Aktivierung.
Er wartet auf Daten auf dem Com Port und schaltet Busy auf High.
Dieses Busy startet die Datenanforderung über Com String senden.
Sind die Daten im Baustein Com String empfangen angekommen schaltet dieser Busy auf Low,
und aktiviert sich hierdurch selbst für die nächste Abfrage.
Ich hoffe das es zu keinen Überläufen des Puffers mehr kommt.
Gruß Paul
Re: Siemens Logo 0ba6 / RS232 Problem
Prinzipiell haben sie da auch recht und Sie haben keinen logischen Fehler gemacht.Ich bin davon ausgegangen, dass wenn ich eine Befehl Anforderung sende,
und die Antwort gleich abfrage (ich halte hier 2 Sec. für sehr lange)
es eigentlich zu keinen Problemen kommen sollte.
In der Praxis ist Windows aber machmal etwas "hakelig" und beschäftigt sich im Hintergrund
auch gerne einmal mit anderen Dingen. Mit dem neuen Ansatz ist man immer
auf der sicheren Seite.
ABACOM support