Serielle Schnittstelle - Buffer? Absoluter Anfaenger

VISA, TCP/IP, CAN und ähnliche Protokolle

Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Andband on 27 Oct 2009, 16:52

Hallo ihr erfahrenen Labviewprofis :)

Ich bin ein Labview-N00b. Ein harter N00b. Deshalb gehoert dieses Thema vielleicht auch eher in das Anfaengerforum, aber es hat genauso was mit Kommunikation mit Geraeten zu tun. Naja sorry, also falls es hier fehl am Platz ist (einfach verschieben :))
Ok, ich laber zuviel, sorry.

Meine Frage:
Ich mach hier ein Praktikum bei Ford und die wuerden gerne einen Sensor von einer Firma in ein bestehendes Labviewprogramm einbinden um Auswertungen zu vereinfachen. Bisher wurden die Daten von dem ueber die serielle Schnittstelle angeschlossenem Sensor immer mit dem mitgeliefertem Programm (was meiner Meinung nach auch mit Labview gemacht wurde - zumindest schauen die Schalter und die Bedienelemente genauso aus wie bei Labview...) betrachtet. Aber wie gesagt, es waere schoen, wenn man das in das bereits vorhandene Labviewprogramm implementieren koennte.

Also: Es besteht ein Programm, dass irgendwelche Gasfluessesteuert und Dateien beschreibt und dabei mit PCI-Messkarten arbeitet. Jetzt soll dieses bestehende Programm gleichzeitig noch die Daten von der seriellen Schnittstelle einlesen und auf die Festplatte mit in dieselbe Datei schreiben, wo auch die anderen reinschreiben.

1. Ist das machbar?
2. Kriegt ein absoluter Anfaenger der Labview nur in der Theorie kennt das (mit evtl. eurer Unterstuetzung) hin? Ich habe noch nie Messkarten oder aehnliches angesteuert.
3. Wie geht man das an? Gibts dafuer schon Tutorials

Ein weiteres Problem meiner Meinung nach koennte auch sein, dass die PCI-Messkarten viel schneller sind als die serielle Schnittstelle. Und es soll auf keinen Fall immer gewartet werden muessen. Also vielleicht muss man das in eine Art Buffer schreiben oder so...

Ich bin mit der Sache momentan ueberfordert. Es ist eine optionale Aufgabe fuer mich, weil ich zur Zeit nicht soviel zu tun hab. Die Leute bei Ford wuerden sich freuen wenn ich es hinbekomme und ich habe halt gemeint, ich schau mal ob ich irgendwo Hilfe finde...die haben selber auch alle nicht viel bis keine Ahnung von Labview, koennen mir also nicht helfen.

Also wenn ihr mir irgendwelche Tips geben koennt oder sonst irgendwie...was ich sagen will...ich wuerde mich echt sehr freuen :) - wenn es zu krass ist, dann auch kein Problem, dann ham die hier halt Pech gehabt :D
Andband
assistant
assistant
 
Posts: 132
Joined: 26 Oct 2009, 23:05
LabVIEW Version: 7.1
Karma: 5

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Eugen Graf on 27 Oct 2009, 17:03

Hallo und herzlich willkommen hier.
Klar ist deine Aufgabe machbar, sogar für einen Anfänger ist es lösbar.

Um auf die Daten von der seriellen Schnittstelle nicht im eigentlichen Hauptprogramm zu warten, würde ich eine parallele While-Schleife empfehlen. Damit läuft dein bestehendes Programm wie früher weiter, dazu parallel läuft dann noch eine Schleife, die die Daten über serielle Schnittstelle einliest.

Hast du den Quellcode vom Programm, das den Sensor bedient? Hast du Dokumentation zum Übertragungsprotokoll oder einen :labview: -Treiber?
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Andband on 27 Oct 2009, 17:47

Hallo Professor eg :) - Danke fuer deine nette Antwort. Das macht mir Mut :).

Ich hatte die Firma bereits angeschrieben, die den Sensor herstellt ob es moeglich ist diesen zu integrieren. Deren Antwort sagt mir nicht soviel:

