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 

VISA Schreiben Schreibpuffer-Funktion?



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!

09.11.2009, 11:56 (Dieser Beitrag wurde zuletzt bearbeitet: 09.11.2009 11:57 von Lucki.)
Beitrag #1

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
VISA Schreiben Schreibpuffer-Funktion?
Ich habe festgestellt, daß VISA Schreiben (COM-Port) anders funktioniert als ich das bisher angenommen hatte. Ich dachte bisher, beim Schreiben wird der Schreibpuffer benutzt. D.h. die Daten werden in den Schreibpuffer geschrieben, Ausführungszeit dieser Aktion vernachlässigbar, und Visa Write ist damit beendet. Anschließend wickelt ein untergeordnete Routine, mit der der Programmierer nichts mehr zu tun hat, automatisch die serielle Übertragung der Daten über die Schnittstellenleitung ab.
Es ist aber nicht so: VISA Write wird erst freigegeben, wenn die Datenüberagung vollständig beendet ist. D.h. der Schreibpuffer wird überhaupt nicht verwendet.
Desalb meine Frage: Wozu ist der VISA-Schreibpuffer dann überhaupt da? In welchen Fällen kommt er zum Einsatz?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.11.2009, 12:54
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
VISA Schreiben Schreibpuffer-Funktion?
Frage vorab:
' schrieb:VISA Write wird erst freigegeben,
Was meinst du mit freigegeben?
Meinst du, das VI VISA-Write bringt einen Fehler, solange die Daten noch nicht übertragen sind? Freigegeben, also ohne Fehlerrückmeldung wäre dann, wenn der Puffer leer ist.

Oder meinst du tatsächlich, das SubVI VISA-Write wird erst dann beendet, wenn der "Puffer" versendet worden ist? (Bei synchroner Einstellung der Schnittstelle wäre das so).

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
09.11.2009, 13:38
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
VISA Schreiben Schreibpuffer-Funktion?
' schrieb:Oder meinst du tatsächlich, das SubVI VISA-Write wird erst dann beendet, wenn der "Puffer" versendet worden ist? (Bei synchroner Einstellung der Schnittstelle wäre das so).
Ja, genau das meine ich und ich lese bei Dir zwischen den Zeilen, daß Dich das auch überrascht. (Von synchroner Einstellung verstehe ich überhaupt nichts, vielleicht wird das hier benutzt ohne daß ich davon weiß. Ich benutze Windwos XP)
Hier ist das Test-VI:
   
Lv86_img
Sonstige .vi  serial.vi (Größe: 12,33 KB / Downloads: 251)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2009, 14:06
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
VISA Schreiben Schreibpuffer-Funktion?
' schrieb:und ich lese bei Dir zwischen den Zeilen, daß Dich das auch überrascht.
Top1

Mach mal einen Versuch: Disable mal den Parameter "Send End En".

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
09.11.2009, 16:37 (Dieser Beitrag wurde zuletzt bearbeitet: 09.11.2009 16:38 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
VISA Schreiben Schreibpuffer-Funktion?
' schrieb:Top1

Mach mal einen Versuch: Disable mal den Parameter "Send End En".
Genial! Danke Dir! Wie bist Du nur darauf gekommen? Und außerdem: Des Send End End ist total entberlich, man kann ja genausogut TermChar vom Programm her, also gewissermaßen manuell, an das Ende das Sendestsrings anhängen. Die Ausführungdauer von "VISA Schreiben" beträgt jetzt nur noch 0,00001 as Lol(1 as = Attosec = 10^-18 s )
Ich habe diese sytematischen Versuche übrigens gemacht, weil es in umgekehrter Datenrichtung Probleme gab. Beim Datenempfang von einem Virtuellen Com Port (VCP) über einen USB-Seriell-Adapter mit FTDI Chip traten Verzögerungen von bis zu 15 ms auf, auf die FTDI auch hinweist. Also der Lesepuffer gab die Daten nicht frei, obwohl die Daten drin waren
Lösung war, sich nicht darauf zu verlassen, daß Visa Lesen den TermChar erkennt, sondern das VI "auf Ereignis warten" (Thermchar) für die Erkennung zu verwenden. Das funktionierte.
Gruß Ludwig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2009, 17:20
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
VISA Schreiben Schreibpuffer-Funktion?
' schrieb:Wie bist Du nur darauf gekommen?
Und das ohne LV! Nur mit der Hilfe aus dem INet.

Dort steht:
Code:
VI_ATTR_ASRL_END_OUT defines the method of terminating writes. Defaults to VI_ASRL_END_NONE. (This value means that the setting of VI_ATTR_SEND_EN is irrelevant.) To have VISA automatically append a termination character to each write operation, set this attribute to VI_ASRL_END_TERMCHAR. To have VISA automatically send a break condition after each write operation, set this attribute to VI_ASRL_END_BREAK.

Das heißt auf gut deutsch:
Am Ende eines jeden Sendestrings wird automatisch ein Endezeichen angehängt. Da gibt es jetzt zwei Möglichkeiten. Man kopiere den String am Eingang von VISA-Wr in einen Zwischenpuffer, hänge da noch das Endezeichen hintenan und verlasse unverzüglich das SubVI VISA-Wr (den Rest macht dann der Treiber). Oder man warte gemächlich im SubVI VISA-Wr bis der String am Eingang der Reihe nach endlich mal leergesendet wurde, sende dann noch ein Endezeichen und verlasse das VISA-Wr. Und jetzt rate mal, welche dieser Möglichkeiten in LV integriert ist. Ich habe ja auf ersteres getippt.

"Synchrones VISA-Wr" heißt in diesem Falle, dass das VISA-Wr erst verlassen wird, wenn alle Zeichen tatsächlich gesendet wurden.

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


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  VISA: (Hex 0xBFFF0015) bei VISA read und im VISA Test Panel rick 3 14.220 10.11.2013 12:16
Letzter Beitrag: Y-P
  VISA serielle Schnittstelle byteweise schreiben BRunner77 1 4.092 22.05.2012 20:27
Letzter Beitrag: GerdW
  Probleme beim VISA schreiben sharth 1 4.996 04.12.2011 15:49
Letzter Beitrag: sharth
  Visa schreiben über serielle und GPIB Schnittstelle Matthias22 14 14.238 22.11.2010 20:06
Letzter Beitrag: jg
  Einzelne Bytes aus Array mit Zeitabstand auf VISA schreiben tom200 1 3.997 19.01.2010 22:02
Letzter Beitrag: jg
  Probleme mit Visa Schreiben jojo2203 5 5.576 18.09.2009 12:03
Letzter Beitrag: jojo2203

Gehe zu: