(11.02.2011 13:26 )GT123 schrieb: -zuerst wird das ini Vi das Gerät initialisiert mit TermChar, Baudrate...
-dann im Prg. an einer beliebigen Stelle möchte ich das read.vi einsetzen, usw.
Die VisaResourceOut Verdrahtung soll über eine Variable o.ä. geschehen da manche Vi`s über Ref. aufgerufen werden, wie löse ich das über eine String Variable?
Bei den Visa-VIs ist es nicht so bei den DAQmx-VIs, bei denen bei der Initialisierung ein Task erzeugt wird und dann bei den Lese-Scheib-VIs immer der entsprechende Taskeingang angeschlossen sein muß.
Du kannst irgendwo im Haup-VI den COM-Port initialisieren, und dann irgendwo anders Lesen und Schreiben, ohne daß eine Verbindung zum Initialisierungs-VI vorhanden sein muß. Natürlich muß bei jedem VI am Resourcen-Eingang der entsprechende COM-Port angeschlossen sein, z.B mittel einer Konstanten oder lokale Variablen (Ausnahme: Wenn man COM1 benutzt: das ist der Defaultwert wenn nichts angeschlossen ist).
Natürlich braucht man Verbindungen innerhalb des VI - nur hat das etwas mit dem richtigen Ablauf im VI zu tun und nicht mit dem Funktionieren der seriellen Funktionen an sich. Man darf also nicht denken, das Initialisierungs-VI generiert so etwas wie eine Task, die an die anderen VIs angeschlossen werden muss.
Oder noch mal anders gesagt: Das serielle Initialisierungs-VI hat zwar - so wie die anderen seriellen VIs auch - einen Ausgang "VISA-ResourcenName". Dabei handelt es sich aber um eine reine Durchverbindung vom gleichnamigen Eingang. Zusätzliche Informationen, die nachfolgende VIs gebrauchen könnten, z.B über die durchgeführte Initialisierung, sind darin nicht enthalten. Man darf also nicht denken, das Initialisierungs-VI generiert so eine Art Task oder Referenz, die an die anderen VIs anzuschliessen ist.