NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Referencing a Parameter being passed out of a Sequence Call

Background:  I'm creating a ProcessModel for our test engineers, and I want to allow them to make their own custom (ambient/chamber/etc) temperature gathering code, so I'm writing that as a callback sequence, which ends up being a Sequence Call Step.  This temperature info is passed out of the sequence as a parameters and then stored in the Parameters.UUT.AdditionalData container of the calling sequence.  I've already created the property by using the insertifmissing property option of SetValString in a previous step.  I don't want to pass the whole Parameters.UUT container as that would give the developing engineers access to the whole container, and I want to limit the scope of the Sequence.

 

Things I've tried:

I've verified that the data is succesfully being passed out of the Sequence by using a local variable.  I can then use a Statement to do Parameters.UUT.AdditionalData.Temperature=Locals.Temporary, where Locals.Temporary is the value for the Temperature Parameter being passed out of the Sequence Call.  However, if I skip the local variable, and set Parameters.UUT.AdditionalData.Temperature as the value being passed out of the sequence call, it gets populated with "...".  This behavior is repeated if I use Parameters.UUT.AdditionalData.Temperature=Step.Module.ActualArgs.Temperature.UserData in the post expression of the sequence call

 

Can someone point out the mistake I'm making, or the piece of information I'm missing?

 

Thanks in advance,

Seth

0 Kudos
Message 1 of 7
(4,886 Views)

Unfortunately, I can't share my code, but I can share this little example sequence that goes through the same relevant steps.  The funny thing is that the example sequence doesn't show the same problem.

 

Also, some info I forgot to include in the first post:

This is in the process model that's based on the SequentialModel.seq

I'm using TestStand 2013 on a 64-bit version of Windows 7.

0 Kudos
Message 2 of 7
(4,875 Views)

Hello,

 

I know that you can not post your code, but is it possible for you to post a screen shot with the error you are seeing?

 

Thank you,

Karen M

National Instruments

 

 

Karen M
Applications Engineer
National Instruments
0 Kudos
Message 3 of 7
(4,847 Views)

Karen,

 

Unfortunately, with my luck, the problem seems to have solved itself.  I don't know if restarting TestStand or the computer fixed it, but it is now behaving as expected.  

 

I'm attaching the Expressions screenshot for the Temperature Entry step, showing that it puts the result into the parameter for the sequence it is in.  And the second attachment is the parameter list for the temperature sequence call.  It shows the way I assigned the property of the UUT variable to the Temperature value coming out of the sequence call.  Finally, as I can't reproduce the problem at the moment, I forced the fail by inserting a statement step between the end of the sequence call step and the breakpoint I had set up, and attached a screenshot of the data.  

 

Seeing as I don't think I did anything to make this go away, I would still like to pursue it, even though the problem isn't presenting itself, because it could present itself again in the future.

 

Hope that helps clarify things,

Seth

0 Kudos
Message 4 of 7
(4,841 Views)

Karen,

 

Actually, I found one method for getting it to fail as it was yesterday.  I've attached a screenshot of the Post-Expression box for the Sequence Call.  

 

Also, in all this, no error actually pops up.  The code completes execution without error.  The error is that the wrong data is placed in the variable.

 

-Seth

0 Kudos
Message 5 of 7
(4,838 Views)

Seth,

 

I am unable to tell what the issue is from the screen shots that you provided me. I am thinking it might be something in your settings, but without having access to the code it is hard to troubleshoot further. Also are you sure that you changed nothing that would affect the error that you were seeing? 

 

Thank you,

Karen M

Karen M
Applications Engineer
National Instruments
0 Kudos
Message 6 of 7
(4,793 Views)

Karen,

 

The issue was that I was getting the string response of "..." instead of the correct response of "25".  I was able to duplicate this problem by using the statement Parameters.UUT.AdditionalData.Temperature=Step.Module.ActualArgs.Temperature.UserData, running the sequence, breaking after the step, and looking at the variable Parameters.UUT.AdditionalData.Temperature in the execution window.

 

The problem I also had was that any of the other methods I used to grab that data was giving me the same result of "...".

 

What I did between when the problem was present and when the problem went away was: 

1. Close TestStand.

2. Reopen TestStand.

3. Make the Sequence File I sent earlier in the thread.

4. Shutdown and restart the computer

5. Open TestStand

6. Changed the SequenceCall Step to use the parameter as one would expect (and had been tried prior, which had failed), and it worked.  

 

The only setting I changed was the option to allow other process models, then changed the demo sequence file to use no process model.  The original sequence file that was showing this problem didn't have it's process model changed.

 

-Seth

 

0 Kudos
Message 7 of 7
(4,788 Views)