LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

crio pxi shared varialbe

Now that Bob mention this maybe this document can be useful:

 

http://www.ni.com/white-paper/12267/en/

Randy @Rscd27@
0 Kudos
Message 11 of 20
(1,036 Views)

Hi,

 

Communicating with shared variables when using executables might get tricky. Here are some extra considerations:

http://www.ni.com/white-paper/5715/en/

 

Are the IP Addresses of the systems going to be changing (Host, PXI, cRIO)? With this I mean if you plan to have one same application working interchangeable for several systems.

Otherwise, I would recommend just hosting the variables in one of the systems.

 

 

Regards,

 

Andres G.

 

NI

0 Kudos
Message 12 of 20
(1,019 Views)

Okay I've changed my configuration to where the time SV is in a library hosted on the PXI.  Now I have a VI on a PC that needs to read this SV.  cRIO is no longer involved.  So I create a SV library on the PC that contains a SV that references the original time SV on the PXI .  My VI now gets the time from the SV in the library hosted on the PC.  Everything works on the development machine.

 

I must convert the VI to a stand alone app that must run on a PC that already is running a stand alone app.  The installer for the 1st stand alone app included LV run-time engine, DSM, and NI Variable Engine.  How many of these components do I need to include for the installer for the 2nd stand alone app?

0 Kudos
Message 13 of 20
(967 Views)

Hi faustina,

 

considering the things about reading Timestamp1 from PXI and writing it Timestamp2 in cRIO, Your problem seems to be, how to synchronize the clocks of the PXI with the cRIO.

 

Did You consider a syncronization method outside Your application, e.g. with the SNTP (simple network time protocol)? If it isn't precise enough Your choyce might be IEEE 1588 / PTP (precise time protocol), which is able to synchronize to nanoseconds precision?

 

In general these methods are more precise than sending network variables, because You don't know how long the message containig the timestamp took to propagate through the network. Also You can bypass the problems with shared network variables of a foreign project, just use the local timestamp for all tasks.

 

An introduction to syncronization via PTP is here: http://www.ni.com/tutorial/2822/en/

0 Kudos
Message 14 of 20
(958 Views)

Faustina,

 

So you have a VI on the host PC that successfully access the variable hosted on the PXI, right?

When you say “So I create a SV library on the PC that contains a SV that references the original time SV on the PXI”, are you binding the shared variables or just connecting them in your block diagram?

 

When you build the Host executable that is suppose to perform this same communication on another PC, does it work if you run it on the same machine where it was actally developed?

 

Regards,

Andres G,

NI

0 Kudos
Message 15 of 20
(921 Views)

yes, on the PC I'm creating a SV in the library that actually binds with PSP URL to the variable in the PXI using enable aliasing.  The executable I create on the development machine runs perfectly.

0 Kudos
Message 16 of 20
(910 Views)

So the executable runs as expected on the same machine where it was developed.

 

I understand that it doesn’t work on another machine where the LV Runtime Engine and the Shared Variable Engine are both installed. What behavior do you see there? Does the executable launch at all? Do you get any error message? How are you handling errors in your program?

 

Are you somehow deploying the shared variables on this second computer? It’s possible that it doesn’t work because the SVs are not found siince they need to be deployed before. You can check wether they are or not deployed using the Distributed System Manager.

 

Regards,

Andres G,

NI

0 Kudos
Message 17 of 20
(904 Views)

The executable does run on the other machine.  I'm just not displaying any time from the shared variable.  Other indicators that are bound to shared variables are operating properly.  No errors are displayed at runtime.  However ...

 

The executable runs on a user account.  When I login under sys admin I always get this error (I could not do a print screen)

 

NI Variable Engine encountered a problem and needed to close.  Please tell Microsoft about the problem

-------------------------------------------------------------------------------------------------------------------------------------------

Error signatue

     szAppName:  tagsrv.exe  szAppVer:  12.0.0.49153

     szAppName:  ni_tagger_plugin_cit5.dll   szAppVer:  5.6.1.49152

Report Detail

     This error report includes:  information regarding the condition of NI Variable Engine when the problem occurred, the operating system version, and computer hardware in use, and the IP address of your computer

     .

     .

     .

===================================================================================

tech info about error report contents

 

C:\Documen~/\\wsl_sun~/\locals~\temp\WER0578.dir00\tagsrv.exe.mdmp

C:\Documen~/\\wsl_sun~/\locals~\temp\WER0578.dir00\appcompat.txt

0 Kudos
Message 18 of 20
(878 Views)

Hmm. I would take a look through the following thread - it looks like they were able to resolve this issue by preventing the SVE from immediately booting on startup. 

http://forums.ni.com/t5/LabVIEW/NI-Variable-Engine-closes-on-boot-up/td-p/798509

0 Kudos
Message 19 of 20
(856 Views)

I think I've found my problem ...

 

The Shared Variable library hosted on the cRIO should only be deployed and undeployed by the startup.rtexe on the cRIO.  The PCs may use the library, but they should not be deploying or undeploying it. 

 

The app running on the PC that needed time should deploy and undeploy the Shared Variable library containing time.  That library is hosted on the PC (aka localhost) only.

0 Kudos
Message 20 of 20
(841 Views)