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 

RS232 Übertragung mit SLIP protokoll



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!

28.12.2007, 17:21 (Dieser Beitrag wurde zuletzt bearbeitet: 28.12.2007 17:22 von IchSelbst.)
Beitrag #11

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232 Übertragung mit SLIP protokoll
' schrieb:also ich komm da auf keinen grünen Zweig wie ich es schaffe mir immer ein Byte reinzuholen und dann entsprechend abzuarbeiten. ..
Zeig' doch mal, was du programmiert hast. Schön wär ein VI.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.12.2007, 20:30
Beitrag #12

maltejahn Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Mar 2007

2009
2009
kA

0
Sonstige
RS232 Übertragung mit SLIP protokoll
Hallo,

ja Dein Programm ist nicht viel gewachsen bis auf eine Funktion die den Port öffnet und eine die vom Port Daten abholt. Trotzdem im Anhang, Version 8.2.


Angehängte Datei(en)
Sonstige .vi  Slip_Empfang.vi (Größe: 21,03 KB / Downloads: 185)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.12.2007, 22:00
Beitrag #13

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232 Übertragung mit SLIP protokoll
' schrieb:Dein Programm ist nicht viel gewachsen bis auf eine Funktion die den Port öffnet
Ich hab mal alle Drähte gerade gezogen und weitere Sachen gemacht, die man so machen sollte.

Ist denn gewährleistet, dass zwischen dem Öffnen (respektive der Konfiguration) und dem Lesen der Schnittstelle das Endgerät Daten gesendet hat?


Angehängte Datei(en)
Sonstige .vi  Slip_Empfang_821.vi (Größe: 28,3 KB / Downloads: 187)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.12.2007, 13:23
Beitrag #14

maltejahn Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Mar 2007

2009
2009
kA

0
Sonstige
RS232 Übertragung mit SLIP protokoll
Hallo,

das funktioniert. Habe jetzt das ganze noch durch ein "array to cluster" und "unbundle" erweitert um mit den einzelnen Elementen weiter arbeiten zu können.
Momentan ist meine Aktualisierungsrate des Mikroprozessors höher als die Zeit die das Programm wartet um Daten zu sammeln. Zum einen ist das gut, da es so nie dazu kommt das die Werte wieder auf null zurückfallen. Andererseits kommt es vor das das Programm so zwei Datensätze sammelt. Eigentlich fast egal, die Elemente sind ja immer noch an ihrer stelle. Nur wird der zweite Datensatz nicht verwertet.

Jetzt müsste ich
- es so Gestalten das die Daten behalten werden, zumindest für mehrere Zyklen damit die Anzeigen nicht auf null zurückfallen (dies z.B. wenn die Aktualisierungsrate des µC geringer ist als die Zeit um sammeln von LabVIEW)
- Wenn das Ende empfangen wurde dann array Löschen. Also hab ich in der While Schleife jedes Element auf 0xC0 überprüft, falls ja, dann Zähler der Schleife zurück auf null. Geht aber leider scheinbar nicht
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.12.2007, 10:49
Beitrag #15

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232 Übertragung mit SLIP protokoll
' schrieb:Jetzt müsste ich
z.B. so vorgehen:
Ich mach mir ein SubVI, das nichts weiter tut, als die Serielle Schnittstelle zu bearbeiten. Dieses SubVI besteht aus einer Statemachine (guckst du Onlinehilfe von LV bzw. Internet etc.) - eine Statemachine ist eine Whileschleife mit einer Case-Sequenz drinnen. Es gibt da z.B. folgende States: VISA konfiguriueren, VISA öffnen, Daten lesen, VISA schließen, SubVI beenden, etc. Das SubVI selbst wird mittels einer Queue (guckst du wieder Onlinehilfe und Beispiele) gesteuert, d.h. welcher State ausgeführt werden soll, wird von außen über die Queue mitgeteilt. Hauptsächlich wird sich dieses SubVI - das einmalig gestartet wird und dann prinzipiell ewig läuft - sich also im State "Daten lesen" befinden. Immer wenn ein Datensatz gelesen wurde, wird der in eine Queue (oder einen Melder (den wieder nachlesen)) geschrieben und somit ist der Datensatz für die Außenwelt verfügbar.

