LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Replacing missing references

I'm fighting with a probably very common problem, in an old project we were using an .lvlib and and an .llb libraries.
The original files are missing but we got newer version of the same libs and included VIs have the same 'interface'.
If I try to use "Replace with" function I can only point to a VI (that will probably work for .lvlib related VIs) but VIs package within .llb cannot be referenced in this way... 

Is it possiible to replace such references without having to check for each caller and rewire the whole thing?

Best regards.

 mike

0 Kudos
Message 1 of 6
(274 Views)

I'm not following exactly what you're doing that isn't working when the VI is in a llb, but you can always convert the LLB to a folder with the LLB manager (Tools->LLB Manager), open the folder that contains the LLB, right click on it, convert, directory name=LLB name and any caller should maintain links but it will just be a folder of VIs.

0 Kudos
Message 2 of 6
(205 Views)

@avogadro5  ha scritto:

I'm not following exactly what you're doing that isn't working when the VI is in a llb, but you can always convert the LLB to a folder with the LLB manager (Tools->LLB Manager), open the folder that contains the LLB, right click on it, convert, directory name=LLB name and any caller should maintain links but it will just be a folder of VIs.


Hallo Avogadro5,
thnk for your reply and hint but this's not what I need unfortunately.
I will try to be clearer this time:

I have an old LabVIEW project (LV2013) that I need to convert to LV2026. I know this is possible, as most of our other applications were created in LV2013 and their conversion to 2026 went without any issues.
The only problem with this specific application/project is that the older versions of two libraries (an LLB and an LVLIB) have been lost. I have the new versions of these libraries (same name, save VIs, same structure), but even when placing them in the exact relative path required by the project all the VIs associated with these two libraries are flagged as missing. I’ve looked into Nigel’s suggested solution and tried applying it, but it didn’t work. At the moment, the only method that has proven effective is to locate every caller of the missing VIs and manually reconnect the references, one by one.
As I stated in previous messages also "Replace with..." it's not working at all.

0 Kudos
Message 3 of 6
(157 Views)

That sounds like the VIs on disk have a different qualified name than what the caller expects, which is about lvlib membership of the VIs. If you're getting missing VI dialogs you can click browse and see the expected qualified name at the top of the window avogadro5_0-1793983493425.png. For the links to self recover you'd probably need to restore the original qualified name of the VIs that LabVIEW sees as missing by recreating any owning libraries and adding the VIs to those libraries. Then when the callers open they should accept the VIs again if they're at the same paths and qualified names as expected.

 

Another approach that might work is to use scripting, this will open all VIs in a folder and find any SubVI nodes that LabVIEW considers missing and then replace them with the VI at that expected path. This will cause the link to that SubVI to use the qualified name it currently has when the script runs. Note you may need to modify this script and I include it to show the general idea and nodes you'd need.

scripted missing VI self-replace.png

I tested this on a VI that expected a SubVI to be a member of a library that I closed before removing the SubVI from the library, which changed the qualified name and caused the caller to show the SubVI as missing when it was reopened. Running this script caused the caller to find the VI with the new qualified name at the same path.

0 Kudos
Message 4 of 6
(105 Views)

Even when the file names and locations match up, this can happen if the qualified VI names don't match up.

If a VI isn't a member of a library, it's qualified name is just its file name.  But if it is a member of a library (.lvlib) then its qualified name is the library's file name, a colon, and the VI's file name.

Unfortunately, when a VI is missing (paul_a_cardinale_0-1793984739788.png) there's no easy way to find the qualified name.

But there might be an easy way to script a fixer.

0 Kudos
Message 5 of 6
(104 Views)

Sometimes it helps to open the new library files (all of them) before opening the project files. LabVIEW will see the VI with the same name in-memory and use that file. 

---------------------------------------------
Former Certified LabVIEW Developer (CLD)
Currently using LabVIEW 2022
0 Kudos
Message 6 of 6
(92 Views)