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 

Zeitproblem bei Schreiben/Lesen



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!

07.11.2012, 11:53
Beitrag #1

atbab3 Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Oct 2012

11.0.1f2
2012
EN



Zeitproblem bei Schreiben/Lesen
Hallo zusammen,

folgendes Problem, das Programm soll 2 Befehle senden und die jeweils dazugehörige Antwort auslesen. Wenn ich das Programm mit "Highlight Execution" ausführe, sehe ich sehr schön wie er alle Schritte abarbeitet und mir am Ende die gewollten Werte liefert. Lasse ich das Programm normal laufen gibt er mir am Ende leider nur einen Wert aus.

Da durch Highlight Execution das Programm sehr langsam abläuft denke ich dass das ein Zeitproblem ist und er an irgendeiner Stelle noch Wartezeit benötigt oder so.

Sieht jemand das Problem oder hat eine Idee?

Danke schonmal!


Angehängte Datei(en)
11.0 .vi  kontinuierlich.vi (Größe: 30,79 KB / Downloads: 176)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.11.2012, 12:57
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitproblem bei Schreiben/Lesen
Hallo atbab,

hast du dir schon mal die Beispiele im Examplefinder angeschaut?
Oder einen der unzähligen Threads zum Thema "Serielle Schnittstelle" und deren korrekte Handhabung?

Schau mal hier:
   
- Warum jedesmal die Schnittstelle neu initialisieren?
- Wieviele Bytes erwartest du im Lesepuffer direkt nach Absenden deiner Gerätebotschaft?
- Was passiert mit den Ausgängen der Case-Struktur im Fall Bytes=0?
- Wozu die While-Schleife danach um die Speicher-Routine?

- So, wie du BytesAtPort verwendest, ist es falsch. Wahrscheinlich brauchst du diese Funktion nicht (siehe einen der erwähnten unzähligen Threads).
- Korrekte Verdrahtung hilft Fehler zu vermeiden.
- Für den Vergleich mit Null gibt es eine spezielle Funktion.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.11.2012, 13:04
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Zeitproblem bei Schreiben/Lesen
In diesem speziellen Fall liese sich das vermeiden durch Anwendung der NI-Modbus-Library.

(Es geht doch um Modbus ?!)

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.11.2012, 14:01 (Dieser Beitrag wurde zuletzt bearbeitet: 07.11.2012 14:07 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: Zeitproblem bei Schreiben/Lesen
Das passiert vermutlich in der Schleife:
1. Du sendest den ersten Befehl. Serial-Write braucht zur Verarbeitung 0ms, weil es selbst nicht sendet, sondern den Befehl nur in den seriellen Ausgabepuffer schiebt.
2. Da zu diesem Zeitpunkt noch gar nichts gesendet, geschweige denn geantwortet wurde, ist die Anzahl bytes at Board 0. Es wird ein leerer String aus dem true-Case gebildet.
3. Dann nach 50ms wird der zweite Befehl an den Ausgabepuffer gesendet. Inzwischen ist wahrscheinlich etwas im Eingangspuffer eingetrudelt, der false-Case mit Visa-Read wird ausgeführt.
4. Wenn die Antworten ein Zeilenende-Zeichen enthalten, warte Read so lange, bis das Zeilenende kommt und liest die Antwort aus.
5. Der Antwort-String-Array müßte also so aussehen:
Index 0: Leerer String
Index 1: Antwort auf das erste Kommando.
Die Antwort auf das zweite Kommando verschwindet im Nirvana. (Die Puffer werden bei der erneuten Initialisierung gelöscht)

So hingegen könnte es funktionieren:
   
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
  Modbus aktiv behalten ohne etwas zu schreiben oder zu lesen p4tti 12 10.413 30.09.2016 12:45
Letzter Beitrag: Freddy
  Mit RS232 Daten lesen und schreiben Moxel 22 28.164 15.01.2014 12:38
Letzter Beitrag: jokersad
  RS232 lesen und schreiben eventgesteuert theandreas 11 12.700 22.10.2013 19:05
Letzter Beitrag: theandreas
  Auf bzw.von Seriell/schreiben und lesen nano2 4 4.624 02.11.2009 12:01
Letzter Beitrag: nano2
  Timing RS232: Befehle schreiben, Werte lesen GT123 5 9.930 02.11.2009 08:57
Letzter Beitrag: GT123
  RS232 schreiben/lesen über gleichen Port pisy 5 6.646 13.04.2009 19:06
Letzter Beitrag: pisy

Gehe zu: