Forum: Mikrocontroller und Digitale Elektronik "Schwesternruf" 5V Signal seriell an PC senden


von Dominik (duminix)


Lesenswert?

Hallo

Ich arbeite an einer Lösung, bei der ich eine serielle Nachricht (oder 
eine Änderung in den seriellen Nachrichten) erhalte, sobald der 
Schwesternruf ausgelöst wird.
Der Schwesternruf ist ein Ausgang bei medizinischen Geräten, welcher 
einfach 5V ausgibt, sobald ein Alarm am medizinischen Gerät generiert 
wird. Es gibt auch manche Geräte welche es umgekehrt machen, es liegen 
immer 5V an, und diese werden unterbrochen, sobald ein Alarm generiert 
wird.

Ich möchte diese Alarme gerne an einem PC überwachen, und brächte dazu 
eine serielle Nachricht welche bei Statusänderung  generiert wird, oder 
in der die Statusänderung ersichtlich ist.

In meiner Vorstellung sehe die Lösung wie folgt aus:
Ein Kabel, welches auf der einen Seite eine Anschlussmöglichkeit für den 
Schwesternruf bietet (meistens ein 3,5mm Klinke) und auf der anderen 
Seite ei DB9 Stecker in dessen Gehäuse sich die oben beschriebene Logik 
befindet. Also sobald bei der Klinke 5V anliegen, soll dies in der 
seriellen Nachricht aus dem DB9 ersichtlich sein.
Wie würde sich so etwas realisieren lassen?

Vielen Dank für eure Unterstützung!

LG Dominik

von Frank K. (fchk)


Lesenswert?

Verwende die Steuerleitungen.

Setze DTR auf logisch High, RTS auf logisch Low. RI ist Dein Eingang. 
Dann einen Pullup zwischen RI und DTR.

Optokoppler-Ausgang zwischen RI und RTS. Optokoppler-EIngang mit 
Vorwiderstand an Dein 5V-Signal.

Was passiert jetzt. Im Ruhezustand wird RI auf den Pegel von DTR 
gezogen, also logisch High. Wenn jetzt das 5V-Signal kommt, schaltet der 
Optokoppler durch und verbindet RI mit RTS, so dass Dein RI Eingang auf 
logisch Low gezogen wird.

Logisch High und Logisch Low sind bei RS232 -12 und +12V, aber das ist 
egal. Du musst bei der Polarität des Optokoppler-Ausgangs etwas 
aufpassen.

DIe Zustände der Handshake-Leitungen solltest Du in Deinem 
Betriebssystem setzen bzw lesen können. Das sollte eigentlich sogar mit 
USB-RS232-Adaptern funktionieren.

fchk

von Steve van de Grens (roehrmond)


Lesenswert?

Dominik schrieb:
> Wie würde sich so etwas realisieren lassen?

Ich würde einen Mikrocontroller verwenden und so programmieren dass er 
entweder

a) Seine Eingänge überwacht und bei Änderung etwas an den PC sendet, 
oder

b) Auf Anfrage des PC den Status aller Eingänge liefert. Das Programm 
auf dem PC müsste diese dann regelmäßig abfragen.

Den Fall B kannst du fix und fertig downloaden:
http://stefanfrings.de/serial_io/index.html

Da gibt es auch Varianten mit WLAN, Ethernet und Bluetooth.

Der PC sendet regelmäßig den Befehl "i" (gefolgt von einem 
Zeilenumbruch) an das Modul, und dann antwortet es mit einer 32 Bit 
Hex-Zahl wie "i=00000001".

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Frank K. schrieb:
> Logisch High und Logisch Low sind bei RS232 -12 und +12V

Es reicht, <0.8V  bzw. >2.4V zu sein.
Die RS-232 Eingänge sind TTL-kompatibel, z.B. siehe Datenblatt des 
MAX232.

von Klaus H. (hildek)


Angehängte Dateien:

Lesenswert?

Frank K. schrieb:
> DIe Zustände der Handshake-Leitungen solltest Du in Deinem
> Betriebssystem setzen bzw lesen können. Das sollte eigentlich sogar mit
> USB-RS232-Adaptern funktionieren.

Ja, tut es.
Im Anhang was vergleichbares, hier um die Pulse eines DCF-Empfängers zu 
lesen.
CTS - Pin 8 - liest das Signal
DTR - Pin 4 - liefert die Versorgung für die klein Schaltung.

An DCF_DAT kommt dann das Meldesignal.

Man sollte den Transistor durch einen Optokoppler ersetzen für den 
Anschluss an ein Medizingerät.
Läuft über einen USB-RS232-Adapter.

von Joachim B. (jar)


Lesenswert?

Peter D. schrieb:
> Die RS-232 Eingänge sind TTL-kompatibel, z.B. siehe Datenblatt des
> MAX232.

