LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

3D Scene does not display

The attached VI allows one to manipulate the roll, pitch, and yaw of a rectangular box, which is displayed correctly on a front panel Scene Display when I run it on my Windows computer.

 

When I move this code into a project that is deployed to a cRIO (actually a roboRIO), the Scene Display remains blank.  How should I modify the code to enable the Scene Display to be updated?  My application is to read an Inertial Measurement Unit with a RIO and display the 3D pose on my computer front panel.

0 Kudos
Message 1 of 5
(3,083 Views)

The 3D picture control is not supported on RT targets, like roboRIO. To be able to use the 3D picture control, you need to develop two separate VIs and use a communication feature, like Shared Variables, to send the information from the RT target to your host HMI running on host. This should be not very difficult to do with shared variables.

 

These are some white paper gives a overview of different technologies for future references:

RT Target Performance Benchmarks for Network Published Shared Variables - National Instruments 

Building an HMI for Your System - National Instrument 

Using the LabVIEW Shared Variable - National Instruments 

https://www.ni.com/en/shop/compactrio/compactrio-developers-guide.html 

Barp - Control, Simulation, RTT and HIL - National Instruments
0 Kudos
Message 2 of 5
(2,989 Views)

Thanks.  I've used Shared Variables before, but never across VIs on different targets.  I did as you suggested (new VI within same Project file), however, the new VI with the Scene Display threw an error indicating the Shared Variables (which are hosted on the RT Target) must be moved to this VI in the Target Tree (My Computer) or change the Reference Mode to Absolute.  The Absolute selection was greyed out, so I tried changing from Single Process Shared Variables to Network-Published.  This appears to be correct, allowing me to define the Reference Mode as Absolute, clearing the broken arrow.  However, I now get this error on deployment:

 

Deploying Shared.lvlib\\roboRIO-xxx.local\Shared deployment failed (error: -1967357949, OS and Network Services:  (Hex 0x8ABC8003) Unable to query Measurement & Automation Explorer for the Network Variable Engine. Make sure the Network Variable Engine (which installs support for network-published shared variables) exists on the RT target and check that the network connection is valid.).

 

This is a LabVIEW installation for FIRST FRC (NI STEM donation), so perhaps it doesn't come configured with the Network Variable Engine (?).  Am I on the right track, but can't get there without the NVE, or is there another approach?

 

 

0 Kudos
Message 3 of 5
(2,973 Views)

As the roboRIO is not currently supported like our other real-time targets, I am not sure if you will be able to install the shared variable engine component. 

 

To communicate between the host and your controller, you could try using a lower-level protocol like TCP.

Cameron
0 Kudos
Message 4 of 5
(2,910 Views)

Ok.  Tried UDP as a lower level protocol, as I read that UDP should have a lower transmission delay than TCP.  First I reviewed and ran the UDP example (labview\examples\Data Communication\Protocols\UDP\Simple UDP\Simple UDP.lvproj) - which worked fine when running both Sender and Receiver VIs on my Windows computer.

 

However, once again, when I move the Sender code into a VI deployed to the roboRIO, and attempt to monitor with the Receive code in a separate VI, I achieve no communication.  Instead, the UDP Read VI continually reports:

 

"Error 56 occurred at UDP Read in Visualization.vi
Possible reason(s):
LabVIEW:  The network operation exceeded the user-specified or system time limit."

 

This is the exact code lifted from the example (cut/paste) ... is this another RT Target issue?

0 Kudos
Message 5 of 5
(2,885 Views)