I am perceiving some strange behavior in my UDP connections. Every time I re-start my cRIO 9063, the UDP Write block outputs ERROR 66 (LabVIEW: The network connection was closed by the peer. If you are using the Open VI Reference function on a remote VI Server connection, verify that the machine is allowed access by selecting Tools>>Options>>VI Server on the server side.) and it does not transmit.
The most bizarre thing is that if I simply stop the execution and re-launch it again (given that I am executing the code of the cRIO in Debug mode from a Windows laptop), the UDP connection behaves perfectly well. The only time it fails is the first time I launch the program after I reset the cRIO. For me, it looks like some service is not properly initialized when the cRIO is started.
I attach a picture with the UDP connections of my LabVIEW RT program. The 'Comms RX' VI simply calls the 'UDP Read' function, and the 'Comms TX' calls the 'UDP Write'. The 'Open UDP Conn' also simply calls 'UDP Open'.
Can anyone help me?
I have RIO in a Windows VirtualBox inside a Ubunbtu Host OS.
I am sending data from a C++ program in the Ubuntu Host system to labview within the Guest OS.
I can receive the data on labview installed on the windows guest os. Below is the png of the Windows working program.
But when I tried to send the data to myRIO, I was getting a udp read only error 42.
Somewhere on the NI forums, someone suggested the net address of the "UDP Multicast Read-Only" vi be wired to the address of the RIO which I have done below
Now, the code runs on myRIO but I can't receive any data on RIO. The multicast address I am sending to from Boost Asio C++ is 126.96.36.199 on port 30001.
The RIO has a public ip of 172.22.11.2 and I set up a static ip address for it in NI MAX as the address of the UDP Multicast : "188.8.131.52.
At this moment, I do not see what I am missing. All firewalls have been disabled and I have set the permissions for RIO through the Windows security page.
Any help would be appreciated.
Submitted: 27 Aug 2011
Category: Remote Control, Monitoring and the Internet
LabVIEW Version: 2009License Type: Other (included with download)
Transport.lvlib is a LabView API to simplify and accelerate networked communication development.
It simplifies development by abstracting TCPIP, UDP and Bluetooth and TLS interfaces
into a single polymorphic vi which is a thin wrapper around the conventional
open, read, write, close and listener VIs for all the network interfaces.
Supports TCP/IP, Bluetooth, UDP (p2p, broadcast and multicast) and TLS.
Supports symetric encryption (blowfish).
Supports compression (zlib).
Run the supplied installer and follow the instructions.
Click here to download this file
Dear LabVIEW friends,
I'm running into a problem distribution my application. This is opening a UDP connection registering a service as explained in the documentation. It is perfectly working when running within the development system and also as a standalone application on the development computer.
The problem is with the installer and the distribution package. When I install the application of a different computer, it fails with error 63 at the Open UDP. Reading the available documentation it looks like it is a Service Locator fault. So I checked and indeed the NI Service Locator is not running on that machine and it is not even distributed with the installer.
I've tried to go through the list of additional installers in the Installer build properties but couldn't find anything useful.
I'm sure I'm doing badly something wrong, can you help me in sorting this out?
I had a couple of questions related to reading udp packets in Labview. I am receiving 100 - 200 Mbps of variably sized packets. The first byte in the packet specifies its size in bytes*4.
1) When I perform a read, I have no idea how much data to request, so I set an arbitrary size. It seems in doing this that I am getting multiple packets together and that I subsequently need to parse the data into packets after reading. Doing so seems to slow down the machine a bit and I'm nervous I'm dropping packets (see next point). I also tried reading only 1 byte, then reading X number of bytes based on that 1 byte, but that threw errors (I think it was error 113 about more data being available than I read).
2) How do I tell if I am overflowing the socket buffer? I am getting weird behavior that seems to indicate dropped packets occasionally but no error is coming out of the udp read function.