From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PSP RemoteEngines[] property not detecting hosts after built into executable using App Builder

I am attempting to build an application that utilizes a discovery feature to show all available cRIO's on a field network. Since the applications already use 1 or 2 shared variables, my first thought was to just return RemoteEngines[] from the PSP Variable Engine property of the Local PSP Variable Engine object. This is working well and discovers multiple host machines when I run the VI in my dev environment. However, when I build an application with the Application Builder in LV, the functionality has not been returning any detected hosts. Is there perhaps some kind of driver that I haven't thought to include during the compilation process of either the Build or the Executable? Below is what I quickly whipped up that has been working okay on the dev environment. Project files included.

 

I had to trim all of my project specifics out of it, but the base functionality is there. The Device ID is assumed to be a string containing some U8 to finish out an IP address. The variant data is traditionally ported in from a UI that takes the user's selection, converts it to variant and unparses as an array of Availables. 

 

Everything is developed in LabVIEW v15.0f2 (32-bit). Applications build was attempted on a Win10 laptop. Hosts used for my testing are cRIO-9068's using the following drivers:

CompactRIO Support 15.0
Hardware Configuration Web Support 15.0.0
LabVIEW Real-Time 15.0.0
Modbus I/O Server 15.0.0
NI Scan Engine 4.4
NI System Configuration 15.0.0
NI System Configuration Remote Support 15.0.0
NI Web-based Configuration and Monitoring 15.0.0
NI-RIO 15.0
NI-RIO IO Scan 15.0
NI-VISA 15.0.0
Network Configuration Web Support 15.0.0
Network Streams 15.0
Network Variable Engine 15.0.0
Run-Time Engine for Web Services 15.0.0
SSL Support for LabVIEW RT 15.0.0
System State Publisher 3.4.0
Time Configuration Web Support 15.0.0
Variable Client Support for LabVIEW RT 15.0.0
WebDAV Server 15.0.0

 

Thanks

 

discovery.jpg

 

 

0 Kudos
Message 1 of 4
(2,055 Views)

After some more searches, I was able to locate a thread addressing an issue located here. Thanks Corey! 

 

Using this approach, I have now gotten further, but still have an issue. After changing the local PSP variable object to a localhost path, I can now build the installer and access the controllers from MY laptop using an application instance from aforementioned installer, but any other end-user laptop I install this on doesn't seem to discover the controllers. These laptops run Win10. 

 

Stepping through the code, it does actually pull all the names in RemoteEngines[] before the For loop and spits out the URLs through the PSP Variable Engine node. However, it is when I attempt to Open the Variable Connection through the next VI just before the first case structure that I error out, every time.

 

The error is -1950679035. See attached photo.

 

This to me seems like a driver issue that's not getting included in the application builder, but I have included everything I know to include:

- In the application builder I check the box to 'Deploy shared variable libraries at application execution' as well as to undeploy them at close.

- In the installer builder I check the box to "Automatically select recommended installers" which sees the NI DSM 2015, NI LV Runtime 2015 f2 and NI Variable Engine 2015 get installed. I have unchecked this and looked around at some previously mentioned things on other threads, like NI Logos, and that one is included. 

 

What would be the next step? Very frustrating! 

 

Thanks 

 

 

0 Kudos
Message 2 of 4
(1,998 Views)

As an update to this thread, it appears to have been the individual laptop.... so far. I have installed it on 3-4 more laptops of varying make and manufacture, all with Win 10, and it has worked fine. On the one that didn't, I still have yet to figure out what has caused the issue, however. The inbound/outbound of the firewall is basically disabled and the application is always run as administrator.

 

0 Kudos
Message 3 of 4
(1,956 Views)

I have still experienced intermittent issues in discovering cRIO targets from various host laptops trying to search for the SVE's programmatically in this application.

 

In the most recent case, I found that modifying the contents of the laptop application's .aliases file was completely deterministic in which cRIO's would be discovered. For example:

 

[RT CompactRIO Target]
RT CompactRIO Target="192.168.3.13"

 

... would discover Unit 13. Whereas,

 

[RT CompactRIO Target]
RT CompactRIO Target="192.168.3.13"

 

[RT CompactRIO Target 2]
RT CompactRIO Target 2="192.168.3.14"

 

... would discover Unit 13 and 14. 

 

I am not sure why it functions this way. I would think the point of the RemoteEngines[] method is to return all detected SVE-equipped machines on the local network; at that point perhaps the only use of the .aliases file would be to search for some kind of implied subnetting on the address. 

 

If this indeed is the issue, then I am going to have to add every possible address to the .aliases file that a cRIO could show up to the local network as (there are currently ~80 such machines produced). It seems crazy, but that's all I've been able to do to get this to function. I've also tried leaving out a specified [RT CompactRIO Target] section but it discovers nothing in that case.

 

 

 

 

0 Kudos
Message 4 of 4
(1,942 Views)