TestStand should realize Labview TypeDef / Strict TypeDefs

So, I really like Labview's new product idea page.  In the same vein I want to request this feature for TestStand:
I would like a TestStand feature for auto-update container based on LabView TypeDef and Strict TypeDef controls. 
I have spent a lot of time using TestStand while developing test suites and the 'fix' is as follows:
Load Sequence
*Broken since the TypeDef changed*
Create new container for the changed TypeDef
Change TestStand variable linked to old container(old TypeDef) to the new container
Delete old container
Rename new container to the 'old container name'
I think I understand the bug-checking reasoning behind this process, but I would like a check-box for 'auto-update from LabView typedef' in the container properties.
Best regards,
Brian (Daniel) Kincaid

Hey Brian,
Actually, I think it's a fantastic suggestion.  I'm not sure why you never received a response to your original post and I do apologize for this (we try to make sure every post receives a response).  Typically, developers using typedefs in LabVIEW use them exactly for their strength that any changes to the typedef are propagated to any connected instances of the typedef itself (implying that the typedef is likely to be changed or tweaked numerous times).  I can see that this would become a headache for our NI TestStand developers because it will break sequences every single time a change is made. 
I'm going to file a Product Suggestion on your behalf so that our R&D team will take a look at this and see if there's any variation of this idea that could be included in a future release of NI TestStand.  Would you consider doing the same?  I think this could cause a bigger "splash."  
If you're interested, you can find our Product Suggestion Center by visiting www.ni.com/contact and then navigating to Product Feedback.
Derrick S.
Product Manager
NI DIAdem
National Instruments

