Error 56: Tiempo de espera al comunicarse entre dispositivos de red que utilizan el software NI

Actualizado el May 11, 2020

Reportado en

Software

  • LabVIEW
  • VeriStand

Operating System

  • NI Linux Real-Time
  • Windows

Detalles del problema

  • Estoy tratando de comunicarme entre los dispositivos de red utilizando cualquiera de las API (interfaz de programación de aplicaciones) de redes basadas en TCP/IP en LabVIEW, pero el tiempo de espera de los VIs con el Error 56 – LabVIEW: The network operation exceeded the user-specified or system time limit  ¿Qué puedo hacer para resolver este problema?
  • Estoy tratando de hablar con un dispositivo de red final usando mi computadora, pero recibo el error 56. Sin embargo, puedo ejecutar el mismo código con éxito en otra computadora. ¿Que esta pasando?
  • Estoy intentando hablar para implementar un proyecto de VeriStand y recibo un mensaje de error:

The VeriStand Gateway encountered an error while deploying the System Definition file.
Details:
Error 56 occurred at Project Window.lvlib:Project Window.vi >> Project Window.lvlib:Command Loop.vi >> NI_VS Workspace ExecutionAPI.lvlib:NI VeriStand - Connect to System.vi
Possible reason(s):
LabVIEW:  The network operation exceeded the user-specified or system time limit.


 

Solución

Este error de tiempo de espera puede deberse a la configuración incorrecta de las funciones TCP / IP y, a menudo, puede borrarse sin detrimento, siempre que se reciban los datos. Si no se reciben los datos, hay varios pasos de solución de problemas a continuación para mitigar este error.

Si usa una aplicación específica de LabVIEW

  • Asegúrese de que el VI que genera el error tenga un valor de tiempo de espera configurado correctamente. Ejemplo: cuando se utiliza el Client HTTP GET VI  para recibir una cadena grande de un servidor lento, el tiempo de espera predeterminado de 10 segundos puede no ser suficiente.
  • Si está utilizando los VIs Reentrantes  que utilizan TCP/IP, intente desactivar la reentrada. Es posible que se esté produciendo una condición de carrera que está causando que la red esté ocupada y se agote el tiempo de espera al escribir o leer
  • El error de tiempo de espera puede ser el comportamiento esperado para su aplicación. Al recibir datos de TCP Read Standard, la función TCP esperará el número especificado de bytes durante el tiempo de espera. Si la función no recibe el número completo, devolverá los datos que recibió con un error 56. Consulte Cómo eliminar un error específico del grupo de errores para obtener información sobre cómo eliminar errores.
  • Asegúrese de que el cable de red esté correctamente conectado a cada sistema o que la conexión de red inalámbrica esté correctamente establecida.
  • Use la dirección IP en lugar del nombre de dominio cuando abra la conexión para buscar problemas relacionados con su servidor de nombres de dominio (DNS).
    • Ejemplo: utilice "http://74.125.224.72/" en lugar de "http://www.google.com"
  • También puede intentar navegar Tools»Options»VI Server  y agregar * a la Lista de acceso a la máquina seleccionando Add  en la parte inferior, ingresando * en el campo Machine name/access field, y asegurándose de que esté seleccionado Allow access.  Sin embargo, esto permitirá que todas las máquinas accedan a la máquina de destino.
  • Intente llegar a los dispositivos de red en cuestión con un comando ping para verificar que los dispositivos aún están conectados y en comunicación.
  • Apague todos los firewalls y paquetes de software antivirus instalados en la computadora para asegurarse de que no haya puertos bloqueados.
  • Asegúrese de que ambos dispositivos estén en la misma subred y tengan la misma máscara de subred. Vea "Configuraciones IP inconsistentes" cuando se conecta a un objetivo en tiempo real en NI MAX para obtener más información sobre la configuración de dispositivos de red NI.
  • Compruebe si el tráfico excesivo de la red local ha ralentizado la comunicación de la red y ha hecho que las transferencias demoren más de lo esperado.
  • Si está utilizando los VIs de FTP, compruebe que la contraseña que se está utilizando no contiene ningún carácter o espacio que no se pueda imprimir.
  • Asegúrese de que el VI que está enviando la información se está ejecutando.
  • Si la parte de comunicación se coloca en un subVI, intente sacarla del subVI y ver si funciona fuera del subVI.
  • Intente usar el "Simple TCP.lvproj" de los ejemplos en el buscador de ejemplos de LabVIEW.
  • Si lee y / o escribe repetidamente con un bucle, intente insertar una función de espera en el bucle (de alrededor de 200 ms).