Zitat:das die Daten behalten werden, zumindest für mehrere Zyklen damit die Anzeigen nicht auf null zurückfallen (dies z.B. wenn die Aktualisierungsrate des µC geringer ist als die Zeit um sammeln von LabVIEW)
Das kannst du machen, indem du die Daten in einen Melder schreibst. Dort bleiben sie dann stehen, bis sie überschrieben werden. "Herausholen" aus dem Melder tust du sie NICHT mit "Meldedaten lesen" (hiermit würden sie gelöscht werden), sondern mit "Meldestatus lesen" (hiermit sind sie bei jeden Lesen verfügbar). Wenn du die Daten z.B. nur Anzeigen willst, ist ein Melder ausreichend. Wenn du sie z.B. mit einem Timestamp abspeichern willst, würde ich eine Queue nehmen. Queues sind flexibler einsetzbar, bedürfen aber einen ausführlicheren Programmierung.

Zitat:Wenn das Ende empfangen wurde dann array Löschen. Also hab ich in der While Schleife jedes Element auf 0xC0 überprüft, falls ja, dann Zähler der Schleife zurück auf null.
Das würde im SubVI alles automatisch gehen.


Die Sache mit dem SubVI ist aufwändig. Da hab ich bisher keine Lust gehabt, eine Mustervorlage zu erstellen. Aber wer weiß, das Jahr ist ja noch lang. Ich hab mal angefangen, eine Whileschleife zu machen, die praktisch zeichenweise einen Datensatz lesen könnte - nach entsprechendem Ausbau.


Angehängte Datei(en)
Sonstige .vi  Slip_Empfang_821.vi (Größe: 39,04 KB / Downloads: 177)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.12.2007, 15:56 (Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2008 14:14 von jg.)
Beitrag #16

maltejahn Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Mar 2007

2009
2009
kA

0
Sonstige
RS232 Übertragung mit SLIP protokoll
Hallo,

leider verstehe ich nicht ganz wie das Programm funktioniert
- Die Whileschleife wird alle 5ms ausgeführt
- bei weniger als 5 byte 20ms warten, bei mehr auswerten
- alle 5ms wird dann das array mit den im Buffer befindlichen Daten zur Auswertung gefüllt
- das n elemente des Arrays werden wieder gelöscht

Problem ist nur, das ich zum senden (wie ich es eingefügt habe) und zum empfangen jedesmal des Stop Button zum beenden der While schleife drücken muss (wobei das ja selbst erledigt werden sollte ->while schleife). Man herangenesweise wäre gewesen - wobei ich nciht weiß ob es so in LabVIEW abbildbar ist:
- lauschen ob auf der RS232 was kommt.
- wenn was kommt, dann ab damit in das array
- solange füllen bis ein 0xC0 kommt
- wenn ein 0xC0 kam, dann auswerten und gleichzeitig das array zurücksetzen


Anbei der aktuelle Stand (Lv82_img)


Angehängte Datei(en)
Sonstige .vi  MotorControlSlip.vi (Größe: 89,98 KB / Downloads: 202)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.12.2007, 23:34
Beitrag #17

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232 Übertragung mit SLIP protokoll
' schrieb:eider verstehe ich nicht ganz wie das Programm funktioniert
Das macht nichts. - Naja. Eigentlich schon. Aber warte nur, bis du diesen Anhang heruntergeladen hast. Der macht jetzt nämlich das, was du willst (naja größtenteils hoffe ich), so wie ich mir das vorgestellt habe.

Zitat:wobei ich nciht weiß ob es so in LabVIEW abbildbar ist:
Es gibt nichts - naja vielleicht eher wenig - was nicht in LV abbildbar ist.

Zitat:- lauschen ob auf der RS232 was kommt.
- wenn was kommt, dann ab damit in das array
- solange füllen bis ein 0xC0 kommt
- wenn ein 0xC0 kam, dann auswerten und gleichzeitig das array zurücksetzen
Das würde wohl auch gehen. Würde aber voraussetzen, dass der Datensatz immer gleich aussieht. Wegen dem nicht explizitem Start.


