LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Running Labivew over Network

Hi All,

I would be grateful if anyone could throw a bit of light on my
problem. Using Labview 5.1.1 on Win NT

Our site is new to labview there are three of us here and having seem
the preference options for paths I have done the following.

We have all installed Labview all the driver on our local machines and
run Labview.exe from C:\. however I have placed the following on a network
drive
vi.Lib , User.lib , Projects, Menus, manuals, Help , Instr.lib and have
set the
libray and menus options to look at the network drive. The labview.ini
stays on
the local drive.

Now after a bit of playing around this system works (mostly) EXCEPT for the
Instrument Wizard and VISA
stuff, I cannot run any instrument driver with VISA unle
ss I go back and run
eveything from my local
drive, this make the whole idea a no-goer.

The idea is we can all have a common set-up and in theory work together
easier.

Any comments /suggestions anyone please

Danny Thomson
0 Kudos
Message 1 of 4
(3,045 Views)
> The idea is we can all have a common set-up and in theory work together
> easier.
>
> Any comments /suggestions anyone please

No suggestions on your current problem, but are all three of you going to be
editing VIs?

If you have all the VIs in a central location and then they're being edited,
there's huge scope for things to go wrong and edits to get lost- worse, you
can end up with a broken hierarchy if a VI and it's sub-VIs are edited, and
then some of the edits are lost. Even if only one person will be editing,
you can't rule out the possibility of editing a VI that someone has open on
another machine, they accidentally perform a trivial change- such as moving
a control, or accidentally creating a front panel object and then deleting
it, and then accidentally save the changes when prompted at shutdown.
Obviously you could set the file permissions in NT so only the designated
developer can write to the files and everyone else has read-only access, but
this restrictive case seems quite rare.

What I've done here is cobbled together a VI that compares the hierarchies
on different machines. You recursively scan the two hierarchies (usually
rooted on user.lib on each machine) and build a list of last mod dates,
sizes and VI versions. If a file is unique, that automatically gets copied
across to the machine on which it is missing. If a VI has a higher version,
larger filesize and more recent date, that's most likely to be the correct
new version, and that gets copied across. There's a few other combinations
that I decided were also good enough bets that they could automatically be
copied. Any ambiguous files are shown in a list at the end of the run and
the user has to manually select the "real" version of the program. It's
slightly unwieldy, but you may want to consider something similar your end.

A very nice way to do it would be to have a daemon on each client machine
that's remotely launched by the master machine via VI server. All the
machines build their own list of VI information and send it to the server,
which then processes the lists and does the synchronisation on a file by
file basis, rather than a machine by machine basis. This would be faster
and, since the server doesn't need to load each file across the network to
get the VI version, would greatly reduce the network overhead. It does of
course take significantly more time to implement in the first place 😕
0 Kudos
Message 2 of 4
(3,045 Views)
Thanks for you comments, the main reason for the network usage is more for
common add-ons etc.
However we do intend to edit groups of VI's together.

The problem you describe below is true of any language not just Labview and
one that
I understand well, having been responsible for configuration control with
Clearcase on
a number of C, C++, Tcl projects with quite large teams.
I am intending to use the Labview provided Source control tool to overcome
these particular problems.
I know I do not yet know the particular idiosyncrasies of Labview or the
tool set but it is normally just a
matter of aligning a good set of procedures with a good tool (I may still be
proved wrong 🙂 ).

>
> If you have all the VIs in a central location and then they're being
edited,
> there's huge scope for things to go wrong and edits to get lost- worse,
you
> can end up with a broken hierarchy if a VI and it's sub-VIs are edited,
and
> then some of the edits are lost. Even if only one person will be editing,
> you can't rule out the possibility of editing a VI that someone has open
on
> another machine, they accidentally perform a trivial change- such as
moving
> a control, or accidentally creating a front panel object and then deleting
> it, and then accidentally save the changes when prompted at shutdown.
> Obviously you could set the file permissions in NT so only the designated
> developer can write to the files and everyone else has read-only access,
but
> this restrictive case seems quite rare.
>
> What I've done here is cobbled together a VI that compares the hierarchies
> on different machines. You recursively scan the two hierarchies (usually
> rooted on user.lib on each machine) and build a list of last mod dates,
> sizes and VI versions. If a file is unique, that automatically gets copied
> across to the machine on which it is missing. If a VI has a higher
version,
> larger filesize and more recent date, that's most likely to be the correct
> new version, and that gets copied across. There's a few other combinations
> that I decided were also good enough bets that they could automatically be
> copied. Any ambiguous files are shown in a list at the end of the run and
> the user has to manually select the "real" version of the program. It's
> slightly unwieldy, but you may want to consider something similar your
end.
>
> A very nice way to do it would be to have a daemon on each client machine
> that's remotely launched by the master machine via VI server. All the
> machines build their own list of VI information and send it to the server,
> which then processes the lists and does the synchronisation on a file by
> file basis, rather than a machine by machine basis. This would be faster
> and, since the server doesn't need to load each file across the network to
> get the VI version, would greatly reduce the network overhead. It does of
> course take significantly more time to implement in the first place 😕
>
>
>
0 Kudos
Message 3 of 4
(3,045 Views)
"Craig Graham" writes:

[...]

> If you have all the VIs in a central location and then they're being edited,
> there's huge scope for things to go wrong and edits to get lost- worse, you
> can end up with a broken hierarchy if a VI and it's sub-VIs are edited, and
> then some of the edits are lost. Even if only one person will be editing,
> you can't rule out the possibility of editing a VI that someone has open on
> another machine, they accidentally perform a trivial change- such as moving
> a control, or accidentally creating a front panel object and then deleting
> it, and then accidentally save the changes when prompted at shutdown.
> Obviously you could set the file permissions in NT so only the designated
> developer ca
n write to the files and everyone else has read-only access, but
> this restrictive case seems quite rare.

[...]

I 've discovered a related issue:

I'm running the "production version" of an application from inside
it's own library file. I wanted to correct a bug in the "development
version". As I opened the development version of the application on
another path but with the same VI name and revision I was shown the
running production version.

After reading Craig's post I even refrained from editing the
production on another computer. Including path names into the file
loading mechanism could fix this.

Johannes Niess
0 Kudos
Message 4 of 4
(3,045 Views)