accident of execution TestStand 3.5

Hello

I have the following situation: I start a sequence using batch processing model in the sequence editor of Teststand 3.5 (with 6 sockets for example). MainSequence I start two new runs and then I wait until after the results.

After a loop of the will of SeqEdit.exe sequence for a period of time (less than 10 minutes) crashes with the following message appears: "failed to create document empty."

This behavior I have testicles on three systems, 2 systems of NOR and once on my Dell PC.

My test sequence and a few screenshots after crash, you will find attached.

I use Teststand 3.5 (3.5.0.725)

I found a few work arround in order to avoid this error, but I don't know if this still works: to specify module-> settings I checked in this option: initially hidden and disable tracing. After that, my sequence was no longer crashes. I leave a loop over 30000 times at the weekend. My application must run for six months without ventilation 24/7, and the number of loops could reach 30,000 or more.

Thank you for your support.

danis_rom-

I ran your example under TestStand 3.5 after I unchecked the option to hide and disable tracing on the sequence call steps and I noticed in the task manager that the GDI objects used by the process of the sequence editor TestStand grew in each iteration. I suspect that the 3.5 TestStand sequence editor had some leaks memory related to the creation of new windows running. This break-in an OI not probably will have the same problem. However, to continue to use the TestStand 3.5 sequence editor you will need to hold cache laid (easy) hidden executions, executions by socket and reuse/restart (hard), or you can call sequences using a thread in the current execution rather than use a separate performance (easy). If you moved to TestStand 4.0 or later, it is likely that these types of leaks memory have been corrected.

Tags: NI Software