Angehängte Datei(en)
Sonstige .zip  Beispiel_RS232.zip (Größe: 258,26 KB / Downloads: 195)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.12.2007, 18:12
Beitrag #18

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232 Übertragung mit SLIP protokoll
' schrieb:Anbei der aktuelle Stand
Zwei Sachen möchte ich hierzu anmerken.

Erstens: Elemente im Cluster.
In deinem Falle kannst du dir einigen Platz im BD sparen, wenn du die jeweils 8 Boolschen Werte in einem Cluster zusammenfasst.

Zweitens:
Ich empfehle, alles so zu programmieren, dass nirgends die roten Konvertierungspunkte erscheinen. Viele lassen sich ganz einfach dadurch entfernen, indem du die Bedienelemente bzw. Konstanten manuell von Int32 auf double umstellst. An gegebener Stelle kann man auch ein Int32 - in deinem Falle U8 - einfügen (wie du das ja an mehreren Stellen schon praktiziert hast). Nicht immer kommt bei einer automatischen Konvertierung (durch den roten Punkt am Eingang) das heraus, was man haben will. Der Typ der Eingänge sollte immer so sein, wie der Typ des Ausganges respektive des Anzeigeelementes es verlangt.

Drittens:
Die Forderung, in einem Blockdiagramm nicht mehr zu programmieren als auf eine Bildschimseite passt, ist auf den ersten Blick vielleicht übertrieben. Auf den zweiten - wie in deinem Falle - aber nicht: Die Sache wird einfach übersichtlicher. Wenn man den Bildschirminhalt verschieben muss, nur um ein Wire zu verfolgen, dann wird das mit der Zeit lästiger als mehrere SubVIs zu haben. Berechnungen oder z.B. Whileschleifen mit selbst nur einem Eingang und einem Ausgang sollte man lieber in ein SubVI auslagern. Das Icon hierfür verbraucht erheblich weniger Platz - was der Übersichtlichkeit dient. Entsprechendes gilt eben auch für das Zusammenfassen von Elementen in einem Cluster.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.01.2008, 12:15
Beitrag #19

maltejahn Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Mar 2007

2009
2009
kA

0
Sonstige
RS232 Übertragung mit SLIP protokoll
Oje, das erschlägt. Werde mal versuchen erst die ganzen unter VIs zu verstehen. Das man die Aufgaben in einer großen Endlosschleife bearbeitet ist sicherlich sinnvoll. Aber jetzt muss ich auch noch herausfinden wie ich vom Frontpanel aus auf die "Aln_Klasse" mit dem Datenarray zurückgreifen kann.


Zitat:Zweitens:
Ich empfehle, alles so zu programmieren, dass nirgends die roten Konvertierungspunkte erscheinen..
Werde ich versuchen zu beherzigen


Zitat:Drittens:
Die Forderung, in einem Blockdiagramm nicht mehr zu programmieren als auf eine Bildschimseite passt, ist auf den ersten Blick vielleicht übertrieben. Auf den zweiten - wie in deinem Falle - aber nicht: Die Sache wird einfach übersichtlicher.

Am Anfang tat ich das auch und hab mir so mini VIs z.B. 32Bit in 4x8 Bit wandeln usw. Muss wohl damit wieder anfangen. Aber damit habe ich noch nicht so intensiv gearbeitet.

Nebenbei, ein gutes neues und Danke für die Hilfe!

Gruß
Malte
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.01.2008, 15:09
Beitrag #20

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232 Übertragung mit SLIP protokoll
' schrieb:Aber jetzt muss ich auch noch herausfinden wie ich vom Frontpanel aus auf die "Aln_Klasse" mit dem Datenarray zurückgreifen kann.
Indirekt. Eben mittels Queue und/oder Melder.

Zitat:Am Anfang tat ich das auch und hab mir so mini VIs z.B. 32Bit in 4x8 Bit wandeln usw. Muss wohl damit wieder anfangen. Aber damit habe ich noch nicht so intensiv gearbeitet.
Du kommst früher oder später (eher früher) in Teufels Küche, wenn du's nicht machst.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
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
  fehlerhafte Bytes-Übertragung bei VISA Steve1 2 3.630 21.08.2006 15:08
Letzter Beitrag: Steve1

Gehe zu: