06-04-2015 11:06 AM
Now that Bob mention this maybe this document can be useful:
http://www.ni.com/white-paper/12267/en/
06-05-2015 09:28 AM
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
07-29-2015 06:41 PM
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?
07-29-2015 07:07 PM
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/
07-30-2015 11:39 AM
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
07-30-2015 12:56 PM
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.
07-30-2015 01:09 PM
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
08-03-2015 03:19 PM
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
08-04-2015 11:33 AM
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
08-05-2015 10:59 AM
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.