Polling via RS232 - Sensordaten abfragen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
SVblue
User
Beiträge: 15
Registriert: Montag 3. Februar 2014, 15:48

Hallo,
habe hier einen Sensor der laut Hersteller seine Messwerte nur weitergibt wenn man ihn anpollt.

Auszug aus der Sensor-Doku:
Die Polling Sequence hat folgendes Format:
<Adresse>po<ENQ>
• <Adresse> ist die im Schnittstellenmenue eingestellte Geräteadresse 00
• po ASCII-Zeichen "p" und "o"
• <ENQ> ASCII-Zeichen ENQ

Wenn der Sensor nun Daten hat würden diese nun gesendet, ansonsten sendet er ein <EOT>.

Um die RS232-Kommunikation zw. 2 Rechnern zu testen habe ich schon ein py-Script... das funzt, aber mit polling habe ich leider keine Erfahrung.

Könnte mir hier jemand einen hilfreichen Tipp geben wie ich beim polling verfahren müsste (Anfragesequenz senden und Antwort empfangen)?
BlackJack

@SVblue: Was soll man denn da jetzt gross sagen? Du musst dem Sensor das senden was er hören möchte, und dann das empfangen was er zu sagen hat. Die Frage ist wie <Adresse> kodiert werden muss und wie das erwartete Ergebnis aussieht. Das ASCII-Zeichen ENQ hat den Bytewert 5, kann also in Python als '\x05' geschrieben werden. Siehe auch: http://man-ascii.com/
Acuda
User
Beiträge: 4
Registriert: Sonntag 16. Februar 2014, 19:58

SVblue hat geschrieben: ... (Anfragesequenz senden und Antwort empfangen)?
Hi,

eigentlich genau so wie du es gesagt hast.
Erst Sequenz raushauen, und danach warten bis eine Antwort kommt um sie dann zu lesen. Alle benötigten Daten scheinst du ja schon zu haben. Die Adresse kann aber u.u. auch nur eine einfach 0 als Zahl sein, kommt da auf die Kodierung an (Datenblatt oder probieren).

~Acuda
SVblue
User
Beiträge: 15
Registriert: Montag 3. Februar 2014, 15:48

OK. Es funktioniert nun prinzipiell via
port.write() und port.read() ... ich nahm lediglich an dass es direkt eine Art "polling" in Python gibt, so etwa Antwort = port.poll(Frage).

Ich danke euch!
Antworten