NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

I want to generate multiple reports in Test Stand.

I am tied to an existing implementation of TestStand so I am limited in what I can do.  We are testing a very complex piece of hardware.  Just bringing it up to a ready state takes up to 10 minutes.  We are testing many firmware and hardware features and the 10 minute startup and 8 minute shut down times are killing us.  I derived a LabVIEW spreadsheet handler and a LabVIEW monitor window that run asynchronous and communicate with a rudimentary commands processor running in TestStand.  We need to be able to run multiple spreadsheet files of commands and generate a test report for each.  Because of the nature of the beast, we are generating huge amounts of test data, in the order of a petabyte or more a month.  If I run a few spreadsheets, the TestStand report errors out due to memory, so I need to trigger interim reports, ideally, one for each spreadsheet, flush and start fresh if possible without exiting and starting the power up sequence over again. I am a LabVIEW with 20+ years experience, but somewhat a novice with TestStand in this respect.  Can any of you pro's at least point me in the right direction.  As always, they never give you enough time and I have a looming deadline.

 

Can it be done without altering the single run model?  Just trigger a new report?

0 Kudos
Message 1 of 13
(6,290 Views)

Hi,

 

Are you using a specific directory or specifying the report file path by expression? And are you trying to generate a report per UUT? 

Jen P.
Applications Engineering
National Instruments
0 Kudos
Message 2 of 13
(6,250 Views)

I did not set up this TestStand application.  It take a sequence you run and places all the logging information into a single test report at close.  It is run as a single UUT test.  All the data is tagged with a specific UTI # (unique test identifier) and placed into a newly generated directory.  The problem is that I need to periodically during a 12+ hour test, save the test report, otherwise we get out of memory failures.  They are locked down on 32 bit TS but have 128 gb of RAM.  We are not allowed to change that.  I need a way to under program control, do the equivalent of exiting the sequence and generating the report of all the logged info up to that point, then to start over fresh after reclaiming the memory.  Yes, I know this is not the ideal way, but I am not given many options and I am looking for a solution, or even a hack to make this possible.

  I have looked into using two different instances of TestStand running.  The first would bring the equipment up and online then pause/break, while a second sequence it instantiated to continue the control.  The second sequence could be terminated every so often to force the report generation, then exit, upon which it would be reinstantiated and start the process over how ever many times needed.  When all the testing was finished, the second TestStand would be allowed to close again, and then we would go back to the original instance that has been sitting idle, and let it perform the lengthy process of shutting down the hardware.

  I know it is crude, but might work.  Anybody have a better idea.  I can't give a ton of specifics due to the nature of the project.

0 Kudos
Message 3 of 13
(6,237 Views)

I have the code to set the destination path and file names, etc, I just need to be able to trigger the saving and clearing of the Report file and then start up a new report.

 

Any ideas would be greatly appreciated.

0 Kudos
Message 4 of 13
(6,215 Views)

Have you heard of on-the-fly reporting? See the article below:

 

On-The-Fly Reporting and Logging in TestStand: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9LdSAK

 

There is an option for Discard Results or Disable Results When Not Required By Model to improve memory usage. Does this sound like something you could use?

Jen P.
Applications Engineering
National Instruments
0 Kudos
Message 5 of 13
(6,209 Views)

Thanks, but not really.  A continuous telemetry cycle is happening and all the results have to be stored.  Sending the report data in real time may fix one of the issues, namely running out of memory, but ideally if they run 100 different spreadsheet based sequences, they want 100 different test reports.

0 Kudos
Message 6 of 13
(6,182 Views)

Hey,

 

It sounds like you have been able to figure out part of your workaround. Can you elaborate more on what you have figured out and what you still need to work on. I am still a bit confused on what you are trying to achieve. Would on the fly logging not create different reports for each spreadhseet?

 

-Michael B.

0 Kudos
Message 7 of 13
(6,136 Views)

Hi,

 

Just as information what I did, to separate Reports.

Typically your MainSequence consist of SequenceCall StepTypes.

If there is a problem with the report size. Every Sequence StepCall inside MainSequence will be reported in as its own reportfile, by using the TestReportCallback. Later there is link in Main Report that links all together.

 

The trick is done by just using ProcessModelPostStep EngineCallback

Checking there if it was in MainSequence And StepType is SequenceCall. Then

Format your FilePath and exceute TestReportCallback and delete the Steps ResultList

to avoid memory overrun (by the end of the day).

 

Hope that helps.

 

Juergen

 

 

 

 

 

 

 

--Signature--
Sessions NI-Week 2017 2016
Feedback or kudos are welcome
Message 8 of 13
(6,129 Views)

First off, I took a normal sequence that was causing an out of memory error upon report generation sometimes.  I set it to on the fly logging, and still got the out of memory error.  Apparently that does not free any memory, just writes out the report contemporaneously.

 

The spreadsheets are in its simplest form, "interpreted" and run.  Once the sequence is started, it takes 10 minutes to power up the hardware, at which time the user can interactively select spreadsheets to "run" before doing a shut down, which also takes quite a while.  One or more spreadsheets can be selected, one after the other.  The number of spreadsheets might run well into the hundreds out of over a thousand available.

0 Kudos
Message 9 of 13
(6,124 Views)

Do you have an example that you can add ?

 

Regards Magnus F

0 Kudos
Message 10 of 13
(5,923 Views)