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 / VISA - Und der boese NI Adapter



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!

14.02.2007, 16:33
Beitrag #1

fidel Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 247
Registriert seit: Aug 2006

8.00 // 8.2.1 // 8.5
2006
de

76185
Deutschland
RS232 / VISA - Und der boese NI Adapter
Hallo,

ich habe mal wieder ein Problem zum Thema RS232 -> USB

Inzwischen geht meine Applikation mit diversen RS232/USB Adaptern, weshalb ich von einer kompletten Kompatibilität ausgegangen bin.
Der VISA-Kommunikationsaufbau erfolgt zu Programmbeginn und wird erst mit Ende des Programmes wieder geschlossen. Ehemals hatte ich bei jedem Befehl die Schnittstelle jeweils geöffnet und wieder geschlossen

Nun muss ich leider feststellen, dass ausgerechnet der teure NI RS232/USB Adapter fatal scheitert.

Meine applikation hat neben dem Eventbasierten Ansatz eine Timeout-Routine, in der einige Werte regelmässig aktualisiert werden.
Die Abfragen-Schleifen Zeit ist vom anwender definierbar, auch um den Output am Sniffer lesbarer zu machen.

Im Einsatz mit diesem NI RS232 / USB Adapter sieht es so aus, als ob ich mind. eine Schleifen-Zeit von 2,0 ++ sec verwenden muss, da sonst offensichtlich die Timeout Routine nicht vollständig durchläuft.

mit allen anderen adaptern sind selbst Timings von 0,5 sec kein Problem.


Mein Rückschluss: Der Durchsatz durch diesen NI RS232 / USB Adapter ist merklich schlechter.


Hat jmd ähnliche Erfahrungen gemacht ?
Oder muss ich dieses Problem doch ggf. auf meine VISA Kommunikation zurückführen ?

In Anbetracht des Preises dieses Adapters ( afaik > 100 EUR) wäre es schon sehr merkwürdig wenn ich gerade damit Geschwindigkeitsprobleme kriege.


Soweit so gut, sofenr ihr interesse an weiterne INformationen habt, liefere ich diese gerne nach.

würde mich freuen wenn jmd eine Idee hat, wie , was wo ich ansetzten kann.....


gruss
fidel

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.02.2007, 17:42
Beitrag #2

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
RS232 / VISA - Und der boese NI Adapter
Hallo Fidel,

Erfahrungen mit dem NI-Adapter habe ich leider keine. Aber ich denke Du solltest das Problem ruhig an NI weitergeben. Wenn ein Noname Produkt deutlich bessere Werte liefert, dann kann sich der Support von NI ruhig darum kümmern.
Ich würde also auf jeden Fall einen Service Request starten.

Grüße
Andreas

Geht nicht, gibts nicht!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2007, 08:33 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2007 10:06 von fidel.)
Beitrag #3

fidel Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 247
Registriert seit: Aug 2006

8.00 // 8.2.1 // 8.5
2006
de

76185
Deutschland
RS232 / VISA - Und der boese NI Adapter
HalloBig Grin

ok die Service-Anfrage ist natürlich ein Weg, nur erhoffe ich mir davon nicht wirklich eine schnelle Hilfe.
Existiert dafür eine spezielle Mailadresse, oder einfach an ni.germany@ni.com ?


In Ergänzung wären Debug Ideen / Ansätze sehr hilfreich. Irgend ein Idee ?



EDIT:
Ich bin immer noch am grübeln ob die Art und Weise wie ich den Verbindungsaufbau (VISA) einsetzte evtl. Grund für diese Probleme ist.

Das in meinem RS232 Open verwendete Subvi VISA:Seriellen Port konfigurieren erfordert ja neben:
- Resourcenname
- Baudrate
- Datenbits
- Parität
- Stopbits
auch einen Timeout Wert.

diesen errechne ich mir bis dato aus der Baudrate und einer "pseudo-wissenschaftlichen" Formel die von meiner Vorgängerin stammt
a la: 500*1200/Baudrate+20 und stammt aus der Zeit, dass ich für jeden Befehl die Verbindung neu aufgebaut habe. Eventuell kommt die problematik ja auch aus dieser Ecke.



EDIT Part 2:
--
Ok, Vergroesse ich den Timeout Wert, verringert sich das Problem.
Nun wäre es natürlich interessant zu wissen, wozu genau der Timout Wert bei VISA:Seriellen Port konfigurieren verwendet wird
und wie die Folge ist ?

Die Hilfe sagt dazu nur:
Zitat:Timeout legt den Timeout-Wert für die Schreib- und Leseoperationen fest.
sowie ein Default Wert von 10 s wenn ich es richtig verstehe

Ich nehme an, dass ich diesne Wert nicht einfach als unendlich definierne kann / sollte.



gruss
fidel

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2007, 10:26 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2007 10:27 von eg.)
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
RS232 / VISA - Und der boese NI Adapter
Die Leseroutine könnte wirklich dein Problem erklären. Versuch mal eventgesteuert die serielle Auszulesen. D.h. sobald ein Zeichen da ist, wird es ausgelesen. Keine Wartezeiten und so. Dazu kannst du in der VISA-Event-Palette das Event "Serial Character" einschalten und in der Lesetask auf dieses Event warten.

Gruss, Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2007, 10:35
Beitrag #5

fidel Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 247
Registriert seit: Aug 2006

8.00 // 8.2.1 // 8.5
2006
de

76185
Deutschland
RS232 / VISA - Und der boese NI Adapter
Hallo Eugen,

vorab Danke fürs FeedbackBig Grin

Könntest du das etwas ausführen ?
Ich denke ich steh gerade aufm Schlauch was das Verständniss bzw die Umsetzung deines Inputs betrifft.

Vis in Verwendung:
------------------------------
- myrs232open.vi
- myrs232close.vi
- unzählige eigene Befehls bzw. Query VI's

Wenn ich dich richtig verstehe, würdest du in diesem Befehls & Abfrage Vi's ansetzen...richtig ?


gruss
fidel



' schrieb:Die Leseroutine könnte wirklich dein Problem erklären. Versuch mal eventgesteuert die serielle Auszulesen. D.h. sobald ein Zeichen da ist, wird es ausgelesen. Keine Wartezeiten und so. Dazu kannst du in der VISA-Event-Palette das Event "Serial Character" einschalten und in der Lesetask auf dieses Event warten.

Gruss, Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2007, 10:46
Beitrag #6

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
RS232 / VISA - Und der boese NI Adapter
' schrieb:Hallo Eugen,

vorab Danke fürs FeedbackBig Grin

Könntest du das etwas ausführen ?
Ich denke ich steh gerade aufm Schlauch was das Verständniss bzw die Umsetzung deines Inputs betrifft.

Vis in Verwendung:
------------------------------
- myrs232open.vi
- myrs232close.vi
- unzählige eigene Befehls bzw. Query VI's

Wenn ich dich richtig verstehe, würdest du in diesem Befehls & Abfrage Vi's ansetzen...richtig ?
gruss
fidel


Deine VIs kenne ich nicht.´Mein Vorschlag im Anhang, damit kannst du eiventgesteuert die serielle Schnisstelle auslesen. Bessere Möglichkeit ist mir nicht eingefallen, also ich verwende diese Methode in allen meinen Projekten. Die Vorteile sind klar , es gibt keinen Datenverlust, die CPU wird gemäß der Übertragung ausgelastet (viele Zeichen -> mehr CPU-Auslastung, weniger Zeichen -> weniger CPU). Probiere es mal damit aus. Wenn du noch Fragen hast, melde dich.

Noch möchte ich dir empfehlen das hier http://forum.ib-berger.com/index.php?s=&am...indpost&p=7 zu lesen.

Gruss, Eugen


Angehängte Datei(en) Thumbnail(s)
       

Sonstige .vi  VISARead.vi (Größe: 20,18 KB / Downloads: 139)

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.02.2007, 12:56
Beitrag #7

fidel Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 247
Registriert seit: Aug 2006

8.00 // 8.2.1 // 8.5
2006
de

76185
Deutschland
RS232 / VISA - Und der boese NI Adapter
Hi,

Mein Gerät reagiert jeweils auf Anfragen oder eben Befehle.

d.h. ohne Anregung gibt es keinerlei Information über die RS232.
Und sofern ich eben Command oder Query absetzte, weiss ich dass eine Antwort kommen wird.
Da die Applikation ereignisgesteuert aufgebaut ist, denke ich habe ich keinen wirklichen Mehrwert über deinen Ansatz, sofern ich ihn richtig verstehe.

