10-06-2013 06:59 AM
Im using Labview 2012 to communicate with a realtime industrial device using tcp/ip. Its part of a bigger project which also uses a second network connection to a micro epsilon laser scanner using their libs. I developed both parts on their own and before marrying them I wanted to run both vis next to each other. Now theres the problem: When I start the vi and the corresponding device everything works fine. As soon as I focus another vi the communication stops - I guess because the device stops because of late packages. Its okay to focus other non labview windows.
Next I tried the opposite and started the vi containing micro epsilon. Their libs use their dll and no labview tcp/ip. Consequently the communication never stopped no matter what I klicked. Sadly I wasnt able to start the first vi when the second was running, I even tried using a second network card and an independent network. Same thing happend, tcp/ip stopped (probably in the industrial device first).
Long story short: What happens when the running vi loses focus to another vi? Is there a way to get this to work together without using a realtime system (at least during development)?
Next week I will try to make the industrial device ignore late packages to see if this is really the problem although this is no option later...
10-07-2013 10:38 AM
I analyzed the problem some more.
Even with the critical vi (lets name it A) compiled and running with highest priority and every unnecessary process killed and using the most aggressive energy profile in windows I repeatedly miss my time slot. Everybody knows windows is no RTOS although I thought it could handle this.
I see several options now:
1) Try to make the critical parts run on cRIO. I would not be happy about this because of the limitations and additional expense.
2) Force windows to behave. Is there a way to assign processor cores to labview and nothing else to achieve realtime behaviour?
What do you think I should do?
10-11-2013 02:59 AM
It could be caused by timeouts, do you have any implemented in your devices? Did you try to configure your industrial device to ignore late packages, like you said?