LabVIEWForum.de - LV Version eines VI (Semaphor)

LabVIEWForum.de

Normale Version: LV Version eines VI (Semaphor)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi Leute,

ich habe unsere Messsoftware (erstellt in LabVIEW 8.2.1) in dem neuen LV 2009 SP1
geladen und bei einigen VIs wird nun eine rote Zahl (oben links am Symbol) eingeblendet.
z.B.

Semaphor-Referenz anfordern
Semaphor-Referenz freigeben

Dort wurde im Symbol "8.5" angegeben. Wenn ich ein Doppelklick darauf gemacht habe,
hat LV ganz normal das VI geöffnet. Allerdings möchte LV das nun auch speichern
"Create Semaphore.vi" und "Destroy Semaphore.vi".

Wenn ich mir die "semaphor.llb" anschaue, sind diese VIs wohl eher aus Kompatiblitätsgründen
enthalten, denn die neuen 2009 VIs sind ja "Obtain Semaphore Reference.vi" und
"Release Semaphore.vi".

Hier nun meine Fragen dazu:

1. Warum ersetzt LabVIEW nicht die "alten" VIs automatisch durch die neuen Versionen?
2. Sind die "alten" VIs auch im alten LabVIEW Format 8.2 (8.5) in der LLB gespeichert?
3. Ich wolle es nich einfach ausprobieren, aber was passiert wenn ich die "Create Semaphore.vi"
und "Destroy Semaphore.vi" aus der LLB, so wie von LabVIEW 2009 gewollt, abspeichere?

Ich finde das alles sehr verwirrend Wacko

Stefan
Hallo Stefan,

dieses Verhalten passiert immer mal wieder bei neuen LabVIEW-Versionen.
Damit wird Kompatibilität zu alten Versionen gewährleistet - und zwar immer dann, wenn es diese Funktion noch gibt, aber sich die Funktionalität in irgendeiner Weise geändert hat (z.B. neue Datenformate geliefert werden oder andere/neue Default-Optionen hinzukommen). Damit der Programmierer das auch bemerkt ("sieht"), erscheint der Hinweis auf die alte Version schön rot im Icon.

Du kannst jetzt:
- alles so lassen, wie es ist (ist ja für Kompatibilität gesorgt), mit dem Nachteil, dass evtl. die (über-)nächste LV-Version dieses VI vergisst...
- per Rechtsklick diese Funktion mit der neuen ersetzen, nachdem du dir die Hilfe dazu durchgelesen hast, um zu wissen, was sich geändert hat und was du evtl. noch anzupassen hast

1. sollte damit geklärt sein...

Zu 2.+3.: Evtl. ist die Kompatibilitäts-LLB noch in LV8.5 beigefügt. Was gibt LabVIEW denn als Grund zum Speichern an? Ich würde aber vom Speichern abraten - so bekommst du immer den Hinweis auf die veralteten/obsoleten Funktionen!

Nachtrag:
Die LV8.2-Funktionen CreateSemaphore & DestroySemaphore wurden "gecancelt" und (in LV8.6) durch ObtainSemaphoreReference & ReleaseSemaphoreReference ersetzt. Um bestehenden Code nicht zu brechen, gibt es die genannten Kompatibilitätsfunktionen. Guckst du hier!
Referenz-URLs