Similar Messages

  • Opening TestStand Ref from LabView sometimes fails

    I'm having an intermitten problem when opening a TestStand reference from LabView.  The error explaination just says, "LabVIEW:  (Hex 0x80004005) Unspecified error."  Attached is a little vi that can reproduce the problem when set to run continuously. 
    Any idea on how to fix this?  Thanks a lot.
    Note that because of compatibility requirements I have to use TestStand 2.0 with LabView 7.1.
    Attachments:
    TS_Ex.vi ‏24 KB

    Attached is a screen shot of the error message.  This is one of at least 2 error messages.  I will get the other one when I can get time on the equipment.  Right now, I would like to get the error log (mentioned in the screen shot), but I can't find it.  Where should it be?
    Unfortunately, the equipment is being shared and I haven't received time to debug it more.  But this is what I have seen. 
    Trying to Highlight Execution with breakpoints seemed to point the vi closing the reference to TestStand as the source of the error message.  Using the Simplified TestStand Operator Interface vi that came with TestStand, and some fake tests, we did not have this error.  Only when we use our customized OI with dynamic test sequence generation do we get the error.  This error doesn't occur with LabView 6.1.  So I think it may be another incompatibility between LV 7.1 and TS 2.0.
    Thanks for your help.
    Attachments:
    Exit-Crash-1.doc ‏24 KB

  • How to read and write data from Excel to TestStand without using LabVIEW VIs

    Hi,
    How can I read in columns of data from Excel into a TestStand array and write columns of data to Excel from TestStand without using LabVIEW VIs?
    I don't think the Property Loader custom step type in TestStand will work because the data I would like to read in from Excel is in a column that is thousands of rows long and the data has to be in the proper format to use the Property Loader to load in an array from Excel.
    Thanks for your help.

    That example does not use LabVIEW and it does about 40% of what you need to do by calling Excel through ActiveX. If you don't know how to use Excel through ActiveX then you'll need to brush up on that.
    http://www.microsoft.com/en-us/download/details.aspx?id=16250
    http://support.microsoft.com/kb/141759
    http://support.microsoft.com/kb/302084
    CTA, CLA, MTFBWY

  • How to force TestStand to ignore LabVIEW errors

    Hi,
    usually where there is an error in the LabVIEW code module TestStand stops and gives a pouup message .
    Is there any way to force TestStand to ignore LabVIEW errors and contiouse testing?
    Thanks

    You can also work more globally - go to the Configure menu item and select Station Options.
    At the bottom of the execution tab, there's a section for what to do on Run-time errors. -> Show dialog, Cleanup, Ignore or Abort.
    Whilst not specific to steps configured to use the LabVIEW adapter (assuming you're mixing some programming languages) that at least get you continuing on to the next step without the dialog.
    If you need to assess if it's specifically LabVIEW modules causing the error, then you need to use the Station, Process Model or Sequence File callback for On run-time error, and the step gets passed as a parameter. That would allow you to work out if the step was LabVIEW specifically and then make a decision as to what to do next.
    Hope that helps.

  • Execution of TestStand-Sequence in LabVIEW via TS-API: Different Execution times for same sequence

    Hello Forum-Members,
    I have a problem concerning the execution of an TestStand-Sequence in LabVIEW. I have created a VI that offers the ability to choose a TestStand-Sequence-File and then executes the sequence using the TestStand-API. The implementation is based on an example in C++-Application found following this link:
    http://forums.ni.com/t5/NI-TestStand/Unreleased-references-using-engine-API-in-C/m-p/2927314#M46034
    The implementation works quite solid in case the VI is executed the first time. The VI processes the chosen sequence in a acceptable duration.
    But in case the execution is started a second time, the execution of the sequence takes ca. 30sec more than in the first case.
    Until now I have not found a solution and hope someones got a hint concerning this problem...
    I am using LabVIEW 2013 and TestStand 2013.
    I have attached my own VI, a sample sequence with a small sample VI, so you can reproduce the problem.
    Kind regards,
    TobiKi
    Solved!
    Go to Solution.
    Attachments:
    Exe-TestStand-Sequence.vi ‏25 KB
    Sequenz.vi ‏8 KB
    Test-Sequenz.seq ‏5 KB

    Hi Norbert,
    first thanks for your answer.
    What would be a reasonable way to replace the "Execution.WaitForEndEx"? My first idea is to get the respective thread of the execution and use the "Thread.WaitForEnd".
    To clarify my problem:
    The execution of the sequence itself takes longer time and so the execution of the calling VI. I have attached pictures of the log file of the first and second execution.
    Further I don't get any dialog popups during the shutdown of TestStand. (I have activated the "ReportObjectLeaks" using the "DebugOptions") While developing the attached VI I've gotten several popups. But these popups disappeared after closing all references.
    Maybe you have another hint how to locate the problem.
    TobiKi
    Attachments:
    FirstExecution_20-08-2014.png ‏16 KB
    SecondExecution_20-08-2014.png ‏16 KB

  • TestStand Full Featured Labview OI - Documentat​ion?

    Can anyone point me to any documentation/examples out there for the TestStand Full-Featured Labview OI? I have tried looking just about everywhere and can't seem to find any good documentation/explainers on how the OI works and how to customize it. I am new to TestStand OIs and am trying to create an OI that allows me to run up to 6 different UUTs independently at the same time. I can't figure out how to wire in each individual Execution Entry point and am looking for examples and/or documentation. I also need some help with Progress bars and test status indicator LEDs.     

    Below is an example front panel of what I am trying to accomplish. Most of the controls are not connected of course :-). I am trying to have one window with 6 different executions shown within it. Each execution would be seperate from one another and you would be able to view each just by clicking on the tab for that particular test fixture. The only thing that would be common is that each execution would be running the same sequence file. The individual test fixtures could be at different points in the test sequence and could have different start and stop times for each. For instance....test fixture #1 could be loaded with a UUT and started into test then while it is running test fixture #5 could be loaded with a UUT and started into test. In the meantime when test fixture #1 has finished testing I could load another UUT into test fixture #1 while test fixture #5 is still running. etc etc
    Attachments:
    MultiUUT.JPG ‏155 KB

  • Teststand API in LABVIEW

    Hello Friends,
    In the sequence editor , i am able to get the TestStand API  RunState.Step.Module.AsLabVIEWModule.RemoteHost = ""
    But i am not able to get the same Teststand API properties in Labview with sequence Context. Herewith in attached the image for your ref.
    Anyone knows how i can get the above teststand API in LABVIEW.
    Thanks
    Prithivi
    Attachments:
    Labview Teststand API properites1.JPG ‏51 KB

    Hi Prithivi,
    you have to cast the Module Reference to LabVIEWModule Type before you can use it. Following document will be useful to you:
    How Can I Programmatically Access Information about a Code Module that a Step Executes (e.g. Name, Path)?
    http://digital.ni.com/public.nsf/allkb/ADC6909C20E27D4886256E94005424E3?OpenDocument
    Regards
    MY
    Attachments:
    LVModule.JPG ‏17 KB

  • Running a teststand seqwunce from labview

    HI all
    I want to build a user interface in Labview to execute number of sequences in teststand.
    I already had a look at the examples shipped with TS. But in my case my UI will  be different that the default UI of teststand.
    I want user to select number of sequences(at one time from list box or tree) and then when clicked on execute button , one by one each sequence should get executed.
    For this I need provide seq file path to the invoke/property node before execution. But I am not able to find the current method/property for the same.
    Can someone please help on this?

    By this method you can do the following ( no need to change User interface code -- use the default one ) :
    1) A (Main GUI.vi) vi when executed calls a predfined master sequence to automatically open and run in TestStand.
    2) This predfined master sequence uses a vi to get sequences ( simulating user selected sequences)
    3)The sequences selected are stored in a TestStand string array and run one by one.
    4)TestStand is automatically closed in the end. ( no user intervention is required)
    Setup :
    1) Unzip the files and put it to c:\temp\LVUSER1 ( This path is hardcoded in vi and testsequences )
    2) Go to TestStand menu --> configure --> station options -> user manager and enable automatically login windows user
    3) Create a new user with windows credentials in TestStand using the user manager.( This is to avoid login popup)
    4)Enable report in TestStand if you need a report.
    Run :
    Run the MAIN GUI.vi
    Changes if required :
    1) I have copied CVI user interface from C:\Program Files (x86)\National Instruments\TestStand 4.2.1\UserInterfaces\Full-Featured ( This is because i tested this in )TS 4.2.1
    Feel free to copy any of the user interfaces that you are familiar with from the respective TestStand folder.
    2) Correct the paths if required in vi and test sequences.
    Hope this example will be helpful to you.
    Regards,
    Ravi
    Attachments:
    LVUSER1.zip ‏469 KB

  • Passing TestStand Globals to LabView parameters

    Hello All,
            We store our operator entered test info in TestStand Globals, and then pass them to LabView parameters.  Is there a way to default the Labview parameters to always have the TestStand Global name?  So we won't have to select those same globals for each test.  Thanks.

    Hey Bill,
    Thanks for clarifying.  The first option really isn't an option.  It's more of an explanation that the steps should always use the StationGlobals as parameters if when you Specify the Module you set the parameters as StationGlobals.WhateverVariable. 
    It's important to note the 4 actions of creating a step-
    1- Choose the Adapter (LabVIEW, CVI, C++ etc...)
    2- Choose the StepType (PassFail, Action, Numeric Test, String Test etc...)
    3- Specify the Module (point the step to the code you want to call)
    4- Set the step properties (preconditions, post action, expressions, run options etc...)
    In your case you would choose the LabVIEW adapter, Choose the StepType, Specify the Module to point to some LabVIEW code (I'm assuming these are prewritten), and then set some step properties.  Now the issue here is that you want TestStand to automatically assume that you want to pass StationGlobals as parameters to your step.  This is done in step 3 of the process.  However, TestStand cannot assume what to put as the parameters to a LabVIEW module because most LabVIEW modules have different inputs and outputs.  Do all your LabVIEW modules have the same inputs and outputs? 
    Option1- If you have TestStand 4.0 or later then you can use Templates.  I really like this new feature of TestStand.  It's very handy because all you do is follow the process to creating a step and then drag that step to your templates window.  Then whenever you want to place a step with the same or very similar setup just drag it from your templates onto your sequence.  This way you don't have to go through the entire process every time.  And the parameters will remain the same.
    Option 2- So for the 4 Test StepTypes (Pass/Fail, Numeric Limit, Multiple Numeric Limit and String Value) and the Action step there are something called Code Templates.  A code template is simply a skeleton piece of code that gets created when you click the create VI button in your specify module tab.  This is not new in TS 4.0 but an older feature as well.  These templates are stored here: C:\Program Files\National Instruments\TestStand 4.0\CodeTemplates\NI and are managed by the StepType properties.  I recommend copying them to your C:\Program Files\National Instruments\TestStand 4.0\CodeTemplates\User folder before editing them.  As this is the proper way to do it and you don't lose your default templates.  TS will always look in the User folder first.  If it's not there then it will go to the NI folder.  The names of the folder are pretty intuitive.  Basically you have DefaultLabVIEW.  Which is for the Action Step Type.  Or you have NumericLimitLabVIEW which is for the Numeric Limit Step Type.  Whichever type you want to change the template for then you open that folder and edit the LabVIEW skeleton code to resemble what you want with the correct inputs and outputs.  Then you save it and go into TS and go to your type palette.  No the problem I have here is that you cannot change the parameters for the default NI step types.  So you will have to copy the StepTypes and create your own.  Trust me though- you don't want to dink around with the NI defaults.  It's messier later.  So when you create your own step type you can then edit the properties by Right Click-> Edit Properties.  There should be a Code Template tab.  you can set up everything including the parameters for that code template.  So then the next time you insert a step and click the create VI button from the Specify Module tab it will automatically contain your own parameters.  In your case StationGlobals. 
    Ok so it's obvious that Option 2 is not ideal.  But if you have TS 3.5 or older then it's the only way other than copying and pasting steps.  If you want more info on Code Templates go to the TS help and read about them.  Or let me know if you have specific questions.
    Hopefully this info will help you out and please let me know if you are confused or need more info.
    Best Regards,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Teststand deployment with LabView VI gives error code 1035

    Using Teststand 3.0 deployment tool. My test sequence uses LabView 7.0 VIs. When I build, error code 1035 is output after several minutes along with the message :-
    Error Code:1035
    Could not process LabVIEW VIs. Fix any broken VIs before rebuilding. Labview error:
    Invoke Node in Teststand - Diost Chg and Save VIs-> TestSTand - Dist Build LLB Image ->TestStand - Build VI
    Distribution.vi->TestSTand - Build VI Distribution AX Wrapper.vi-> TestStand - Build VI DIstribution AX Wrapper.vi.ProxyCaller
    ++++++++++++++++++++++++
    I tried a LabVIEW mass compile of my VI directory and it reported no errors.
    I have tried this website for an explaination of this error but there appears to be nothing. System is Windows N
    T4 SP6.

    Jon, you mentioned this problem got solved in TestStand 3.1. Right we are using TS 3.0 and have that problem caused by LabView's own locked VI's (not to mention LabView VIs with the "/" character in the filename, i had to save those under a different name) . Is there any documention about this problem being fixed in 3.1? This would help me explain the need for the upgrade to the powers that be.
    Thanks,
    Fernando Marquez
    Project Engineer
    CSI
    Jon Bowers wrote:
    There can be a problem in Teststand 3 when deploying with the "Lock vi Diagrams" option checked when your sequence contains vi's that already have locked diagrams. Un-checking this option or removing the vi's which have locked diagrams should allow you to build successfully. This has been fixed in Teststand 3.1.
    Jon Bowers
    Applications Engineer
    NIUK

  • LabView TestStand interoperability with LabView runtime adapter

    I would like to get some background information on how the interoperability of LabView and TestStand works.
    We are using LabView steps mainly for some minor tasks in TestStand projects.
    We do not use the regular deployment way as proposed by NI, but simply use one or more VI folders from which we reference LabView steps.
    Deployment is done by copying the whole TestStand/LabView folder structure to the target machine.
    We use the LabView runtime adapter within on our deployed systems.
    We never mix LabView versions within one project.
    Now, we frequently face the situation that the exact same project structure on two different machines has problems with the LabView steps.
    So one changed VI runs on one target machine while the other after copy deployment is broken. Due to the same project structure and the virtual drives the paths must be the same.
    A mass compile usually solves the situation.
    So this is mystery number 1.
    Today, I had the same problem, however I did not mass compile the full VI folder but simply some folders which I assumed had changed.
    One VI which was referenced by TestStand was not mass compiled and was declared as broken by TestStand.
    All I did was opening the broken VI in LabView Development System and nothing was obviously changed by LabView.
    I closed the VI  and pressed the Reload VI button on the TestStand step and the VI was working again, however the sequence file now had changed somehow (* at file name).
    Another phenomenon:
    An existing project on a machine was running with a certain user.
    After switching the user, the VI steps of the project were suddenly broken.
    My questions?
    1) Why do VIs which run in the development system flawlessly  become broken in the runtime?
    2) Does the runtime use different search paths than the development system?
    3) What kind of information does the mass compilation produce and where is it stored.
    4) What kind of information does TestStand store along with the VI?
    5) Is there a way to diagnose the problem with the runtime adapter ? With the runtime adapter I cannot open the VI to see what is the problem and in the developer mode it works.
     

    First, to clarify a few points:
    1) It is not necessary to use a workspace for TestStand deployments. You can specify a directory of source files for a TestStand deployment.
    2) TestStand licensing should not be affecting this issue in any way. TestStand licenses do not have any impact on LabVIEW VI execution in TestStand.
    Thorsten,
    The issues you are describing are likely being caused by the LabVIEW VIs needing to be recompiled. The runtime engine is not able to recompile VIs, but the LabVIEW Dev System can, so this explains why you are able to execute again after opening the VIs in LabVIEW Dev. it also explains why a mass compile fixes the issue.
    There are a variety of reasons why this could be happening. One scenario that could cause this to happen is that you make a change in one VI, but the change causes a second VI to need to be recompiled. This could cause a problem if you redeploy only the VI that you changed, because it will not be able to work properly unless the second VI is recompiled, which cannot be done by the LabVIEW RTE alone. This can happen because the LabVIEW compiler will optimize certain operations in the compiled code depending on where data is used--for example, the compiler will try to avoid allocating a copy of an array if it does not need to be accessed by multiple pieces of code at the same time. As you can imagine, this type of optimization might be appropriate for one version of your code, but might not be appropriate if a subVI changes such that it needs access to the array in parallel with the rest of the code. 
    The specific example I mentioned is called the Inplaceness Algorithm, and is described along with much more information about the LabVIEW compiler in this whitepaper. This might help explain the reasons a LabVIEW VI would need to be recompiled.
    One potential solution to your problem that would allow you to keep your current deployment method would be to use packed project libraries (PPLs). You could have multiple PPLs for different parts of your code that you want to be able to update individually, which would allow you to make small changes to your codebase without having to deploy the entire set of code at once. A PPL is a self-contained set of compiled code that does not change, which should avoid the recompile issue from occurring.
     

  • NI 5660 Driver DLL Errors when using Teststand 2010 and LabVIEW Run-Time Engine 2010

    This problem seems similar to the post "Resource not found error in executable on developmen​t machine." but I didn't want to repost under that thread because I only happened upon it by chance and none of my searches brought me there... so I made a more descriptive Subject.
    I am working on a system that uses a PXI Chassis with a NI 5600 Downconverter and a NI 5620 high speed digitizer, among other PXI Cards. 
    I inherited working code written in LabVIEW 2010, running with the LabVIEW Run-Time Engine 2010.  The code was using a custom executive and my task was to rewrite the test using TestStand 2010.  I reused the majority of the old code.  The old code used NI-5660 to control the 5600 and 5620.  When I run my sequence using the LV Development System and TestStand, it runs without any issues.  When I change the adapter over to LabVIEW Run-Time Engine 2010, all of my NI5660 VIs become broken due to DLL issues.  It warns that the nipxi5600u​.dll was not initialized correctly.  Many of the errors are associated with the NI Tuner and NI Scope. After this LabVIEW will crash randomly, and the seqeunce will not work in TestStand even when back with the LV Development Adapter.  The only way to recover after this is to restart the computer - TestStand automatically reverts back to the development system, the VIs are no longer broken and the sequence works again. 
    I have all of my VIs associated with a project. After reading a little bit about DLLs and TestStand, I found all of the DLLs in the dependencies section of my project and added them to my TestStand workspace.  I also used Dependency Walker to track down the problems with the nipxi5600u​.dll, the 2 DLL files that it said were not found already existed in the same folder as the original DLL (C:\Windows\System32).  I have also performed a Mass Compile to make sure everything was running in LV 2010.  If I skip the steps involving the 5660, my entire sequence runs fine. 
    The previous code was running with the LabVIEW Run-Time Engine without any issues.  Is there just a step I am missing?  Has anyone seen anything like this before?  I can send screenshots of errors to provide more detail if necessary. 

    I have tried some more things and still can't get it to work.  I have added the VIs mentioned in the Notes On Creating Modulation Executables KB both to the TestStand workspace and the LabVIEW project holding all of my VIs.  This did not change the results. 
    When I try to run my sequence, The first error I get is shown in Error 1445.bmp.  This happens when I try to use the NI 5660 initialize.vi.  If I click ignore, the next error I see is shown in Error -20551.bmp.  When I try to open the VI to look at it, I get the 2 DLL errors shown in Error loading nipxi5600u.bmp and Error loading nidaq32.bmp.  When I close TestStand, I get the error LabVIEW Fatal Error.bmp. 
    Attachments:
    Error1445.JPG ‏164 KB
    Error -20551.JPG ‏174 KB
    Error loading nipxi5600u.JPG ‏9 KB

  • Teststand generates error ' labview has encountered a problem and needs to close'

    Hi,
    I am using Teststand 3.1 and Labview 7.1.
    My problem is that I have a 1D array of 6 elements in Labview that I need to receive from Teststand.
    If the array size is set to variable in Labview there is no problem but if I set it to what I require ( fixed 6 ) then when I specify module in Teststand an error message appears , ' LAbview.exe has encountered a problem and needs to close '. Then I get an 18001 about ActiveX as labview has closed.
    Why does this happen ?, is it a bug ?

    No bother its attached !
    The vi writes to a global variable.
    The 'Bytes To Send ' 1D array seems to be the trouble, If its set to fixed 6 in LV then Labview crashes from Teststand when I specify module.
    If its set to variable its ok.
    Attachments:
    Global_Write.vi ‏26 KB

  • How do i read the Shift register value of a vi which is written in the teststand sequence from labview exe

    Dear All..
    My Qusetion is ... I have a VI in which I can writ the data to shift register and I can read( Differenent cases). I am Running the VI in write mode to write SAY '100' in the shiftreg( VI will be In teststand Sequence) . And I am reading the VI in read mode using Labview. I am getting the data in labview.
    When i conver my Reading Vi which is having that Read/Write vi in to EXE even then the test stand is writing the data to VI is Unable to reflect in labview.
    Please Help me out with some solution.
    Thanks
    bhargav

    I'm confused by your question:
    Are you trying to transfer data from an Exe to TestStand and vice versa?
    Or are you changing existing, working VIs into EXEs and then wondering why they won't behave the same?
    Can you clarify some what your goal is?
    There may be a better way to do what you want.
    Thanks,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • TestStand Queue with LabVIEW (replacing Batch Dialog)

    Hi,
    I want to replace the default Batch dialog UI with one made in LabVIEW with as little change as possible in the original processmodel (BatchModel.seq).
    To accomplish this, I want to use the "Create Dialog Request Queue" in the process model. I've attached a small example.
    There are 2 issues I'm struggling with:
    1: The process model use a type named "NI_BatchControllerRequest" and name the container "ControllerRequest" in the "ProcessDialogRequests" sub sequence. Can I pass this as a LV Cluster and Variant (see example).?
    2: I can't seem to get the Queue reference in LabVIEW (see LabVIEW example). It works fine if I use a name (string) instead, but the Queue in the process model use Object Reference, and I would like to keep this setting. 
    TestStand version: 4.2.1
    LabVIEW version: 2009
    (I would also like to implement this in TS 4.0 and LV 8.0)
    I'd appreciate any help on this.
    Regards
    Tom Andres Lomsdalen, CTD
    Attachments:
    TS Queue with LabVIEW.zip ‏23 KB

    I am getting the property object from Locals.ModelData.DialogRequestQueue from the sequence context of the top-level thread of the execution.  The problem with GetSyncManager is that it requires the name of an object (for which there is none).  I have the object itself.
    I have also tried to convert the object directly to a queue or a sync manager, but the conversion fails.

Maybe you are looking for