Probleme bei US-Sensor über ComPort

Hallo,

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?

Gruß,
Jörn

Hallo,

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 :confused:

Gruß,
Jörn

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.

Gruß,

Toni

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.

Gruß,
Jörn

Also das IPS Modul sendet keine echo’s raus. Kann es sein, dass dein Gerät gegenüber die Befehle bestätigt?

Ich habe im Testaufbau folgendes gemacht:

ComPort -> Register Variable

und dann via ComPort_SendText etwas verschickt. Der Wert ist dabei nicht in der Variable gelandet.

Versuche mal den ComPort zu ändern und beobachte ob das selbe passiert.

paresy

Also ich habe den Sensor am laufen muss mal das Scribt suchen.

Hallo,

also ich habe auch den US Sensor bei mir verbaut. Sogar zwei von der Sorte. Der Sensor bestätigt jeden Empfangenen Befehl.

Gruß