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.

Similar Messages

  • 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

  • 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

  • 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

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

  • 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

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

  • Replacing a PLC with LabView Article

    I just read the article "Replacing a Programmable Logic Controller (PLC) with LabVIEW and FieldPoint for Composting Plant Automation ". I am very concerned by the author's lack of knowledge about current PLC's. This article does not fairly compare the two platforms and is not accurate. For example, the author states that 100 msec is a typical response time for a PLC. This is absurd. Today, even low end PLCs can achieve responses time below 10 msec and high end PLCs even as low as 1 msec. It all boils down to specifying the right hardware for the application. One real danger the author does not address with building a "soft PLC" is the potential for the I/O not to fail to a safe condition if the operating system (Windows) lock
    s up. This can be disastrous and unsafe for many control applications. I would suggest any reader that is seriously considering replacing a PLC in an industrial environment with a "soft PLC" watch out for this potential shortcoming. Readers can visit www.isa.org to find additional information on this issue.
    I would not dispute that for a pure data acquisition application LabView can offer a superior solution. The safety conern can be mitigated if there is a "hard wired" safety system that has been properly designed. However, many times the PLC may provide safety shutdowns that depend on its true deterministic operating system and high reliability.
    I hope that readers will not interpret this as a slam against LabView but as encouragement research this issue further from a different perspective.

    I can see from your comments that you have a firm grasp of the PLC/vs PC concept, and agree with your comments. I have been an instrumentation developer/integrator for 36+ years, and have first hand experience with the situation(s) to which you refer. I have found the optimum solution has been a combination of PC/MMI software and PLC hardware. I have many such systems up and running in different industries, and have found this to be the best overall solution. Let the PC do what it does best(MMI display, complex calculations and decision making), and the PLC what it does best(solid deterministic control, with a non-windows operating system). I usually use an OPC server for communication between the two units, and with proper software design on both ends,
    and a hardwired E-Stop system, excellent overall opertion/safety is achieved.
    Your comments should serve as good stimulus for other developers.
    Dave

  • Organize Bookmarks: I want to rename a batch of ~100 bookmarks with search-replace

    Organize Bookmarks:
    I want to rename a batch of ~100 bookmarks
    changing words in the "name" field with search-replace
    Please
    (a) tell me a work-around, or
    (b) program a plugin for a more advanced bookmarks editor.
    thanks a lot!

    You will have to export the bookmarks to an HTML file and edit that file to make the change. You need to remove all existing bookmarks before re-importing that changed file or you will have to remove all duplicates. If all the bookmarks that need to be changed are in one folder then you can remove the other bookmarks while editing.
    See http://kb.mozillazine.org/Backing_up_and_restoring_bookmarks_-_Firefox

  • I am looking to replace the hypertermi​nal with labview code

    I am trying to replace the hyperterminal with labview code. I am getting visa read error. Please provide me the sample code or let me know where I can find the sample code?
    Thanks
    Jey
    Attachments:
    SERIAL_READ.vi ‏50 KB

    Jey,
    here is my hyperterm replacement, I use it for first serial tests on new devices.
    It's maybe more than you need and not even documented.
    It's in LabVIEW 7.1 now (was 6.1), and this new serial assistant looks even more powerful than this, however I haven't used the assistant (started with LV3.1 ;-)
    Greetings from Germany
    Henrik
    LV since v3.1
    “ground” is a convenient fantasy
    '˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'
    Attachments:
    Serial tester.llb ‏196 KB

  • Using Microsoft Message Queues (MSMQ) with LabVIEW

    I want to use the Microsoft Message Queue to communicate between applications on different machines. Does anybody have experience in using the MSMQ with Labview (in the .NET framework)? How do I send messages? The MessageQueue.Send method requires an object, and I don't know how to create this object format.
    This question was asked several years ago on this forum and no answer was given.
    I would appreciate any examples of Create a Queue, Delete a Queue,  Send a Message, and Read a Message in LabVIEW 7 or earlier.
    Thanks,

    P.C.
    I'm a little confused by what you mean.  I thought you were sending messages through the MSMQ, but the code there would receive a message, get the body, then display the body of the message.  The Object that the invoke node refers to is the Body of the Message, which has no properties, but has a few methods like ToString that you can use to get the string from the Body. 
    You need to wire up the references into the invoke and property nodes to get the selection of the methods or properties that are available.  Do they just not appear when you are using the invoke node with a reference to the body?
    Message Edited by Coal Man on 06-04-2007 01:56 PM
    Brian Coalson
    Software Engineer
    National Instruments
    Attachments:
    msmq.Jpg ‏40 KB

  • Using PVCS keyword replacement with LabView

    Has anyone tried using "fixed keyword expansion" with LabView? There is feature that you can use to replace text strings in a binary file but I've not been able to make it work for a VI.

    > Has anyone tried using "fixed keyword expansion" with LabView? There
    > is feature that you can use to replace text strings in a binary file
    > but I've not been able to make it work for a VI.
    I don't think that is going to work. PVCS has no way to know about the
    offsets and size fields located in a given VI. I'm not familiar with
    the option you are asking about, but my suspicion is that it is
    specifically designed for a particular resource format or EXE format.
    If you are looking for a solution to translate strings in a VI, there
    are menu items under Tools>Advanced for Exporting and Importing strings.
    The file format is pretty readable for hand translating, and pretty
    easy to parse if you want to extract the strings to another form,
    translate, an
    d rebuild.
    Greg McKaskle

  • Execution of TestStand-Sequence in LabVIEW via TS-API: Different Execution times for same sequence

    Hello Forum-Members,
    I have a problem concerning the execution of an TestStand-Sequence in LabVIEW. I have created a VI that offers the ability to choose a TestStand-Sequence-File and then executes the sequence using the TestStand-API. The implementation is based on an example in C++-Application found following this link:
    http://forums.ni.com/t5/NI-TestStand/Unreleased-references-using-engine-API-in-C/m-p/2927314#M46034
    The implementation works quite solid in case the VI is executed the first time. The VI processes the chosen sequence in a acceptable duration.
    But in case the execution is started a second time, the execution of the sequence takes ca. 30sec more than in the first case.
    Until now I have not found a solution and hope someones got a hint concerning this problem...
    I am using LabVIEW 2013 and TestStand 2013.
    I have attached my own VI, a sample sequence with a small sample VI, so you can reproduce the problem.
    Kind regards,
    TobiKi
    Solved!
    Go to Solution.
    Attachments:
    Exe-TestStand-Sequence.vi ‏25 KB
    Sequenz.vi ‏8 KB
    Test-Sequenz.seq ‏5 KB

    Hi Norbert,
    first thanks for your answer.
    What would be a reasonable way to replace the "Execution.WaitForEndEx"? My first idea is to get the respective thread of the execution and use the "Thread.WaitForEnd".
    To clarify my problem:
    The execution of the sequence itself takes longer time and so the execution of the calling VI. I have attached pictures of the log file of the first and second execution.
    Further I don't get any dialog popups during the shutdown of TestStand. (I have activated the "ReportObjectLeaks" using the "DebugOptions") While developing the attached VI I've gotten several popups. But these popups disappeared after closing all references.
    Maybe you have another hint how to locate the problem.
    TobiKi
    Attachments:
    FirstExecution_20-08-2014.png ‏16 KB
    SecondExecution_20-08-2014.png ‏16 KB

  • MSMQ with Labview

    I want to use the Microsoft Message Queue to communicate between applications on different machines. Does anybody have experience in using the MSMQ with Labview (in the .NET framework)? How do I send messages? The MessageQueue.Send method requires an object, and I don't know how to create this object format.

    Jim,
    please find attached an MSMQ send/receive example I've created with LabVIEW 8.2.1
    To get it working, you need to do the following:
    1. Make sure MSMQ is installed on all involved machines, senders and receivers. The attached ZIP archive contains batch files to install MSMQ on Windowx XP and Vista in the so-called workgroup mode (does not involve active directory integration).
    2. Manually create a private queue named "labQueue" or whatever you like on the receiving(!) MSMQ target machine.
    See http://technet2.microsoft.com/windowsserver/en/library/53f029d6-8824-4b1b-a312-167b03f5fca51033.mspx... for instructions to do so.
    Important note: people often misunterstand the term "private" in a way that such queues would only work locally, within one machine. This is not the case, in fact there is no kind of local-only receive queue like there is no local-only TCP port binding and private queues are open to get messages from anywhere. They are just not public to the active directory queue management services so any sender needs to know the correct target address itself.
    3. Adapt the "FormatName" string of the SampleSender.vi that it points to the queue on the MSMQ receiver, that is: Insert the queue name you've chosen and replace the IP with the address of the target machine.
    Run both VIs, SampleSender.vi and SampleReceiver.vi and send single messages typed into the "myMessage" string control by pressing the "Send" button or create looped bulk messages with the corresponding boolean switch control.
    To experience the coolness of MSMQ, send some messages from the running sender VI before the receiver was started, then start the receiver VI. Or run both VIs on 2 different machines, unplug the LAN connection of one while still sending messages and then plug it in again. MSMQ does all the caching for you in case one of the peers is temporarily unavailable. This rocks!
    The VIs demonstrate a very straight forward use of the .NET System.Messaging namespace for synchronous MSMQ messaging. A more elaborate (and better) way included the automatic creation of non-exisiting receive queues and asynchronous message receiving with .NET events.
    Greetings + have fun,
    Hans
    Attachments:
    MessageQueue (MSMQ).zip ‏31 KB

  • 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

Maybe you are looking for

  • Why will music not play on my iPhone?

    None of my music is playing on iTunes from my phone.  It works on my computer, but only about 4 songs will play on my phone.  I have tried restarting my phone and syncing it to the computer and the music will still not work.  Does anyone know how to

  • HT4528 How do I set up separate icloud accounts on two phones with one apple id?

    My husband and I have two iPhone 5s and one Apple ID.  I set up my iCloud account and we want to set up a separate one for him so we don't share each other's contacts, etc. 

  • Changing account on Icloud

    How can I change the icloud account on my iphone to another icloud account? Right now my phone is on one itunes account, but my icloud is on another. If I click on the icloud account on my phone, it won't let me sign out of that icloud account and lo

  • Error while using UTL_FILE package

    I am getting error while using UTL_FILE package in apex 3.0 version Pls help me out.

  • Integration of TFS with Eclipse to run the Selenium scripts

    Dear All, We came across with a difficult situation to build an automation framework for our customer. The objective is to find out a common scripting language/tools which can integrate and run automated scripts from both HP ALM and MS TFS test manag