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.
 

Similar Messages

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

  • 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

  • Compare Labview 11.0 with Labview 8.6

    Dear All
    Can any one give me a crisp comparison between Labview 11.0 and Labview 8.6 in terms od adding new feture and other things.
    Vikas

    http://www.ni.com/labview/whatsnew/features/
    Was that so hard?

  • 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

  • LabVIEW/TestStand/PXI Engineering Architect Role in fast growing Semiconductor Services Company

    A reputed Semiconductor Services company is on the cusp of major growth due to recent Brand Recognition and happy customers. The company is looking for a capable, motivated senior engineer or developer who wants to take the next step toward technical/architecture leadership, team leadership and opportunities to make lasting impressions on customers in order to grow the business and themselves. Some questions to ask yourself before you apply:
    a) Do you have 2+ years of experience in LabVIEW/TestStand/PXI with a strong foundation in Electrical/Electronics/Communications/Computer Engineering
    b) Do you feel that your technical skills in the LabVIEW/TesStand/PXI space have evolved to the level that you can punch above your weight compared to the number of years of experience. We are looking for go-getters who may be 2-3 years experience but make a lasting impression on any customers and come across as 4-5 years of experience because of your innate smartness, command of engineering/architectural concepts, communication skills and can-do attitude
    c) Are you driven by a sense of integrity, respect to your colleagues and a strong team spirit
    d) Do you believe that every meeting and deliverable to a customer is a vehicle for company and personal growth?
    e) Do you enter every project and opportunity with a view to ensuring customer delight and loyalty?
    f) Are you fearless about entering new allied technologies such as LabVIEW FPGA/Xilinx//Altera based FPGA/ Microcontroller programming and system design
    If the answer to these questions is yes, please email [email protected] with your most updated resume and prepare to embark on a career that will fuel your  job satisfaction and growth in the years to come. A strong technical background in the areas mentioned is essential and will be tested.
    Company Information:
    Soliton Technologies Inc. is a value-driven Engineering Services company with over 15 years of experience and steady services growth in the Semiconductor, Automotive, Biomedical and Test and Measurement industries. (www.solitontech.com). Soliton's services range from LabVIEW and TestStand based Validation Automation (often PXI based), GUI Frameworks, Embedded Development Services on NI Embedded targets as well as Microcontrollers, High Speed FPGA Design, Enterprise Software Development on Multiple programming platforms ( C, C++, C#, .NET, Python, Java, HTML5 etc) and Vision Based Test Systems. The company has a strong Semiconductor focus in the past decade with multiple Fortune 500 customers with steady growth and a track record of customer retention.
    Compensation: Not a constraint for the right candidate.

    Hi,
    Kindly arrange an interview process.
    I have attached my resume
    Regards,
    Bharath Kumar

  • Running Labview-teststeps without having Labview installed

    Hello,
    is it possible to create a Teststand-testplan with Labview-teststeps and to run it  _without_ having Labview installed?
    Do i always need a Developer-Labview or is a Labview-Runutime enough to run the Tesplan?
    Thx

    Hi,
    If you are using TestStand 3.x, then you can setup the LabVIEW adapter to use the LabVIEW RTE or a LabVIEW ActiveX Runtime Server. If you are using TestStand 2.0.x then you can only use the Runtime Server.
    The User Manual, will help you to setup the LabVIEW adapter.
    Off course you will still need the correct LabVIEW RTE version installed on your Target machine to match the version of your VI's..
    Regards
    Ray Farmer 
    Regards
    Ray Farmer

  • Qual a diferença do LabVIEW FPGA e o LabVIEW REAL- TIME?

    Hello,
    Could anyone help me? This question arose in my work and could not answer. Does anyone know tell me?
    Thank you.
    Solved!
    Go to Solution.

    Olá, 
    Com o LabVIEW FPGA você programa diretamente o chip FPGA presente no chassis cRIO, placas da NI Série R e single Board RIO. Você programa as E/S diretamente no chip, sendo assim uma programação de mais baixo nível. A grande vantagem do FPGA é o "paralelismo real", o que garante altas velocidades na execução das rotinas programadas.
    Assista ao webcast Introduction to LabVIEW FPGA
    Com o LabVIEW Real-Time você desenvolve aplicações que são críticas em relação a "tempo". Chamamos de aplicações "deterministicas". A idéia é que, se você tem uma rotina que deve ser executada em um tempo determinado, a diferença entre o tempo real e o que você programou seja o menor possível. Aplicações em Computadores comuns não são deterministicas, pois enquanto o LabVIEW executa uma certa rotina programada, o Windows está executando outras tarefas, monitorando a utilização de periféricos, atualizando a tela, etc.
    Real time não significa "Velocidade", mas "Confiabilidade".
    Assista ao webcast LabVIEW Real-Time: Graphical Development, Hard Real-Time Performance
    Hello, 
    With LabVIEW FPGA you program the FPGA chip itself. The FPGA chip is found into cRIO chassis, NI R-Series Boards, and NI Single board RIO. You program the I/O directly in the chip, so we consider this as a low level programing. The main FPGA advantage is the "Real Paralelism", which guarantees high speed execution programming.
    Whatch Introduction to LabVIEW FPGA webcast
    With LabVIEW Real-Time you develop called "time crictical" or "Deterministics" applications. In case of you routine must be executed in a specified period of time, the difference between the real time execution and the time you programmed is as low as possible. Commom computers programming are not deterministic, because in the meantime of executing a certain programmed routine, the OS (e.g. Windows) is running other appication tasks, monitoring peripherals like mouse and keyboard, uptading screen, etc.
    Real-Time doesn't mean "faster" but "reliable".
    Watch LabVIEW Real-Time: Graphical Development, Hard Real-Time Performance webcast
    I hope the information helps you!
    Best Regards
    Felipe Flores
    Engenharia de Aplicações
    National Instruments Brasil

  • Error -18004 with LabVIEW Adapter using LabVIEW Run Time Engine 7.1.1

    Hi to all,
    I am trying to use the LabVIEW Run Time Engine 7.1.1 instead of the Development System for executing VIs in TestStand with the LabVIEW adapter.
    The Problem is that I get the following error, saying that my VIs cannot be executed:
    -18004; An error occurred accessing the LabVIEW Run-Time Engine DLL.
    All my VIs were masscompiled with LabVIEW 7.1.1
    How do I manage this problem, in other words how do I get my VIs in TestStand to run with the LV Run Time Engine?
    Thanks for you help,
    - Caribe -
    PS: I configured the adapter to use the  LabVIEW Run Time Engine 7.1.1. When I check back in the dialog "LabVIEW Adapter Configuration" the selector went back to LV Runtime 7.1??? Thats weird dude!

    Hi Caribe,
    Did you find any solution to this weird behaviour? Even I am facing the same problem! If we set the adapter as LV 7.1.1 runtime engine, it changes back to LV 7.1 runtime engine.
    I am also facing -18002 error after mass compiling LV 7.1 folder and my source code folder.
    If you can share your solution, that would be of great help to me. If i couldnt find any solution, I have planned to revert back to LV 7.1 version.
     Thank you,
    Sasi

  • Calling a VI which uses "system exec.vi" with LabVIEW run-time engine as adapter

    Hi,
    My TestStand sequence calls a VI which includes a call to "system exec.vi". When I try to load it in TestStand and if LabVIEW adapter is set to run-time engine, I get an error message "Unable to load Vi...". If I switch the adapter to "Development system", then it works fine.
    Is there any way to use "system exec.vi" in a VI which is called in TestStand with LabVIEW run-time ?
    Thanks,
    Alex
    Solved!
    Go to Solution.

    Hi Alex,
    In you case, you are getting a -18002 error.
    The reason is explained in the following link:
    -18002 Errors in TestStand
    http://digital.ni.com/public.nsf/allkb/D82FEAF0B4BA293A862575710053E252?OpenDocument
    Please have a look at the 2nd reason. This is your case.
    Hope it helps,
    Regrads
    Julien De Freitas / Applications Engineer / Certified LabVIEW Developer (CLD)
    National Instruments Switzerland

  • 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

  • Is the Aardvark OEM I2C Host Adapter supported with Labview?

    Hi All,
    I am now looking forward to use Aardvark OEM I2C Host Adapter (http://www.totalphase.com/products/aardvark-oem-i2c/)
    in LabView2013.
    Question:
    Is this device supported with LabView?
    How can I use this device?
    Best Thanks,
    Jessie

    Yes
    We have plan to buy and use Aardvark OEM I2C Host Adapter and use it with LabView2013.
    I am searching if this device already has LabView VI's for I2C communication.
    I am not sure If we can use the VI's for Aardvark I2C/SPI Host Adapter to Aardvark OEM I2C Host Adapter.
    Before we decide  to buy Aardvark OEM I2C Host Adapter we just want to make sure that we can use it.
    Best Thanks.
    Jessie

  • "Inco​rrect function&q​uot; error on PostUIMess​ageEx in Labview with Labview runtime

    Hi,
    I have a TestStand GUI developped in C#. Now, TestStand has some Labview modules that needs to send UIMessages to the GUI (It is too deep in Labview code to bring it back to TestStand to send the UIMessage).
    When I am using the Labview Full development version 8.6.1, everything is fine, I can see my messages. Now, when I switch to Labview run-time 8.6.1, the invoke node PostUIMessageEx gives me an error: Incorrect Function (error 1).
    I have been trying rebooting PC/TestStand/Labview without success. Is there anything I am missing?
    Thanks
    Alex
    Solved!
    Go to Solution.

    Hi Manooch_H,
    Changing to synchronous did not change anything. In fact, being asynchronous was a previous test, and I forgot to change it...
    I have been trying few experiments, and here are the results:
    1) I decided to change strategy. The Labview code would change a global variable. And in my PostStep callback, when I see that my global variable is deifferent from "", and send it to the GUI using a UIMessage, and I put it back to "". I know, I know, it is not optimal. But this way, the UIMessage is from TestStand to c#, and not from Labview to c# using teststand api... But, I ran into a similar problem using the SetValString in Labview to change my global variable.
    2) What I do, is that I keep my Engine reference in a functional global. I have been trying to use either IEngine or Engine (TestStand.Engine.1) from the NI TestStand API 4.1.1 Version 1.0.
    3) When I call my VI directly without using my Engine reference kept in the functional global, it is working. But I noticed that if I call this VI 3 times in a row, the Engine reference is different each time. It does mean that the Engine reference I am keeping in my functional global would be no more valid! So when I am using my functional global, it is not working...
    There is something I don't do right. Is there a way to give Labview an Engine reference that would be valid throughout my execution? Or do I need to give back the updated reference each time I want to use the Engine in Labview?
    Thanks
    Alex

  • LabView/TestStand Developers wanted in Dallas with Systems Integrator

    VI Technology is currently looking for LabView/ TestStand developers for the Dallas Area. www.vi-technolgy.com  Please email [email protected] or call or dallas office at 972-233-1950 ext 201. 

    Thank you for your replies. We have found a suitable candidate.

Maybe you are looking for