JohnZ
2008-08-01 00:10:05 UTC
We are running a cRIO application that periodically disconnects from the Ethernet network even though the VI continues to run on the cRIO.The application has two parallel loops. One loop reads data from the FPGA and writes it to a RT FIFO. The second loop opens a TCP connection to a remote host, reads data from the RT FIFO, and transmits the data to the remote host. We have instrumented each loop to send messages to the serial port that indicate their status. When the cRIO disconnects, both loops continue to send their status messages to the serial port. The first loop happily continues reading data from the FPGA and writing it into the RT FIFO. The RT FIFO overwrites the oldest data when it fills up to keep it from overflowing. The second loop reports a TCP write timeout (tcp write error 56) around the time that the cRIO disconnects, after which it closes the existing TCP connection and then repeatedly tries to open a new TCP connection (each attempt times out after a 5 second delay).All that appears normal and usually the connection is automatically restored. Occasionally, however, the cRIO is not able to re-open the TCP connection. Furthermore, the cRIO stops responding to pings from the remote host. On two occasions, the cRIO was finally able to open a new connection after 30-40 minutes. Other than that, the only way we've found out of this dilemma is to reboot the cRIO.The frequency of the disconnects and the time before they occur doesn't seem connected to whether or not the cRIO is set to run the application at startup or if the application is run via an interactive VI window on the remote computer.It is possible that the disconnects have something to do with which computer the cRIO is connected to, as the problems seem to happen much more frequently (often within minutes) when the cRIO is sending data to a laptop running Windows XP, but it can run for hours when sending data to a rackmount server running Windows Server 2003. Everything else (the speed and size of data being sent, the ethernet hub and cables, the VI running on the remote computer) is the same.