Reading teststand variables with labview??

I'm trying to create a vi that will read the uut serial number from teststand and compare it to a second scan from the operator. Is there a function I can put on the block diagram to read the teststand variable? I've read the using teststand with labview but it's still unclear how to do this. Could I just pull the serial number from the UUT dialog that the user starts the test with instead? The other problem is this is a 4 uut test panel so I need to make sure I compare the correct uut serial number info. Any ideas?

The name of the variable is RunState.Root.Locals.UUT.SerialNumber. When you create your VI, have a string control that you pass this in. This is done when do the Specify Module as shown below. Here's an example sequence and VI as well. You can also make it a bit more complicated by using the sequence context and the TestStand Get Property Value function.
Message Edited by Dennis Knutson on 05-01-2007 04:16 PM
Attachments:
Specify Module.PNG ‏29 KB
TestStand Example.zip ‏9 KB

Similar Messages

  • Reading RFID tags with LabVIEW

    Is there an RFID reader which is compatible with LabVIEW (preferably from NI)?
    I'm looking into tagging test samples and then reading sample data with LabVIEW.  Has anyone done this?
    I'm just starting my research so if you can give me some pointers or information about RFID in general it would be useful (costs, suppliers, caveats, and so on).
    Thanks,
    Dave

    Hi Dave,
    We have a DevZone tutorial on The State of Radio Frequency Identification (RFID). Take a look through this, it has a lot of information. Also, scroll down to the bottom of this page, it discusses what NI products can be used for RFID reading. We also have a Case Study called "Using National Instruments Software and Hardware to Develop and Test RFID Tags".
    Hope this helps a bit!
    Regards,
    Claire Reid
    National Instruments

  • 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.

  • 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.
     

  • 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

  • Dequeue a teststand queue with labview

    Hello,
    I'm trying to dequeue elements since a VI that is running in a Thread independent of the mainsequence (Teststand).
    I :
    1.- Create a Queue.
    2.- Launch the VI in a new trhead (Is a states machine controlated by the queue ).
    3.- Now in TESTStand mainsequence i will like enqueue elements to give orders at VI. Any idea how to do this?
    egards,
    Oriol

    Hi,
    First, the best way is to enqueue a close message so you know it has to close.
    Second, it returns an error when the queue ref is destroyed =>you just need to handle the error! Maybe the easiest way would be to add a failure post step action to your step (in TestStand) and do whatever exit code you need to perform!
    BR,
    Rodéric L
    Certified LabVIEW Architect

  • Can not read shared variable on cRIO, error -1950678968 nitaglv

    Hardware setup:
    Laptop
    Laptop connected via USB to a frammer garber. 
    Laptop IP: 192.168.0.2
    NI vision calculating a diameter and setting a network varaible
    cRIO
    cRIO connected to the laptop
    cRIO IP: 192.168.0.1
    Project has the shared variable in the cRIO library
    NI vision writes to the variable on the cRIO.  I can see the variable properly updating in system manager on the cRIO.  I can also run a VI in my computer that shows the variable properly updating.  But......   When I read the variable with a VI running on the cRIO, I get the folowing error and the variable never updates:
    Error -1950678968 occurred at Shared Variable in Main.vi
    Possible reason(s):
    LabVIEW:  Failed to load nitaglv, which is required for Network-Published Shared Variables.
    This error or warning occurred while reading the following Shared Variable:
    \\NI-cRIO-OASIS\cRIOVariableLib\BubbleDiameterFromVision
    \\192.168.0.1\cRIOVariableLib\BubbleDiameterFromVision
    (I do not get any errors at deloyment)
    So everything (NI Vision, a VI deployed on the laptop, NI Distributed System Manager) can see the variable on the cRIO being updated by the NI Vision.... Except for a VI running on the cRIO.
    I have verified that I have Network Variable Engine and Variable Client Support for RT installed on the cRIO.  I have tried reinstalling all s/w on the cRIO.  Tried rebooting all. And talked in a nice, positive, reassuring voice to the chassis.

    Hi!
    I just had the same issue with my cRIO 9073 using NI RIO 3.6.0.
    The problem is not caused by a corrupted project, but the improper installation of the OS on the target. There is nothing you can do using the SW installation wizard in MAX, as it does not matter if you intall a full RIO SW, minimal or custom.
    You have to install the full install or a custom one with Shared Variable support. Then you have to FTP to the cRIO, and manually edit the "ni-rt.ini" file located in the root of the controller.
    Make sure you have a line in the "[MODULE VERSIONS]" section which shows the version of the nitaglv.out file. (The problem is caused because this dll is not loaded when you try to access a SV) Mine looks like nitaglv.out=6.3
    Then you have to insert "nitaglv.out;" without quotes to the [LVRT] section's StartupDLLs key's value. I did it after the taggerrt.out name. So my key entry now looks like this:
    [LVRT]
    StartupDLLs=nisysapirpc.out;NiViSrvr.out;NiRioRpc.out;taggerrt.out;nitaglv.out;sysstatepublisher.out;
    memoryChecking=False
    LABVIEWRTDir=/c/ni-rt/system
    PATH=/c/ni-rt/system/;/c/ni-rt/;
    CDIntervalTicks=55
    WebServer.Enabled=FALSE
    RTTarget.VIPath=/c/ni-rt/startup
    RTTarget.IPAccess=+*
    RTEnetRcvMode=2
    RTCPULoadMonitoringEnabled=True
    RTTarget.ApplicationPath=/c/ni-rt/startup/startup.rtexe
    server.tcp.access="+*"
    RTTarget.LaunchAppAtBoot=True
    RTTarget.EnableFileSharing=True
    server.tcp.serviceName="Main Application Instance/VI Server"
     After you are done with the editing, you have to save the file, and overwrite the original one. You have to reboot the controller for the modification to take effect.
    After this you will be able to host your variables on the cRIO and also read/write them from the application running on that same target.
    I hope this will help for you too.
    Regards,
    Peter

  • SEM-BPS Variable with exit function

    Hi,
    this is my problem. I use a variable for period and I increment the variable dinamically in a sequence of execution. When I try to read the variable with a exit function, the function is only called the first time and return ok the value, but the next time the function not called and the value is returned from the buffer (I think this, because always is the same value).
    How can I change this? I need to my function return the variable value, because is changed.
    Thanks.

    Hi,
    thanks for replys.
    I think the problem occurs after update the patch level to level 15. This is the code of class_constructor in class cl_sem_variable:
    method CLASS_CONSTRUCTOR.
    data ls_dark type upc_dark2.
    select single * from upc_dark2 into ls_dark
       where param = c_param_dark_buffer.
    if sy-subrc = 0 and ls_dark-value = 'X'.
        m_buffer = 'X'.
    endif.
    endmethod.
    The flag m_buffer is always X and for that reason my the value of the variable is read from the buffer and the exit function for read variable isn't called.
    What do yo think about this?
    Thanks.

  • Fast low level Ethernet communication with LabVIEW

    Hello, I want to read Ethernet packets with LabVIEW (an private protocol, not UDP or TCP or others). The hardware writes 40 000 packets per second. I want to use winPcap API to capture data. I’ve seen the example «packet_sniffer_project » (and others). It’s an great job. But the soft reads only 1 packet at each time (wrapper dll calls « pcap_next_ex » function) and I lose packets. With my computer, I read 25 000 packets per second. How can I read more than one packet at each time? (or all the Ethernet buffer) Thank You
    Micke

    Hi,
    maybe an example that I posted will help you
    http://decibel.ni.com/content/docs/DOC-11373
    cosmin 

  • Record audio with labview and audio dataplugin

    The thing I would like to do, is write waveforms to WAV/wma/mp3 files.
    The way to do this, is probably with the help of the audio data plugin.
    However, it is far from clear how to configure and use this plugin with LabView. There is documentation available for DIAdem, but what good is that to me, as a simple LabView user?
    There is also an example for reading dataPlugin data with LabView, but this example is:
    A) not working, e.g. it cannot open a simple WAV file, when using "uspAudio" as DataPlugin Name
    B) not documented
    C) not handeling errors
    D) only reading, not writing, which is slightly more complicated.
    So, tips for writing waveform to audio files and/or
    tips for working with dataPlugins in LabView would be welcome...

    Ok, so, now I can read a WAV/WMA/mp3 file, see attached VI
    There's still one problem: writing data to a WAV/WMA/mp3 file. In my "DataPlugin Write Audio File.vi" I try to read from / listen to a microphone connected to a AD card. On the Waveform graph, I see my signal correctly, but in the WAV file, there is only a flat line (zero's).
    Perhaps it is needed to add properties to the group, but I don't know which properties to add...
    All advice is appreciated...
    Message Edited by bram@tno on 08-08-2007 07:00 AM
    Attachments:
    DataPlugin Load Audio File.vi ‏46 KB
    DataPlugin Write Audio File.vi ‏229 KB

  • Change SSIS variable with reference in C# ?

    I access a read write variable with C# in script task. Its Dts.Variables["strRope"].Value = "onFire";
    Is there any way I could refer to a SSIS variable without using this big name ? I was thinking of  - 
    Object var = Dts.Variables["strRope"].REFERENCE_TO_VARIABLE;
    Now, if I want to reassign strRope, I can simply say var = (String) "Ten thousand thundering typhoons".
    Is there any way I can do such a thing ?
    I tried this -
    public void Main()
    object var = Dts.Variables["strRope"].Value;
    MessageBox.Show("original value = " + Dts.Variables["strRope"].Value.ToString());//original value = "Hello World"
    //Try to change the value of Dts.Variables["strRope"].Value using var ???
    var = (object)"Hello cruel world !";
    MessageBox.Show("new value = " + Dts.Variables["strRope"].Value.ToString());//new value = ???
    Dts.TaskResult = (int)ScriptResults.Success;

    You cant. you need to invoke it using Dts.Variables collection itself.
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs
    I think it would be useful to have this feature. So one can create aliases for all the long SSIS variables in the beginning of the code itself. Otherwise, one has to put it all around. 
    I was trying this - 
    public void Main()
    object var = Dts.Variables["strRope"].Value;
    MessageBox.Show("original value = " + Dts.Variables["strRope"].Value.ToString());//original value = "Hello World"
    //Try to change the value of Dts.Variables["strRope"].Value using var ???
    var = (object)"Hello cruel world !";
    MessageBox.Show("new value = " + Dts.Variables["strRope"].Value.ToString());//new value = ???
    Dts.TaskResult = (int)ScriptResults.Success;

  • Storing carriage return and other special characters in a TestStand variable and passing to LabVIEW

    I am using TestStand step to call a LabVIEW VI that writes commands to a serial device.  The device expects a carriage return at the end of the command.  I can create a constant string in TestStand with the carriage return, e.g., "ATA\x0D" and pass that to a LabVIEW string control which shows ATA\r and the VI works properly.
    To provide consistency and flexibility in my code, I want to store the terminator character(s) in a TestStand variable.  However, when I try to use an expression to create the command string, i.e. "ATA" + "Locals.Terminator", where Locals.Terminator is set to "\x0D", my LabVIEW VI string control shows "ATA\\x0D" which doesn't work.  And when I try Locals.Terminator set to "\r", the LabVIEW string control shows "ATA\\r" which doesn't work either.
    Is there a way to store special characters in a TestStand variable and pass them to LabVIEW as special characters?  I saw in another post that if you edit the TestStand variable by pressing Cntl-Enter, it will store  the newline \n properly and it can be sent to LabVIEW - that works for me as well for \n.  But  I need to send a carriage return.
    I've attached my test sequence and the corresponding LabVIEW VI with a string control.
    Hans
    Attachments:
    Special Chars.seq ‏27 KB
    String Passing.vi ‏13 KB

    Hi Hans, 
    Thanks for your detailed explanation and examples.  In TestStand, change the String parameter's String Type to Binary String instead of ASCII.  Then it will pass the desired value.
    Cheers,
    David Goldberg
    National Instruments
    Software R&D

  • Trouble reading OPC Server values with Labview

    Hello there,
    I am currently working with Siemens Equipment : a Simatic Microbox with an OPC Server.
    I would like to read some variables' values provided by the OPC server with Labview 2012 (and DSC module), but I'm experiencing some difficulties.
    I have set up my OPC Server as an I/O Server in a Labview projet. Then, I have created some Shared Values to treat them in Labview.
    In the Distributed System Manager, I can read NI OPC Client Status :
    Active -> true
    Connected -> false
    Enable logging diagnostic information -> false
    OPC interface version -> OPC DA-3
    Server ProgID -> OPC.SimaticNet.1
    When I want to check any Shared Value, I have the comment : Server Failure.
    I think DCOM/COM configuration of the client and the server are good (I can correctly read values with Siemens OPC Scout).
    Maybe the issue comes from the connection between the OPC Server and Labview.
    Has anyone had a similar problem ?
    Thanks in advance,
    Jeremy

    You don't specify whether the server and the client are on the same PC or not.
    I recently run in a situation where the Matrikon client was able to read from a remote server while the Labview program (using Datasocket) could not.
    I suggest to try with Datasocket vi's to see what happens.
    Paolo
    LV 7.0, 7.1, 8.0.1, 2011
    Attachments:
    Read OPC variant.vi ‏17 KB

  • How can I read pdf files from LabVIEW with different versions of Acrobat reader?

    How can I read pdf files from LabVIEW with different versions of Acrobat reader?
    I have made a LabVIEW program where I have possibility to read a PDF document.  When I made this LabVIEW program it was Acrobat Reader 5.0.5 that was installed on the PC. Lather when the Acrobat Reader was upgraded to version 6.0, there was an error when VI tries to launch the LabVIEW program. And Later again when we upgraded to Acrobat Reader 7.0.5 I must again do some changes and rebuild the EXE files again
    It isn't so very big job to do the changes in one single LabVIEW program, but we have built a lot of LabVIEW programs so this take time to due changes every time vi update Acrobat Reader. (We have build EXE files.)
    The job is to right click the ActiveX container and Click "Insert ActiveX Object", then I can brows the computer for the new version of acrobat Reader. After this I must rebuild all the "methods" in the Activex call to make the VI executable again.
    Is there a way to build LabVIEW program so I don't have to do this job every time we update Acrobat Reader?
    This LabVIEW program is written in LabVIEW 6.1, but I se the problem is the same in LabVIEW 8.2.
    Jan Inge Gustavsen
    Attachments:
    Show PDF-file - Adobe Reader 7-0-5 - LV61.vi ‏43 KB
    Read PDF file.jpg ‏201 KB
    Show PDF-file - Adobe Reader 5-0-5 - LV61.vi ‏42 KB

    hi there
    try the vi
    ..vi.lib\platform\browser.llb\Open Acrobat Document.vi
    it uses DDE or the command line to run an external application (e.g. Adobe Acrobat)
    Best regards
    chris
    CL(A)Dly bending G-Force with LabVIEW
    famous last words: "oh my god, it is full of stars!"

  • Creation of step (by Teststand) with LabView

    I created a sequence with TestStand, I would like to insert a step in it but with labview.
    The problem occurs on the level from the NewStep method and its StepTypeName parameter.
    This parameter is of type String, I tried to enter several string but unless result.
    The error appearing is "Step type not found in type list".
    In the help file of TestStand, it is said that "the step type must already be in memory",
    but I don't more understand it.
    Can you help me?
    Thanks
    Attachments:
    TS_test1.vi ‏83 KB

    Hi,
    I think you have to load the TypePaletteFiles first.
    Please take a look at the example from the link below.
    http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B45EACE3DEA556A4E034080020E74861&p_node=DZ52238
    This is what you need. Tested it, works fine.
    Regards.
    JorisV

Maybe you are looking for