NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

PCI-6033E Multi-thread readings

Allen,
 
       Here's my second question (I hit the Submit Post button too early during my previous reply)...
 
       2) In the "Set Notification" test step, the Batch Synchronization mode is set to "Don't Synchronize". Again, like the previous step, should this also be set to "One Thread Only"?
 
       Again, thank you for all of your help.
 
Thanx,
Jim
0 Kudos
Message 11 of 22
(2,020 Views)
Oops!

You are correct.  Those two steps should be set to One Thread Only.
 
Let me know if you have any more questions or problems.
 
Allen P.
NI
0 Kudos
Message 12 of 22
(2,014 Views)
Allen,
 
   Okay, I've got everything working when I have only one data (measurement) per UUT, however the tests we run will measure multiple channels per UUT. I am struggling with passing elements of an array in the Notification Set step. As an example, let's say I have 3 UUTs and I am measuring 2 channels per UUT. Thus I would have an array of 6 elements (elements [0] and [1] would correspond to UUT 1, elements [2] and [3] would be for UUT 2, and elelments [4] and [5] for UUT 3). In the Notification Set step, which is set up to loop, I want to pass 2 data elements per loop (i.e. notification). I've tried a number of ways to do this without much success. I  cannot seem to get the syntax correct  for the entyr in the Data Value text box of the Notification Step Configuration. Any suggestions on how to do this or what this should look like?
 
Thank you,
Jim
0 Kudos
Message 13 of 22
(2,012 Views)
Jim,

i think you got messed um with the loopindex.

i created an example which sorts a 1D-array to the aproriate socket by [1]+[n+1] for socket 1, [2]+[n+2] for socket 2 and wo on. (so not like you suggested).
but there are two points:
a) in generel, if you acquire more than on channel without using single-values, the data is returned in 2D-arrays. rows represents the channels.
b) the example is created in TS 3.5. i hope this works for you.

the example is a working one, but surely not the simplest.....

Norbert B.
NI Germany
Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 14 of 22
(1,996 Views)

Hi Norbert,

     Thank you for your response. Unfortunately, I am using TS 3.1, which will not open your TS 3.5 example file. I am trying to understand what you are telling me in your response, however, as the old saying goes, a picture (or in this case, an example) is worth a thousand words. Any chance you might be able to send me a screen shot of the Set Notification Step Configuration panel so that I can see your syntax for the Data Value?

      Again, thank you for all of your time and help!

 

Thank you,

Jim

0 Kudos
Message 15 of 22
(1,991 Views)

Here is my modified sequence.  I am sending an array of data to each notifier instead.  I have two numeric limit tests to test each value.  You could also use a multiple numeric limit test instead if you wished.

 

Let me know if you have any other questions.

Allen P.

NI

0 Kudos
Message 16 of 22
(1,983 Views)

Allen,

   Thank you very much!! After looking at your example, I saw that I was leaving out the "squiggely" brackets ({ }) around the Data Value description in the Set Notification Step Configuration panel in my sequence file.

Thank you,

Jim

0 Kudos
Message 17 of 22
(1,975 Views)

Allen,

    I've made some good progress, thanks to your help, and I think I have one final issue to overcome. Here's the problem:

    When I read the multiple channels, they are stored in a single-dimensional array. I then use a VI to put this data into a 2-dimensional array where the row is the UUT (socket) number and the columns represent the data channels for this socket. This works fine. The problem I am having is trying to find the correct syntax to set the Data Value of the Set Notification step so that this data value is one row from the 2-dimensional array (i.e. an array of channel data). I cannot determine the correct syntax to set this up. I've enclosed a test sequence, which is a modification of your notification.seq. There are also a couple of VIs. One is used to generate a random array of data and the second VI takes this array of data and puts it into a 2-dimensional array, as explained above.

    I would greatly appreciate it if you could take a look at this and let me know what the correct syntax is for setting the Data Value of the Set Notification step to a row of the 2-dimensional array.

Thank you,

Jim

0 Kudos
Message 18 of 22
(1,969 Views)

You are probably better off using a loop around a code module to strip out the data you want, and then send it to a notifier.

For example, you could have a LabVIEW VI that takes a 2-D array, and a row parameter, strips out the data and returns it as a 1-D array.  You would then pass this 1-D array in the next step to your notifier.  You would place a for loop around these two steps so that this would iterate several times for each UUT.

Let me know if you need an example on this if I have not explained it clearly enough.

Allen P.

NI

0 Kudos
Message 19 of 22
(1,949 Views)

Allen,

   I understand what you are saying, however I thought I needed a unique array for each notification? That is why I parsed the data from a 1D array to a 2D array so that I can pass in "an array" of the 2D array, which is unique, for each thread notification.

   Let me just repeat what I think you are telling me: Create a local variable of type 1D array. For each loop iteration strip out a row from the 2D array into the 1D array (using a VI). Then pass this 1D array as the data value for the notification step. Is this correct, or am I missing something?

Thank you,

Jim

0 Kudos
Message 20 of 22
(1,948 Views)