Quantcast
Channel: NI TestStand topics
Viewing all 6529 articles
Browse latest View live

Architecture Help/Advice - new to TestStand

$
0
0

I am new to TestStand and CVI. I need to implement a custom Ethernet based communication protocol between our test station and UUT. I would like to write a "mid layer" software application that will take high level commands/parameters entered by the TestStand coders and translate them into the hex based Ethernet commands to get sent to the UUT. For example, the high level command might be “run BIT test #4”. This would get passed as a variable to my low level program which takes “run BIT test #4” and translates it to the appropriate hex value and sends it over the Ethernet port.

I thought I might write the low level hex command translations in a .net program (C#) and compile as a dll. What would you suggest for how to write the high level software (GUI) that the Test Stand coders will use to enter the UUT commands? I've only done a little coding in the past with C# which is why I want to use that language. Should I write another DLL "GUI" that the coders repeatedly call for each test step with the appropriate UUT commands that get passed to my "mid layer" dll? Someone mentioned I should look into a NI software product called NI Measurement Studio but I don't know what it is or how it would help.


TestStand SequenceFilePostStepRuntimeError callback dialog and behavior

$
0
0

Hi,

NI have an example of overriding the default behavior of the runtime error handling: "\Examples\Fundamentals\Overriding Engine Callbacks\Overriding SequenceFilePostStepRuntimeError Callback.seq".

Instead of the "Choose Action" dialog I want to use the build in Runtime Error dialog by calling "Runstate.Engine.DisplayRunTimeErrorDialogEx ( dlgTitle, sequenceContextParam, dlgOptions, suspendExecution, dontShowAgainForExecution, dontShowAgainForBatch, runTimeErrorAction)"Runtime Error Dialog.PNG

 

I would like to break feature. This is not a part of the example. Calling "RunState.Caller.Execution.Break()" make the execution break immediately and not at the "executed step". Problem is the execution is the same for my test step and and the callback.

 

Suspending the thread "RunState.Caller.Thread.ExternallySuspended = True" is a bad idea.

 

I've tried dynamic inserting a breakpoint "RunState.CallingStep.SetBreakSettings ( isSet, enabled, passCount, Condition, [executionParam])". This works but leave a breakpoint which the user manually must clear.

 

Anyone who knows how to break without setting a breakpoint?

 

(I know it is possible to do what ever I need to do in the RuntimeError callback showing no dialog and NOT set the ErrorReported flag "RunState.Caller.RunState.ErrorReported = true" causing the native runtime error dialog also to occur and this takes care of the problem.)

Cannot call class member if Run Time Engine is selected as adapter

$
0
0

I'm using Modbus class downloaded from here:http://www.ni.com/example/29756/en/

 

I want to call functions "Read Holding Registers", "Write Holding Registers" from teststand using Call Type = Class Member Call. 

If I have Adapters -> Labview Developement System selected, Teststand finds function and there is not any Error (See Image1)

 

image1.PNG

 

But when building Teststand deployment, I have to select Adapters->Labview Run Time Engine as adapter and if I do this Teststand cannot find functions anymore and returns error:

image2.PNG

 

If I go to Modbus Master.lvclass and check if function has public scope I see:

image3.PNG

Pleas help how to solve this issue

 

Setting result.reporttext external to code for multiple numeric test step

$
0
0

I have been setting the report text for any given step inside my labview code and passing it out to teststand.  To do that, with a multiple numeric, I would have to pass in the limits and do the evaluation for each measurement, which teststand already does.  Is there a more elegant way to do this in a post step?

How to use Pass/Fail tests with an Array of Boolean in which each boolean has an expected value of true/false?

$
0
0

Teststand already has native Test to compare array of numbers giving expected value for each array element.

Is there any way of doing this with an Array of booleans?

 

in example, considering an array of 4 booleans, I would like to do something like

 

Pass/Fail test

 

Array[0] Expected: False

Array[1] Expected: True

Array[2] Expected: True

Array[3] Expected: False

 

Will only pass if all elements match their expected, but needs to have that comparison for each element logged for Report? So, for the given result, report would show:

 

Array[0] = False, (Passed)

Array[1] = False, (Failed)

Array[2] = True, (Passed)

Array[3] = False, (Passed)

Licence required for a TS UI

$
0
0

Hi,

We've built a TS UI that is used to run sequences in production. This interface does NOT allow to add steps to a sequence or add breakpoints. So our app cannot be used for debug our development.

 

However, we usually install the Sequence Editor on the computer in case we need it for debug. In that case we activate our development license prior to launching it.

 

So we installed our UI on a PC (installer installed also the Sequence Editor as mentioned above) and activated or base TS license. 

 

But when laughing our software we had a pop up asking for our debug / development license. Why is that?

Is it triggered by the fact the Sequence Editor is installed on the PC?!

If not, what can explain this behaviour?

How does the license manager can evaluate it needs a specific licence?

Start a Real Time VI and move to the next step

$
0
0

Hello,

 

I have built an application using FPGA of cRIO of NI. My application includes the FPGA VI, a real-time VI (including other dependencies) and a Host VI. I have also built a TestStand sequence for my application. Every time I run the sequence, I first run the RT VI and then run my sequence in which Host VI communicates with RT VI and run the FPGA application. I want to run the RT VI using TestStand automatically and move to the next step of the sequence. 

 

I have tried using the Running VI asynchronously step of TestStand for another application using Automation Refnum, but this method is not suitable for RT VIs as the target does not support the Automation Refnum and also the RT VI is dependent on other VIs. Can someone please guide me about the procedure to run the RT VI using TestStand and then move on to the next step automatically instead of getting hanged in the RT VI? Any help will be appreciated!

If there is fail, retray current iteration of looped sequence

$
0
0

Hello, 

 

I have created a sequence wich turn 3 times ( looped), my problem is when I put a retry, the retry is done only when all iterations have been executed. 

 

But in my case I want to retry the current failed iteration. 


Please, Find in attachment a screenshot of  the loop setting

 

Thank you for any help.

 

Chakib11_0-1599208872851.png

 


TestStand 2019 does not show "IVI Switch Step" on insertion palette

Loading appropriate process model from specified .env

$
0
0

Hi,

 

I have two envs, one is for debug use and the other is for production use. The debug env uses "debug_batchmodel" and the production uses "batchmodel". Is there a way to force TS to use the correct model for the specific env? In other words, I want to use the "debug_batchmodel" when I am in the debug environment and use the "batchmodel" when I am in the production environment. It keeps loading the last model I use.

 

Thank you.

NI-488.2の件

$
0
0

質問する場所が良くわからないため、本コミュニティにて質問させていただきます。

 

Windows10にてGPIB-USB-Bを利用しようと考えていますが、ドライバのNI-488.2は

ライセンスフリーと考えてよろしいでしょうか。

How to automatically run specific sequence file when Labview TS user interface is open

$
0
0

When using Labview TestStand simple/full-featured user interface, It is not so elegant that user have to search for the sequence file and then press Test UUTs button to load sequence file...

 

How this can be done automatically? For example, I Build EXE from Simple user interface. Renamed build something like "MyTesting_Application1.exe" When User runs this application, the program should automatically  load Seq. file saved in C:\\

Tools Menu Uninstall

Write a custom message on report file

$
0
0

Hello, 

 

How can I write a specific message on report file  ? 

 

For exemple, How can I write this "Hello World"

 

Thank you 

Thread execution number?

$
0
0

Hi - All my test steps use the .Net step types. Is there a way to pass back to (or read from) my C# code the current TestStand thread number that has called my C# code?

 

When my C# code creates its own log files, it would be helpful to append the TestStand thread number that has generated the C# log file entry to aid sorting and following test execution in a multi-threaded TS sequence.

 

The current C# log file works well in a single threaded TS sequence but as soon as you add more threads then obviously the C# log file entries are not in an easy to read execution order since they are generated by the multiple threads running.

 

Thanks in advance,

 

Chris

 

thanks in advance


Loop in sequence until user response

$
0
0

Hello,

 

In a sequence I have to read temperature every 1 sec till a user press a key (e.g 'space')

The temp. value is displayed in the terminal. 

Is it possible to do it ?  How ?

 

Thank you in advance,

Zvika 

//teststand2.rssing.com/chan-14802890/article4537-live.html

$
0
0

<moved to correct forum (LabView/CVI)>

 

Process Model Plugin - communication method between plugins

$
0
0

Hello everyone,

 

I am working on a framework for production where I will have multiple Process Model Plugins.

I am using Batch Process Model.

 

What is the advised method to share data between plugins? (One plugin will be response for MES and the other one for communicating with PLC that controls the production line).

 

Currently I plan to use StationGlobals variables but it is not the best method as it makes the data visible also in Client Sequence and is prone to be changed by Test Engineers.

 

Any advise on what would be a better method?

I have seen something that under Parameters.ModelPlugin.PluginSpecific.RunTimeVariables.PerSocket[]

I can add variables but are not visible on other plugins.

 

Thank you,

Just a TSUser

Get an unknown dimension array from a sub sequence

$
0
0

Hello,

 

I'm filling an array in a subsequence with an unknown quantity of datas (list of defects).

I update the upper bound of this array each time the operator want to add a new defect.

 

My issue is that I don't succeed to get this array from the main sequence because I don't know how many elements there are in my array.

 

Is there a trick to do this ?

 

(I'm sorry, but i'm not able to share my teststand sequence because of the internal policy of my company)

 

Thanks a lot in advance,

 

Jonathan

Interaction with running executable

$
0
0

Dear Teststand-Expert,

 

I am currently struggling with the following issue and would appreciate any available help 🙂

 

My Testsetup requires an executable to run. It is started once and used to interact with python-scripts which are called by teststand during the whole procedure of testing.

 

I am able to start the executable and since I want it to keep running I use "No wait" as a wait condition.

When finished with all tests I use C/C++ DLL call to Kernel32.dll to Terminate it's process and close the handle. This seems to work.

 

But what I need after starting the exe is a possibility to read the print of the console of that executable. This application loads a driver to external hardware which does only just write an error message to the console if loading failed. Since I want to skip all tests if the driver could not load, I need a possibility to read this print back before continuing.

 

When I set wait Condition to "wait for exit" I do get the message that I want but of course I want to read this message while the executable is still running...

Is there any way to pipe the command window print to teststand so that I can parse those outputs?

 

Thanks for all your comments 🙂

mb86

Viewing all 6529 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>