LabVIEWForum.de
Anschlusserkennung externer Hardware über RS232 - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Anschlusserkennung externer Hardware über RS232 (/Thread-Anschlusserkennung-externer-Hardware-ueber-RS232)



Anschlusserkennung externer Hardware über RS232 - robertow - 20.09.2006 15:33

Hallo Freunde!

Kurze Beschreibung der Sachlage:
Ich habe eine Oberfläche in LV7.1 geschrieben (gezeichnet Smile) mit der ich über die RS232 des PC's eine Hardware ansteuere. Dies geschieht bi-direktional, d.h. jedes mal wenn ich einen Befehl schicke, bekomme ich auch eine Antwort. Soweit so gut... Wird die Hardware während des Betriebs ausgeschaltet bzw. reseted, ändern sich gewisse Einstellung auf Resetwerte, mein Programm bekommt davon logischer Weise nichts mit. Weiters bekomme ich natürlich auch eine Fehlermeldung, wenn ich einen Befehl schicke während die Hardware ausgeschaltet ist.

Die Frage: Gibt es eine Möglichkeit herauszufinden, ob die Hardware aus ist oder nicht? D.h. ohne auf die RS232 zu pollen, den das würde mir fasst ein zu großer Aufwand an Programmänderungen sein... Hat die RS232 ein (ich nenn es mal) "Hardware ist angeschlossen"-Bit, ähnlich der USB-Schnittstelle?

Hoffe mir kann jemand helfen und ein Danke schon mal im Voraus,
robertow


Anschlusserkennung externer Hardware über RS232 - eg - 20.09.2006 16:07

Nein, die RS232-Schnittstelle ist nicht so intelligent wie USB.
Vielleicht gibt es sowas, wenn du Hardware-Handshake einschaltest, aber da kenne ich mich nicht aus.

Ein Ausweg gibt es aber!!! Nimm dir einen USB-Serial-Adapter. Du kannst über Find Visa Ressource und Device Name herausfinden, ob der Adapter in den PC eingesteckt ist oder nicht.

Gruss, Eugen


Anschlusserkennung externer Hardware über RS232 - robertow - 21.09.2006 10:11

' schrieb:Nein, die RS232-Schnittstelle ist nicht so intelligent wie USB.
Vielleicht gibt es sowas, wenn du Hardware-Handshake einschaltest, aber da kenne ich mich nicht aus.

Ein Ausweg gibt es aber!!! Nimm dir einen USB-Serial-Adapter. Du kannst über Find Visa Ressource und Device Name herausfinden, ob der Adapter in den PC eingesteckt ist oder nicht.

Gruss, Eugen

Danke für deine rasche Antwort!

Es trifft jedoch nicht ganz mein Problem: USB Anschlusserkennung geht, jedoch möchte ich nicht den Anschluss des Adapters erkennen, sondern ob meine Hardware läuft (dh ob Versorgungsspg an oder nicht an).

Über einen Handshake habe ich auch schon nachgedacht, ich könnte ja im Peripherie Speicher 1Byte spendieren, in dem ich ein bestimmtes Bitmuster lege und auslese. Damit würde eindeutig festgestellt werden, ob alles klar ist oder nicht.
Ich persönlich bin kein Freund vom Pollen, kostet mich sehr viel Laufzeit. Vor jeder Instruktion das erwähnte Bitmuster auslesen, würde ansich funktionieren jedoch erst bei der Instruktion selbst...
Mich würde eher eine Art Interrupt interessieren, der kommt, sobald die Versorgung der Hardware ausgeschaltet ist bzw. kurzzeitig weg war. Ideen?!?

Trotzdem nochmal ein herzliches Danke für deinen Lösungsvorschlag,
robertow

--
I agree: Never change a winning team and a running system...


Anschlusserkennung externer Hardware über RS232 - eg - 21.09.2006 10:29

Von der Seriellen Schnittstelle gibt es ein Event (ähnlich wie Interrupt) in LV "Character on serial port". Aber es wird nur dann funktionieren, wenn beim Einschalten dein Gerät irgendwas sendet (z.B. Versionsnummer). Andere Möglichkeit kenne ich nicht.

Gruss, Eugen


Anschlusserkennung externer Hardware über RS232 - diplNisse - 22.09.2006 08:13

robertow:
Wenn deine Peripheriegeräte ein DSR Signal zurückgibt (also +12V auf der DSR Leitung), kannst du dieses Signal vielleicht mittels InPort.vi (LV-eigen) auslesen.
VISA müsste das auch können, aber über InPort brauchst du meiner Meinung nach keine Initialisierung.

Ist das gerät aus, wird kein DSR Signal ausgegeben.

Beim Modem geht das, vielleicht auch mit deinem Gerät.