"Online" massage from TestStand to Labview

HI boys,
I want to show a variable in TestStand "Online" in a Labview Front Panel, I mean, if the value this variable changed, I don't need call this VI again, the variable should be updated by itself.
Of course I can call the VI again to read the new value of the variable, but I think, there must be a smart wey to do it.
Cabio

Cabio,
first of all, not all here are necessarily "boys"...
Second: VIs only update elements if they are RUNNING (with certain exceptions). So just open a front panel with an indicator and *magically* put in updated values is not the way it will work properly.
I also epect this question to refer to your "progress display" question.
Norbert 
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.

Similar Messages

  • How can I convert a Database Handle from TestStand to LabVIEW?

    I want to use a Database Handle (already created in TestStand by an Open Database step) in a LabVIEW-VI (called from TestStand) to connect it with the "Connection Reference" input of the "Easy SQL.vi"? If I use a directly connection via the "TestStand - Get Property Value (Number).vi" I get back the error message 4101 in LabVIEW. How can I convert the Database Handle?
    Test Engineering
    digades GmbH
    www.digades.com

    The TestStand database step types use the CVI SQL Toolkit to talk to databases. The handle that you are referencing is an internal memory location and not a actual handle that you can directly use. Currently as implemented the handle that is stored in a numeric TestStand property for the connection and the SQL statement are the handle values returned from the CVI SQL Toolkit. So for the connection handle, you could call the CVI SQL Toolkit function
    DBGetConnectionAttribute (
    int Connection_Handle,
    tDBConnectionAttr Attribute,
    void *Value);
    and get the CVI CAObjHandle reference. With this you could then call the CVI ActiveX function
    CA_GetInterfaceFromObjHandle(
    CAObjHandle Object_Handle,
    const IID *Interface_Id,
    int Force_AddRef,
    void *Inte
    rface_Ptr,
    int *Did_AddRef);
    to get the actual ActiveX interface reference. This would have to be converted into a LabVIEW reference.
    You may want to consider just using LabVIEW to open a new parallel reference only using the toolkit.
    Scott Richardson
    National Instruments

  • User event from TestStand to Labview

    Hello all,
       I have some question regarding Labview-TestStand
       We have a large application written in Labview, user interface separated from the actual
    core using  User Events. Now we consider to automate some repeated actions with slightly
    different parameters. Is the TestStand sutable option for thi case? Can it send the "User event" to
    Labview?
     Thanks
    Michael.
    LV 8.2 at Windows & Linux

    Hi mishklyar,
    tbob makes a good point, and I will try to elaborate a little bit. TestStand is test executive software. It works by executing a set of predefined steps in sequence. These steps can be LabVIEW code, C code, etc. You can pass parameters into the LabVIEW code that you call, but you cannot directly send "user events" the same way that user events are created in LabVIEW by interacting with front panel controls. The traditional design with TestStand is to create a LabVIEW code module that does a particular thing, and have other modules (VIs) that do other things. Then, call each module from TestStand as needed. As the name implies, TestStand is often used for testing products, but could be used for other purposes as well. If your application could be modified to fit this model, then TestStand could probably be used. However, you would probably want to architect your LabVIEW application differently than it is right now.
    Best Regards,
    John M
    National Instruments
    Applications Engineer

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

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

  • Problem calling a LabVIEW VI from TestStand

    I'm am currently migrating my companies test scripts from TestStand 3.0 to TestStand 4.1.1 and VI's from LabVIEW 7.0 to LabVIEW 8.6.  I have re-saved all of the sequence files to the new version as well as performed the 'Mass Compile' operation on all of our custom VI's.  During the execution of one of the sequence files a call is made to a VI (through a LabVIEW library).  If I run this sequence file on a machine with the development software and have the Adapter for LabVIEW set to use the development system the VI executes as expected.  If I have the adapter set to use the Run-time engine (in this case 8.6, the same as the development version) I get an error:
    "LabVIEW:  The VI is not executable. Most likely the VI is broken or one of its subVIs cannot be located.  Open the VI in LabVIEW using File>>Open and verify that it is runnable."
    I noticed that in the library file there are sub VI's that are called from  "C:\Program Files\National Instruments\LabVIEW 7.0\vi.lib"   This directory only exists on machines that have the development system installed.  Perhaps this is why the VI does not execute using the runtime engine

    Ray is right. Development environments are backwards compatible (you can run VIs compiled in LabVIEW 7.1 or 8.5 in LabVIEW 8.6). That's why you can run your sequence just fine on the development system, but on the target machines you are using the LabVIEW Run-Time engine, which is not backwards compatible. With the Run-Time engine, ALL VIs need to be in the same version as the Run-Time engine (including VIs in vi.lib, tools.lib, instr.lib, etc.).
    The first thing I would check is make sure everything has been mass compiled to 8.6, including vi.lib. If you are still getting the error you should be able to tell at what point the error occurs so you can look at that specific VI. Open it and confirm there isn't a broken run arrow and check to see what subVIs that VI is using and confirm they all have been compiled in version 8.6 too.
    This should get you going, but if not just let us know.
    Message Edited by CorbinH on 05-07-2009 08:24 AM

  • Calling labview 8.2 Vi from teststand 3.5 throws an error

    calling labview-8.2 vi in teststand-3.5 throws the following error.
    In the development environment, where Teststand 3.5 and LabVIEW 8.2 are installed, teststand file doesnt throw any error. However when the same sequence is deployed in a machine that doesnt have teststand and labview. (Both Teststand runtime engine and Labview runtime engine) are installed in the end machine.
    Trying the execute the sequence in the end machine throws the following error
    "Error loading step 'Call LabVIEW measurement module for amplitude imbalance' of sequence 'MainSequence' in file 'TSG06-Amplitude Imbalance.seq'.
    LabVIEW:  VI version is later than the current LabVIEW version."
    Attachments:
    Error.JPG ‏26 KB

    Hi,
    Should have also asked this question before.
    What is your LabVIEW Adaptor set too on the target system. Use ActiveX Runtime Server or LabVIEW RTE. If its set to use the LaBVIEW ActiveX Runtime Server which can be either the Operator Interface or the seperate ActiveX Server, then these are probably built with an early labVIEW.
    If so you would need to rebuild the server you are using.
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • Passing telnet session between LabVIEW calls from TestStand

    From TestStand I am calling VI's from telnet.llb.
    In one TestStand step  am opening a telnet session to an IP address and collecting the telnet connection (U32). In the next TestStand step I pass the telnet connection  to a telnet write VI but get this error.
     "Dequeue Element in Acquire Semaphore.vi:1->Telnet Write.vi:1->Telnet Write.vi.ProxyCaller"
    The telnet open, write, read, and close work great if I pass the telnet session number within the same VI. But I need to keep the session open between calls from TestStand because one huge VI is not feasible.
    thank you
    josh
    Solved!
    Go to Solution.

    Hi,
    Maybe the following link can help
    http://forums.ni.com/t5/NI-TestStand/Can-a-Telnet-session-be-passed-from-1-vi-to-the-next-in-test/m-...
    Regards
    Ray Farmer

  • LabVIEW Access Violation Crashes from TestStand

    We've been seeing numerous LabVIEW crashes when calling VIs through the LabVIEW adapter in TestStand.  I've searched the knowledge base and discussion forums without success and figured I would post here before opening a help request.
    The actual error we see is:
    Exception: Access violation (0xC0000005) at EIP=0x012B60E6  Version: 11.0.1f1
    We see these crashes several times a day, but while calling no specific VI.  They happen mostly on 2 PCs that are running Windows 7 - 64 bit, but we've seen them in the past on PCs running the 32 bit version of Windows 7. Here is the data related to those 2 problematic PCs.
    OS:  Windows 7 Professional SP1 64 bit
    LabVIEW: 2011 SP1 (11.0.1f1) 32 bit
    TestStand: 2010 SP1 (4.5.1.134) 32 bit
    PC:  Dell Optiplex 790 with Intel Core i5
    Other significant information.
    We see these crashes when we're running the batch model in TestStand with multiple threads open.  Some VIs are reentrant, and some are not.
    The 2 PCs that run the batch model (with multiple threads) have the 64 bit version of Win 7 Pro, and crash most often.
    The 3 PCs that run the sequential model or the batch model with a single thread have the 32 bit version of Win 7 Pro and rarely if ever have crashed.
    Not sure if it's related to the OS version or the multi-thread usage and switching the PCs/OS versions to isolate that isn't easy.
    Has anyone else seen similar issues?  Does Windows 7 Pro 64 bit work reliably with TestStand and LabVIEW 2011 32 bit versions?  I posted this question in the LabVIEW discussion forum, but I don't know where the issue resides, I'm posting in the TestStand forum also.
    Any information would be appreciated.
    John Morrissey

    I just had the same error in a LVOOP Project. First I got a crash (something with out of memory). The I got subsequent Access Violations. Could trace it down to one VI that:
    a) had been working just fine before
    b) wasn't changed after test mentioned in a) but got (even just running on its own) subsequent access violations every time I ran it
    c) VI used a class konstant, property node (to set 2 class attributes); Inputs were a string and an integer and an error cluster; outputs: one instance of the class (initialized with string an integer) and the error cluster
    d) Problem could be solved by deleting the class constant used in the VI and put the same in again (an just rewired the thing); I assume this caused a recompile that solved the prob
    Maybe this helps narrowing the general problem down.
    P.S: I dont have a still non working version of that VI, since I was happy to have solved this and just saved the VI before thinking about making a copy.

  • XY Graph Won't save to JPEG when Black and White...and run from TestStand.

    I am creating an XY graph and manipulating the colors of the plots, background, etc.  I am saving this graph to JPEG using the Write JPEG File vi and after it is saved I import it inot a test report.  This works fine in color, but when I create a B&W plot, it won't save to JPEG.  Let me clarify:  It won't save to JPEG when I run the VI from TestStand.  It does save to JPEG when I run the VI as a stand alone application in LabVIEW. 
    Problem:
    Run VI from LabVIEW ~ Saves the JPEG in both Color and B&W.
    Run VI from TestStand ~ Saves the JPEG in Color, but does not save the JPEG in B&W.    
    Here is how I am making all the plots and background B&W in my code:
    Change all Active Plots to Black using property node.
    Change all Active Cursors to Black using property node.
    Change the Plot BG colors (major/minor grids, etc) to lighter colors using property node. 
    Does anybody have any suggestions? 
    Thanks in advance,
    Mike

    A few questions: What version of LV are you using? How are you getting the control image that you are sending to the JPG? Third what exactly happens when you try to save the B/W image under TestStand? Error?
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Deploy teststand with labview ui

    Hi,
    I'm using teststand now since 9 months and now I have to distribute my application to a testing machine. I have some questions about this process. But first I discribe my application:
    I have a labview ui, which has 3 main tasks:
    1.) Start selected teststand sequences for automatic testing.
    2.) Give operator the possibility to manually control the testing environment (purely written in labview)
    3.) Run continous data aquisition, which provides data for teststand and manual testing.
    Sharing data between labview and teststand is done mainly via global variables (e.g. reference to tdms file). Because of 1.) and 2.) above teststand and labview share a lot of VIs for communicating with the testing environment.
    OK, now my questions:
    I'm searching for the best way to deploy this application via an installer. I know, that there is a teststand deployment tool (which I havn't used, yet) and I know how to build installers with the labview project manager.
    1.) What about sharing of VIs and global variables between my teststand sequences and my generated labview exe? When I place my sequences in the workspace file for the teststand deployment tool, all referenced VIs are included in teststand. But Some of these VIs are also included in my generated labview ui. Will this generate a conflict?
    2.) I was thinking about to create a teststand deployment without a workspace file. The sequences and all required VIs would be placed in the generated labview ui instead. Will the teststand sequences find the VIs inside of the ui exe?
    3.) What about required drivers (e.g. daq-mx)? Should I create a labview installer of my ui with the required drives and install this, then create a teststand installer (perhaps including the ui, too) and install this, too?
    Thanks for any help in advance.
    Marc
    CLD

    Hi,
    I would recommend the Deployment Tool for your TestStand and OI. I would also keep your Test Sequence files seperate from your TestStand Engine amd UI deployment.
    [1.) What about sharing of VIs and global variables between my teststand sequences and my generated labview exe? When I place my sequences in the workspace file for the teststand deployment tool, all referenced VIs are included in teststand. But Some of these VIs are also included in my generated labview ui. Will this generate a conflict?}
    This is going to cause you a problem because LabVIEW doesn't like / will not load the same VI into memory from two different locations.
    The Deployment Tool will probably object as well therefore you will not beable to create a deployment package.
    The Deployment Tool will place all the VIs that are called directly from TestStand Sequence Files as seperate VI's (not in a LLB) into the target folder. It will then create a support LLB containing all the subVI's used by the directly called VI's. If you have VI's that are called directly from TestStand and are also used as subVI's you will again have problems because the same VI can be loaded from two different locations. 
    2.) I was thinking about to create a teststand deployment without a workspace file. The sequences and all required VIs would be placed in the generated labview ui instead. Will the teststand sequences find the VIs inside of the ui exe?
    No Teststand will not beable to find your VI's in the EXE. If you need to use the same VI's in both your OI and TestStand sequence file then create a DLL.
    But I would recommend you keep the OI code seperate from your Test Code.
    3.) What about required drivers (e.g. daq-mx)? Should I create a labview installer of my ui with the required drives and install this, then create a teststand installer (perhaps including the ui, too) and install this, too?
    Install your drivers first. The IO should be installed as part of the TestStand deployment as this will register the various components correctly.
    Regards
    Ray Farmer
    Message Edited by Ray Farmer on 08-06-2008 01:02 PM
    Regards
    Ray Farmer

  • A problem was encountered with one of the files in TestStand\AdapterSupport\LabVIEW directory

    When looking at the module for a LabVIEW VI being called from TestStand, I get the following message:
    A problem was encountered with one of the files in TestStand\AdapterSupport\LabVIEW directory.  Please reinstall it or repair it.
    I made the mistake of cleaning up C: in my computer.  Cleaning C:\National Instruments Downloads
    Why would someone put bits of applications or modules, etc in such a directory?
    I am not too crazy about restoring 11GB back into that folder.  That's just insane!
    Has anyone encountered this before?  Any "easy" solutions? apart from re-installing TS...
    Side note:  I did not touch anything in the \Program Files|National Instruments\TestStand\AdapterSupport\LabVIEW
    Solved!
    Go to Solution.

    Thanks PH,
    I also had that.  Fixed it. 
    I will not remove the ones in the NI downloads folder.
    I will eventually need to remap everything to the appropriate drive. 
    I partition the drives into:
    C:\     Windows and associated folders.  Mostly OS stuff
    E:\     Applications (this is where it will end up)
    F:\     Files
    G:\    Storage
    H:\    Backups
    I try to do what I normally implement in Linux.  I hate sharing the OS with everything else.
    Cheers,
    RayR

  • When I call VI on Linux from Teststand on Windows using TCP/IP I get "file not found error".any sugeestions?

    I am trying to execute a VI running on Linux from Teststand running on windows 2000 prof ,both running on two different machines.I used TCP/IP for the interface using the following steps on Labview VI:tools>options>VIserver>TCP/IP and gave the ip address of both the machines.When I gave the file path as c:\home\test.vi in Edit labview Vi call window(the Vi in linux is stored in /home/test.vi)and also in remote vi path:/home/test.vi,I get a file not found error.The teststand version is 3.0 and labview is 7.0.Any idea why this is happening and any solutions?

    priya guru,
    Here is a knowledge base that addresses your question: �How do I call test VIs that reside on a non-Windows platform from TestStand?�
    You also need to set TCP/IP Access found in Tools->Options->'VI Server: TCP/IP Access'. Make sure that you list the IP address in the Access List to allow TCP/IP access to that machine. Finally you need to specify which VIs are accessible to remote applications. Open up Tools->Options->'VI Server: Exported VIs' and provide paths to the VIs you wish to be remotely accessible.
    I have attached an example VI that demonstrates VI Server in action. Please post back if you are still having problems. Good luck!
    Cr
    aig H.
    National Instruments
    Attachments:
    Remote_Run_--_VI_Server.zip ‏88 KB

  • Abort execution of VI from TestSTand

    I am trying to find an easy way to abort or terminate a called VI from TestStand. I am working on a system that controls machines and if something goes wrong I want a stop button that stops the VI immediately and runs a VI thats sends a stop signal to the machine.
    Event seems like it could work and I tried using GetTerminationStatus but I cant get it to trigger an event. I have only tried using ValueChange on both GetTerminationStatus and Sequence Context In.
    Is there a way to get a message popup to pop up and having VI:s running in the background? When the VI:s are done the message closes. If I push the button I want it to set a variable that triggers an event.

    Hi Peter,
    Here's a quick example of how to use the GetTerminationStatus VI.
    Unfortunatlly you can't generate an event in LabVIEW directly you will have to poll the TerminationStatus.
    This will detect someone pressing the Terminate button in the SequenceEditor or TestStand User Interface.
    I've also setup the Terminate Button in the VI to trigger a Termination in TestStand.
    Somethings to keep in mind.
    The difference between Abort and Terminate, is that Terminate will still run the Cleanup Group of any sequences.
    This is very useful to ensure everything shuts down correctly when something goes wrong.
    Hope this helps
    Simon Holman
    Software Engineer
    Certified LabVIEW Developer
    Certified TestStand Developer
    measX GmbH & Co. KG.
    http://www.measx.com
    Attachments:
    Example Abort VI.zip ‏19 KB

  • Present a dialog screen to the user that always stays open and gets updated with values from teststand.

    Hello,
    I'm new to TestStand and just created my first sequences with TS and LV.
    The program is running fine but now I need to implemented a dialog screen with some progress results for the user.
    This dialog screen must stay open (unless closed by the user) and gets refreshed with the latest analysis results from TestStand.
    Is there an example of something like that. (starting from a working example is always easier)
    So I need a mechanism to give some results from TestStand to a custom made dialog screen in LabVIEW.
    Any thoughts/examples/recommandations ???
    Thanks!

    Hi noxus,
    The basic design you are looking for is a daemon, This is basically a VI that runs in the background (your dialog VI for example). This VI is launched dynamicly when needed. And there should be a way of detecting if the deamon is running.
    You can use various ways of communicating between VI's. The two most use full I find either Queues or TCP. The added bonus for TCP is that it also works over the Network, but could also be slower and blocked by Firewalls. Queues only work within the LabVIEW Process running on the Local machine and provide a nice way of detecting if the daemon VI is running.
    Attached a example that show how you can implement something like this. The 'sent new value.vi' obtains a queue reference, we check if it has created a new queue or if it returned an existing queue reference. If the obtain queue created a new queue this means the daemon is not running and we launch the deamon.vi.
    The daemon also connects to the same queue and maintains the reference. If the deamon is closed the referenced is closed as well and the queue is destroyed.
    You can run the example VI. (in LabVIEW 8.2).
    Hope this helps.
    Thanks
    Karsten 
    Attachments:
    Daemon.zip ‏35 KB

Maybe you are looking for