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 

Erkennung wenn Mikrocontroller Daten schickt



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!

14.11.2014, 15:22 (Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2014 16:27 von kallejoerg.)
Beitrag #1

kallejoerg Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Nov 2014

LabView 2012
2014
DE



Erkennung wenn Mikrocontroller Daten schickt
Hallo Zusammen,

über USB habe ich einen Mikrocontoller mit meinem PC verbunden. Sobald sich ein boolscher Wert bzw. numerischer Wert auf mein Frontpanel ändert, schickt LabView Daten an den Mikrocontroller. Messende Sensoren am µC senden Daten an LabView, wenn diese sich über über einen bestimmten Toleranzgrenze ändern.

Eine Ereignisstruktur ermöglicht mir problemlos die Daten via VISA an den µC zu senden. Das Empfangen habe ich, wie das Bild im Anhang zeigt, in meinem Timeout gepackt. Dies funktioniert, jedoch ist ersten das Timeout dafür nicht da und zweiten liest er immer.

Folgender Versuch hat auch nicht geklappt:
Die Funktion Byte at Port habe ich vor die Ereignisstruktur gepackt und einer Variablen zugeordnert. Im Anschluß eine neues Ereignis-Case generiert "Daten lesen". Dieses Case soll aktiviert werden, wenn sich eine Wertänderung in der Variable "Byte at Port" erfolgt.
Jedoch wird die Wertänderung im Ereignis-Case nicht erkannt und somit nicht aktiv und die Funktion Byte at Port erkannt auch Daten die von LabView zum µC gesendet werden.

Hat jemand ein Tipp wie ich ein Ereignis aktivieren kann, wenn Daten am Port vom µC zu LabView anliegen?

Ich Danke vorab für eure Hilfe.

Beste Grüße und ein schönes Wochenende

Kalle


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.11.2014, 16:41 (Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2014 16:49 von Lucki.)
Beitrag #2

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Erkennung wenn Mikrocontroller Daten schickt
(14.11.2014 15:22 )kallejoerg schrieb:  Hat jemand ein Tipp wie ich ein Ereignis aktivieren kann, wenn Daten am Port vom µC zu LabView anliegen?
Einfach die "Zeilenendeerkenung" aktivieren. Standardmäßig ist das sogar schon der Fall. VisaRead wartet dann solange, bis ein Zeilenendezeichen im Empfangspuffer ist und liest dann die gesamte Zeile aus. Das Eintreffen des Zeilenendezeichens ist das Ereignis, das Ganze ist eigentlich eine Ereignisbehandlung, aber man braucht dazu keine Ereignisstruktur. (Damit es funktioniert: An den Eingang Byteanzahl eine Konstante anschließen, die größer ist als die zu erwartenden Zeilenlänge. Nicht die Funktion Bytes at Board verwenden!)
Der µC muß die Daten natürlich im entsprechenden Format, d.h mit Zeilenendezeichen, senden. Normalerweise sollte das der Fall sein, aber je nachdem wer den µC progammiert hat, ist natürlich alles Andere auch möglich.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.11.2014, 07:14
Beitrag #3

kallejoerg Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Nov 2014

LabView 2012
2014
DE



RE: Erkennung wenn Mikrocontroller Daten schickt
Hallo Lucki,

vielen Dank für deinen Beitrag. Jedoch kann ich nicht richtig damit was anfangen, da ich an der Ereignisstruktur eigentlich festhalten wollte.
In dieser befindet sich auch Cases zum schreiben an den µC, sprich die bei Wertänderung der Inputs am Frontpanel aktiviert werden.
Im Anhang ein Minimalbeispiel. Wenn sich somit der boolsche LED Botton ändert, sendet LabView Daten an den µC (Arduino). Wenn keine Eingabe erfolgt, jedoch Daten von Mikrocontroller gesendet werden, soll ein separates Case aktiv werden, wo Daten von µC gelesen werden. Im Anschluß sollen die Daten im Frontpanel aktualisiert werden.
Mein Minimalbeispiel funktioniert, jedoch möchte ich den Inhalt aus dem Timeout haben.

Kann das mit deiner angesprochenen Zeilenenderkennung umgesetzt werden?

Beste Grüße
Kalle


Angehängte Datei(en)
12.0 .vi  Host_Forum.vi (Größe: 266,51 KB / Downloads: 217)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.11.2014, 09:24 (Dieser Beitrag wurde zuletzt bearbeitet: 17.11.2014 09:32 von Lucki.)
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Erkennung wenn Mikrocontroller Daten schickt
Vergiss die Zeilenende-Erkennung. Du sendest ja die Bytes direkt und nicht als Text. Das hat den Vorteil, dass man nur halb so viele Bytes zur Übertragung braucht. Bei sehr hohen Datenraten notwendig, sonst aber eher ungünstig. Bei der üblichen Datenübertragung von Zahlen in Form eines lesbaren ASCII-Textes braucht man hingegen 2 Zeichen (0..9, A..F) für jedes Zahlenbyte, was aber den Vorteil hat, dass Zeilenendezeichen und andere Zeichen als Steuerzeichen zur Verfügung stehen.
Die Kommunikation und Synchronisation wird aber dann schwieriger. Man weiß nicht mehr, was Anfang und Ende einer Message ist. (Man kann es nur an den Pausen zwischen 2 Nachrichten erkennen). Ich kann Dir hier keine Empfehlung geben, man müßte die Formate aller Nachrichten genau wissen.
Übrigens: Die Konverierung der 4 Byte in U32 und DBL ginge einfacher so:

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.11.2014, 09:50
Beitrag #5

kallejoerg Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Nov 2014

LabView 2012
2014
DE



RE: Erkennung wenn Mikrocontroller Daten schickt
Hallo Lucki,

danke für deine Nachricht und den Konvertierung-Tipp!

Es werden max. 4 Sensoren, sprich 4x4 Byte, hintereinander vom µC zu LabView gesendet. Im Anhang das Bild wie in LabView die 4x4Bytes gelesen werden (nach alt - dein Konvertierung-Tipp wird umgesetzt).

Langfristig würde ich gern vom µC 5 Bytes senden (1Byte Sensoradresse, 4Byte Sensorwert).
Sprich, wenn sich einer der 4 Sensoren im Toleranzfeld ändert, sendet der µC an LabView die entsprechende Sensoradresse und den Sensorwert (Sensorwert kann sich sekündlich oder stündlich ändern). Somit muss nur gelesen werden, wenn wirklich was passiert. Aber dafür brauche ich eine Ereigniserkennung, dass Daten vom µC kommen.
Zumindest ist das meine Umsetzungsidee.

Beste Grüße

Kalle


Angehängte Datei(en) Thumbnail(s)
   
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
  String von Mikrocontroller einlesen mit Listbox tatnau 4 4.319 17.08.2015 10:06
Letzter Beitrag: tatnau
  Messwerte von Mikrocontroller sunshine1234 5 5.411 11.02.2015 18:28
Letzter Beitrag: GerdW
  Kommunikation Mikrocontroller LabVIEW cRyo 4 5.416 29.06.2012 11:57
Letzter Beitrag: cRyo
  Anschlussproblem bei Arduino Duemilanove compatiblem Mikrocontroller rekorn 1 4.481 29.11.2011 17:49
Letzter Beitrag: rekorn
  Mikrocontroller über RS 232 Bird 2 5.761 08.05.2008 07:57
Letzter Beitrag: rolfk
  COM-Erkennung ezekiel 2 3.677 03.04.2008 13:15
Letzter Beitrag: ezekiel

Gehe zu: