06-08-2014 08:28 AM
Hi,
I have an ARINC AIT card connected to NI-PXIe. An ARINC message is transmitted on this card via LabVIEW vi, from TestStand. Wherein an information of current time (PXIe time) also should be transmitted, at a frequency of every minute update in PXIe, irrespective of steps which is being executed in sequence file.
Can this be made in TestStand, wherein we have an LabVIEW step which is being performed at the background when other sequence steps apart from it, is getting executed?
Thanks for the help,
DD
06-09-2014 09:22 AM
Not sure if this makes sense from a hardware point of view, but you could create a sequence than you run in a new thread (or new execution) that loops and uses the wait step to wait for an interval of one minute between loops.
1) You could make the loop condition check a boolean parameter passed into the sequence by reference, then the main sequence can set the boolean to false when it wants the thread to terminate.
2) Make sure you disable result recording for the sequence so that you don't waste memory storing results for those steps. (check the sequence properties dialog).
Hope this helps,
-Doug
06-09-2014 09:39 AM - edited 06-09-2014 09:40 AM
A co-worker of mine says this is better done from hardware than software. I don't really know the details of how that would be done though. Perhaps someone else can explain. Or perhaps someone on the hardware forums might have a better answer.
-Doug
06-09-2014 10:30 AM
Generally, the concern with doing this from software is that since Windows is not a deterministic operating system, it will be difficult to attain precise timing (for example, if the step needs to execute exactly every 60,000 milliseconds). If the timing is more of an approximate value, it might be acceptable to trigger this from TestStand. If you do want to explore the hardware-triggered route, I would suggest posting to the forum specific to the hardware you are working with.
Hope it helps, and let us know if you have any more questions about it!
06-09-2014 10:36 AM
Not sure if this makes sense from a hardware point of view, but you could create a sequence than you run in a new thread (or new execution) that loops and uses the wait step to wait for an interval of one minute between loops.
1) You could make the loop condition check a boolean parameter passed into the sequence by reference, then the main sequence can set the boolean to false when it wants the thread to terminate.
2) Make sure you disable result recording for the sequence so that you don't waste memory storing results for those steps. (check the sequence properties dialog).
Hope this helps,
-Doug
What Doug says make sense as an option. i hade the same issue where i needed to talk in the background with an oven. I have a Vi that polls data from the oven and can update testand variables.
This linkhttps://decibel.ni.com/content/docs/DOC-34743#comment-35308 has a great example on how to run a vi on the background using a new thread. i solved my problem based on this example.