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 

Positionen auslesen



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!

24.02.2006, 19:13
Beitrag #1

Bertl Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Feb 2006



kA



Positionen auslesen
Hallo!!!!!
Ich habe ein sehr grosses Problem. Ich arbeite an einen Projekt und weiß nicht mehr weiter.
Mit meinem beigesteltem vi möchte ich noch folgendes ermöglichen:
Nach dem Einloggen schicke ich dem Microkontroller alle 20 ms das große K. Dann werden Werte ausgelesen und folgendes ausgefiltert zB.:
pos: 01
Es soll dann auf einem Balken die einzellnen Positionen von 1 bis 16 ersichtlich sein.
Es wäre toll wenn mir jemand helfen könnte!!
Danke


Angehängte Datei(en)
Sonstige .vi  terminal_test.vi (Größe: 207,07 KB / Downloads: 219)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.02.2006, 10:20
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Positionen auslesen
Hallo Bertl,
ich habe mir dein VI angeguckt. Was genau läuft denn nicht?
Ich habe gesehen du hastnur eine While-Schleife in der du einen Eventhandling machst. Wobei 200 ms als Timeuot angeschlossen ist. Du wolltest aber doch 20 ms ?!
Ich würde vorschlagen, du machst noch eine zusätzliche While-Schleife (Task), die nur alle 20 ms einen K zum uC sendet. Und eine weitere Task zum Auslesen der seriellen Schnittstelle.

Die Aufgabe an sich ist nicht schwer, ich mache schon seit einem Jahr solche Aufgaben (wobei ich mit bis zu 8 Units gleichzeitig kommuniziere). Und ich will dir dazu sagen, dass du ohne Multithreading nicht weiter kommst. Also benutze die Suchfunktion des Forums und lese was darüber.

Gruss, Eugen
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.02.2006, 22:41
Beitrag #3

Bertl Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Feb 2006



kA



Positionen auslesen
Hallo Eugen!!

Ich habe mich etwas schlau gemacht und ein vi gefunden.
Ich wollte dich nur fragen, wie ich es in mein Projekt einbinden kann und funktioniert es überhaubt? Wenn ja gibt es eine Möglichkeit die einzelnen Positionen auf einem Balken beobachten zu können.

Danke

Gruß Bertl


Angehängte Datei(en)
Sonstige .vi  Stringfilter_Beispiel.vi (Größe: 31,81 KB / Downloads: 208)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.03.2006, 10:38
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Positionen auslesen
Hallo Bertl,

dieses VI ist zum Parsen eines Strings, den du z.B. von der seriellen Schnittstelle empfängst. Am Ausgang gibt dieses VI alle Strings, die durch Zeilenende voneinander getrennt sind und mit einem Doppelpunkt anfangen. Natürlich kannst du dieses VI in deins einbinden (warum nicht?).
Die Frage ist nur:
ist dein String, den du vom uC empfängst genauso oder so ähnlich aufgebaut?

Dann ist zu beachten, dass du über serielle Schnittstelle nicht nur komplette Nachrichten empfängst, sondern auch abgebrochene (hängt davon ab, wie schnell du die serielle ausliest und wie der uC sendet). Du hast also mit einem Datenstrom zu tun. Deshalb müssen die abgebrochenen Zeilenteile evtl. "gepuffert" werden. Zu diesen Resten soll dann eine neue Portion Daten hinzukommen. Dafür eignet sich sehr gut eine Queue (Synchronisationspalette) oder ein Schieberegister in der Parsetask.

Wie ist das Protokoll? ASCII oder binär?

Ich empfehle dir, wie schon gesagt verschiedene Aufgaben in getrennte Tasks zu aufzuteilen. Bei dir wären das:
1. Eventhandling
2. Sendetask
3. Lesetask (evtl. mit dem Parsen und Anzeigen zusammen)
4. evtl. Parsetask
5. evtl. Anzeigetask

Das heist du machst 3 bis 5 parallellaufende Whileschleifen, die miteinander z.B. über lokale Variablen kommunizieren.
Wenn du es gemacht hast, wirst du sehen, wie übersichtlich und einfach dein Programm wird.

Alles, was ich bis jetzt gesagt habe, ist mehr für grosse Projekte gedacht, ist aber auch für kleine anwendbar.
Wenn in deinem Projekt nur ein paar Strings vom uC empfangen, gesendet und angezeigt werden müssen, dann programmiere weiter so, wie bis jetzt. Es ist natürlich fraglich was am schnellsten ist. Meine Methode ist auf jeden Fall effizienter.


Gruss, Eugen
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2006, 12:18
Beitrag #5

Bertl Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Feb 2006



kA



Positionen auslesen
Hallo Eugen!
Danke für deinen Tipp! Ich habe gestern mich wieder mit dem Projekt befaßt und habe mir deine Tipps angesehen.
Ich bin leider nicht sehr weit gekommen. Vielleicht kannst du mir einen Ansatz basteln.
Alles passiert im Programm in Binär.
Das beigefügte Dokument liest das große K aus, wobei pos: 01 die Haltestelle ist.

Danke!!

Gruß Bertl


Angehängte Datei(en)
Sonstige .vi  terminal_test1.vi (Größe: 218,85 KB / Downloads: 205)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.03.2006, 10:44
Beitrag #6

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Positionen auslesen
Hier hasst du den Ansatz.


Gruss, Eugen


Angehängte Datei(en)
Sonstige .vi  terminal_test1.vi (Größe: 256,35 KB / Downloads: 195)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.03.2006, 13:38
Beitrag #7

Bertl Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Feb 2006



kA



Positionen auslesen
Hallo Eugen!

Habe gestern am Abend ein bei meinem Projekt weitergemacht. Habe das Problem, daß das gewünschte nicht ausgelesen und am Balken nicht angezeigt wird. Dafür habe ich es mit der 3. Position versucht.
Vieleicht kannst du mir weiterhelfen???
Danke

Gruß Bertl!!


Angehängte Datei(en)
Sonstige .vi  terminal_test1.4_ohneK.vi (Größe: 301,67 KB / Downloads: 161)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.03.2006, 14:18
Beitrag #8

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Positionen auslesen
Hallo Bertl,

ich habe was geändert, probiere mal so, ob es klappt.

Gruss, Eugen


Angehängte Datei(en)
Sonstige .vi  terminal_test1_1_.4_ohneK.vi (Größe: 268,21 KB / Downloads: 181)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.03.2006, 22:49
Beitrag #9

Bertl Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Feb 2006



kA



Positionen auslesen
Hallo Eugen!
Danke für deine Mithilfe!!!Ich habe es heute ausprobiert. Es funktioniert. Es hat noch einen kleinen Fehler. Wenn ich in die 2. Haltestelle einfahre gibt mir der Tank kurz die 2 aus. Hast du einen Vorschlag wie man so etwas lösst? Wie kann man mehrere Halltestellen herausfiltern aus dem vi, wenn ich die restlichen Haltestellen auf meinem Tank ansehen möcht?

Gruß Bertl
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
  Positionen auslesen Bertl 0 2.517 24.02.2006 19:13
Letzter Beitrag: Bertl

Gehe zu: