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!
von mir mal eine ganz kurze Verständnisfrage. Bin jetzt dabei mein erstes größeres LabView Projekt zu schreiben und möchte natürlich von Anfang an alles richtig machen.
Hab hier einen großen Messaufbau mit acht Schrittmotoren die über vier Controller an vier COM Ports hängen.
Nun hab ich für jeden Motor ein eigenes VI "SendString" geschrieben, mit dem ich steuern und auslesen will im Sinne des angehängten Bildes. Davon hab ich auch schon ziemlich viele in meinem Haupt VI verbaut.
Jetzt hab ich mich aber gefragt, ob das so sinnvoll ist jedesmal eine Visa Session zu starten, zu schließen und den Port zu konfigurieren, oder ob sich das vielleicht irgendwann negativ auf die CPU auswirkt.
Also sollte ich lieber alles einmal am Anfang setzten und am Ende schließen oder fressen diese Befehle nicht soviel Arbeitsspeicher?
ich mache das immer so, dass ich am Anfang eine VISA-Session öffne und die beibehalte bis entweder das Programm beendet wird oder ein Fehler beim Schreiben/Lesen auftritt. In letzterem Fall wird dann die Schnittstelle geschlossen und neu initialisiert. Wenn man nichts gesendet oder gelesen werden muss, dann halte ich mit einer Status-Abfrage (fast jedes Gerät unterstützt sowas) z.B. alle 5 Sekunden die Schnittstelle offen
Wenn du vor jedem Lese/Schreib-Aufruf ein VISA Open machst und hinterher immer ein VISA Close, dann hast du mMn nur unnötige Treiber-Aufrufe, die den Zustand nicht verbessern aber im Zweifel nur Systemleistung unnütz verbraten.
Zitat:ob das so sinnvoll ist jedesmal eine Visa Session zu starten, zu schließen und den Port zu konfigurieren
Nein, ist es nicht!
Mal zum Vergleich:
Wenn du ein Auto be-/entladen willst, dann wirst du doch auch nicht nach jedem einzelnen Packstück die Autotür wieder abschließen, um sie dann vor dem nächsten Packstück erst wieder aufzuschließen? Oder ist das deine Standard-Vorgehensweise?
(25.07.2014 10:06 )Scuba schrieb: Gut, dann werd ich die VIs wohl ein wenig umschreiben müssen.
Vielen Dank für die Antworten!
am besten machst du das mit "Funktionalen Globalen Variablen" (=VI mit einer Statem-Machine und nicht von aussen initialisierten Schieberegistern", mit einem Init, Close und Read/Write-Case, dann musst du nicht die ganzen VISA-Refnums quer durch's Programm ziehen ...