Werde mir das Ganze aber morgen nochmal in alles ruhe zu Gemüte führen, vielleicht habe ich dich auch missverstanden.


Bzgl Timeout bei VISA:Seriellen Port konfigurieren:
- Timeout Wert von unendlich geht in der Theorie, habe ich getestet.
Würde mein Problem wohl lösen, ich bin mir nur unsicher ob ich eventuelle Nebenwirkungen ausser Acht lasse.

- Gibt es eine genaue Dokumentation dieses Timeout-Wertes in Zusammenspiel mit der Konfiguration des Seriellen Ports ?
Die Informationen die ich bisher gefunden habe, sind leider nicht alzu umfangreich um den kompletten Sinn dieses timeout Wertes zu verstehen.

Wenn ich von meinem Anfänger-Verständniss ausgehe, konfiguriere ich den Port einmal und solange ich dananch keine Änderungen durchführe, sollten die Werte definiert bleiben. Das würde heissen ein timeout Wert der (annahme) zum Zurücksetzten dient wäre ja sinnfrei.



schöne grüße
fidel




' schrieb:Deine VIs kenne ich nicht.´Mein Vorschlag im Anhang, damit kannst du eiventgesteuert die serielle Schnisstelle auslesen. Bessere Möglichkeit ist mir nicht eingefallen, also ich verwende diese Methode in allen meinen Projekten. Die Vorteile sind klar , es gibt keinen Datenverlust, die CPU wird gemäß der Übertragung ausgelastet (viele Zeichen -> mehr CPU-Auslastung, weniger Zeichen -> weniger CPU). Probiere es mal damit aus. Wenn du noch Fragen hast, melde dich.

Noch möchte ich dir empfehlen das hier http://forum.ib-berger.com/index.php?s=&am...indpost&p=7 zu lesen.

Gruss, Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2007, 13:12 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2007 13:12 von eg.)
Beitrag #8

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
RS232 / VISA - Und der boese NI Adapter
' schrieb:Hi,

Mein Gerät reagiert jeweils auf Anfragen oder eben Befehle.

d.h. ohne Anregung gibt es keinerlei Information über die RS232.
Und sofern ich eben Command oder Query absetzte, weiss ich dass eine Antwort kommen wird.
Da die Applikation ereignisgesteuert aufgebaut ist, denke ich habe ich keinen wirklichen Mehrwert über deinen Ansatz, sofern ich ihn richtig verstehe.

Werde mir das Ganze aber morgen nochmal in alles ruhe zu Gemüte führen, vielleicht habe ich dich auch missverstanden.
Bzgl Timeout bei VISA:Seriellen Port konfigurieren:
- Timeout Wert von unendlich geht in der Theorie, habe ich getestet.
Würde mein Problem wohl lösen, ich bin mir nur unsicher ob ich eventuelle Nebenwirkungen ausser Acht lasse.

- Gibt es eine genaue Dokumentation dieses Timeout-Wertes in Zusammenspiel mit der Konfiguration des Seriellen Ports ?
Die Informationen die ich bisher gefunden habe, sind leider nicht alzu umfangreich um den kompletten Sinn dieses timeout Wertes zu verstehen.

Wenn ich von meinem Anfänger-Verständniss ausgehe, konfiguriere ich den Port einmal und solange ich dananch keine Änderungen durchführe, sollten die Werte definiert bleiben. Das würde heissen ein timeout Wert der (annahme) zum Zurücksetzten dient wäre ja sinnfrei.
schöne grüße
fidel


Weisst du was, kannst du bitte hier ein Ausschnitt deines Programms posten? Dann sehen wir weiter.
Wenn das Gerät nur auf Befehle reagiert und eine Antwort schickt, kannst du doch noch eine Schreibroutine machen, wo ist das Problem? Mach noch eine Whileschleife mit Event-Struktur drin, die die Benutzerbefehle handelt und zum Gerät mit deinen VIs abschickt. Ich meine so macht man das auch normalerweise.

Wenn du hier einen Ausschnitt gepostet hast, kannst du dann genau erklären welchen Timeout du meinst. Ich vermute dass du den Timeout beim Conf Serial Port meinst, denn kannst du komplett ausschalte, wenn du meine Methode zum Lesen benutzt. Das mache ich mit dem Flag "False" oberhalb des VIs.

Gruss, Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2007, 13:31 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2007 13:34 von fidel.)
Beitrag #9

