SyncManager Enqueue in Labview

Not sure if this should go in the jury TestStand and Labview, so I'll try TestStand first...

I'll build a TestStand testbed that uses the model of parallel processes. I want to replace the standard dialog use with a custom dialog generated using Labview (either incidentally, the requirement of test bench needs barcode custom entry screens).

I now have a system that works. Basically, I put the TestStand ModelOptions "ParallelModel_ShowUUTDlg = False" parameter and interact with my own Dialogue USE LabVIEW in PreUUT and PostUUT. I send data TestStand > Labview wrapper around standard objects of sychronisation Labview screws. These work fast as lightning!

The main issue was to know how properly to find my Labview UUTDialogue information (barcodes and control tags etc), each parallel execution TestStand, i, e. Labview > TestStand. I did successfully logging into Manager synchronization and Enqueueing my messages to relevant TestStand execution. I have attached my Labview VI that performs this task.

It works, but my only problem is the speed of the call of the queue (specifically the IQueue.Enqueue call node). This unique procedure takes about 1 second to run each time. I tried the value true to the 'processMsgs' parameter, but it does not help. Calling the nodes invoke for the NewPropertyObject, the SynchManager and the GetQueue are fast. Only the calling node queue is slow.

Everything else seems to work as expected - all data structures through parallel executions TestStand as expected. Any ideas why the queue is so slow?

Kind regards

Tom

Tom,

It's an interesting discovery. I've seen a few references to global queues (with the asterisk) run more slowly as local, but had not seen any mentions of THIS slow. I am happy that you have at least found a work around. I thought at first that you were right, that LabVIEW and TestStand to perform in different processes, but I think that this applies only if you have configured the adapter for LabVIEW to run in the development environment. I think that if you use the adapter in the runtime, then it is in fact an instance of RTÉ opened in TestStand courses. See the TestStand help here: http://zone.ni.com/reference/en-XX/help/373892E-01/tssemiconductor/performancelvrte/

"The map of LabVIEW TestStand can run modules of code VI in the LabVIEW development system process or by using the runtime (RTE) LabVIEW, TestStand courses"

And in this white paper: http://www.ni.com/white-paper/14335/en/

"By default, all screws are called in the instance of the main application of the module LabVIEW Run-Time Engine loaded by the process of TestStand"

So, IF you have set up your adapter on RTÉ, then I think that it makes sense that you are able to access the queue without the asterisk. Of course, if you are running in dev engine, so I guess you will need to use a global queue. I hope this helps!

Cason

Violaine applications, OR

Tags: NI Software

Similar Questions

  • Enqueue cluster for Labview Teststand, return a cluster by notification

    Hi all

    I get very very frustrated that I can't find a way to spend

    an asynchronous VI with a cluster of Teststand reflecting a LV

    cluster using a queue.

    This works if wire you the cluster Teststand for the VI is there

    an order appropriate to link to. Yet, the VI has no

    Connector, he expects that a cluster in queue, read of the

    PropertyObject by 'GetValVariant', do some magic

    and is supposed to return another cluster using Teststand

    a notification

    I can read singular elements of the cluster in queue, but cannot

    Run in a cluster of LV with, say, the good old 'VariantToData '.

    which indeed works great inside LV

    Same thing happens when I try to regain a Teststand cluster

    using 'SetValVariant' even if both the Teststand cluster

    and the cluster of LabView are the same format and structure.

    The 'Wait' Teststand notifier action is linked to the right cluster

    property, but Labview fails at the "SetValVariant", because not of

    the right type, even if I have sunk the variant data.

    I wonder if I do wrong or Teststand and Labview

    are simply not designed to work together seamlessly.

    Here's the example I'm putting in place, but the reading of the

    cluster fails, while the alternative 'False' works (123.00)

    Defining the notifier cluster fails too, but its definition the

    elements indivualy also fails because Labview is

    What are 'Compliance' and 'Comments' in

    the 'True' alternative, although I tried all

    hierarchy tree.

    You might have figured out, but I really really need to

    get this working, and I can't understand where the

    default is (next between the Chair and the keyboard) because

    the principle works in LabView.

    David Koch

    Okay guys, I give up all hope, that I had to do this work.

    This is a WIP Teststand container/Labview cluster motor relay.

    TestStand 2013-> TCS_main_2.0.4.seq (run TCS_teststand_2.0.0.vi)
    LabVIEW 2013-> TCS_teststand_2.0.0.vi (run TCS_instruments_2.0.0.vi)
    LabVIEW 2013-> TCS_instruments_2.0.0.vi (interface instruments)

    The main idea was to catch Teststand queued of containers,
    convert a Variant, to analyze their structure and
    to match with their counterpart of cluster of Labview.

    The engine is initialized to 'learn' the Labview
    data structures, storing the data type and the names of the clusters
    different elements, as well as the cluster hierarchy.

    A format of target data type and an associated action are also
    stored for each identified cluster/container.

    Then the engine is waiting for incoming Teststand queue
    containers, convert them to a Variant, to analyze their
    structure and * TRY * to match with the stored
    having been analyzed Labview homologous groups.

    This is what I call the "footprints".

    The three main problems were... are:

    1 - different naming convention (TCS_string_teststand_name_convert_2.0.0.vi)

    2 - format of different data type (TCS_variant_tree_convert_2.0.0.vi)
    3 - different (TCS_propertyobject_tree_parse_2.0.0.vi) data structure

    I think I was very close to resolving these issues, but I'm
    short on time. As an entrepreneur, I've spent
    more than a month of work on this value. Who is
    too many given my dead line.

    I'm quite sad to be leaving this unfinished, he would have
    was great to get the motor relay pole upward and
    running, having just to place a container Teststand
    to get something done automatically at the other end
    and just wait for a notification sent for analysis.

    What's left to do is the following, as an exercise
    left for the reader:

    To "explode" the data structure to correspond to of Teststand "
    still more verbose simpler data format

    This means for example that a Labview wave have to
    be transformed into a cluster of 3 datas. You can read the
    suite of document, but it is not very clear on how
    The LabVIEW data type formats are converted to their
    corresponding Teststand counterpart:

    http://zone.NI.com/reference/en-XX/help/370052N-01/tsref/infotopics/labview_data_types/

    Beware, this involves a lot of trial and error, as
    creating a large Labview cluster with all data
    type of support, import it in Teststand and create
    a custom, data type and then compare each converted

    a data type.

    B point A would improve the adequacy between Teststand
    containers and clusters of Labview.

    With a longer data structure mirrored, it will indeed
    help 'TCS_fingerprint_search_2.0.0.vi' to compare
    the structure of the Teststand container with the correspondent
    LabVIEW cluster structure, the elements names
    Always different Convention.

    Conversion of data format C - needs to be done, place holders
    are ready to be filled.

    There are still a lot of work to do in 'TCS_variant_tree_convert_2.0.0.vi '.

    Remember that the type of data "FileGlobals.tcscluster".
    mirrors (wise Teststand) the 'TCS_instruments_2.0.0.ctl '.
    type definition.

    This means that a string has not transformed a waveform.
    Data format should be very close to each other. That's why
    There is no need to focus too much on these "exotic" data
    format conversions.

    Thanks again to all the people who have invested some time
    in trying to help me solve this issue.

    Thanks to nathand for its cluster monitor not recursive.

    David Koch

  • Using the Manager of synchronization for exe OI LabVIEW and TestStand

    We would like our operator LabVIEW executable Interface send data via a queue of TestStand to a sequence of logging.  The SyncManager API looks like a slick way to do this because it allows access to the synchronization objects other processes outside TestStand TS.  I created an experimental sequence of trying the concept.  The sequence creates a queue with a step of queue TestStand, up a point to another TS not queue, then uses calls to ActiveX in the SyncManager API to add another element to the queue of waiting.  That all works.

    When I added a LabVIEW VI to place another element through similar calls to ActiveX in the SyncManager API, the VI is not a valid reference to the queue and so it cannot place the element.

    I read on the forum that TS queue name must start with * in order to be accessed by separate processes on the same computer.  When I add a * on my queue name, queue TS operations continue to operate, but step that uses a call of ActiveX in the SyncManager API to get a reference to the queue returns one null ref so the next step of enqueue ActiveX returns an error.  In addition, the LabVIEW VI still does not receive a valid reference to the queue either.

    Ideas and suggestions welcome!  The sequence and LabVIEW VI are attached. Using LV and TS 2012, obtained similar results in 2013SP1.

    Thank you!
    Hans

    The queue API expects a PropertyObject not a string for the newElementPropObj parameter (not sure why LabVIEW similarly let you thread a string). To create a new PropertyObject, you can do something similar to the following:

    myProperty = engine. NewPropertyObject (PropValType_String, false, "", 0);

    myProperty.SetValString ("", 0, theActualString);

    Enqueue it.

    Close the ref to myProperty after you're done with it (i.e. after the queue it) in order to avoid leaking.

    -Doug

  • Sharing between several executable LabVIEW data queue

    I have 2 Executables (Exe) of LabVIEW where an Exe generates data and other we consume the same. Is there anyway that I can use a single queue for the same reference? Exe first gets the number of queue and stores the reference number in V.I.G where the second Exe to read this this V.I.G. reference number The error of the VI second dequeue mentioned the invalid queue.

    Is there anyway that I can share the same data between different exe files with the functionality of a queue?

    Each exe is mapped in its own memory space so in a context resource refs will not work in another, but...

    If you presentation engine of the Action in an instance must be used via the server VI Invoke node on the other, EI (Note: it will run in the context of the server) could queue data in the customer's name.

    Plese Note:

    If the alternate server is idle all of its resources will be invalidated (including the queue) but a ref to the EI will be valid. In this case, the enqueue op will fail if you have the code to take account of this situation. (been there, done that )

    The same approach works in any network where serve architecture VI can be used. I've used this approach about 10 years (less the queue) to allow the control of a plant of a laptop computer with an internet connection.

    Ben

  • Queues of LabVIEW and TestStand

    Hello

    I have a VI that uses several loops/queues to acquire data from a data logger and write the data to a csv file.

    What I want to do is start this TestStand VI and run data acquisition/writing until certain conditions require the data logger to be returned to power.

    Is it possible to pass a reference to the queue of the VI running somehow to TestStand and update the queue of TestStand to stop/start datalogging necessary?

    Maybe there's a better way to do it?

    Any help is greatly appreciated!

    Thank you best regards &,.

    Shane.

    TestStand access not directly a queue in LabVIEW.  TestStand and LabVIEW do not share an instance of the application.

    I Assume you called the QMH asynchonously so that the Launcher ends while the QMH continues to run

    Pass the reference queue to TestStand (U32) and call a specific "Enqueue for MySpecific Queue.vi" LabVIEW Module with the appropriate ref and data.  All this presupposes the QMH remains in memory.

    This example gets to be excessively complex, so I tend to use the Action with TestStand engines.  Loading and unloading options need attention though as long as the shift register (and, therefore, private data) leave no memory until you want to close the three-year

  • Convert a name cluster Labview Teststand container name

    Hi all

    I realized that day that there is no way to convert a Labview

    cluster in a container of Teststand and vice versa. So I'm currently

    work on a cluster/container recursive parser that would be

    rebuild the structure of mirroring in variant/PropertyObject

    tree. For this I use the following table:

    http://zone.NI.com/reference/en-XX/help/370052N-01/tsref/infotopics/labview_data_types/

    The problam I am now facing is to convert the name of each

    ELEMENT by its name to stay compatible with the

    the structure of mirroring. That's why no space or special characters

    to follow the naming convention Teststand. You can

    See what happens when you create a custom data Teststand

    Type a connector for Labview.

    So, is there a VI that do the trick, or am I still pruposed to do

    Everything by hand? Thanks for your comments. Even the one who

    will not make me happy.

    David Koch

    Abandoned project, topic closed:

    http://forums.NI.com/T5/NI-TestStand/enqueue-TestStand-cluster-to-LabVIEW-return-a-cluster-by/m-p/30...

    David Koch

  • How labview processes images of queue queue?

    LabVIEW makes a copy of a picture every time that it enqueues (quid dequeue) it? In other words, if I just create a single image on the acquisition, the emptiness of this original will cause the lost images in the queue?

    I think I have a loop (Subvi) to make the image acquisition and the other loop to process the image.  The acquisition will take 30 images (for LEDS of different) in bread, send this image Board to a queue and then continue to acquire. The other loop will remove it when he has the time. At this queue/waiting to treat slowly down the acquisition (for example wait for the copy of the image of the entire table)? How to make a higher priority acquisition Subvi.

    It depends on what you are queue.

    In the messages I've seen where people had problems, they were the queue a reference.  No, I don't know exactly what kind of reference it was.  Maybe it was a reference IMAQ.

    If you are replacing the real data for the image table, I think you'll be fine and will not need to do anything special.

    Best thing to do is to try and after back if you have problems with a sample of your code.

  • Issues in parallel to computer understanding in Labview

    In my project of data acquisition, I use strructres case in while loops to browse through my entire project. Some while loops are:

    Producer loop

    Loop of consumer

    Acquistion loop

    Loop recording and so on...

    My procuder loop usually contains buttons which link to structure appropriate box in consumers via Enqueue message loop everything works fine until I have preform some "parallelism".

    For example, if I press the run key that activates a case structure loop producer and subsequently activates a business loop of consumer structure and continues until it ends upward in an appropriate loop and continues to run in this loop.

    Now, if I press the log button it goes through all the loops and ends in the loop, where it is supposed to be. Everything works very well.

    Now the question, sometimes these just loops hang up somewhere. They don't send queues. They have simply continue the loop which was last run. More far by pressing the buttons on the GUI does nothing in the vi. I have no idea why labview behave like that. Sometimes it works if I press the button in certain sequences and sequence has no meaning, it was just trail and error. The error is not yet on the hardware side, as I have tested with simulation devices in MAX. I think that this happens mainly when I try to run the business structures in the same loop, but I that labview can make parallelism. What is your opinion on this situation?

    Ashaironix wrote:

    Well, that's business structures within loops if you take a look at the State of the image I posted. And I'm running "" two cases in one housing structure in the same loop ' and that's where everything hangs him up. "

    And that's your problem.  Why two of your case must run at the same time?  If they really need to run in parallel, they should be in different loops.

  • LabVIEW 2016 NI_ReportGenerationToolkit error

    I upgraded to Labview 2015-2016, but when you open one having previously worked for the project I now see an error in the NI_ReportGenerationToolkit.lvlib:Excel_Save_Workbook.vi.

    He tells me that the invoke node contains terminal unwired or bad.  However, it's a NOR provided VI and has not been changed between updates. Please let me know if it is a solvable issue.

    Take a look at this thread.

    Ben64

  • Please convert LabVIEW 2013 urgent please

    Please convert LabVIEW 2013 urgent please

    You can go there.

  • Please convert LabVIEW 13 10

    Can someone can convert LabVIEW 13 LV 10. These files come from the community

    Much thanks

    Here you are

  • DAQ Assistant is not in LabView

    Hi all

    I use NEITHER cDAQ-9174 and NI 9203.  I have already installed the driver for the NI 9174 cDAQ, which is NEITHER-DAQmx 9.8.0.  I can see the device when I opened NI MAX. However, when I open LabView 2015, I can't find DAQ Assistant in the function Palette. I noticed on the chassis, 'ACTIVE' light is not on while two other "POWER" and "READY" light is on.  I look in the forums OR but I can not find the solution.

    Any suggestion, please help!

    Thank you!

    DAQmx 9.8 is not compatible with LabVIEW 2015.  You must use at least DAQmx 15.0.  See here for more details: NOR-DAQmx and LabVIEW compatibility

  • LabVIEW FPGA SPI accident - SPI OR IP address for example - R series OR

    Hello

    I am trying to run the series R - sample project NI SPI FPGA Simulation.lvproj that comes with the SPI IP OR on a real FlexRIO FPGA SMU-7976R target with an attached digital adaptation NI 6581 B Module. The example is for a PCIe-7841R but I wore during my target FPGA, follow these steps and made additional changes to try to make it work with my set-up. I learned that FlexRIO FAMs CLIPs do not work with nodes in office had so I know I can't simulate the project originally planned so I will try to use FPGA to e/s node host side (open FPGA vi reference) to implement the actual hardware.

    My first question concerns my configuration of the adapter module e/s and selection. I added the IO Module (NI 6581 B: NI 6581 B channel) for my project and selected the channels as shown in the table below. I have a real physical hardware connection as described below using two NI SHC68-C68-D4 cables and a break-out Board.

    I changed the names as well:

    I selected these DIO channels because I wanted the DDCA connector to be the master and the DDCB connector to be the slave. In addition, in this CLIP every eight channels of i/o has a write enable signal. I have not used the Port configuration because I needed 4 available DIO channels and I saw DIO0-3. Is my logic of selection of channel vs correct Port here?

    Following the same strategy that examples FlexRIO/NI6581B, I changed the FPGA.vi to include initialization outside of timed loops:

    And in the Host.vi I have a node reference FPGA and wired loops of feedback accordingly:

    When I compile the FPGA and try to run Host.vi LabVIEW inevitably crashes with Crash Reporter below and must restart:

    Does anyone know what I'm doing wrong here? My guess is that it has something to do with the CLIP/IOModule. Any help is appreciated.

    Thank you

    Scott

    Hi Scott,.

    I suspect that the problem might be related to the fact that your node open FPGA VI reference is in the while loop and trying to open a new FPGA reference at each iteration.
    If you move outside of the while loop, it does not solve the crash?

    On channel vs port question, your logic seems reasonable to me, but I recommend to try it since this feature could depend on device.

  • LabVIEW 2014 does support CDAQ 9136

    I use LV 2014 SP1, I wanted to buy CDAQ 9136 Windows controller for one of my projects. I'd like to figure out if I can use the SP1 of 2014 LV with DAQmx15.1 in the program for this controller? User manual CDAQ 9136 does not say anything on the support of LV, just said that DAQmx 15.1 is supported.

    When I tried to add a target CDAQ in SP1 LV2014 with DAQmx15.1, it does not show the CDAQ 9136. I won't use the real time of the CDAQ 9136 version, but I'm confused. Any help would be greatly appreciated.

    Nanda,

    I would like to clarify the compatibility for the NOR-9136. It is compatible with DAQmx, starting with DAQmx 15.1. In other words, it can be used as a normal cDAQ chassis in any version of LabVIEW with DAQmx 15.1 or later installed (within reasonable limits). However, compatibility in real-time with the cDAQ-9136 has not introduced before LabVIEW time real 2015 module, which is only compatible with LabVIEW 2015. Thus, to use the cDAQ-9136 as a real-time controller, you will need 2015-LabVIEW and the module time real LabVIEW 2015 or later. This note can be found in DAQmx 15.1 notes for supported devices.

  • does anyone have a good recommendation for a voltmeter of PoE that can be integrated into Labview/TestStand?

    I started looking for a voltmeter of PoE, but so far all the ones I've found are for use of the mobile hand held.   I'm looking for a version that can be integrated in an automated production environment.

    Can someone point me to a voltmeter of PoE who has control USB or ethernet.   Ideally with Labview drivers. But if I do these myself I'll be okay with that.

    Unfortunately, I've not seen anything quite like that around. The closest I could find was the PoE3N-reach technology RT, which looks like it might have connectivity RS-232.

    Another option might be to type the tensions of the ESP and read those who use a more general tool as a DMM device or data acquisition. Something like the POET systems-FM-1. Maybe something like this work?

    There may be someone on the forum who is more familiar with POE that I am, but that's what I was able to dig up.

    William R.

    National Instruments

Maybe you are looking for

  • Do not load videos

    Since a few days, Firefox does not load vines or videos from Tumblr, but load YouTube videos, videos on Facebook and virtually all the rest. I have disabled hardware acceleration, addons and tried most (if not all) solution given here.

  • Can not find the network drivers: DEV_4727 SUBSYS_1795103C REV_01 VEN_14E4

    I just put a new install of Windows 7 on my laptop and I can't identify the wireless network drivers I need to install. Is the hardware ID: PCI\VEN_14E4 & DEV_4727 & SUBSYS_1795103C & REV_01

  • How to pass a data set of a VI to another

    Hi all I have a group of controls on my main VI application that I use to accept various types of user data. Then, I want this cluster to cluster control of entry of an another VI perfectly on the generation of a user event. In other words, if I have

  • Mounting MicroSD / Z2 connection via USB

    Hello world I'm fighting to connect my phone to my laptop via USB (Mount SD) cable. The phone recognizes the 64 Gb card that I have a few movies and music, but unlike my X10i old, I can't mount the SD Under settings storage Mount SD is grayed out? Th

  • Keep the desktop icons in the same place

    How can I keep icons arranged in the same place on the desktop when I stopped and restarted?  I have Vista Home Premium.