LabVIEW OI / TestStand Communication

All,
Looking for some general recommendations on how to pass data from LV to TestStand. Here is the situation:
We commonly use custom LabVIEW OIs for ATEs and we will often times include a EStop or Part-in-place. These are typically using a DAQ card to read the lines. We want to monitor these lines consistently, even if a TestStand Sequence isn't running in the custom OI. However, I still need to send this data down to TestStand when the sequences are running to stop tests (for the EStop condition) or start tests (for Part-in-place).I need to be able to monitor this data even if I'm not logged in to TestStand.
I'm trying to figure out the best way to do this and I can't seem to come across a good answer. Things I have at least looked at:
Using a Functional Global like this: Using Functional Global Variables to share data between the TestStand Operator Interface and Code mo...
Problem is it only works when LV and TS are both in the runtime environment, making it difficult to troubleshoot.
I feel there should be a way to do this with the TestStand API and write to a StationGlobal, I've been looking at this, but not sure if this will work when I'm not running a TestStand sequence.
I'm happy to write an action engine in the LabVIEW OI and monitor those DAQ lines there, but I just need to find a good way to consistently send the data to TestStand (if open and / or running).
Thanks for any recommendations.
Aaron W.
National Instruments
CLA, CTA and CPI

Aaron,
this is somehow a common requirement but there is sadly no "this is the only way" solution.
Things i recommend for discussions:
1. Use another application as IO Server:
The IO Server controls the hardware and reads/writes data as requested by clients. Essentially, the UI and several TS Sequence Executions can be clients, requesting data.
Transfer is of course some TCP based technology.
Advantage:
+ IO Server PC does not need to be the same as the sequence controller
+ Number of clients can be "arbitrary" (question of performance)
+ Well defined interfaces make debugging easier
+ IO Server can be started as "Startup Application" or a defined caller (e.g. UI)
Disadvantage:
- Not suitable for time critical IO connections as there is a lot of delay and jitter
- Not suitable if hardware cannot be abstracted to a single handler
- Possibly requires firewall/anti-virus settings
2. Create an "agent" in the UI:
As you already stated, this is very good way to gather data regardless of the state of TS. Problem is: how do i best transfer data from here to TS?
Solutions:
a) FGV (already mentioned). Current Value Table (CVT) is similar to this. Works only if UI and code modules are written in LV.
b) Custom UI Message: Requires a callback with given code. Works independantly of used languages (LV vs. .NET for instance) as data is passed directly to the TS dataspace using the ThisContext reference.
c) Internal TCP Stack: Similar to the first option, "IO Server". Therefore, rules, gains and losses are comparable.
d) ....
3. Use a TS Model Plugin:
This option is not suitable as your requirements are that TS does not need to run in order for your monitoring. But i add it for completeness.
The idea is to execute a parallel running Model Plugin, not for reporting but for IO Management. You can use internal TS synchronization methods (queues, ...) to pass data.
I think this should be tho top most options. Time to discuss
Norbert
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.

Similar Messages

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

  • Controls System Engineer-Labview and Teststand

    One year experience in Labview and Teststand/automated testing system for Locomotives.Masters in Embedded Software. Seeking Employment Fulltime/Contract.

    Hi,
    Thank you for responding. I am based at USA. Currently looking for opportunities here.
    Thanks!
    Priya

  • [TestStand][LabVIEW]faire module labview pour teststand

    Bonjour,
    Je suis a la recherche de tutoriel pour faire des modules LabVIEW pour TestStand.
    J'ai trouvé les fonctions TestStand dans LabVIEW "Get Property Value" and co. mais je n'arrive pas à les mettre en oeuvre.
    Merci
    Résolu !
    Accéder à la solution.

    Bonjour,
    Je cherche à envoyé des requêtes en TCP/IP sur un module 'maison', et récupérer les éventuels réponse. (LabVIEW)
    Faire cette procédure en boucle jusqu'a ce que je reçoive une réponse comportant une anomalie, l'arrêter (par ex) et l'inscrire dans un rapport. (TestStand)
    J'ai déjà fait le Module LabVIEW, j'aimerai intégrer ce module dans une séquence TestStand pour automatisé l'envoie et la prise de décision en fonction de la réponse reçu.
    Donc au final pouvoir choisir ce que j'envoie avec TestStand:
    [TestStand:    requêtes -> [LabVIEW] -> réponses ]
    Assez compréhensible ?
    Cordialement,
    Anthelme
    P.S.: Je dois avoué ne pas avoir compris vos solutions proposé...

  • LabVIEW, LabWindows, TestStand Freelancer

    Test Engineer looking for contract-type work, and open to full-time opportunities as well.
    As part of my professional career I have developed very large LabVIEW/LabWindows/TestStand test programs. Some of these ATEs are currently deployed in engineering labs and production environments at CMs such as Sanmina, Celestica, Benchmark; the CMs are across different geographical areas (Mexico, USA, Thailand, China).
    Experience controlling different types of equipments such as oscilloscopes, power supplies, DC loads, network traffic generators, Data Acquisitions Units, relays, DIO, etc. Experience developing applications where units run in serial and parallel modes.
    LAVA username: nitulandia
    Please send me a Private Message for additional details.
    Fluent in English and Spanish.
    Thank you for reading this.

    Bonjour,
    Je cherche à envoyé des requêtes en TCP/IP sur un module 'maison', et récupérer les éventuels réponse. (LabVIEW)
    Faire cette procédure en boucle jusqu'a ce que je reçoive une réponse comportant une anomalie, l'arrêter (par ex) et l'inscrire dans un rapport. (TestStand)
    J'ai déjà fait le Module LabVIEW, j'aimerai intégrer ce module dans une séquence TestStand pour automatisé l'envoie et la prise de décision en fonction de la réponse reçu.
    Donc au final pouvoir choisir ce que j'envoie avec TestStand:
    [TestStand:    requêtes -> [LabVIEW] -> réponses ]
    Assez compréhensible ?
    Cordialement,
    Anthelme
    P.S.: Je dois avoué ne pas avoir compris vos solutions proposé...

  • LabVIEW vs Teststand

    Hello all,
    I been using the LabVIEW for the past two users in Machine Vision Application Development. I have the following questions on my mind,
    1. I would like to know what is test stand.
    2. Where it can actually used.
    3. Is vision development can be done using that. 
    4. What is advantage of this over LabVIEW..
    Waiting for replies...
    Thanks.
    Sasi.
    Certified LabVIEW Associate Developer
    If you can DREAM it, You can DO it - Walt Disney
    Solved!
    Go to Solution.

    Hi,
    TestStand is a test sequencer whose engine is accessible via a powerful API, thus you can execute and manage TestStand sequences (*.seq files) from many different programming languages and development environment.
    Basically, you will create (or use) your own operator interface to execute or edit your sequences, these sequences are made of different steps that consist in calling external component like VI made in LabVIEW, DLL made with LabWindows/CVI or Visual Studio and even .NET Assemblies. All these external components may execute some routines that will affect hardware (for example checking if a DC motor will move according to the set point you set).
    You can then check if the tests pass of fail and then automatically edit a report.
    You cannot compare LabVIEW and TestStand, they are not made for the same purposes. You can see LabVIEW as an "add on" for TestStand in a way...
    Regards,
    Da Helmut

  • How to send a path from labview to teststand.

    Hi!
    I have a DLL that I have developed in LabView and as a input parameter I have a path to a file
    but if I in the LabViewCode uses String to recieve the path from TestStand and the path includes \T
    these just disapperes.
    ex:
    I send "C:\test.vi" to LabView from Teststand
    If I check the Path recieved in LabView i get "C: est.vi"
    Instead if I in LabView uses Path to recieve data from TestStand I get an error in Teststand.
    How should I do?
    /Andreas

    Labview strings use the backslash "\" as a special character. \t is a tab, \n is a newline, \r is carriage return, and so on. To send a real backslash use two of them, like \\. So your path string should be "C:\\test.vi".
    - tbob
    Inventor of the WORM Global

  • 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 can I pass in continuous value from labview to teststand?

    Hello
    I want to run a vi using teststand. I want this vi to send values to teststand. My problem is that the value is only updated at the end of the vi execution and I want to get the value before the end of the vi execution. If somebody can help me ...
    Thanks
    Corentine 

    Corentine,
    you can think of TestStand calls to LabVIEW-VIs just like functioncalls in C/C++. The main continues running only if the subroutine is fully executed. Furthermore, LV returns values to the parameters (connector block) only at the end of the execution of the VI.
    So you cannot use "simple VI calls" in your sequence if you need datatransfer during execution from steps. If you like to do something like this, the easiest way would be to create a VI which runs continuously in the background and supplies data via mechanisms like Queues (if executed in the same instance) or TCP/IP. In the stepmodules you can retrieve the data when needed.
    hope this helps,
    Norbert B.
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Multi-Threading in Labview (not teststand)

    I have heard that it is possible to write a Labview application using
    more than one execution thread, but I don't understand what the help
    files are saying.
    Do I have to have a HyperThreading CPU to do this?
    This was easy in CVI.
    Can more than one thread make changes to the front panel controls or even display it's own panel?
    Maybe someone has some pointers or simple examples of how to create a second thread.
    (Please - no TestStand examples. Just 100% Labview)

    You don't need hyperthreading. Parallelism is built into LV in several levels. First of all, you can simply have parallel code by having 2 pieces of unconnected code which will run "in parallel" (the scheduler will make sure they both get executed).
    You can assign priorities and threads to VIs by going to File>>VI Properties>>Execution, but there is usually no need to deal with this because is LV will be fast enough without this (plus, you have to know what you're doing).
    Like I said earlier, if you just want different pieces of code to execute in parallel, just make sure they are not connected. You can open as many VIs as you like like this and let them execute in parallel. You can have seperate loops updating controls on the same front panel. Basically, whatever you like. It's really very simple. If you want an example, simply create 2 while loops which do something, and you can see they do it the same time.
    To learn more about LabVIEW, I suggest you try searching this site and google for LabVIEW tutorials. Here and here are a couple you can start with. You can also contact your local NI office and join one of their courses.
    In addition, I suggest you read the LabVIEW style guide and the LabVIEW user manual (Help>>Search the LabVIEW Bookshelf).
    Try to take over the world!

  • How to use Expression Edit in the LabVIEW control (teststand category)?

    Hi All,
    I am developing the teststand specify module using LabVIEW. I found that is Expression Edit control in the Labview Controls pallete. does anyone have any example?
    I have enabled the expression browser button but I dont know how to link it to the teststand. Pls advise.
    Thanks
    - toko -

    Hey Toko,
    You basically need to refer the button to the sequence context.  For a great description of this and an example, please refer to this previous discussion forum:
    http://forums.ni.com/ni/board/message?board.id=330&message.id=10609&requireLogin=False
    Thanks,
    Andy McRorie
    NI R&D

  • What are the current versions of Labview and Teststand

    Hello,
    i am currently downlading the current versions of teststand and labview for evaluation.
    In the Teststand-link i saw that it is called "Teststand 2012".
    1. But there was no version-information in the Labview-Download. Is this also version 2012?
    2. Are both things 32-bit-software?
    3. After i installed the evaluation-downloads - can they be activated with a key or do i have to install it again when the CDs arrive in my office?
    Thanks for help
    Solved!
    Go to Solution.

    OnlyOne wrote:
    Thx for the links.
    I am using Windows-7-64bit - should i prefer then also Labview 64? (The NI-download-Links only provides 32bit for download)
    Will there be any problems converting my existing Labview 8.5-Vis to the new Labview2012?
    Thank you
    You can have both the 32-bit and 64-bit installed.  Just remember your target when you build an exe.  64-bit compiled programs can only run on 64-bit machines.
    You should have no problem upgrading your code from 8.5.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Output on LabVIEW the TestStand step results

    Hi,
    I'm building on LabVIEW 8.5 a simple TestStand User Interface.
    My sequences return some values but I don't know how to output them on LabVIEW.
    I was thinking of a table to store the results.
    Any hints on how I'm able to do so?
    I apreciate all the help.
    Thanks in advance.
    Regards,
    Daniel Coelho
    Daniel Coelho
    VISToolkit - http://www.vistoolkit.com - Your Real Virtual Instrument Solution
    Controlar - Electronica Industrial e Sistemas, Lda

    Use the TesStand ExecutionView Manager available in the TestStand tool pallet of LabVIEW and the Execution View. Then when you call our test code (dll, LabVIEW, CVI or what ever) and the return values are returned to the step.Result container based on the type of step. The ExecutionView Manager will automatically display the return value in the Execution View indicator on front panel, if it is a string, a number or a Boolean or etc.
    Look at "C:\Program Files\National Instruments\TestStand 4.1\UserInterfaces\Simple\LabVIEW" as a starting point.
    Notice that there is not any code that reads the return value from the test steps and displays it. The TestStand Engine automatically does it for you. Using the ExecutionView Manager and the Execution View, your LabVIEW user interface will not know when a test step is run or what the return values are without setting up events to trap UI messages from the TestStand Engine.
    If all you need is to see the return value and results this is the way to go.
    Omar 

  • Using ModelSupport2.dll in LabView without TestStand

    I would like to use the ModelSupport2.dll purely in a LabVIEW environment as either by a "Call Library Function Node" or "Active X" or ".NET" without using TestStand.
    In particular I would utilize the the "DisplayPassBanner" and "DisplayFailBanner" functions. I want the banner pop-up's so I can provide a consistency between applications that don't use TestStand and those that do.
    The DLL call requires a numeric input "context" which I am not sure what it needs for a reference number.
    In teststand it is passed an "Object", "CVI Active X Automation Handle", "By Value" from the "ThisContext"
    How replicate this or create equivalent in LabVIEW
    Any suggestions appreciated
    A

    A,
    if you are looking into the sources of ModelSupport2.dll (the sources are included as LabWindows/CVI project and the needed C files), you will see that the display banner functions do access the object referenced by the parameter 'context'. The context is a reference to the dataset of a running TestStand execution when called from the TestStand process model.
    So it will not be possible to use those functions if you are not going to use TestStand/running an actual sequence.
    There are, however, two ways you can go for:
    a) Design a LV VI dialog such way that it looks like one of the banner and call it as a subVI.
    b) Use the LabWindows/CVI sources of ModelSupport2.dll to copy the banner dialogs into a new CVI project (from modelpanels.uir) and create similar functions into a custom written dll which do not require the ActiveX handle 'context' to be passed.....
    hope this helps,
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

Maybe you are looking for

  • Attachment in UWL is opening except for .TXT extension file

    Hi, The attachment in the workitem is oppening in SBWP for all file extensions, For the same workitem in UWL its not oppening. It opens only for .TXT extension files. Please advise how to fix this error. Regards Sri

  • Error 500 message when uploading java applets

    hi i know this is a sever end problem rather than client side, but how do i resolve it. i use IE6 .

  • HOW TO FIRE AN AFTERREPORT TRIGGER

    Hi all, I have an issue concerning executing an afterreport trigger. In my Data template, I put that trigger after the tag </dataQuery> and I have something like this: </dataQuery> <dataTrigger name="afterReport" source="XXEOC_AP_INVOICE_PRINT_pkg.XX

  • Itune video

    I can not view the Pixar video that I've downloaded in itune. It plays the sound of the vidoe, but no image. i can view the video files eventually by using Quicktime, but i wonder why i can't view it with my itune. Thanks.

  • Types in function modules

    hi   i want to know how many types of function modules are there please help in this . thankyou pavan