' schrieb:Ok danke euch schonmal,
ich habe jedoch bemerkt, dass die eine die andere LabVIEW Applikation schon stört, wenn man auch Befehle Richtung
COM-Port abschickt und dabei das Errorcluster nicht beachtet. Und Configure Serial Port kann man aus einer zweiten Applikation
ja parallel machen ohne dass ein Fehler kommt. Beim Schreiben ist es dann ja schon zu spät...
Configure Serial Port ruft nur VISA Properties auf. Die beinflussen Attribute der VISA Session und manche davon werden wohl auch den seriellen Port auf OS Ebene ansprechen müssen um ihre Arbeit korrekt zu tun aber die meisten eben nicht. Solange Du innerhalb der selben LabVIEW Applikation an verschiedenen Stellen den selben COM Port ansprichst geht das schon. Die Ausschliessung für mehrmaliges Benützen der seriellen Schnittstelle ist ein Betriebssystemseinschränkung, keine VISA Einschränkung. Nur das Betriebsystem verbietet das Öffnen eines Ports wenn er schon durch einen anderen Prozess geöffnet ist und da kann VISA nicht umhin. Aber innerhalb eines Prozesses kannst Du denn selben Port in VISA mehrmals öffnen respektive VISA öffnet ihn dann eben nicht mehr wenn er schon offen ist. Dass das meist keine gute Idee ist sollte natürlich schon deutlich sein. Externe Instrumente sind typischerweise inherent State driven. Das heisst sie können unmöglich etwas Aussenden bevor sie nicht das entsprechende Kommando empfangen haben und wenn Du dann versuchst ein Instrument and verschiedenen Stellen anzusprechen ohne strikte Sequenzeinhaltung kann es passieren dass Stelle A die Antwort auf das Kommand empfängt das Stelle B ausgesendet hat. Dass ein serieller Port exklusive per Prozess verwaltet wird im OS hat schon einen guten Grund, aber das VISA nicht strikt einmaligen Zugriff zulässt hat auch so seine Vorteile in gewissen Situationen.
Dass man da halt aufpassen muss um Race-Conditions zu verhindern ist nun einmal nicht zu umgehen.
Rolf Kalbemratter