aber invertiert, TTL high ist logisch Ruhepegel.

von Dominik (duminix)


Lesenswert?

Vielen Dank für die schnellen Antworten.
Wäre so etwas auch mit dem "MAX232 Board" möglich?
Mein Problem mit den Steuerleitungen ist, dass ich diese nicht über eine 
Konverterbox (seriell zu TCP/IP) bringe.

>Ich würde einen Mikrocontroller verwenden und so programmieren dass er
>entweder
>a) Seine Eingänge überwacht und bei Änderung etwas an den PC sendet,
>oder

Wie würde das funktionieren, und bringe ich dies "kostengünstig" in 
einem DB9 Gehäuse unter?

von Hmmm (hmmm)


Lesenswert?

Joachim B. schrieb:
> Peter D. schrieb:
>> Die RS-232 Eingänge sind TTL-kompatibel, z.B. siehe Datenblatt des
>> MAX232.
>
> aber invertiert, TTL high ist logisch Ruhepegel.

Das gilt für die Datenleitungen, aber nicht für die Handshakeleitungen, 
die ja hier verwendet werden sollen.

von H. H. (Gast)


Lesenswert?

Dominik schrieb:
> Konverterbox (seriell zu TCP/IP)

Kannst du dir sparen, nimm einfach einen ESP2866

von Steve van de Grens (roehrmond)


Lesenswert?

Dominik schrieb:
> Wie würde das funktionieren, und bringe ich dies "kostengünstig" in
> einem DB9 Gehäuse unter?

Indem du einen kleinen Mikrocontroller verwendest (gibt es ab 6 Pins) 
und eine entsprechende Platine entwickelst.

So wie du fragst, nimmst du vielleicht besser ein größere Gehäuse.

Dominik schrieb:
> Mein Problem mit den Steuerleitungen ist, dass ich diese nicht über eine
> Konverterbox (seriell zu TCP/IP) bringe.

Die wird nicht nötig sein, wenn du einen Mikrocontroller mit Ethernet 
oder WLAN verwendest.

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

Dominik schrieb:
> Ich arbeite an einer Lösung

Darf man fragen in welchem Rahmen? Als Entwickler oder fürs Hobby?

von Klaus H. (hildek)


Lesenswert?

Joachim B. schrieb:
> aber invertiert, TTL high ist logisch Ruhepegel.

Was aber hier völlig egal ist - er muss nur richtig rum auswerten.

von Benedikt L. (Firma: Dem Ben seine Leiche) (dembenseineleiche) Flattr this


Lesenswert?

Welch aktueller PC hat denn noch eine DSUb9-polige Schnittestelle?

von Stefan F. (Gast)


Lesenswert?

Benedikt L. schrieb:
> Welch aktueller PC hat denn noch eine DSUb9-polige Schnittestelle?

Erst lesen, dann ...

von Manfred P. (pruckelfred)


Lesenswert?

Benedikt L. schrieb:
> Welch aktueller PC hat denn noch eine DSUb9-polige Schnittestelle?

Kaum einer. Das macht man dann per USB-Konverter und hat Ärger mit der 
Zuverlässigkeit über längere Zeiträume.

Dominik schrieb:
> Der Schwesternruf ist ein Ausgang bei medizinischen Geräten, welcher
> einfach 5V ausgibt, sobald ein Alarm am medizinischen Gerät generiert
> wird.

Sowas gab es mal kommerziell von ANT / Bosch Telekom. Ein Einschubträger 
mit bis zu 512 Eingängen, wurde einer geschaltet, kam an der V.24 ein 
Datensatz.

Zu einer Lösung verhilft Dir Herr Emde https://www.omnikon.de/, ein 
ehemaliger Mitarbeiter dieses Bereiches.

Dominik schrieb:
> Ausgang bei medizinischen Geräten

Das ist kein Spielzeug, da muß ein Mindestmaß an Eigensicherheit her, 
zuerst mal eine Überwachung der V.24.

von Dominik (duminix)


Lesenswert?

Cyblord -. schrieb:
> Darf man fragen in welchem Rahmen? Als Entwickler oder fürs Hobby?

Prinzipiell ist es ein Hobby. Mein Vater leitet ein Seniorenheim und wir 
würden gerne auswerten wie oft es zu einem Alarm von den 
unterschiedlichen Gräten kommt. Soll als Argumentationshilfe für mehr 
Personal dienen.

Vielen Dank für die vielen tollen Antworten. Werde mich mal um einen 
Microcontroller umsehen.

von Steve van de Grens (roehrmond)


Lesenswert?

Dominik schrieb:
> Soll als Argumentationshilfe für mehr Personal dienen.

Traurig, dass solche Maßnahmen nötig sind. Ich weiß, dafür könnt ihr 
nichts.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.