12-24-2006 02:15 AM
12-24-2006 10:59 AM - edited 12-24-2006 10:59 AM
Message Edited by altenbach on 12-24-2006 09:00 AM
12-24-2006 03:47 PM
RT nodes will stop responding when they run out of memory or CPU.
Monitor both before the comm faliure and address as dicated.
Ben
12-25-2006 01:30 AM
12-25-2006 05:50 AM
@Sharonoff wrote:
But why does RT TCP/IP not to just "wait a while" instead of stop working at all...
Ben suggested an answer for that - you have memory consumption problems and that's what causing the controller to hang, not the communication itself. As he suggested, you should monitor the memory usage and see if it goes up.
The most common culprits for uncontrolled memory consumption are Build Array and Concatenate String which are called in a loop. If you have that, you should preallocate your buffer and do a replace inside the loop.
Also, if your RT device has a LED on it, you could set your program to blink it regularly and if it stops you know that the program is stuck.
I'm not sure what the check box in MAX you mentioned does, but that does sound a bit like what you're describing, although something which completely stops an RT program without any control sounds like a very BAD idea to me - a watchdog is a more common and elegant way of handling this and you can configure network watchdogs in MAX and in your code. I suggest you read the help for it to see exactly what it does.
12-25-2006 12:16 PM
02-06-2007 02:21 AM
02-17-2007 10:06 AM
Please tell us more about what is causing the spikes in CPU and if they corelate to the isues you are seing.
Curious,
Ben
02-18-2007 04:23 AM
12-14-2010 04:55 PM
>> And.. I stumbled upon "Halt System If TCP/IP fails" flag in MAX in RT configuration.
The "Halt System if TCP/IP Fails" is only evaluated on boot - this should probably be called, "If attempts to get an IP address via DHCP fail, halt and reboot the system to try again." This way with the checkbox set you are guaranteed that if an IP Address cannot be obtained the system will keep rebooting and keep trying. If the box is not checked, and you're using LabVIEW Real-Time 8.6 or better, you might get an AutoIP address and thus the system may not be addressable outside the local subnet (which could be bad if you don't have local access to the system).