"Prinzipiell kann der SHT1x über LabView angesteuert werden. Bitte beachten Sie dabei, dass Sie für die Schnittstellenkarten Typen mit Open Drain- Ausgängen verwenden, da der SHT1x nicht kompatibel zu I2C ist."

Einen Treiber oder einen Quellcode habe ich also nicht. Aber ich koennte eigentlich die Leute von dieser Firma mal gezielt danach fragen..aber wahrscheinlich ruecken sie das nicht raus...

Anscheinend haben das allerdings schon Leute mit Erfolg gemacht:
http://forums.ni.com/ni/board/message?b ... .id=179022

Allerdings ist das irgendwie ein krasses Programm mit lauter SubVIs was der eine da geschrieben hat und die neuste Version geht auf dem Labview 7.1 nicht und bei der aelteren, die sich zumindest starten liess (habe das Main.VI probiert und dann auf "Play" gedrueckt) habe ich keine Messwerte gesehen. Also das Programm hat halt einfach nichts gemacht.
Der Sensor selbst (ein Feuchtigkeitssensor) hat einen externen Controller auf dessen Display die 2 gemessenen Werte auch angezeigt werden - also eigentlich werden ueber die serielle Schnittstelle soweit ich weiss nur diese zwei Messwerte uebertragen.
Andband
assistant
assistant
 
Posts: 132
Joined: 26 Oct 2009, 23:05
LabVIEW Version: 7.1
Karma: 5

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Eugen Graf on 27 Oct 2009, 18:43

So, wie es aussieht, ist es keine einfach serielle Schnittstelle. Da kann es Probleme geben. Den Treiber hast du dir aber schon heruntergeladen, oder? http://forums.ni.com/ni/attachments/ni/ ... driver.llb

Über welche Schnittstelle wird der Sensor zur Zeit bei dir angesprochen?
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Andband on 27 Oct 2009, 20:02

Sorry, war grad Mittagessen.
Jop das Zeug hatte ich runtergeladen - in meinen Augen waren das irgendwelche Labview VIs die jemand programmiert hat. Wusste nicht, dass das ein offizieller Treiber ist. Wie gesagt, ich kenne mich nicht aus :)...was auch immer es ist: Es geht mit Labview 7.1 nicht (habs mit der Evaluierungsversion von 8.5 getestet um zu sehen was es ist).

Schnittstelle ist der ganz normale Com1 Port, an dem der Sensor angeschlossen ist - also wirklich RS232 - ich schwoer! :D
Andband
assistant
assistant
 
Posts: 132
Joined: 26 Oct 2009, 23:05
LabVIEW Version: 7.1
Karma: 5

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Eugen Graf on 27 Oct 2009, 20:13

Dann gib mal die genaue Typ-Bezeichnung deines Sensors und falls du hast das Datenblatt und die Doku dazu.
Die Schnittstelle, so wie ich sie in der Doku gesehen habe kann nicht (sicher zu 99%) über normale RS232 funktionieren.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Andband on 27 Oct 2009, 21:14

SHT75 heisst der Sensor. Ich hab ihn mir jetzt mal hierher geholt und an diesem Computer angeschlossen. Hier habe ich Labview 7.1 und 8.5 installiert.
Datenblatt findet sich hier:
http://www.sensirion.com/en/pdf/product ... -SHT7x.pdf

Das Datenblatt vom Controller gibt es hier:
http://www.sensirion.com/en/pdf/product ... 2%20_E.pdf
Andband
assistant
assistant
 
Posts: 132
Joined: 26 Oct 2009, 23:05
LabVIEW Version: 7.1
Karma: 5

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Eugen Graf on 27 Oct 2009, 21:20

Aha, das sieht ja ganz anders aus :super:
Du kommunizierst also nicht direkt mit dem Sensor, sondern über den Controller. Das vereinfach die Sache immens.

Dann musst du also nur über serielle Schnittstelle ein "GO" abschicken und die Daten sammeln. Ist doch gar kein Problem.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Andband on 27 Oct 2009, 21:27