fidel Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 247
Registriert seit: Aug 2006

8.00 // 8.2.1 // 8.5
2006
de

76185
Deutschland
RS232 / VISA - Und der boese NI Adapter
Ok,

also im Anhang mein RS232 Open VI.

Es dient ausschließlich dazu, mit den vom Benutzer selektieren Verbindungsdaten ( COM1, COM2,COM3 sowie die Baudrate) einmalig zu Programmstart eine Verbindung aufzubauen.

Danach erfolgen alle Befehle oder Abfragen einfach als direkter VISA Write / Read in jeweils eigenen VI's je Aktion. Diese werden ereignisgesteuert getriggert.

Ich DENKE ich kann den Timeout Wert innerhalb des auf dme Screenshot sichtbaren VI's, angeschlossen an VISa Seriell Port konfigurieren,
für meine Probleme verantwortlich machen.

Die Frage ist nun, welche Art von Wert macht dort Sinn.
auf dem Bild zu sehen ist einerseits die lange verwendete
- Pseudo Formel zur Timeout-Definition,
sowie die aktuell im Test befindliche Version
- eines unendlichen Timeouts

Ich denke nur ein unendlicher timeout in dem Kontext kann auch Nachteile bringen, wenn z.b. der Benutzer eine Schnittstelle selektiert, an der nichts angeschlossen ist


Ich kann mir vorstellen, dass sich das ganze jetzt leicht verwirrt anhört, aber hoffe es ist trotz allem im ansatz nachvollziehbar.


gruss
fidel


Angehängte Datei(en) Thumbnail(s)
   

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2007, 13:42 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2007 13:44 von IchSelbst.)
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232 / VISA - Und der boese NI Adapter
' schrieb:- Timeout Wert von unendlich geht in der Theorie, habe ich getestet.
Natürlich geht das.
Ein Timeout tritt dann ein, wenn die Funktion, die mit dem Timeout überwacht werden soll, in der vorgegebenen Zeit (= Timeout-Zeit) ihre Arbeit nicht erledigt hat.

Ein Beispiel:
Eine Funktion soll 12 Zeichen aus dem SIO-Kanal holen. Timeout sei 3 Sekunden. Wenn es die Funktion nun schafft, innerhalb von 3 Sekunden 12 Zeichen zusammenzubringen, dann wird der Timeout nicht eintreten. Die Funktion wird normal beendet. Sollte aus welchen Gründen auch immer die Funktion keine 12 Zeichen innerhalb dieser 3 Sekunden zusammenbringen, dann wird ein Timeout eintreten. Der Timeout wird selbstverständlich bei jedem Aufruf der Funktion neu gestartet.

Ein zweites Beispiel:
Hole mindestens ein Zeichen. Der Timeout wird also dann eintreten, wenn innerhalb der Timeoutzeit kein einziges Zeichen gefunden werden kann. Hier siehst du auch gleich den Nachteil von Timeout => unendlich. Es wird unendlich gewartet - mit der Konsequenz, dass das VI prinzipiell nicht beendet werden kann.


Ich empfehle, nicht die Standard-Lese-VI's zu benutzen, sondern ein Verfahren wie das von eg gepostete.

Nachtrag:
Da hab ich aber wieder lange gebraucht zum Beitragschreiben. Als ich angefangen habe war der von fidel noch nicht da. Blush

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
  RS232 Kommunikation per VISA auf RTtarget kzr_kratos 5 6.270 11.07.2014 10:17
Letzter Beitrag: kzr_kratos
  VISA: (Hex 0xBFFF0015) bei VISA read und im VISA Test Panel rick 3 13.553 10.11.2013 12:16
Letzter Beitrag: Y-P
  RS232 mit VISA, kein Signal Blinky_Bill 16 13.110 23.09.2013 15:02
Letzter Beitrag: Blinky_Bill
  lese mit VISA RS232 komische Werte ein gassd3 8 6.067 05.09.2013 08:29
Letzter Beitrag: RadioactiveMan
  Sartorius.vi; Win7 64; original RS-232 und USB Adapter emt1994 5 6.792 21.12.2012 22:32
Letzter Beitrag: A.Berndsen
  Keine Daten kommen an vom Hameg 8115 über VISA RS232 USB fsg4u 3 5.562 09.08.2012 14:33
Letzter Beitrag: fsg4u

Gehe zu: