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 KBI 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.
Vikashttp://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,
OriolHi,
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 -
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?
ThxHi,
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 KBHi,
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,
JessieYes
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 -
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
-
Having a Problem Backing Up Paid For Apps on iPhone to iTunes
Hi, I am having a problem finding out how to back up/sync the Apps I have purchased on my iPhone and have on my iPhone BUT did not purchase in iTunes nor do I have them in iTunes. Basically, I did not purchase these apps on/in/through iTunes. I got t
-
Apple AirPort Express - HP LaserJet M1120 won't print entire document
Hi, My first post. I've recently purchased Airport Express and installed all necessary programmes (incl. Airport Base Station Agent and Bonjour print service) on my Win 7 Ultimate x64. The device is set up as "Join a existing network". Airplay works
-
Save as PDF dialog popping under all other windows using Acrobat 9
One of my clients recently upgraded a bunch of their workstations to Windows 7 64bit Enterprise edition. Now when they try to print to a PDF by selecting the print option in any application and then selecting the PDF printer, the dialog box pops
-
We currently have ORDS 2.0.9 installed on WLS 10.3.6 running on Windows 2008R2 behind an F5 load balancer. When the load balancer sends the connections to the server we configured first, everything works fine. When the load balancer sends the connect
-
I have iPhoto Version 8.6, and and want to upgrade to Version 9. I can't find a download for Version 9.0.0. Exactly what version do I need to download, and or buy, and where do I find it? Every version of 9 that I download tells me I need an earlie