INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Timing RS232: Befehle schreiben, Werte lesen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

22.10.2009, 06:21 (Dieser Beitrag wurde zuletzt bearbeitet: 22.10.2009 17:42 von jg.)
Beitrag #1

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
Timing RS232: Befehle schreiben, Werte lesen
Hallo zusammen,

ich möchte einen Barometer (VAISALA PTU300) per RS232 auslesen.
Das Problem das vorliegt ist vermutlich ein Timing Problem.

Die Schnittstellenparameter sind habe ich überprüft. I.O.
Sowie auch die Befehle.

Mit dem Befehl "smode [stop]" in Einzelabfragemodus versetzen, danach "send" Befehl damit die Werte übermittelt werden.

Im HyperTerminal funktioniert die Kommunikation einwandfrei.

1.
Was ich hier wahrscheinlich noch benötige ist eine LabVIEW Funktion wie Service Request...
LabVIEW muss nach den 2 gesendeten Befehlen warten bis das Gerät die Werte sendet. Wie wir so etwas gelöst?

2.
Können diese Befehle direkt nacheinander gesendet werden, oder sollte jeweils ein CarriageReturn folgen, oder sollte jeweils ein Close Visa folgen und
für den nächsten Befehl eine neue Visa open, write .... Prozedur folgen?

Anbei das VI.

Lv86_img


Angehängte Datei(en)
Sonstige .vi  VAISALA_PTU300_Forum.vi (Größe: 14,38 KB / Downloads: 441)

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.10.2009, 07:04
Beitrag #2

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Timing RS232: Befehle schreiben, Werte lesen
Wenn's im HyperTerminal funktioniert...und in LV nicht...liegts meistens an folgendem:

LV hängt im Gegensatz zum HyperTerminal nicht automatisch ein CR an den gesendeten Befehl an. Wenn dein anzusprechender Partner das aber erwartet, läuft's halt nicht!

"Close" brauchst du nicht, du könntest zwischen den Befehlen aber mal ein WAIT von ein paar ms einfügen...nach dem Senden gehst du in einen "Warte-auf-Daten"-Zustand und fragst mit "Bytes at port" (Seriell-Palette) ab, wieviel du mit "Read" abholen kannst.

Gruß
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.10.2009, 09:36
Beitrag #3

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
Timing RS232: Befehle schreiben, Werte lesen
Hallo Achim,

so wie ich das verstanden habe sollte es die VISA Wait on Event Function sein?
Und als "event type" dann "serial break" verwenden?

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.11.2009, 06:56
Beitrag #4

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
Timing RS232: Befehle schreiben, Werte lesen
Hallo

kann mir jemand weiterhelfen.
Wie kann ich diesen "Warte-auf-Daten"-Zustand das Achim meint realisieren?

Vielen Dank für Eure Hilfe

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.11.2009, 08:52 (Dieser Beitrag wurde zuletzt bearbeitet: 02.11.2009 10:00 von rolfk.)
Beitrag #5

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Timing RS232: Befehle schreiben, Werte lesen
' schrieb:Hallo

kann mir jemand weiterhelfen.
Wie kann ich diesen "Warte-auf-Daten"-Zustand das Achim meint realisieren?

Vielen Dank für Eure Hilfe

Warten auf Daten wird von VISA Read automatisch getan. VISA Read wird beendet wenn einer der folgenden Ereignisse eintritt:

1) Die verlangte Anzahl Character sind verfügbar. -> Die Daten werden ohne error zurückgegeben.
2) Ein Fehler ist im unterliegenden Treiber aufgetreten. -> Du bekommst diesen Fehler übergeben.
3) Das Timeout das ein Property der VISA Session ist, ist abgelaufen. -> Du bekommst einen Timeout error übergeben.

Du siehst die Funktion wartet bis entweder ein Fehler auftritt, die verlangten Daten verfügbar sind oder das eingestellte Timeout abgelaufen ist.

Damit erübrigt sich jegliche weitere Form von Warten auf Daten in den meisten Fällen.

Aber bevor Du auf die Daten warten kannst müssen sie geschickt werden. So wie Achim es schon erwähnt hat haben die meisten seriellen Instrumente ganz spezifische Vorstellungen davon, wie das Kommando aussehen muss, damit eine Antwort kommt. Da reicht des eigentliche Kommando nicht, sondern es muss mit einer bestimmten Zeichenfolge abgeschlossen werden, meist ist das CR und/oder LF (Carriage Return und Line Feed). HyperTerminal macht das (nein nicht automatisch sondern) wenn Du die Enter Taste drückst. Die Enter Taste ist beim (DOS/Windows) Computer gleich wie ein CR und LF.

In LabVIEW hast Du keine Enter Taste um das Kommando zu verschicken, sondern muss man diese Character explizit mit in den Datenstrom aufnehmen, um sie auch zu verschicken.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.11.2009, 08:57
Beitrag #6

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
Timing RS232: Befehle schreiben, Werte lesen
Vielen Dank für die ausführliche Hilfe.

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Modbus aktiv behalten ohne etwas zu schreiben oder zu lesen p4tti 12 10.492 30.09.2016 12:45
Letzter Beitrag: Freddy
  Mit RS232 Daten lesen und schreiben Moxel 22 28.334 15.01.2014 12:38
Letzter Beitrag: jokersad
  RS232 Float Werte senden/empfangen mate Ria 1 5.094 07.11.2013 16:16
Letzter Beitrag: jg
  RS232 lesen und schreiben eventgesteuert theandreas 11 12.849 22.10.2013 19:05
Letzter Beitrag: theandreas
  lese mit VISA RS232 komische Werte ein gassd3 8 6.822 05.09.2013 08:29
Letzter Beitrag: RadioactiveMan
  Zeitproblem bei Schreiben/Lesen atbab3 3 4.162 07.11.2012 14:01
Letzter Beitrag: Lucki

Gehe zu: