LabVIEWForum.de
Gleichzeitig schreiben und lesen mit Visa - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Gleichzeitig schreiben und lesen mit Visa (/Thread-Gleichzeitig-schreiben-und-lesen-mit-Visa)

Seiten: 1 2 3


Gleichzeitig schreiben und lesen mit Visa - mige0311 - 24.02.2006 15:33

Hallo
Eine Frage ich will über "Visa lesen" kontinuierlich einen String empfangen und gleichzeitig kontinuierlich einen String über "Visa schreiben" senden. Muß ich bevor ich schreibe das Visa lesen mit Visa schließen beenden oder muß ich das irgendwie mit Zeitschleifen realisieren. Über Hilfe wäre ich sehr Dankbar. Benutzte Version LabVIEW 7.1

Das Vi schicke ich mit zum Download


Gleichzeitig schreiben und lesen mit Visa - Fritz - 24.02.2006 21:37

Hallo,

bei dem von mir veränderten Programm ist das Senden und Empfangen in einer eigenen Schleife. Beide Schleifen laufen parallel.

Ob der Empfangsteil funktioniert kann ich nicht sagen, ich nehme aber an, dass Du das schon getestet hast.

Von der Empfangsschleife ist der Stop-Taster, der die Schleife beendet, auch auf die Sendeschleife geführt. Wichtig ist, dass dieses über eine Lokale Variable erfolgt, da sonst durch die Datenflußsteuerung nur eine Schleife läuft.

mfg
Fritz


Gleichzeitig schreiben und lesen mit Visa - mige0311 - 25.02.2006 01:04

Erstmal danke für die schnelle Antwort!
Hab das Programm mal etwas vereinfacht hab mal nur einen Schalter eingefügt. Nach dem ich noch einen Fehler im Programm meines Roboters (RP5) ausgebessert habe funktioniert es jetzt auch. Ein Problem habe ich aber noch der Schalter reagiert aber erst nach dem das Timeout einmal abgelaufen ist (Fehlermeldung wird angezeigt) vorher hat der Schalter keine Wirkung. Die Fehlermeldung erscheint manchmal sofort nach dem ich das Vi gestartet habe oder erst nache 10 Sekunden (Timeout abgelaufen). Da weiß ich mir keinen Rat wiso das so ist??? Und dann noch ne Frage zu den 50ms Verzögerung für was wird die benötigt? Wenn ich die Verzögerung herrausnehme funktioniert es auch.

Dann hoffe ich das mir da auch jemand einen Rat geben kann!Big Grin


Gleichzeitig schreiben und lesen mit Visa - Fritz - 25.02.2006 09:07

Hallo,

welcher Schalter reagiert erst nach 10 sec.
Der "Stop" oder der "Vorwärt" - Schalter?

Die 50 ms bewirken, dass nur 20mal pro Sekunde Daten zum Roboter geschickt werden. Es könnte sonst sein, dass der Roboter mit den vielen Daten nicht zurechtkommt. Man könnte das auch eleganter in LabVIEW mit einem Event lösen.

mfg
Fritz


Gleichzeitig schreiben und lesen mit Visa - mige0311 - 25.02.2006 09:37

Hallo

Also beide Schalter reagieren nicht bis das Timeout einmal abgelaufen ist.
Sobald dann die Fehlermeldung erscheint wird 0 oder 1 (je nach Schalterstellung) vom Schalter Vorwärts gesendet und mein Robby setzt sich in Bewegung obwohl ich nocht nicht auf WEITER in der Fehlermeldung geklickt habe. Mit dieser Eventsteuerung da kenn ich mich gar nicht aus ich mir das als Thema für eine Projektarbeit rausgesucht. Hab mir größtenteils alles elbst beigebracht mit viel Zeitaufwand aber das mit dem lesen und schreiben das ging nie so richtig da mußte ich dann doch mal nachfragen


mfg mige0311


Gleichzeitig schreiben und lesen mit Visa - Fritz - 25.02.2006 11:06

Hallo,

der Vorwärtsschalter kann tasächlich nicht gleich bedient werden. Das liegt aber daran, dass keine Schnittstelle angegeben wurden ist. Ich würde am Fronpanel bei Schnittstellenauswahl COM1 hineinschreiben.
Falls das danach klappt, könntes Du im Menü "Auswahl" den Punkt "Aktuellen Wert als Standard" aktivieren. Dann wird der Wert COM1 gespeichert und beim nächsten öffnen des VI's ist COM1 schon eingetragen.

Die Stoptaste ist tatsächlich in diesem Programm ein Problem. Die Empfangsschleife wartet auf 40 Zeichen vom Roboter und man kann nicht den Schalter abfragen. Das müße man anders programmieren. Hat der String vom Roboter vielleicht ein "Ende-Zeichen" im String? Dann könnte man damit etwas anfangen.
mfg
Fritz


Gleichzeitig schreiben und lesen mit Visa - Fritz - 25.02.2006 12:43

Hallo,

die Stop-Taste beendet im Beispiel über den Event-Haendler das Vi.

mfg
Fritz


Gleichzeitig schreiben und lesen mit Visa - mige0311 - 25.02.2006 13:08

Hallo

Also solangsam funktioniert es. Wenn ich das VI das erste mal starte geht es. Wenn ich dann das Vi beende und neu starte dann kommt sofort die Fehlermeldung und mein Roboter macht komische Sachen. Wenn ich aber dann das Vi starte ohne den Roboter anzuschalten und dann wieder beende und wieder starte mit dem Roboter geht es wieder. Ich denke irgenetwas wird da noch im Schreibpuffer der Schnittstelle stehen was bei erneuten ausführen wohl dann zu der Fehlermeldung führt. Gibt es etwas bei LabVIEW wo man beim Beenden de VI's den Schreibpuffer der Schnittstelle löschen kann ich glaube das wäre dann die Lösung.

Ich hoffe ich habe es nicht zukomplizert erklärtBig Grin

mfg mige0311


Gleichzeitig schreiben und lesen mit Visa - Fritz - 25.02.2006 14:28

Hallo mige

eigentlcih wird durch das Öffnen der Schnittstele mit der Visafunktion der Puffer geleert. Ich könnte mir als Ursache für das Verhalten des Roboters folgendes vorstellen:
Falls der Roboter läuft und z.B. schon 10 Zeichen geschickt hat übernimmt das LabVIEW-Programm die restlichen 30 Zeichen und von der nächsten Botschaft die erste 10 Zeichen. Das ist natürlich eine Vermischung von 2 Botschaften.
Falls das so ist, könnte man:
1) Ein Startzeichen einführen, das sonst nicht vorkommt ($ @ ..).
Das LabVIEW Programm wartet auf das Startzeichen und dann liest es die 40 folgenden Zeichen ein.
2)Oder: Der Roboter antwortet nur auf Anforderung von LabVIEW. LabVIEW ist dann der Master, der die Kommunikation kontrolliert.

Ob das jetzt passt?
Bitte erzähle uns doch noch etwar über dein Projekt, das interessiert uns doch sehr.
mfg
Fritz


Gleichzeitig schreiben und lesen mit Visa - mige0311 - 25.02.2006 17:55

Hallo

Ähm ja wenn das Roboterprogramm startet bleibt es solange an der Stelle stehen (wo es auf ein Zeichen empfangen soll) bis er ein Zeichen gesendet bekommt also wäre das ja im Prinzip mein Startzeichen da es am Programmanfang steht und bei jedem Schleifendurchlauf auf ein Zeichen wartet. Da müßten deine zwei Lösungsvorschläge damit erfüllt sein. Hab auch noch mal etwas rumgebastelt aber immer noch das gleiche Problem. Es könnte ja sein das wenn ich zuerst den Rob. Starte und dann das VI das da die Komunikation zwischen den beiden irgenwie nicht paßt.
Ja wie gasgt es ist halt eine Projektarbeit für meine Techniker Ausbildung haben uns das selbst herausgesucht weil von jedem etwas dabei ist Programmieren und halt LabVIEW. Den Datenstring vom Ro. haben wir uns selbst zusammengestellt und Programmiert. Ja und nun hab ich mir so gedacht es wäre schön wenn ich den Rob. über LabVIEW steuern könnte na ja und ich habe festgestellt das man viel Zeit damit verbringen kann wenn man noch nicht so die Ahnung von LabVIEW hat Big Grin

mfg mige0311

Datenstring vom Roboter A0B0C0D0E198F85G0H101I0J96K0L31
Die Tokens markieren die verschiedenen Sensoren und dahinter sind die Werte von den Sensoren

So jetzt tritt das Problem nur noch auf wenn ich zuerst das VI starte und dann den Roboter. Der Rest funktioniert jetzt. Habe in die Schleifen jeweils noch mal das VI "VISA: I/O-Puffer entleeren " eingefügt