COMPort - Problem mit TCP Verbindung

Hallo,

ich möchte das COMPort Modul für die Kommunikation über einen TCP-Socket mit meiner Hackschnitzelheizung verwenden. Die Verwendung des COMPorts für solche Sachen wurde von Paresy an anderer Stelle im Forum empfohlen. Zum Test verwende ich anstatt der tatsächlichen Steuerung einen Echo-Server (Eigenbau). Die Verbindung wird tadellos aufgebaut, die Anfrage von IPS kommt dort an und wird an IPS zurückgeschickt. Wenn ich nun die Registervariable des COMPorts beobachte, landet in dieser die Antwort des Servers - jedoch nur solange der String nicht länger als 5 Zeichen ist. Sobald ein 6. Zeichen dazukommt ist diese LEER. Am Timestamp sieht man aber, dass die Variable aufdatiert worden ist, also etwas vom COMport gekommen ist. Das ist 100%ig reproduzierbar.
Ich habe schon alle möglichen und auch unlogischen Einstellungen im COMPort SetUP ausprobiert - ohne Ergebnis. Um einen Fehler an meinem Testserver auszuschliessen habe ich diesen mit einem anderen Clientprogramm getestet - der Server antwortet immer richtig.
Hat jemand eine Erklärung für dieses Sache ? Ich gehe nicht davon aus, dass da ein Bug im COMPort Modul ist, sonst würden viele der Anwendungen, über die man hier im Forum liest, wahrscheinlich auch nicht laufen. Aber ich habe momentan keine Ahnung mehr, wo ich ansetzen soll.

MfG
Alfred

Hallo,
mein Problem hat sich inzwischen relativiert. Ich speichere inzwischen beim Upddate der Empfangsvariable deren Inhalt mit einem OnUpdate-Script in eine andere um, soferne der Inhalt der Empfangsvariable nicht „“ ist. Das greift. Es steht in der Speichervariable der ursprünglich gesendete String in voller Länge. Das heisst für mich, dass die Empfangsvariable nach Erhalt der eigentlichen Meldung noch einmal überschrieben wird. Ich verstehe das zwar (noch) nicht, ich will es aber einstweilen darauf beruhen lassen, weil meine Applikation so läuft.

MfG
Alfred

Hast du im Register Variable vielleicht die Overwrite, statt dem Append Modus benutzt? Dann kann genau das passieren was du beschreibst.

Damit es keine Fehler gibt, hol dir in deinem OnUpdate Script die Daten am besten per $IPS_VALUE!

paresy

Hallo Paresy,
danke für Deine Antwort. Ja, ich verwende die Einstellung „Overwrite“. Ich habe meine Anwendung von der eigenen Speichervariable auf die empfohlene $IPS_VALUE -Variable umgestellt, damit ich die vorgesehenen Systemmechanismen auch tatsächlich nutze. Es läuft jetzt alles super. Danke.

MfG
Alfred