LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

how to update LabVIEW program dynamically

Solved!
Go to solution

I want to update my whole LabView program through LLB, without having to make a new exe everytime. Kindly help

0 Kudos
Message 1 of 8
(1,976 Views)

That's way too vague.  I have no idea what you want to do.

"If you weren't supposed to push it, it wouldn't be a button."
Message 2 of 8
(1,951 Views)
Solution
Accepted by topic author priya9129

First, I would not use a LLB file. These are old technologies and they have the risk of a single VI corruption trashing all of the VIs contained in the LLB. I would recommend that you use PPLs (Packed Project Libraries) instead. What you will need to do is to learn how to dynamically call Vis. There are multiple examples included in LabVIEW. Regardless if you use a LLB or a PPL, you will need to make sure that you do not alter any connector panes when you update your code.



Mark Yedinak
Certified LabVIEW Architect
LabVIEW Champion

"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot
Message 3 of 8
(1,927 Views)

@Mark_Yedinak wrote:

First, I would not use a LLB file. These are old technologies and they have the risk of a single VI corruption trashing all of the VIs contained in the LLB. I would recommend that you use PPLs (Packed Project Libraries) instead. What you will need to do is to learn how to dynamically call Vis. There are multiple examples included in LabVIEW. Regardless if you use a LLB or a PPL, you will need to make sure that you do not alter any connector panes when you update your code.


You don't really have to call VIs dynamically.  You could build the PPLs in a separate project and then you just directly call VIs from the built PPLs in the main executable's project.  If you find a bug in one of the PPLs, you correct only that library, rebuild the PPL, and then distribute the PPL to whoever needs it.  I have done this to reduce executable build times from 30 minutes to 30 seconds (PPL builds are often even faster, depending on how much you put into a PPL).  Granted, I also go full plug-in where I dynamically figure out which class I need to load (class being inside of a PPL).


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 4 of 8
(1,921 Views)

This is a nice step by step guide to creating an architecture using PPLs that will accomplish what (I think) you want to accomplish.

 

https://forums.ni.com/t5/LabVIEW-Development-Best/Plug-in-Architecture-using-Packed-Project-Librarie...

Redhawk
Test Engineer at Moog Inc.

Saying "Thanks that fixed it" or "Thanks that answers my question" and not giving a Kudo or Marked Solution, is like telling your waiter they did a great job and not leaving a tip. Please, tip your waiters.

0 Kudos
Message 5 of 8
(1,915 Views)

@priya9129 wrote:

I want to update my whole LabView program through LLB, without having to make a new exe everytime. Kindly help


I have to say I am the exact opposite on this. When I distribute a program update I want as little to go wrong for the end user as possible.

 

So handing them a compiled EXE and telling them to simply replace the old one with the new one is (IMHO) by far the easiest and safest way to deal with program updates. 

========================
=== Engineer Ambiguously ===
========================
0 Kudos
Message 6 of 8
(1,878 Views)

I want to automatically (and remotely) update my application (exe) when I make changes in my original LabVIEW code. Kindly help

0 Kudos
Message 7 of 8
(1,834 Views)

Hi priya,

 

please don't start a new thread today for the very same topic of your yesterdays thread…

 


@priya9129 wrote:

I want to automatically (and remotely) update my application (exe) when I make changes in my original LabVIEW code. Kindly help


Create a new executable from your changed code. Copy that exe to your remote computer…

 

I did it this way:

  1. In the executable I embed information on the current version. (I use the version field in the BuildSpec.)
  2. When starting the executable I read it's own version information and compare it with information placed in a text file on your server.
  3. When the server states a newer version then the executable calls a 2nd exe (placed in the same folder as the 1st executable) acting as updater and quits.
  4. The updater copies the new version files and replaces the old executable.
  5. When the update process is finished the updater automatically starts the executable again.

(There's one more step 3a: the user gets a dialog to choose for "update now" or "postpone update"…)

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
Message 8 of 8
(1,827 Views)