Si está utilizando VeriStand:

  • Intente implementar una definición de sistema en blanco especificando solo la configuración del controlador.
  • Asegúrese de que la dirección IP y el sistema operativo del controlador correctos estén especificados en la definición del sistema.
  • Asegúrese de que el cable de red esté correctamente conectado a cada sistema o que la conexión de red inalámbrica esté correctamente establecida.
  • Intente una conexión Ethernet directa entre la PC host y los objetivos RT, si es posible
  • Intente llegar a los dispositivos de red en cuestión con un comando ping para verificar que los dispositivos aún están conectados y en comunicación.
    • El tiempo de respuesta debe minimizarse para garantizar que VeriStand tenga tiempo suficiente para implementar las dependencias necesarias, como dispositivos personalizados.
  • Apague todos los firewalls y paquetes de software antivirus instalados en la computadora host para asegurarse de que no haya puertos bloqueados.
  • Asegúrese de que ambos dispositivos estén en la misma subred y tengan la misma máscara de subred. Vea "Configuraciones IP inconsistentes" cuando se conecta a un objetivo en tiempo real en NI MAX para obtener más información sobre la configuración de dispositivos de red NI.
  • Compruebe si el tráfico excesivo de la red local ha ralentizado la comunicación de la red y ha hecho que las transferencias demoren más de lo esperado.

Si utiliza los VIs del controlador RT:

  • Asegúrese de que la dirección MAC que está conectando al VI sea precisa y esté formateada correctamente. Asegúrese de que su control de cadena o ID constante muestre sus datos en formato hexadecimal. Ejemplo: 0080 2F0A 14FF. Si su control de cadena no está en formato hexadecimal, haga clic derecho en él y seleccione  Hex Display.

Si utiliza los VIs colocar archivo de FTP (del inglés: FTP Put File) o el TCP esperar el receptor (del inglés: Wait On Listener) con LabVIEW para Linux en Open Suse 11.1:

  • Configure el FTP Put File VI para usar el modo pasivo para transferencias FTP.

Solución de problemas utilizando la detección de paquetes:

Si los pasos anteriores no ayudan, use un programa de rastreo de paquetes para ver si los datos se están enviando a través de la red. Una herramienta de terceros llamada Wireshark puede ayudarlo a ver si los datos llegan. Si no llega ningún dato y ve este error, existe un problema en el envío de datos del dispositivo o en su red. Si los datos llegan a Wireshark, y aún ve este error, lo más probable es que tenga un problema con el firewall o funciones TCP mal formadas. Wireshark está disponible en Wireshark. Puede usar Captura de Filtros (del inglés:Capture Filters) con Wireshark para ayudar a aislar paquetes que solo van a / desde una determinada dirección IP.

Además, si los paquetes se envían con éxito a la red, pero el dispositivo final no responde, existe la posibilidad de que el adaptador de red del dispositivo final esté defectuoso.

Información adicional

El error 56 es causado por el código de LabVIEW que no recibe una respuesta de la red dentro de un límite de tiempo definido por el usuario. Este error es un error de tiempo de espera genérico y puede ser el resultado de muchos factores diferentes. El error 56 es a menudo un resultado del Error 66 - LabVIEW: The network connection was closed by the peer  lo que hará que el VI espere una respuesta que no llegue hasta que el servidor alcance un límite de tiempo de espera y cierre la conexión.