Hallo,
ich habe eine Frage aber zuerst Situationsbeschreibung:
Ich bewerkstellige Netzwerkkommunikation zwischen PC und SPS mit NIO.
Senden, Empfangen geht alles gut.
Ich muss (leider) folgenden Ablauf einhalten: Verbinden, Senden, Empfangen, Disconnecten, ich nenne das eine Abfrage.
Mein Programm startet ein Thread der sagen wir 10 sequentielle Abfragen alle 5 Sekunden startet.
so weit läuft das gut, pro Anfrage wird etwa 300ms verbraucht.
Nun möchte ich manuel eine Abfrage durchführen (realisiert durch Buttonklick). Und hier gibts ein Problem! Bei der zeitlichen Überschneidung von manuellen Abfrage und dem Thread, passiert dass die Verbindung von einer Abfrage geschlossen wird während andere noch läuft. Dies führt zu Exception.
Anderes Problem ist wenn Anzahl der Abfragen so groß ist das die Abarbeitungszeit 5 Sekunden übersteigt.
Was ist die gute Lösung für sowas? Wie kann ich die Kommunikation gestallten das alle Abfragen dran kommen?
Danke für die Vorschläge und Tipps!
ich habe eine Frage aber zuerst Situationsbeschreibung:
Ich bewerkstellige Netzwerkkommunikation zwischen PC und SPS mit NIO.
Senden, Empfangen geht alles gut.
Ich muss (leider) folgenden Ablauf einhalten: Verbinden, Senden, Empfangen, Disconnecten, ich nenne das eine Abfrage.
Mein Programm startet ein Thread der sagen wir 10 sequentielle Abfragen alle 5 Sekunden startet.
so weit läuft das gut, pro Anfrage wird etwa 300ms verbraucht.
Nun möchte ich manuel eine Abfrage durchführen (realisiert durch Buttonklick). Und hier gibts ein Problem! Bei der zeitlichen Überschneidung von manuellen Abfrage und dem Thread, passiert dass die Verbindung von einer Abfrage geschlossen wird während andere noch läuft. Dies führt zu Exception.
Anderes Problem ist wenn Anzahl der Abfragen so groß ist das die Abarbeitungszeit 5 Sekunden übersteigt.
Was ist die gute Lösung für sowas? Wie kann ich die Kommunikation gestallten das alle Abfragen dran kommen?
Danke für die Vorschläge und Tipps!