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 

Serial Port Write



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!

23.07.2008, 12:55
Beitrag #1

Labview-Beginner Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 114
Registriert seit: Oct 2007

6.1
2007
kA

67705
Deutschland
Serial Port Write
Hallo Leute,

ich bin mal wieder auf der Fehlersuche und habe eine Frage zum "Serial Port Write".

Ich schicke ein paar Befehle an meinen Regler und nachdem alle Parameter übergeben sind lautet der letzte Befehl eben "Programm starten". In Form eines 1D Arrays über "Serial Port Write" an den Regler geschickt.

Jetzt habe ich nur das Problem, dass der Regler manchmal nicht reagiert.

So war meine Vermutung, dass LabVIEW schneller die Befehle an den Port senden will, als der Port mit der Übermittlung der Daten nachkommt.

Laut Beschreibung bin ich auf eine Dauer des Datenaustauschs von 900ms (so viel?!?) gestoßen. Also habe ich in jede Sequenz ein "Wait 1000ms" eingefügt.

Das hat das Problem stellenweise behoben.

Nur manchmal reagieren die Regler immer noch nicht. Dry


Zu meiner Überraschung habe ich dann in andere Programmteile geschaut wie z.B. Abbruch oder Stand By, die keine derartige Wartezeit inne haben und die Ausführung funktioniert tadellos. Huh


Natürlich ist es für euch wieder schwierig mir mit solch einer fragmentartigen Problemstellung zu helfen, aber ich dachte vielleicht ist es etwas gängiges was ich berücksichtigen muss: "Serial Port Write", meine PCI Karte...o.ä.


Cheers.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.07.2008, 14:51
Beitrag #2

Labview-Beginner Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 114
Registriert seit: Oct 2007

6.1
2007
kA

67705
Deutschland
Serial Port Write
Oke Leute,

also an der dem Serial Port bzw. meiner PCI Karte scheint es nicht zu hängen. Das klappt tadellos.

Vielmehr musste ich feststellen, dass LabVIEW scheinbar ein Element in einer Queue nicht weitergibt. Huh

Bei drücken von "OK Button Rampe" wird ja der "output array" in die Queue geschoben.

Nur leider wird er dann nicht in der obigen While Schleife herausgeholt.

Strange.

Muss ich da auf einen zeitlichen Abgleich achten? Hab doch extra das Metronom in die große Schleife gesetzt.

Cheers.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.07.2008, 15:09
Beitrag #3

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serial Port Write
' schrieb:Vielmehr musste ich feststellen, dass LabVIEW scheinbar ein Element in einer Queue nicht weitergibt.
Wie hast du das denn festgestellt?

Zitat:Nur leider wird er dann nicht in der obigen While Schleife herausgeholt.
Wie hast du das denn festgestellt?

Zitat:Muss ich da auf einen zeitlichen Abgleich achten?
Normalerweise nicht.

Bis du sicher, dass die kleine While-Schleife überhaupt noch läuft? Vielleicht wurde sie durch den Errorcluster(?) des rechten Queue-Elementes beendet?

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
23.07.2008, 19:57
Beitrag #4

Labview-Beginner Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 114
Registriert seit: Oct 2007

6.1
2007
kA

67705
Deutschland
Serial Port Write
Ich habe mir die Programmausführung im Highlight Execution Modus angesehen.

Und zwar verfolge ich wie die Case Struktur in dem True Fall aufleuchtet und nach und nach die beteiligten Komponenten nicht mehr ausgegraut sind.

Und in der obigen While Schleife erkenne ich dann, dass das Element aus der Queueu herauskommt, dass da eben z.B. eine 6x13 aufleuchtet, sprich eine "6 kreuz 13 Matrix" wurde übergeben.

Nur ist das später nicht mehr der Fall. Da tut sich bei dem "Dequeue" nichts mehr. Dry

Zitat:Bis du sicher, dass die kleine While-Schleife überhaupt noch läuft? Vielleicht wurde sie durch den Errorcluster(?) des rechten Queue-Elementes beendet?

Also sicher bin ich mir als Laie natürlich nicht. Rolleyes

Aber die Errorbedingung kommt doch daher, dass ich die große While Schleife beende, und somit der Datenfluss hinaus kann. Sprich die Queues werden "zerstört" und somit meldet eine der obigen Dequeue Elemente einen Error.
Und diese Bedingung wird ja sonst nicht erbracht.

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.07.2008, 21:46
Beitrag #5

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serial Port Write
Die kleine While-Schleife bleibt stehen, weil du bei "Queue-Lesen" als Timeout -1 eingegeben hast. Solange also in der einen Queue nichts drinnen steht, wird auch die andere nicht ausgelesen.

Verwende den "Status der Queue"!


Angehängte Datei(en) Thumbnail(s)
   

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
24.07.2008, 11:48
Beitrag #6

Labview-Beginner Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 114
Registriert seit: Oct 2007

6.1
2007
kA

67705
Deutschland
Serial Port Write
Oke, danke.

Ich denke das Prinzip habe ich auch verstanden. Wenn in der anderen Queue gar kein Element ist, dann kommt es auch erst gar nicht zum "Dequeue Elment" und somit kann der Vorgang auch nicht hängen.


Jetzt nur rein interessehalber: Warum funktioniert es genau beim ersten Mal? Und danach manchmal....manchmal aber auch nicht?

Hängt das daran, dass man bei LabVIEW eben nicht sagen kann, welcher Vorgang in so einer Schleife zuerst abgearbeitet wird?

Cheers.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.07.2008, 14:56 (Dieser Beitrag wurde zuletzt bearbeitet: 24.07.2008 14:57 von IchSelbst.)
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serial Port Write
' schrieb:Hängt das daran, dass man bei LabVIEW eben nicht sagen kann, welcher Vorgang in so einer Schleife zuerst abgearbeitet wird?
Im Prinzip liegt es daran - und auch wieder nicht.

Du musst dir folgendes vorstellen:
Alles, was in der While-Schleife steht, wird nacheinander ausgeführt, auch wenn keine explizite Sequenzierung vorhanden ist. Jetzt passiert folgendes: Die While-Schleife geht zuerst in das obere Queue-Lesen und wartet solange, bis hier was gelesen werden kann. Derweil wird das untere Queue-Lesen gar nicht beachtet! Kommt jetzt in das obere Queue-Lesen was rein (Tastendruck Array Senden), wird das Element ausgelesen und weiter bearbeitet. Danach wird in das untere Queue-Lesen verzweigt - und dafür das obere ignoriert! Wenn jetzt das "Array senden" kommt, wird das eben solange nicht bearbeitet, solange nicht zuvor was aus der unteren Queue gelesen wurde. Usw. Die beiden Queue stören sich also gegenseitig.

Eine Lösung ist die, die ich dir als Bild gepostet habe. Eine andere wäre, pro Queue eine While-Schleife, die dann mit dem Error-Cluster beendet wird.

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Parallel Port Read and Write Loop.vi rothhp 2 4.292 16.12.2015 16:08
Letzter Beitrag: rothhp
  OpenG Write INI Cluster, COM Port wird komisch gespeichert dali4u 2 3.788 06.11.2014 13:27
Letzter Beitrag: dali4u
  Probleme beim laden der "VISA configure serial port.VI" Vitus 4 4.710 23.10.2006 14:10
Letzter Beitrag: Vitus

Gehe zu: