LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Getting "error 56 occured at Datasocket Read"

I am trying to exchange a single variable between two VI's on a network through datasocket.
The purpose of using datasocket is to allow one VI to control the On/Off button on several other VI's.

I am getting error 56 "error 56 occured at Datasocket Read. Possible reason: Labview: the network operation exceeded the user-specified or system time limit."

My problem is that this system works on my office network, but when I try on the client's network it gives the error message.
I am using windows XP machines. The machines have the firewall turned off and they can ping and remote connect to each other using "Remote desktop". I just can't figure out why datasocket is working on one network but not the other!

Any insights would be helpful.

Thank you
0 Kudos
Message 1 of 6
(5,568 Views)
This could be an interesting one. Did you make sure that tcp/ip is configured under tool>>options>>Vi Server Configuration. If it is maybe try and change the port.. Other issues that could come up is IT group policies and firewalls. You might want to find all the differences that are present with that network and your first network. Is the data socket server running? Your errror sounds like a timeout error. Do you see packets being transmitted on the datasocket server window? It is a great tool to troubleshoot datasockets. let me know what you find. hope this helps.
BJD1613

Lead Test Tools Development Engineer

Philips Respironics

Certified LV Architect / Instructor
0 Kudos
Message 2 of 6
(5,560 Views)
Do you still have that problem? Is the DS Server running? I received 56 error when the String variable that I used for the URL was getting wrong values.

It'd be nice to hear how you solved the problem

Marce
0 Kudos
Message 3 of 6
(5,529 Views)
Thanks BJD.
I did some more investigation, and it seems that the machines did not point to a valid DNS address (under TCP/IP advanced properties for the local area network). It appeared that only the machine that is serving the data needs to have a valid DNS.

After further debugging, it turned out that this was indeed a "timeout" issue. Because there was no DNS server, the VI was taking about 25 seconds to find the other machine on the network. This delay only occured the first time the VI tried to read from the remote server. Subsequent calls were much faster even though I was still opening the url everytime (instead of storing a reference and reading from it). Labview must be doing some caching.
The way that I fixed the problem was by specifying a timeout of 60 seconds (default is 10 seconds which why it was timing out).

The 25 second delay is annoying, but it only occurs at the beginning and the VI typically runs for a long time.
If somebody has a workaround, I will be happy to hear about it.

Thanks for the help.
0 Kudos
Message 4 of 6
(5,518 Views)
mhachem wrote:

> This delay only occured the first time the VI tried to read from the
remote server.
>Subsequent calls were much faster even though I was still opening the url everytime
>(instead of storing a reference and reading from it). Labview must be doing some caching.

Not LabVIEW! The TCP/IP socket library does do that.

>The way that I fixed the problem was by specifying a timeout of 60 seconds (default is
>10 seconds which why it was timing out).<br><br>The 25 second delay is annoying, but it
>only occurs at the beginning and the VI typically runs for a long time.<br>
>If somebody has a workaround, I will be happy to hear about it.<br><br>

Why not fix the DNS entry or if that is to difficult you can always set
in the server the "TCP Wait on Listener" function input "resolve remote
address (T)" to FALSE to not resolve the client address. If you need the
resolved remote network address in the server a working DNS setup is
absolutely mandatory.

Rolf Kalbermatter

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
Message 5 of 6
(5,511 Views)
Use the IP address in the path instead of the computer name. Then the DNS server will be bypassed.

Example:

dstp://192.168.0.1/DataItem
instead of
dstp://NameOfComputer/DataItem

Happy New Year!!!
- Philip Courtois, Thinkbot Solutions

Thinkbot Solutions
0 Kudos
Message 6 of 6
(5,497 Views)