passage of queue to dynamically called VI

In my application, I have two screws. IIn a VI I create a queue and then I spend the Ref. of the queue for the other VI and launch this VI dynamically.

While running any VI can stop regardless of the status of the other VI.

but as soon as I stop the VI who created the queue. the Ref. of the queue becomes invalid. and dynamic VI cannot use the queue more

I want to the queue to be eliminated that after I explicitly call has queue function.

How can I achieve that

Hey Tushar,

You can create a "functional Global ' which encapsulates the function Create tail and buffer the reference to the queue in a registry to offset.  The VI may have two modes of operation: CreateQueue and ReadReference.  The top-level VI he would run in Design Mode, and the VI dynamically saying would just continue to use the playback mode.  Since this VI remains a VI performance left even after the parent process ends, the queue reference, allocations will remain valid.

See you soon!

Tags: NI Software

Similar Questions

  • Dynamically call a demon or an actor VI in TestStand

    Hi all

    The context:

    • I have a non-reentrant VI that must run in parallel to a sequence
    • This VI is opened and closed several times during the tests.
    • I close the VI sending him a pending request as it closes.

    It seems to me that there are two ways to start the VI:

    • Have TestStand call a LabVIEW VI that launches the dynamic VI. This could be the static node in the CGRA or an invoke node using a ref VI.
    • Use the asynchronous step "Run VI" in TestStand type.

    Right now I use the step "Run VI" asynchronous. I do not use the option "Reserve loaded live for execution", and once from time to time I get the crash 'TestStand sequence editor has stopped working ".

    My questions:

    1. With regard to memory management, which is the best way to put in place my use case? Is it better to have LabVIEW make the dynamic call or TestStand call dynamic?
    2. What is the difference in between both of these memory management works?

    Thanks a lot - suggestions are appreciated.

    Mr. Jim

    Let us know how it goes with the movement of the sous-suite.

    Basically the call run VI Asynch just dynamically create a sous-suite and qualifying in a new thread.  You can view it in the definition of step Type in one of the PreSteps.  But using the subsequence you eliminate the part of the dynamic generation of it (I've seen topics with, similar to what you describe).

    Good luck

  • With the help of dynamically called screw in TestStand deployment

    I write code to interface with a & Rohde Schwarz ZNB Network Analyzer.  I use LabVIEW 8.2 and TestStand 3.5.  For reference the ZNB driver is available here: R & S of ZNB Driver.  I use a slightly older version of the driver, some before they needed to LabVIEW 2009.  I am writing all the code on a development machine that has the full version of TestStand/LabVIEW and it works on another machine that has the TestStand deployment license.

    This driver is dynamically linked to some things he needs.  I am able to operate with simple LabVIEW EXEs but not in TestStand deployments.  The following excerpt comes from their documentation, explaining a little about how the driver works and how to use in LabVIEW EXEs.

    3.4.2 How to generate executables or libraries in LabVIEW driver kernel drivers instrument based on attributes is dynamically bound to any VI performed during execution. This can be recognized by the LabVIEW application builder. The LabVIEW application builder follows all the static dependencies and include them in the package distributed at the generation of an executable file.

    To create an executable in LabVIEW, please manually add all the screws in the \PREFIX \_utility\callbacks folder to the LabVIEW project. In the case of project based please add private to your project folder. With this reference manual, the driver core is included in the compilation and the driver core is accessible during execution.

    I can't get this to work in TestStand deployments at all.  I can't even connect to the device since the VI Init has these issues.  I get the same error for all the various attempts that I made.  The same error is that when you add manually the screws for the LabVIEW EXE.

    Error-1073807346

    Property in Rohde & Schwarz Vector Analyzer.lvlib:rsidr_core_session_fgv.vi-> network node

    Rohde & Schwarz Vector Network Analyzer.lvlib:rsidr_core_check_error.vi->

    Rohde & Schwarz Vector Network Analyzer.lvlib:rsidr_core_attribute_write_int.vi->

    Rohde & Schwarz Vector Network Analyzer.lvlib:rsidr_core_attribute.vi:3->

    Rohde & Schwarz Vector Network Analyzer.lvlib:rsvna.vi:2->

    Example 1 setting of the Instrument 24Default .vi:1->

    Rohde & Schwarz Vector Network Analyzer.lvlib-> efault Instrument Setup.vi

    Rohde & Schwarz Vector Network Analyzer.lvlib:Reset.vi->

    Rohde & Schwarz Vector Network Analyzer.lvlib:Initialize.vi->

    Connection of ZNB testing.VI

    VISA: (Hex 0xBFFF000E) the given reference of session or the object is not valid.

    So far, I tried the following, all solutions producing this same error.  I struggled with this and turned off for awhile then maybe there are other solutions attempts I forget.

    (1) it looked like a lot of the report to go to the private folder were finished in SupportVIs.  I manually pasted the rest there, too.

    (2) I added all driver files on my workspace and included in the files with the rest of my deployed screws.

    (3) I added all driver files on my workspace and said pilot TestStand to deploy them to the original location in Program Files.

    Someone at - it ideas?  R & S didn't even know what was TestStand, so that they could not help me.

    I was finally able to solve this problem on mine, the other day.  I brought the Network Analyzer to my office and did a lot of tests in this way.  Eventually, I discovered that I needed to include the folder private pilot deployment, what I was doing in one of previous attempts.  It turns out that you must also maintain the original of this file directory structure when you include it, otherwise dynamic calls are not looking in the right place.  Once it worked on my PC, I got it on the machine test and worked as well.

  • dynamically called vi, PDM invalid file reference

    Hello

    I can't explain a strange behavior, I hope someone can give me a hint.

    First of all, do not ask why I need this way to go, I would like to understand why this is happening.

    We have a FGV which has 3 actions: Init, write data and close. It works on the TDMS files. The action of the init creates a TDMS file reference that is stored in a shift register to be prepared, used by writing and finally narrow cases.

    Everything is OK, if I use this FGV simply in a main VI directly from the block diagram. So that I can init, write data and finally close the PDM file.

    However, for some reason, appeared a new requirement: to be able to 'Init' and 'Close' the TDMS file using the FGV, but within a dynamically called VI (a pop-up window that may not stop the execution of the appellant).

    So in primary VI, I call dynamically VI one another by using the asynchronous call (flag x 80, "call and forget" method), and it dynamically called VI fires the FGV TDMS.

    When I probe the reference of TDMS files, I can see that it gets its value correctly after the case 'Init' of fire. After this 'init' which happened (from Dynamics called VI), a location in the MAIN VI starts calling this FGV with enum action 'Write '. I can see via sensors, the case of writing Gets the same number of REF TDMS file which has been stored in the shift register after the case 'Init '.

    But even so, the VERY first function TDMS write throws an error msg "TDMS file invalid reference '! How is it possible, if the file reference is OK and the same as that created by the function 'File open TDMS' in case 'init '?

    Again, if I execute 'init' action also directly the main VI, not a third dynamically called VI, everything is OK, it works.

    I hope that my explanation is not too bad

    Thanks for the tips and if no idea, I'll try to recreate/replicate this behavior in a test project that is small, and I'll post it...

    The problem is that when the dynamic called vi stops all references that he open invalid.

    To see what I want to say, change the dynamics vi delay like 30 seconds before she stops, the savings loop works fine until the dynamics vi stops, then the error returns.

    Mike...

  • Switch on the dynamic call

    I use packet sniffer example in my code with a few changes to calculate the delay of my data.

    I need to make a dynamic call to run this VI at some point my main code and stop at another point.

    Just to test I put some delays between market, stop and get the time as below:

    But in VI that I call, the stop button is inside a structure of event... like here:

    So... even if I try to stop the VI in my dynamic appeal, it seems that my VI will not read this change... only read if I manually stop the VI.

    so I try to stop at the first VI but does not stop... what could be a solution for this?

    Thank you

    Thai

    Problem solved. I just inserted the stop button in the same case where is Timeout, now I can guarantee you that this value will be read.

  • Re-use of dynamically called code of target in real-time on PC

    I have a code that is deployed on a target in real time what I call dynamically. I also want to use the same code dynamically on a PC in the same project.

    This works very well when you run interpreted code in form. However, I can't add the dynamic called VI to build on my PC specification if the VI is under the aim of RT in the project. I can only include it in the build specification that is in conjunction with the software to the target of the RT.

    How can I use this VI dynamically in the ad for the construction specifications and places without having two copies of it?

    I actually found a way using a static reference of vi:

    Rather than providing a path to the file of the 'open' vi reference, simply load the VI statically and I then enter its name to open an instance, re-entering. This approach has the advantage of process Dynamics called VI as if it was dropped on the block diagram - I don't have to explicitly include the vi file in the build specification.

  • Dynamically call DBMS_XMLINDEX to delete the setting and exit with the exception

    Hi all

    I am trying to create a procedure to dynamically call DBMS_XMLINDEX.dropparameter.
    If the parameter doesn't exist no then gracefully exit with the exception as "the parameter does not exist.
    But I keep getting errors because of the dynamic passing.
    Procedure is something like:


    Create PROCEDURE drop_parameter (p_parameter IN VARCHAR2)
    IS
    no_parameter EXCEPTION;
    PRAGMA EXCEPTION_INIT(no_parameter,-12004);
    BEGIN
    RUN IMMEDIATELY ' DBMS_XMLINDEX.dropparameter ("| p_parameter |") ';
    dbms_output.put_line ('abandoned parameter');
    EXCEPTION
    WHEN no_parameter THEN
    dbms_output.put_line ('parameter does not exist');
    END drop_parameter;

    For the implementation we can try to create the parameter in the form:

    BEGIN
    DBMS_XMLINDEX. () REGISTERPARAMETER
    'Param1 ',.
    ' PATH TABLE PathTB1
    Paths (INCLUDE (/ a/b / c))
    / d/e/f
    ))
    ');
    END;
    /

    The setting above should be deleted or if not existing, then exit gracefully.
    Please suggest.

    Thank you...

    You test the incorrect error code...

    ORA-12004: http://docs.oracle.com/cd/E11882_01/server.112/e17766/e9858.htm#sthref3299

    Try with ORA-44737, for example:

    SQL> set serveroutput on
    SQL>
    SQL> BEGIN
      2  DBMS_XMLINDEX.REGISTERPARAMETER (
      3  'Param1', 'PATH TABLE PathTB1 PATHS (INCLUDE ( /a/b/c /d/e/f ))');
      4  END;
      5  /
    
    PL/SQL procedure successfully completed
    
    SQL>
    SQL> CREATE PROCEDURE drop_parameter(p_parameter IN VARCHAR2)
      2  IS
      3    no_parameter EXCEPTION;
      4    PRAGMA EXCEPTION_INIT(no_parameter,-44737);
      5  BEGIN
      6    DBMS_XMLINDEX.dropparameter(p_parameter);
      7    dbms_output.put_line('Parameter dropped');
      8  EXCEPTION
      9    WHEN no_parameter THEN
     10        dbms_output.put_line('Parameter does not exist');
     11  END;
     12  /
    
    Procedure created
    
    SQL> exec drop_parameter('Param1');
    
    Parameter dropped
    
    PL/SQL procedure successfully completed
    
    SQL> exec drop_parameter('Param1');
    
    Parameter does not exist
    
    PL/SQL procedure successfully completed
     
    

    (and even once, you do not need code dynamics)

  • Unanticipated delays, the closure of dynamically called VI

    LV10.0 / WXP

    A VI is called dynamically by Method VI Run (wait until done = FALSE, Auto have Ref = TRUE).

    Queues are used to Exchange data with the main VI.

    Closing (the main VI "stop" message), the LabVIEW VI hangs for about 25 seconds (!) with one of the processors of the machine dual-core at 100%.

    Someone else met this strange behavior? Any ideas?

    Thanks in advance


  • Question about the Manager of messages in queue and dynamically load/close Subvi

    Hi, my dear LV users

    I learn how to use the machine in queue Sate Architecture. I created a simple project, including a "main.vi" to dynamically load a sub vi 'sub_Vi2.vi' in the case of "initialize". The sub vi simply open a configuration file and load affecting some control and write these values in the configuration file. If the configuration file is not created, the sub vi creates until the user closes the Subvi.

    In the case of "Get out" of my "main.vi", I send 'true' to the Subvi stop button to stop running it. But the sub vi did not write these values back to the configuration file, or created a new when I delete the configuration file.

    There is another vi I made 'main1.vi', which loads dynamically and close the Subvi. And it works as well as I expected: create the file and write data!

    Can someone help me understand the code? I've also attached the front of diagrams and source code. It's in 2012 LV.

    Best regards

    Li CQ


  • Can we invoke an approval queue Service with call SOAP on first Cisco service catalog?

    I have an external portal send requests to the first Service catalog Cisco via SOAP calls. In a particular service, I need to include a task approval or rejection. Generally, we add the task in terms of service to a queue in such a situation. This task can be updated and made with the SOAP call? I don't see such a request in the WSDL file when I added in the SOAP user interface. Could someone help me if I have a SOAP call or call NSAPI or any other appeal remains for this?

    You can use the following NSAPI (REST) appeal:

    {RequestCenter/nsapi/transaction/tasks/task id} / adopt

    Note that it does not use the id of the request; It uses the request for ENTRY ID (the ID of the task)

  • can we use service legend to dynamically call business service in OSB

    My requirement is: contact service issue. moments of for - each loop in OSB. Node road that we cannot use in the foreach loop.

    can we use service legend to call business several times? and how can we pass endpoint url to business service using the legend of service.

    Please help me.

    Yes you can use routing options to override the legend service endpoint url. See

    http://docs.Oracle.com/CD/E23943_01/admin.1111/e15867/proxy_actions.htm#i1315299

    The action of routing Options can be used when the context variable $outbound is valid. It can be added to the following actions:

    • Publish
    • Dynamic publishing
    • Publish the Table
    • Legend of service
    • Routing
    • Dynamic routing
    • Routing table
  • queue, a dynamic container type

    Hello

    I have several threads running, each waiting for an input queue (queue names are numbered by threads: "Queue0", "Queue1",...) and expects a type of individual container as an entry in the queue.

    I have variables for all these containers, also numbered by the threads of entry: FileGlobals.Input0, FileGlobals.Input1,...

    Now I would like to send these containers of entry via the queues for different wires in a loop in TestStand, for example, something like (in pseudo-code representing steps in a sequence):

    thread = 1 to n

    Enqueue (Queuename = Str (wire, "queue %d"); Element to the queue: Str (thread, "FileGlobals.Input %d"))

    end

    I tried the queue

    FileGlobals.GetPropertyObject (Str (wire, "Input %d"), 0)

    and the end of the queue gives me an error about an incompatible type being removed. I also tried the same thing with 'AsPropertyObject', doesn't work anymore.

    Is there a way to do this?

    Thank you

    Peter

    Hi Peter,.

    Yes it is possible if you use Evaluate().

    Just look at the example

    concerning

    Jürgen

  • Dynamic call VI without FP bug leak

    When a leak memory in our application debugging, I discovered this leak.

    It turns out, is not our problem in this project, but it is nevertheless an undesirable situation.

    I did a sample project to demonstrate the discovery flight.

    The following combinations are possible:

    Remove the (default) FP + do not show FP when it is called (by default) = leaks

    Remove the FP + FP show when it is called no = no leak

    Do not remove FP + do not show FP when called doesn't = no leak

    Do not remove FP + show FP when called doesn't = no leak

    The problem is demonstrated and discovered in LV2011, but also appears in LV2012.


  • Why can I not use a DVR, dynamically called VI

    Hi all

    I created the two screws. Next place in the same folder and open testDVR.vi.

    Run it with bCallMode = false once and once = true and see what happens...

    Why can I access and use the DVR when using the call by reference node and not when you use "Run VI"(resulting in error 1556)?

    As you can see the reference to the DVR is always the same, regardless of how the DVR_generator.vi has been called.

    Thanks in advance

    Christian


  • Dynamic call procedures

    Hi all

    I need to call the procedure based on a single parameter, example

    If parameter1 = Screen1 then call proc1

    screen2... .proc2

    SCREEN3... proc3

    so now

    So, I intend to put this configuration in a table and write another common procedure that will accept the input parameter "x screen" then Setup table query to get the called procedure.

    We must pass parameter to proc1, proc2, proc3... as well. That can also be passed to common proc as one parameter separated by delimiter and can be analyzed in the common procedure.

    as

    common_proc ("screen1",'arg1 |) Arg2 | Arg3');

    It is: procedure has a different number of arguments and data types. How to handle this?

    Could you please give some suggestion for managing this problem or any other suggestion of design to manage.

    Thanks in advance

    It depends on.  What are the data in the XML file?  If you are just using XML to pass different "styles" of entry for the procedure, then again, it's bad design.  The entrance to a procedure should be of a design/style known.  It seems that you're just trying to get some ideas of workarounds to try your solution of ' procedure simple wrapper ", but the solution to have a procedure unique wrapper is wrong when you provide APIs for application developers.  If there is a need to create 5 API of for developers of applications for different purposes, then give the 5.  If it requires 10, gives then 10, 20 or 30 or 50 etc but many are required.  Don't try and create a single API, which forces them to understand 50 ways to encapsulate the parameters to pass, that does no sense and is not easy to manage.

Maybe you are looking for

  • Forms of the iPhone do not appear on MacBook

    I'm new to Mac, but use iPhone for years.  In numbers, I have created several forms that inhabit the different leaves.  I recorded in iCloud.  When I open a file on the MacBook, the leaves appear, but not shapes.  Did I miss something or forms are no

  • That means the closing blue screen problem down in WinXP? DMP attached.

    Received the blue screen error and need help to interpret .dmp file. Having read the advice here and don't understand the error. DMP link here. Can someone please help? https://SkyDrive.live.com/redir.aspx?CID=5de3dc24cafcbc7c&RESID=5DE3DC24CAFCBC7C!

  • stop AV Security Suite infection

    Why my Norton Anti Virus did not prevent the AV Security Suite infect my laptop? I managed to do a full computer scan (while it is infected) and it gave the fire, which it clearly was not. This package will actually do the job? Is it possible to stop

  • MATLAB starts the installation

    I have a clean install of Windows 8 (64-bit). Whenever I try to install MatLab, he asked me the usual confirmation "do you want this program to make changes to your computer...". "I click on Yes, the window disappears, but nothing else happens. I tri

  • printer says I have more paper, but I'm not

    I use a HP Photosmart 6510 series, I get the error message that is made of paper and is not!  Tried several times even stop the printer completely down, still getting the error message, can you please help me with this?