ich habe nun endlich mal etwas Zeit, um meinen Ultraschall-Sensor (www.icplan.de) anzubinden. Dabei habe ich allerdings Probleme mit dem ComPort-Modul.
Mit dem Hyperterminal funktioniert es ohne Probleme.
Ich habe eine ComPort Instanz mit einer Register Variable eingerichtet und verbunden. Es kommen auch Daten an.
Aber ich bekommen immer ein Echo von dem Wert, den ich verschickt habe.
Und eine Antwort kommt immer nur bei jedem zweiten Mal durch.
Ich habe auch schon mit CutChars experimentiert. Aber ohne Erfolg.
Das Wiki zum ComPort ist leider nicht ganz aktuell. Und mit der Suche habe ich die Foren auch schon durchforstet. Aber vielleicht noch nicht das Richtige gefunden.
Hat von euch jemand eine Idee?
Welche Schritte müsste ich nacheinander überprüfen, um das Problem systematisch einzugrenzen?
ich möchte mein Setup mal noch etwas genauer beschreiben.
An der Seriellen Schnittstelle habe ich das PC-Modul zum Ultraschall-Sensor.
Also habe ich in IPS ein Com-Port-Modul angelegt und dieses über eine CutChars mit einer Register Variable verbunden.
Das LCD- und Relais-Modul zum US-Sensor fragt den Sensor kontinuierlich ab. Diese Kommunikation sehe ich in der Register Variable im Debug Fenster auch. Funktioniert soweit.
Wenn ich nun aber mit ComPort_SendText einen Befehl an den Sensor sende, wird meine Register-Variable zuerst mit dem Befehl gefüllt und anschließend mit der Antwort.
Das Problem, dass die Antwort nur jedes 2. Mal ankommt habe ich immer noch.
Warum landet mein gesender Befehlt auch wieder in der Register Variable?
Kann man das ändern oder kann ich das nur im Skript in der Auswertung rausfiltern?
Das gleiche Verhalten habe ich, wenn ich statt ComPort_SendText eine 2. Register Variable zum Senden verwende.
Ist das bei anderen Devices, die seriell angebunden werden auch so?
Wäre super, wenn mir hier jemand weiterhelfen könnte
Das ist das sogenannte echo. In guten Terminalprogrammen kann man das ausschalten. Das ausschalten ist aber nur ein Filter, der eingeschaltet wird. Wenn du kein Terminalprogramm benutzt musst du da schon selbst filtern.
Also kann das ComPort-Modul keine Echos filtern, oder?
Im Windows Hyperterminal kann ich das umschalten. Da habe ich was gesehen.
Wenn ich jetzt auf die Register-Variable onUpdate/onChange ein Skript registriere, wird das ja 2 Mal getriggert. Einmal vom Echo und einmal von der Antwort. Korrekt?
Was empfehlt ihr den generell als Vorgehen. Eher über ComPort_SendText oder eine weitere Register-Variable zum senden?
Gibt es da Vor- und Nachteile der beiden Möglichkeiten?
Ich möchte mir das ganze genauer durch den Kopf gehen lassen, bevor ich weiter programmiere. Ich habe vor, das dann als Brick zur Verfügung zu stellen.
Daher wäre ich dankbar, wenn ihr mir hier noch etwas helfen könntet, das richtige Setup zu finden.