Acces FilesGlobals of Teststand from LabVIEW?

Hi,
What happens, when you try to get the value of a Teststand variable (FileGlobals) with the Get Property in LabVIEw and at the same time, Teststand whant to access the same variable. Is there some conflicts?
Regards,
Risotto

This could be, even though this is rare, but it could happen, that right in the moment when TestStand writes to the global variable, the thread changing happens, and labView might see strange data (for example if the variable is a array, that not all values had been updated, so LabView would see a mi of old and new data). This is a general problem, when working with multiple threads, and is not TestStand specific. The solution is using synchronisation step types, for example the lock steps to secure the access of global variables, files or devices. You place a lock step before and after the step that works with the variable. before the step you "lock" the step, after the step you can "early unlock" it again. When you do the same on some other position, but with the same lock-reference, you can garantuee, that as long as one thread "locked" the lock, no other can do the same, and so your steps following the lock-step are secure.
Hope that was good to understand. Here you can find some more Information concerning parallel tests:
http://zone.ni.com/devzone/devzone.nsf/webcategories/F255EBD2FF79B055862567B3006BE376

Similar Messages

  • Calling Teststand from labview

    Hi,
    I am trying to open teststand(3.0) from labview(7.1). When run the VI In highlight mode it works fine and opens the Teststand login panel.When try to run the VI in normal mode the VI Hangs and it doesn't open the Teststand also i have to terminate the application using taskmanger. I have attached the VI and the snap shot in highlight mode for your reference.Any suggestion will be appreciated.
    Thanks & regards,
    sathyendra N
    Attachments:
    VIANDSNAP.zip ‏90 KB

    Hi,
    Thanks for your Response. I am trying to use customize the Opertor Interface developed in labview.
    Regarding the complete Application Back ground.
    The complete Application was developed previously using labview 6.1 and Teststand 3.1 and it was working fine. Now i am trying to port the application to Labview 7.1 and Teststand 3.1 at that time it is not all opening the Teststand login so i thought tried only the basic part out of my code and that given the inconsistent problem so i am trying to slove that part first so i have made a simple vi which i included in my last mail.I want to maintain the same functionality previously developed in Labview 6.1 without any major changes so i am trying the same way in labview 7.1.can you please suggest some examples or suggestion.Waiting For Your Response.
    Regards,
    sathyendra N

  • Strange error in teststand from labview-vi

    Hello,
    i have the attached vi "labview.jpg" that i call in Teststand.
    But: There is see much more error-text what i never set in labview.
    Where is this text coming from?
    Thanks
    Solved!
    Go to Solution.
    Attachments:
    labview.jpg ‏25 KB
    error2.jpg ‏33 KB

    Hey again OnlyOne!
    The reason you're getting this output is because you've specified an error code which is already in use. 
    Error Code 0:
    FieldPoint:  Success
    =========================
    LabVIEW:  Error connecting to GPIB driver or device.
    =========================
    Motion:  No error.
    =========================
    NI SoftMotion:  No error.
    =========================
    NI-488:  Error connecting to driver or device.
    =========================
    VISA:  (Hex 0x0) Operation completed successfully.
    In order to work around this you need to define your own custom error code for the 'V3 is Null' instance. This error code will need to be included with your future builds.
    Defining a Custom Error Code:
    Go to Tools > Advanced > Edit Error Codes
    Choose Create New Error Code File
    Choose a code to fit your new error within the range of -8999 to -8000, 5000 to 9999, or 500,000 to 599,999 so as to not overwrite an existing error code.
    Add the error code text and save in the LabVIEW\user.lib\errors directory.
    Using the Error Cluster from Error Code VI enter the value of your error code and wire a True Constant to the Show Call Chain input.
    Use the Error Cluster from Error Code VI to generate your error.
    Alex Thomas, University of Manchester School of EEE LabVIEW Ambassador (CLAD)

  • Change teststand post actions from labview

    Hi,
    Is there a way to change the post action of a test in teststand from Labview.
    At the moment, if one of the tests fail out of limits then the post action is set to 'ON FAIL - GO TO NEXT STEP' but if the unit does not run then a diagnostics labview routine runs and at the end of that I would like to change the teststand post actions to 'ON FAIL - GO TO CLEANUP'
    Can you tell me if this is possible
    Thanks
    Chris

    Hi
    Yes it should possible.
     Step step = m_SequenceContext.Step; if(nValue == 0) {
    step.FailAction = "Next";step.FailActionTarget = ""; }
    else{step.FailAction = "Goto"; step.FailActionTarget = "<End>";
    Regards
    Juergen
    EDIT: This example Goto Endgroup --Sorry!
    Message Edited by j_dodek on 04-21-2010 01:51 PM
    =s=i=g=n=a=t=u=r=e= Click on the Star and see what happens :-) =s=i=g=n=a=t=u=r=e=
    Attachments:
    DotNet.zip ‏17 KB

  • Setting locals from labview

    Hi,
    I have asetup module in labview operator interface. Iam getting the type of UUT in the setup. I want to update this type value into a locals variable in teststand from labview. How to perform this?
    I want to update a locals variable from labview programmatically.
    Regards
    Gopal

    Hi Gopal,
    The following KnowledgeBase article explains this:
    AE KB 2PPEJF6E: How Can I Programmatically Change the Default Value of a TestStand Local Variable?
    Cheers,
    David Goldberg
    National Instruments
    Software R&D

  • What is the best way to open close and pass instrument handles from labview in teststand parallel model?

    I have a number of test systems that use a parallel model with labview. We have a good number of instruments(PXI).
    What is the prefered method for open,closing and passing instrument handles in teststand using labview? 
    Solved!
    Go to Solution.

    Hi,
    No, Below is a bit from the Session Manager Help
    Currently, Session Manager supports the following instrument session types:
    IVI Sessions—Use an IVI session to obtain the C-based instance handle for an IVI logical or virtual instrument name. NI Session Manager does not support IVI-COM drivers at this time. When IVI-COM drivers are available, you can use an IVI session to obtain an ActiveX interface reference to an IVI-COM driver.
    VXIplug&play Sessions—Use a VXIplug&play session to obtain a C-based instance handle for a VXIplug&play logical or virtual instrument name. Configure VXIplug&play names in the <VXIplug&play directory>\<Platform directory>\NISessionMgr.ini file.
    VISA Sessions—Use a VISA instrument session to obtain a C-based viSession handle to a VISA resource or logical name. Configure VISA logical names in the <VXIplug&play directory>\<Platform directory>\NISessionMgr.ini file.
    Custom Sessions—Use a custom session to create a data container object that shares ActiveX objects you create or other data between software components you write. Use the Attach and Get methods to attach data to and retrieve data from a session. A custom session does not initialize, close, or own an instrument handle. The data you share with a custom session does not have to be instrumentation related. You can create a custom session with any name you request.
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • How to Pass Container in a queue from LabVIEW to TestStand?

    I was succussful to pass simple type(string, number) using queue from LabVIEW to TestStand base on the example: Use TestStand Queue.seq.
    I want to pass a container variable from LabVIEW to TestStand. But there are some errors happen.
    Anyone who can help on this issue?
    Thanks in advance.
    Attachments:
    Sequnce and VI.zip ‏28 KB
    VI Error.jpg ‏61 KB
    Run_time Error -17001.jpg ‏41 KB

    You ought to have a listener somewhere that calls a function
    to then set up the loaded swf. In that function you can do this
    kind of thing:
    var ldrmc:MovieClip;
    function swfloaded (e:Event) {
    ldrmc = null;
    if (e.target.content is MovieClip) {
    ldrmc = e.target.content as MovieClip;
    If the swf was published for AS3, then ldrmc will end up
    being a pointer to the root of the swf, and you can call functions
    or set variables however you like. If it was an AS2 swf, ldrmc
    would be null.
    Inside the loaded swf you could try trace statements, to make
    sure you're looking up the hierarchy far enough. Like this:
    trace(MovieClip(parent.parent));
    If that doesn't trace MainTimeLine, then maybe you're not
    looking up far enough. Don't forget that the swf itself is in a
    loader, and so may be one level down from where you thought it was.

  • How do I return a Boolean array from LabView to TestStand?

    I am trying to return a Boolean array from Labview to TestStand and have TS evaluate the results. I can do this for arrays of integers or reals but booleans do not work. I tried copying the PassFailTest step type and adding an array of Bool but I couldn't get it to evaluate the array. It simply always passed. How can this be done?
    Bob A.

    I have thought about evaluating the Boolean data in TestStand but, as you say, this is a lot of work. What I have been doing is to map the boolean data to integers in LV (very easy) and then use the multiple numeric step type to evaluate the integer array automatically. This feels kludgy and I have tried a couple of times to create a "multiple boolean" step type with little success. I'm surprised TS hasn't anticipated a test returning multiple pass/fail results. I do this all the time for production code.
    What I have tried is to copy MultipleNumericLimitsTest data type to a custom type and add a BooleanArray with a data type Array of Boolean[0..empty]. Then when I specify module, I select Step.BooleanArray as the value. The last step (that I know of) is to select Step.BooleanArray as the data source in the edit limits window. At this point if I run the test, I get the error "expect numeric, found boolean" (or something similar). When I look at the properties of my custom step type, the Substeps has DoMultiNumericMeasEvaluation as the Post-Step. I believe this is the root of my problem but I can't figure out how to change this to "DoMultiBooleanMeasEvaluation" or similar. Any Ideas?

  • Passing an ActiveX reference from TestStand to Labview

    How can I pass and ActiveX reference (for a dll) created and used in a TestStand sequence (under Locals) to a VI running within that sequence so that I can then call the same instance of the dll from Labview?
    (I know this isn't the best approach to programming but I'm more interested in proving the point than anything else)
    Cheers
    Dan

    Here's what I think you are tyring to do. Within your sequence, instantiate an object from an ActiveX DLL, storing a reference to it within a TS variable. Then, within a VI called by this sequence, call a method of the intantiated object.
    To do this, when specifying your module on your LV step you must check the Sequence Context ActiveX Pointer check box. In the called VI you must have the a Sequence Context control on your front panel and have it wired to your connector pane along with a TestData cluster control and a LV Error Out cluster control.
    Within the VI you use an invoke node to invoke the AsPropertyObject method on the SequenceContext (Make sure you use the ActiveX close function on this new reference when you are done with it.). Use another invoke node to call GetValInterface method on the sequence context property object reference (you could probably also use the GetValIDispatch method. See the help). For this invoke node you will want to use a lookupstring that reference the variable, relative to yo sequence context, in which you stored the refernce to the instantiated object in your sequence file. This will return a variant reference. You must convert this reference to a LV reference using the "To G Data" function in the ActiveX palette. The "To G Data" function requires a type input. You will need an ActiveX Automation Refnum control as the input to this (see ActiveX control palette). You will need to right click on this automation refnum control and browse the ActiveX automation server until you find the DLL ActiveX server from which you instantiated your object within your sequence. Once selected, also select the object that you instantiated. The "To G Data" function will then give you a reference to you object on which you can happily used in your desired manner. Make sure to close this reference with an ActiveX Automation close function when you are done with it.
    I would definitely clean this up with a subVI to perhaps generalize the solution.

  • TestStand'​s container type from LabVIEW

    Hi,
    With a LabVIEW's VI, I'd would like to set a TestStand cointainer as a TDMS file properties.
    So i tried to get all the elements of my container using PropertyObject Class (ThisContext.AsPropertyObject)
    with this method :PropertyObject.GetValVariant
    ( lookupString, options)
    But i get an error because of Set TDMSproperty method doesn't accept the variant type i got.
    So I'd like to get the type (string, number....) of each elements of this container to setting them as TDMS properties one by one through a for loop.
    How can i do that?
    Alex

    I have a TestStand sequence. In this sequence i have defined a container (filesGlobals) who contains some results of the current Sequence execution. At the end of the sequence execution (in the cleanup) i want to get all the container's values to set them in a TDMS file.
    So i have made a VI who gets all these datas using ActiveX properties. This VI will be called as a TS step.
    But i don't know what are the types (string, number, boolean, array of...) of the varaibles of my container, so i use a method to get Variant. When i want to set my TDMS with this variant an error appears because the variant type is not allowed for TDMS files. So i need to make a VI who could get the type of each variable of my container to convert it in this type and so send it in my TDMS.
    TestStand  FileGlobals                                                                             LabVIEW
    MyContainer{}                                     ​                  TabName                  TabValue                        TabType
        Name (string)                                          ​              (0) Name                  (0) AlexString                  String
        Reference (Number)                     ==>>                  (1) Reference            (1) 1003214                     Number
        ResultOfTest (Boolean)                                          (2) ResultOfTest        (2) True                           Boolean
        Errors (Arrays of string)                                          (3) Errors                  (3)                                  String
        ....                                              ​                               [0]                            ErrorA
                                                      ​                                   [1]                            ErrorB
    With this 3 tabs i could send each varaibles of my TS container elements by elements usisng a for loop as define here:
    for (i=0, i++, i<sizeof(TabName))
         if (Tabtype(i) == String)
              {TabValue(i) = getStringVal}
         if (Tabtype(i) == Number)
              {TabValue(i) = getStringVal}
         if (Tabtype(i) == Boolean)
              {TabValue(i) = getStringVal}
         Set TDMSNameProperty
         Set TDMSValue
    So i need to get the type of all my container's varaibles.
    Like that i will not obliged to get only Variant and could get the correct type to send to the TMDS...
    Alex

  • Export Typedefs from TestSTand to LabVIEW

    Hi there,
    is there a possibility to simply export a typedef made in TestStand to LabVIEW? I want to prevent making the same definitions twice.
    Cheers
    Oli
    Programming languages don't create bad code, programmers create bad code....

    Hi Andre,
    that's what I feared importing cluster definitions from LabVIEW into TestStand is out normal way, unfortunately this time we have an exception to the habit 
    Thank you very much. Enjoy the public holiday
    Cheers
    Oli
    Programming languages don't create bad code, programmers create bad code....

  • 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

  • Display "About NI TestStand..." from LabVIEW

    I'm creating a LabVIEW UI that calls TestStand to run sequence files and I want to include a menu Item to display the "About NI TestStand..." window, but I can seem to figure out to tell TestStand to launch the window from LabVIEW. 
    Can anyone direct me to the appropriate API call or example?
    Ryan Podsim, CLA
    BEI Precision Systems and Space Company
    www.beiprecision.com
    Solved!
    Go to Solution.

    The Example you mentioned was informative, but I see can't seem to find a way to display the "About NI TestStand..." dialog. The list of commands to bind to menu itemsm via Insert Command into Menu.vi, has just about every item in the TestStand help except the About item.
    This is the dialog I'm looking for.
    Ryan Podsim, CLA
    BEI Precision Systems and Space Company
    www.beiprecision.com

  • I would like to build I data base in teststand which collect data from labview , if you have example (sequence) that give me some way to build sequence

    I would like to build a data base in teststand which collect data from labview program , if you have example (sequence) that give me some way to build sequence that have step of action for labview and step
    data base

    There is an example in the \TestStand\Examples\Database directory. Basically there are two ways to connect to your database.
    1. You can use the TestStand database step types. There are steps for opening/closing a database connection, opening/closing an SQL statement, and a step for performing a data operation.
    2. The other way is to use the TestStand database logging capability to write your results to the database. This is the way I would recommend. With database logging, you use the step results container to record all your results as the sequence runs. (This is done automatically by TestStand). When the sequence is complete, the process model calls a "Log to Database" sequence that will write the results to the database. You must define your datab
    ase schema using Configure->Database Options. There are some default (or example) schema definitions already defined. Refer to chapter 18 of your TestStand manual.
    Another way to log the data as the sequence is running is shown in the \TestStand\Examples\OnTheFlyReports. This has the advantage of recording data as it is obtained, but it is not as efficient in terms of using a database connection. I don't recommend using this method.
    Please post again if you have any more questions. If you are using stored procedures with your database, I can probably give you some tips.
    Mark

  • Retrieving teststand step type from labview

    Hi
    I am looking for help/advice about being able to read the type of step that has just been executed from labview. I am current using "Runstate.Step.StepType" and saving the result to a local variable that is being read from labview. The issue I have is the function does not return meaningful data. The function always returns "StepType, IID = {39B81800-2FE4-11D3-AFAC-006097B79EF5}" regardless of the type of step.
    Does anyone know of another command that will return the type of step i.e. Numeric, multi Numeric, string or Boolean.
    Many Thanks
    Dave

    See if this helps: http://zone.ni.com/devzone/cda/epd/p/id/2738
    It uses TypeOf() function and then stores the step type in local varaible.
    CLD,CTD

Maybe you are looking for

  • Youtube won't let me type in comment box below video, and keeps affecting the video when I hit keys. why and how can I stop it from doing that?

    It seems whenever I use YouTube with Firefox, the YouTube video will only ever let me interact with it unless I go full screen then hit escape. if i don't, I can't type in the text box below the video. even stranger, if I go to a new tab and try to e

  • Configuration XML Validation Strict in BPEL Process

    Hi, If we have 10 BPEL process and all using file adapter which reads or write XML file against schema. We have a configuration in BPEL console that validateXML - Validate the incoming and outgoing xml documents: "Stict or None" Stict means validate

  • BAT ERROR

    HI , I am trying to install BAT in my ccm server. I am having only one server in my setup. it is connected to other servers in another region via ICT. I am getting a error "BAT SHOULD BE INSTALLED ON A MACHINE WITH PUBLISHER DATABASE. ABORTING SETUP"

  • Moving from trial version to purchased of Aperture 3

    I installed the trial version and when doing so did a 'use photos in current location'.  I did not import from iPhoto.  I want to purchase now.  Do I move the trial version to the trash and purchase or purchase and use the code on the trial version. 

  • Does Premiere Elements 8 work with Organizer 10

    My operating system  is 64 bit Windows 7. My computer exceeds the system requirements for Premiere Elements 8 (PRE 8)and Photoshiop Elements 10 (PSE 10). Here is the background to my question. I offer this in case some may question why I don't upgrad