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

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

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

  • 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

  • Queue with callback function not dequeuing

    Hi,
    I would like to ask you for help or for a hint regarding our problem with the queue:
    A trigger is enqueuing to a queue. This works fine, but the callback function is never called. The queue already worked for a while, but since i changed something at the procedure called by the callback it does not work anymore.
    I already have tried the following:
    -Stopping and restarting
    -Dropping and recreating (with the scheduler having no jobs anymore)
    -Dropping, restarting the database and recreating
    None of these worked. Where do I fail, when considering that the queue with the same scripts worked already? I post the script for creating the queue and adding the subscriber:
    CREATE OR REPLACE TYPE pat_history_queue_payload_type AS OBJECT
    ( TSTAMP VARCHAR2(22 CHAR),
    TYP VARCHAR2(10 CHAR),
    DELTA_MENGE NUMBER,
    ORIGIN VARCHAR2(1 CHAR),
    TEXT VARCHAR2(1000 CHAR),
    QL_TSTAMP VARCHAR2(22 CHAR)
    BEGIN
    DBMS_AQADM.CREATE_QUEUE_TABLE (
    queue_table => 'pat_history_queue_table',
    queue_payload_type => 'pat_history_queue_payload_type',
    multiple_consumers => TRUE
    END;
    BEGIN
    DBMS_AQADM.CREATE_QUEUE (
    queue_name => 'pat_history_queue',
    queue_table => 'pat_history_queue_table',
    max_retries => 10
    DBMS_AQADM.START_QUEUE (
    queue_name => 'pat_history_queue'
    END;
    BEGIN
    DBMS_AQADM.ADD_SUBSCRIBER (
    queue_name => 'pat_history_queue',
    subscriber => SYS.AQ$_AGENT(
    'pat_history_queue_subscriber',
    NULL,
    NULL )
    DBMS_AQ.REGISTER (
    SYS.AQ$_REG_INFO_LIST(
    SYS.AQ$_REG_INFO(
    'pat_history_queue:pat_history_queue_subscriber',
    DBMS_AQ.NAMESPACE_AQ,
    'plsql://PAT.HISTORY_QUEUE_DISTRIBUTION.CALLBACK',
    HEXTORAW('FF')
    1
    END;
    The function CALLBACK which is called by the queue, is never called, I checked that with log messages. Also the package that contains the function is compiled ok.
    Thanks.
    Roland

    Hi,
    Does the subscription show up correct in sys.reg$ ?
    Regards,
    Harry
    http://dbaharrison.blogspot.com/

  • Migration from Serial polling to Serial queue with event handler

    Hi, I am trying to migrate from classical serial polling communications to serial queue with "event handler" for the buttons pressed by the user. I have placed four while loops, one for the event handler, a second one for serial reading, a third one for serial writing (depending on what button was pressed) and the last one for processing what was read from the serial reading while loop, via a queue.
    My attached device reads the signals from 8 sensor ( 4 temperature and another 4 temperature plus humidity in the same sensor ) and send them via serial to Lavbiew.
    First of all, only once just after running the LV program, I must turn on my attached device with an ON command plus a carriage return after that the device will respond with the number of sensors plugged to it, disabling the corresponding buttons in the front panel. Then labview must wait until I pressed Acquire Button (event handler) and send a CF command plus what sensors to acquire plus a carriage return, then the device will respond continuously to labview with the sensor readings until I press the stop button (event handler), there is also another button to exit the program, also with event handler.
    I am having problems using the event handler and the queues because I am new using these structures, I have looked at  the LV examples but there is nothing concrete on using serial with event handler and queue.
    Take a look at my VI and you will soon notice what kind of problems I am having, any suggestions will welcome.
    Thank's in advance.
    Regards.
    Attachments:
    serial queue.zip ‏76 KB

    Hi Luisete,
    Maybe the problem arise because you are En- and DeQueue in parallel. You do a lot of things in parallel, that is nice if you are sure that one loop doesn't have to wait for another loop. Make sure you don't dequeue before enqueue.
    Hope this helps
    I never knew that the standard error cluster output could be wired directly to the loop control of a while loop.
    First time I see this

  • Lost ActiveX connection with LabVIEW server

    I have called LabVIEW in TestStand and tried to execute the test cases .
    While executing I got the following error:  ( Lost ActiveX connection with LabVIEW server.
    The LabVIEW adapter will try to reconnect on the next execution attempt.-18001; An error occurred accessing the LabVIEW ActiveX automation server.).

    Same error.  Is anyone from NI going to bother commenting on this?  It's been >8 months...

  • 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

  • Crane Aerospace and electronics is looking for Test Engineers with LabVIEW experience - please disregard previous post.

    Here is the correct post:
    Are you detail-oriented, creative, and technically skilled at Engineering design and development?  Come to Crane Aerospace & Electronics and use your excellent Engineering skills to design, improve, and deliver the next generation of products in the aerospace and electronics Industry!
    We have a unique and exciting career opportunity for Engineer II, Test.
    You will be responsible for maximizing new product development and manufacturing performance through the creation and deployment of test strategies, tools, and plans.  Design and implement high performance hardware and software for test equipment.  Authoring test procedures and performing Qualification test activities.  Ensure high product quality.
    Responsibilities:
    Collaborate with customers and multi-disciplined engineers to establish/clarify test, qualification, verification and validation requirements.
    Write test plans, procedures, requirements and reports in a highly structured environment.
    Analyze, develop and deploy complex and high performance test hardware and software solutions for automated test equipment. 
    Design, develop, debug, validate & verify the fabrication of manual and automated test equipment at the circuit board and system level, and specify and procure COTS test equipment.
    Develop/maintain hardware documentation including block diagrams, schematics, BOMs, wiring diagrams and wiring lists, software documentation, and configuration control of initial release and updates. 
    Perform detailed calculations to establish test equipment specifications and design margins.
    Maintain existing test systems through bug fixes, improvements and modifications.
    Support the estimation of costs and schedules to develop or upgrade test platforms.
    To perform a number of the above responsibilities with limited supervision.
    Minimum Requirements:
    Experience: 2-5 years.  Previous work experience in aerospace, space or medical electronics industry preferred.
    Knowledge: Microprocessor / Microcontroller hardware and firmware design; Analog Circuit and power supply design; Digital Circuit Design including high-speed serial communication design; Firmware programming in c; Schematic Capture, PADS Logic preferred; Circuit Simulation; Fundamentals of magnetic proximity, temperature, and pressure sensing electronics; ESD; Familiarity with testing standards (MIL-810, MIL-704, and DO-160 preferred).  Basic laboratory test equipment; LabVIEW experience, certification preferred; Developing hardware per DO-254 and software per DO-178 preferred; Experience with Adobe FrameMaker, IBM Rational tools, TestStand, Microsoft Project preferred.
    Skills: Good interpersonal and communication skills (verbal and written)- effectively lead and/or participate in multifunctional teams in a dynamic work environment. Ability to manage multiple tasks, flexibility to switch between tasks and prioritize tasks. 
    Education/Certification: Bachelors Degree in electrical engineering, computer science, physics or related technical discipline.
    Eligibility Requirement: Must be a US Person (under ITAR rules) to be eligible.
    Working Conditions:
    Working conditions are normal for an office/manufacturing environment. Machinery operation requires the use of safety equipment to include but not limited to safety glasses, heel straps, and shop coats.
    Requires lifting 25 lbs
    Apply online today: http://ch.tbe.taleo.net/CH06/ats/careers/requisition.jsp?org=CRANEAE&cws=5&rid=3170
    Crane Aerospace & Electronics offers competitive salaries and outstanding opportunities for career growth and development.  Visit our website at CraneAE.com for more information on our company, benefits and great opportunities.
    In our efforts to maintain a safe and drug-free workplace, Crane Aerospace & Electronics requires that candidates complete a satisfactory background check and pass a drug screen prior to employment.  FAA sensitive positions require employees to participate in a random drug test pool.

    How can you say you are hiring test engineers with LabVIEW, yet the job description doesn't even mention LabVIEW.  All I see in there is CAD design.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Unload All Modules sometimes doesn't work with LabVIEW

    TestStand's File >> Unload All Modules (and its RunState.Engine.UnloadAllModules() function) sometimes works and sometimes doesn't (with LabVIEW). When it doesn't, I have to quit LabVIEW to make TestStand unload LabVIEW VIs, otherwise I can't edit them.
    Is there an "Unload All Modules" command that works all the time?

    Hm, i assume that you have callbacks defined which do call those modules. Possible callbacks to look first are: SequenceFileLoad/Unload, FrontEndCallback.
    Another possible reason is that there are components running in the LV RTE (runtime engine) calling into the VIs you try to debug/modify in the development environment.
    Can you pinpoint the "lock" to specific sequences/modules? Do they lock only after specific sequences/modules have been executed?
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Reading Advance Queuing with XMLType payload and JDBC Driver character encoding

    Hi
    I've got a problem retrieving the message from the queue with XMLType payload in Java.
    It was working fine in 10g database but after the switch to 11g it returns corrupted string instead of real XML message. Database NLS_LANG setting is AL32UTF8
    It is said that JDBC driver should deal with that automatically but it obviously don't in this case. When I dequeue the message using database functionality (DBMS_AQ package) it looks fine but not when using JDBC driver so Ithink it is character encoding issue or so. The message itself is enqueued by the database and supposed to be retrieved by dedicated EJB.
    Driver file used: ojdbc6.jar
    Additional libraries: aqapi.jar, xdb.jar
    All file taken from 11g database installation.
    What shoul dI do to get the xml message correctly?

    Do you mean NLS_LANG is AL32UTF8 or the database character set is AL32UTF8? What is the database character set (SELECT value FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET')?
    Thanks,
    Sergiusz

Maybe you are looking for

  • Keyboard backlight not working correctly after leopard update

    My mbp originally came with Tiger (10.4), when Leopard (10.5) was released I updated. The backlight for the keyboard works normally until I installed the 10.5.1 update. After 10.5.1 and all other updates the keyboard backlight no longer worked correc

  • For the blue screen at Leopard install, this tech report works for me

    http://docs.info.apple.com/article.html?artnum=306857 I used the second "solution" and my system booted properly after typing in the command lines mentioned in the article. Good luck

  • Status mismatch for GOA approval

    Hello All, Landscape SRM 4.0 connected with multiple backends R/3 4.7 Workflow WS90100022 for GOA BUS2000113. In BBP_PD status is HEADER     I1015          Awaiting Approval In Document display 'Approval Preview', I can see workflow started -> Result

  • Best practice for migrating from C160 to C370

    Hi there I am upgrading from C160 to C370. I have lots of policies and filtering created in C160. How do I migrate all the configuration and policies to my new box? Hope someone can advise me. Thanks. Winston

  • Unable to replace Harddisk for Macbook

    Hi I am trying to replace my macbook hardisk. here are the steps I followed, but no success 1. reomved battery 2. removed L shaped RAM door 3. pulled harddisk 4. remove the old harddisk from the base 5. plug new harddisk on the base, and push into th