Similar Questions

  • TestStand two UI

    I load a UI in SequenceFileLoad and close in SequenceFileUnload.but I run the movie file and notes that the teststand is always running in SequenceFileLoad, from endpoint it.how can I realize this feature?

    Thank you

    These functions do not create a new thread, they just create a window in the current thread, but does not process messages (i.e. does not RunUserInterface()) for this. TestStand execution threads to process window messages when they are inactive, but don't count on that for a thread of execution TestStand could be reused by another execution at any time and that another execution would not process window messages in this thread. It is better to create your own thread for your UI you will have full control over.

    Or maybe write a custom UI or change one of those we ship might be a better alternative for you. TestStand comes with an interface user written in ICB with source code that you can modify. Allowing your user interface panels to run in the UI thread main of the application rather than having to create a thread separate.

    Hope this helps,

    -Doug

  • Display dialog of incomplete executions in c#

    Hello!

    I'm developing a user interface for testStand. From this application, I need to call ' Dialog incomplete executions ' TestStand if my request has incomplete operations and I'm trying to exit the application.

    I used

    _applicationMgr.shutdown (); function to close the application manager leaving the application of the user interface.

    Then the dialogue as data is displayed.

    But I need to display "Dialog incomplete executions" of TestStand shown below.

    Should what API I call in my application to display this dialog box.

    Please comment.

    Thank you & best regards

    Sgy1

    Hello

    Image2, in my view, is integrated into the TestStand sequence editor and not one, you can call from an API.

    You can get everything running and find they names to display in a control and use the Execution.Terminate method to complete the selected execution. or if there is no selected and then use the Engine.TerminateAll method to end all executions.

    Hope this helps

    Concerning

    Ray Farmer

  • SyncManager Enqueue in Labview

    Not sure if this should go in the jury TestStand and Labview, so I'll try TestStand first...

    I'll build a TestStand testbed that uses the model of parallel processes. I want to replace the standard dialog use with a custom dialog generated using Labview (either incidentally, the requirement of test bench needs barcode custom entry screens).

    I now have a system that works. Basically, I put the TestStand ModelOptions "ParallelModel_ShowUUTDlg = False" parameter and interact with my own Dialogue USE LabVIEW in PreUUT and PostUUT. I send data TestStand > Labview wrapper around standard objects of sychronisation Labview screws. These work fast as lightning!

    The main issue was to know how properly to find my Labview UUTDialogue information (barcodes and control tags etc), each parallel execution TestStand, i, e. Labview > TestStand. I did successfully logging into Manager synchronization and Enqueueing my messages to relevant TestStand execution. I have attached my Labview VI that performs this task.

    It works, but my only problem is the speed of the call of the queue (specifically the IQueue.Enqueue call node). This unique procedure takes about 1 second to run each time. I tried the value true to the 'processMsgs' parameter, but it does not help. Calling the nodes invoke for the NewPropertyObject, the SynchManager and the GetQueue are fast. Only the calling node queue is slow.

    Everything else seems to work as expected - all data structures through parallel executions TestStand as expected. Any ideas why the queue is so slow?

    Kind regards

    Tom

    Tom,

    It's an interesting discovery. I've seen a few references to global queues (with the asterisk) run more slowly as local, but had not seen any mentions of THIS slow. I am happy that you have at least found a work around. I thought at first that you were right, that LabVIEW and TestStand to perform in different processes, but I think that this applies only if you have configured the adapter for LabVIEW to run in the development environment. I think that if you use the adapter in the runtime, then it is in fact an instance of RTÉ opened in TestStand courses. See the TestStand help here: http://zone.ni.com/reference/en-XX/help/373892E-01/tssemiconductor/performancelvrte/

    "The map of LabVIEW TestStand can run modules of code VI in the LabVIEW development system process or by using the runtime (RTE) LabVIEW, TestStand courses"

    And in this white paper: http://www.ni.com/white-paper/14335/en/

    "By default, all screws are called in the instance of the main application of the module LabVIEW Run-Time Engine loaded by the process of TestStand"

    So, IF you have set up your adapter on RTÉ, then I think that it makes sense that you are able to access the queue without the asterisk. Of course, if you are running in dev engine, so I guess you will need to use a global queue. I hope this helps!

    Cason

    Violaine applications, OR

  • Different ways to run?

    We have written a c sharp application which is a wrapper of GUI TestStand to hand - hold the operator thanks to the installation and execution of a test. I noticed the following behavior differences with each of the different ways to start a file of sequence running:

    (a) when we useSequenceFileViewMgr.Run () to start execution, TestStand prompt is not a serial number of UUT and it didn't generate a DisplayReport event.

    (b) when we use SequenceFileViewMgr.GetCommand (CommandKinds.CommandKind_ExecutionEntryPoints_Set). Execute (true) to start execution, TestStand is fast for a serial number of UUT and he generates an DisplayReport event.

    (c) when we useSequenceFileViewMgr.GetCommand (CommandKinds.CommandKind_ExecutionEntryPoints_Set, 1). Execute (true) to start execution, TestStand didn't request a serial number details of UUT and he generates an DisplayReport event.

    Are there other ways (best ways) to start execution of a c sharp application?

    'C' behavior is the behavior I'm looking for, but I understand why the calls have different results?

    Can someone enlighten me?

    tlaford,

    What you're essentially doing is running execution of different entry points.  If you look at the menu run in the sequence editor, you will see three options (with the default process model, if you have a custom process template, you will have a different number).

    1. Test DUT

    2. Simple pass

    3. Run

    When you call. Run() you do the same operation as Run in the menu.  This is just the selected sequence and nothing else.  Great for debugging, but uses not the framework process model.

    When you use one of the ExecutionEntryPoints, you perform a execution of the entry points of the process template.  Those who usually call in the sequence MainSequence your file of the client's sequence.  And they perform other operations (such as the data collection of the object to measure and reports) around the execution of your customer file.  Default process templates are TestUUTs as index 0 and SinglePass as index 1.

    With the help of the SequenceFileViewMgr is the best way to start a new run since a UI programmatically.

    I hope this helps.

  • can see us line numbers next to each step in the sequence file?

    Hello

    I have a file of sequence having 600 steps. I would like to know is there any option to the test to set number for each step in the sequence of line editor so that it is useful for the review.

    Example:

    1 Action1

    2 Action2

    ............

    600 Action600

    Kind regards

    Krishna

    Krishna,

    If you want just to know the index of a step, this information is displayed at the bottom of the sequence editor in the status bar.  It shows you how many steps there are in the sequence, how you have selected and the index of the selected steps.

    It is also possible to display the information in the view of the steps in a column, if you are ready to create a new column.  Follow the instructions in this KB to see how to create a new column:changing the properties of columns in the viewport of execution TestStand sequence editor.

    One of the types of columns is Index. Just set your column of this type and you'll see step index as shown below.

  • "Invalid cast exception" thrown when assigned the AutoCompleteStringCollection AutoCompleteCustomSource of TextBox property

    Hello

    I built a .NET c# wrapper around the TestStand users management module.

    When the application works as a stand-alone Windows Application, there is no exceptions or thrown errors. However, when the dll is integrated with TestStand and called from the FrontEndCallbacks movie file, I got up an invalid "Cast" exception when the AutoCompleteStringCollection is assigned to the textBox AutoCompleteCustomSource property.

    As stated earlier, it works perfectly well when it is a standalone application. I am at a loss to figure why this is happening. I would appreciate if someone could shed some light on this behavior.

    Thank you

    Arun

    Thanks for posting your example. The problem seems to be caused by the fact that your form is created in a thread of execution TestStand using the MTA COM threading model. .NET Windows forms must always be created son marked with the model STA thread. Probably your standalone application uses the STAThread attribute. Here are some references (rule FxCop, STAThread)

    You can work around this problem by creating a new STA thread in TestStand using a sequence of appeal step. Set Options to run to use new discussion and check the box Use Single-Threaded Apartment.

  • APPCRASH stackHash_fd00

    whenever I try to start IncrdiMail2 it crashes

    full error code
    Signature of the problem:
    Problem event name: APPCRASH
    Application name: IncMail.exe
    Application version: 6.6.0.5288
    Application timestamp: 524abb1e
    Fault Module name: StackHash_fd00
    Fault Module Version: 0.0.0.0
    Fault Module Timestamp: 00000000
    Exception code: c015000f
    Exception offset: 0005bb4b
    The system version: 6.0.6002.2.2.0.768.3
    Locale ID: 1033
    Additional information 1: fd00
    More information 2: ea6f5fe8924aaa756324d57f87834160
    Additional information 3: fd00
    Additional information 4: ea6f5fe8924aaa756324d57f87834160
    Read our privacy statement:
    http://go.Microsoft.com/fwlink/?LinkId=50163&clcid=0x0409
    others, like Reynardware also go out with such accident during execution

    A stackhash means program a memory so badly damaged the post mortem can not say anything. It calculates a hash (like a fingerprint) to see if the two falls have the same cause.

    //
    MessageId: STATUS_SXS_SECTION_NOT_FOUND
    //
    MessageText:
    //
    The selected section is not present in the activation context.
    //
    #define STATUS_SXS_SECTION_NOT_FOUND ((NTSTATUS) 0xC0150001L)

    Try looking in the event viewer for errors aside beside or any message at the time of the accident.

    Start - Control Panel (and select Classic view in the left pane) choose Administrative Tools and then Event Viewer and then look at the Application and the System connects (under Windows logs) for entries

  • TestStand Development hangs on execution

    Hello
    I use 2014 (32-bit) Teststand. I tried to deploy my test system. The deployment utility was working fine until recently. Now it opens but never finishes loading. I tried to reinstall it but still it probably remains.

    Any ideas on what goes wrong?

    Fixed. I tried the repair installed on TestStand option and it didn't work but then I used on the Teststand execution engine which set the deploymment utility. I think the problem is I fell accidentally an installer for my test system which had included Teststand runtime engine.

    Thanks for the help. I really appreciate it.

    Cathal

  • How to detect if a TestStand execution has been terminated?

    We have written a GUI custom that has interface with TestStand to summon and control the execution of the sequence files.  In the course of a writ of execution, the operator can click a STOP button that causes run following code:

    this.myExecutionViewMgr.GetCommand (CommandKinds.CommandKind_Terminate). Execute (true);

    It works well, and TestStand is finished.  However, the event handler EndExecution tell me that execution has been terminated.  Here's what our code looks like:

    void EndExecutionEventHandler (sender As object, EndExecutionEvent ev)

    {

    This line ALWAYS returns SUCCESS or FAILURE

    This. Status = ev.exec.ResultStatus;

    The purpose of the error does not occur when I terminate

    PropertyObject errorObj = ev.exec.ErrorObject;

    If (errorObj.Exists ("occurred", 0) & errorObj.GetValBoolean ("occurred", 0))

    {

    error code string = errorObj.GetValNumber ("Error.Code", 0). ToString();

    string errorText = errorObj.GetValString ("Error.Msg", 0);

    MessageBox.Show (errorCode.ToString () + "-" + errorText);

    }

    }

    Is there a way to identify if a writ of execution has been cancelled, abandoned, etc.?

    You can also use Execution.GetStates and look at the State of cessation of employment to determine if it has been completed.

    -Doug

  • TestStand 2014 F1 Patch removes the report itself after execution of finishing

    Hi all

    today I installed the patch 2014f1 TestStand and after that, I recognized that TestStand removes my reports of ATML5 by itself after execution of finishing.

    I'm active On-The-Fly Reporting and store reports in different places for each sequence. This place, I determine in the PREUUT callback.

    During execution, I see that the report is generated exactly at the specified location, but if the execution is complete they will be removed immediately. I don't know why?

    Do I have to remove the f1patch? Someone at - it the same problems?

    I will be happy if someone has a suggestion what to do.

    Thank you very much!

    Hello

    I created a sample file to show the effect (see attachment). I think I found the problem and it's my fault.

    I have seen that it is me who deletes files (SetReportPath.vi). Before you begin the statement I want to erase the reports directory.

    When I work with my custom GUI LabVIEW (uses parts of the SimpleUserGUI-example of TestStand, singlePass-execution) everything works fine. The SetReportPath.vi removes the old reports and after the execution of this new report remains in this directory. PreUUT-reminder, therefore, seems to be executed only once. The same thing happens if I use TestStand SequenceEditor for the execution of the sequences and use there "SinglePass.

    When you use the SequenceEditor TestStand to perform sequences in Mode TestUUT the new report is deleted after that first Test USE ended and I click on stop in the USE Information-dolls. I think the PreUUT callback is called here and SetReportPath.vi deletes my report. This seems logical.

    With this routine I'm working now for two months and I noticed that the "deletion" just after the installation of the Patch TestStand2014f1. So I think that there are some changes by calling PreUUT-reminder, but I'm not sure. Maybe you can check this.

    Thank you!

  • Run another module after the generation of the report before TestStand ends the execution

    In my application after that TestStand generates and saves the report, I would like to initiate a stage to send a flag informing that the test is complete and the report is saved. How do I get there? The report is saved at the end of execution of TestStand.

    I don't want to On-the-fly reports because I don't like the information during execution. On-the-fly reporting, also saves the report at the end. I would like to save the file and then sent indicator. It is fine if the results of the stage to send the flag are not saved in the report.

    Hi Sumit,

    You can change the sequentialmodel.seq itself as indicated in the document that you referred. (process template customization).

    After reminder Post USE in the "TestUUTs" sequence that you can add your custom steps that will search the report exists and that the flag.

    The path to the report file will be in the local variable as shown below. (full runtime).

    "Locals.ModelPluginConfiguration.Plugins [0]." PluginSpecific.RuntimeVariables.PerSocket [0]. Path. "

    Generally, please copy the model of process changed in the equivalent public folder with a new name.

    User can select this new process model in the menu set up--> stationoptions--> model tab.

    Your new process model must be detected automatically if you copied into the right directory public and restarted TestStand.

    I hope this helps.

    Ravi

  • How can I retrieve the execution of TestStand 4.0 Test results in a c sharp Application?

    I am writing a c sharp application to launch a test sequence in TestStand 4.0.1 and then collect the results of the tests to update our own screens / report (s).  I'll need some sort of recursive routine to collect the following information (if available) for each stage: name, result, Min value, Max Value, measured value, units.

    My attempts have been to an event to end execution allows to collect data:

    void EndExecution (sender As object, EndExecutionEvent ev)
    {
    Results PropertyObject = ev.exec.ResultObject.GetPropertyObject ("ResultList", 0);

    int numContainers = Results.GetNumElements ();

    for (int i = 0; i)< numcontainers;="">
    {
    PropertyObject resultData = results. GetPropertyObjectByOffset (i, 0);
    String testResult = resultData.GetValString ("Status", 0). ToString();

    PropertyObject testStep = resultData.GetPropertyObject ("TS", 0);
    Dim testName = testStep.GetValString ("StepName", 0). ToString();

    MessageBox.Show (i.ToString () + "". "") testName + "=" + testResult);
    }
    }

    But this only gives me MainSequence data.

    How to cross the ResultsList tree to access the results of all the test steps?

    tlaford,

    There are a couple of big problems with what you are doing:

    (1) it is best to call the code from a test report of the result of your sequence treatment reminder (just use an action step) or change the process template to call your code rather than to call for EndExecutionEventHandler of the user interface, because if you use Test DUT and then there is a separate resultlist by USE not by execution, and it is generally processed at the end of each use not at the end of execution. If you use the EndExecutionEventHandler then you should NOT use the process templates provided with TestStand because they don't work that way. Instead, you just run your sequences without a process template. Although I really recommend the path of process model, even if you write your own a custom, because it is more flexible, and then hardcode your treatment result in the user interface as you do. A few reasons why a process model is that more flexible or better are that it will work in any user interface, including the sequence editor (no changes to the user interface is needed), and it can do everything you can do in a sequence, for example to call a code module in any language supported , asynchronous sequences, call sous-séquences, etc.

    2 recursion) through each property at such a low level is bad because the names of the properties are not guaranteed to be unique for what you expect them to be. Anyone can write their own types step custom with some result properties that they would like. You must make sure that the full path to the properties is what you expect it, and you can even check that the type of step is one you expect. You should rather loop through the result of higher level items ONLY and are looking for the complete data lookupstrings that you expect from these elements. For example, instead of WalkTree you might have the following instead:

    This must be called from a step in a test recall report or in a custom process template
    rather than from EndExecutionEventHandler of the user interface, because if you use Test DUT then
    There is a separate resultlist by USE, not by execution, and it is usually processed
    at the end of each use not at the end of execution.
    Sub ProcessResultList (PropertyObject resultList)
    {
    numElements int = resultList.GetNumElements ();
    < numelements;="">
    {
    Element PropertyObject = resultList.GetPropertyObjectByOffset (i, 0);
    String stepTypeName = string. Empty;

    If (point. There are ("TS. ((StepType', 0))
    stepTypeName = GetValString ("TS. (StepType", 0);

    If (stepTypeName is "NumericLimitTest")
    {
    If (point. Exists ("Limits.High", 0))
    {
    Double highLimit = item. GetValNumber ("Limits.High", 0);
    Do something with the value
    }
    }

    NOTE: The two step type SequenceCall and NI_Wait can have subresults like that. A stage of waiting waiting on an asynchronous thread or the execution will have this.
    If (point. There are ("TS. ((SequenceCall.ResultList', 0))
    {
    Recurse for results call sequence.
    PropertyObject sequenceCallResultList = item. GetPropertyObject ("TS. (SequenceCall.ResultList', 0);
    ProcessResultList (sequenceCallResultList);
    }
    }
    }

    Hope this helps to clear things up,

    -Doug

  • TestStand value of a StationGlobal before execution of reconciliation

    I have trouble to determine why/how TestStand is one of my strings of StationGlobal to an empty string, returning at the start of execution. I have a default value defined before the sequence running and setting a breakpoint in the first step in the ModelSequence itself shows that the initial value has been erased.

    I am sure that there must be a setting or something I'm missing, although my other StationGlobals seem to have no problem maintaining their initial values.

    Can someone point me in the right direction?

    Hi anwanson08,

    Try to find the location of your sequence where the value has changed (Edit' find/replace with the name of the variable) in in your sequence. You can also use an edict"find/replace in files... (pretty brutal, yes).

    Maybe the value has been changed by the ProcessModel (is that you use customized?). Use the display of the watch on the string variable, with break option 'Change' (duty be defined at runtime, in order to keep your breakpoint, add your variable to the watch display and restart execution).

    If the change is made by the process model, it won't help to run the main sequence. So try to do a Run MainSequence (instead of Single Pass or TestUUT).

    I hope this helps...

  • The execution of the sequence TestStand in LabVIEW via TS - API: execution different times for the same sequence

    Hello - the members of the Forum.

    I have a problem about the execution of a TestStand sequence into LabVIEW. I created a VI that offers the possibility to choose a sequence TestStand-file and then executes the sequence using the TestStand API. The implementation is based on an example in C++-Application found the following link:

    http://forums.NI.com/T5/NI-TestStand/unreleased-references-using-engine-API-in-C/m-p/2927314#M46034

    The app works pretty solid where the VI is executed the first time. The VI treats the sequence chosen in an acceptable time.

    But where execution is started again, the sequence takes approx. 30 sec more than in the first case.

    So far I have not found a solution and hope someones got a clue about this problem...

    I use 2013 LabVIEW and TestStand 2013.

    I enclose my own VI, a sequence of the specimen with a small sample of VI, so you can reproduce the problem.

    Kind regards

    TobiKi


Maybe you are looking for