oh, sorry, das hatte ich nicht erwaehnt, dass es den Controller gibt :)
Ich muss also ein Go abschicken und Daten sammeln und das ist kein Problem. Hihi :D
Was muss ich lesen/anschauen um das in die Tat umzusetzen?
Andband
assistant
assistant
 
Posts: 132
Joined: 26 Oct 2009, 23:05
LabVIEW Version: 7.1
Karma: 5

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Eugen Graf on 27 Oct 2009, 21:32

Starte zuerst Windows Hyper Terminal um zu schauen was das Teil rausspuckt. Wähle dort deine COM-Schnittstelle, dann Baud Rate 9600 und keine Hardware-Flußsteuerung. Dann öffne die Schnittstelle und tippe GO ein, danach mit ENTER bestätigen. Dann soll dein Sensor Daten liefern, mach dann einen Screenshot von dem und lade hier hoch.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Eugen Graf on 27 Oct 2009, 21:38

Oder mach folgendes, es ist schon fast alles, was du brauchst.
Attachments
Serial.png
Serial.png (5.88 KiB) Viewed 7615 times
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Andband on 27 Oct 2009, 21:46

tatsaechlich, da kommt was :thank:
Image
Andband
assistant
assistant
 
Posts: 132
Joined: 26 Oct 2009, 23:05
LabVIEW Version: 7.1
Karma: 5

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Andband on 27 Oct 2009, 21:47

bild is etwas misslungen, ka..ich werd den code gleich ma zusammenbauen, danke :)
Andband
assistant
assistant
 
Posts: 132
Joined: 26 Oct 2009, 23:05
LabVIEW Version: 7.1
Karma: 5

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Andband on 27 Oct 2009, 22:10

ok, code geht - danke, danke, danke - hat bissi gedauert bis ich die einzelnen Elemente gefunden habe :D - wie gesagt, bin ein Anfaenger.

Und was macht der Code genau? Er "oeffnet" vor der While-Schleife eine Datenleitung zum Seriellen Port. Das VISA-Write vor der While-Schleife schickt ein GO ENTER und die While-Schleife schaut sich dauernd die Daten an die da sind? Bzw. jedesmal wenn 100 Byte reingekommen sind wird gekuckt, oder? Und wie bekomme ich es hin, dass der Rest von einem Programm jetzt nicht warten muss? Ich mein diese Whileschleife, die wartet ja jetzt immer eine zwoelftel Sekunde, also bis halt bei 9600 Baud 100 byte uebertragen worden sind.

Also ich versuch mich deutlicher auszudruecken, sorry, also:
Nehmen wir mal an, ich haette ein Programm das die Daten von einem anderen Sensor ueber eine Messkarte mit 50 Hz liest und diese Werte in eine Datei schreibt. Jetzt soll fuer jeden Eintrag der aktuelle Wert von diesem COM1-Port Sensor auch mit eingetragen werden, allerdings weiss ich ja nicht genau wie schnell dieser Controller die Daten liefert, bzw. man sieht es ja, dass es viel langsamer ist (wenn man es im Hyperterminal macht), als z.B. die 50 Hz.
Weisst du was ich meine?
Andband
assistant
assistant
 
Posts: 132
Joined: 26 Oct 2009, 23:05
LabVIEW Version: 7.1
Karma: 5

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Postby Eugen Graf on 27 Oct 2009, 22:29

Ja klar. Wie oben schon gesagt, du kannst/musst die While-Schleife parallel zu deinem Hauptprogramm laufen lassen. Also einfach den Code irgendwo ausserhalb deines Haupt-Codes hinzeichnen. Danach kommt noch das Problem mit der Datenübergabe von einer Schleife zur anderen, aber es ist schon ein ganz anderes Thema.

P.S. und ja, für "Danke" gibt es Karma +1 :wink:
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Next

Return to Kommunikation mit Geräten

Who is online

Users browsing this forum: No registered users and 1 guest

cron