Passing an array of wave shape of the main Vi to Subvi

I'm taking a waveform chart and have it draw accurate information and even a chart in waveform in a Subvi. For now, the waveform is getting the information of a Global DAQmx channel and information is posted on the waveform table.

I would like to pass this information to a Subvi as well as information of a string that the user has typed information in. I want only the Subvi executing structure case if the Boolean value on the main vi it true.

The purpose of the Subvi is automatically save (later print) the façade of the Subvi as a bmp/jpeg/png. I have attached the vi for the vi sub file and an image of the main vi. I can't give the file to the main vi.

Image 1 is the face before of the main vi, which is the same information that I want to transfer to the Subvi. Image 2 is the block diagram of main vi with the information sent to the Subvi.

The Subvi, I have main table of waveform and the string of the vi entry as a Boolean operator to activate control to save the cover in jpeg format.

Now I can't get any information to be transferred to the table of waveform in the Sub - VI and I'm trying to make happen is I run some sample and when I stop my main vi waveform graph will have copied data to the Subvi and the Subvi will save the front face of the Subvi in jpeg format.

I'm sure I'm missing something very obvious, but I was not able to understand using the forum and help of NOR.

Any help is appreciated, thanks.

I uh... I did a video on this subject. I hope you don't mind.

I fall my words a little bit, you know, refer to outputs as inputs, confuse the left, right and laugh unnecessarily. But I think it does the job.

Let me know how you go.

Tags: NI Software

Similar Questions

  • The Subvi display plot in the main VI while Subvi is inside another Subvi

    Hi all

    I followed the procedure described by mysticfree to display a Subvi plot in the main VI: http://forums.ni.com/t5/LabVIEW/show-graph-that-is-created-in-a-subvi/td-p/672249

    I want to do nested way: main VI runs a Subvi called sub_A tracks sub_A. other sub - VI, called sub_B in it. sub_B generates a trace. I want to display this conspiracy in my main VI.

    I tried to apply the same principle to this problem, but sub_A does not send trace information to mainVI until sub_B is finished.

    I'd appreciate any suggestions to solve this problem.

    I have attached the VI.

    Thank you.

    The solution to this problem is available in the following discussion:

    http://forums.NI.com/T5/LabVIEW/show-graph-that-is-created-in-a-subvi/m-p/2390892#M741487

  • pass an array as parameter

    is it possible to pass an array as a parameter to the
     PROCEDURE PRINT_REP_WEB  
    It is:
         ADD_PARAMETER(PL_ID, 'P_1',     TEXT_PARAMETER,'G12-303B2','G12-306B','G12-408B','G12-515B1'); 
    and using ' in (: p_1) "report of the query.

    -----
    Forms [32 bit] Version 10.1.2.0.2 (Production)
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    10.1.2.0.2 generator

    has obtained assistance here
    {: identifier of the thread = 2416695}
    {: identifier of the thread = 2412912}

  • Passing % ROWTYPE array to a stored procedure using JDBC

    Hello

    I have the following code:

    create or replace package PCK_COLLECT_MESSAGES_CSR
    as
    TYPE TY_TA_KPMESSAGE_ROWTYPE IS TABLE OF M_MESSAGECOLLECTION % ROWTYPE;
    procedure insert_messages (messages IN TY_TA_KPMESSAGE_ROWTYPE);
    end PCK_COLLECT_MESSAGES_CSR;

    I would like to pass an array of M_MESSAGECOLLECTION % ROWTYPE to the stored procedure using JDBC, because I want to use the FORALL statement to perform a quick insert in the procedure.

    Is this possible using JDBC? Oracle version is 10g.

    Thank you in advance,
    Kind regards

    Markus.

    % rowtype declarations are native to pl/sql and are not accessible from outside its limits, something to think about when you're designing apis.

    To work around the problem, you can create an anonymous pl/sql block that can access the definitions of % rowtype.

      String sql = "declare r dual%rowtype; begin r.dummy := :x; end;";
    
      CallableStatement cs = conn.prepareCall(sql);
    
      cs.setString(1, "x");
    
      cs.execute();
    
  • How can I use a Subvi in the background when a sequence is running in the main VI

    I want to do this

    When I press a button on the main VI, a Subvi (#1) must run and take the data.
    At the same time, must execute a sequence, in which there are some other subVIs.

    My problem is that the Subvi #1 does not run when I press the button. The sequence works well. How can I run the sequence and the Subvi in the simultaneously?

    Hi Hugo,.

    When the sequence and your Subvi have not all dependencies given, they will work in parallel...

    Mind to attach some code or images of block diagram?

  • Operation Subvi don't update in the main program

    Hi all

    I'm having trouble with a VI I put together for laboratory research. I try to use two of the Subvi: one writes nine analog outputs through a PCI-6723, the other sends the commands M Code to a linear positioner through COM 4. Both work individually, but when I put in another VI, it seems that the outer loop only runs once. If I set a post and hit run, the track moves to this post but does not meet the additional entries. The tension control is doing absolutely nothing, predefined or not. The goal is that the two Subvi to run in real time. In other words, change the enum of the piece will automatically update the position and moving the sliders of tension with voltage indicators in real time and updated. I tried a few configurations without luck. Maybe it's because I'm trying to use a serial port and a data acquisition?

    I have attached the main VI and Subvi for review. All advice is appreciated.

    'Is it maybe because I'm trying to use a serial port and an acquisition of data?'

    No, that would be a silly limitation of the language

    There are a lot of problems with your application (on the other hand, you use a LabVIEW project to your hand and subVIs), like crazy in the Subvi DAQmx structures.

    The real bug you see, that's the reason why you do not understand how a shift register stores the data: using shift registers initialized to the two subVIs, so overwrite you the values stored in each iteration. You should learn about Global Variables functional and motor action, so you can understand the problem. If you need work on your subVIs (also), you will need to change their behavior. In their recent form, they are not able to do what you want... Do not have a state machine for the subVIs, use actions: Init, check, change, close. Therefore, it is very important that your subVIs only perform one action at a time. Finally, when you stop your hand while loop in your main VI, you call the two subVIs with action command 'Close' to close and delete tasks properly.

    Here's some reading more: http://forums.ni.com/t5/LabVIEW/Community-Nugget-4-08-2007-Action-Engines/td-p/503801

  • How pass an array into a php url using the flex http service?

    How pass an array into a php url using the flex http service?
    im making something like this:
    http://localhost/flex_php/example_return_xml.php?id= {mylist}
    -mylist? TABLE
    -If I try to use a text variable it works for example. {myvar.text} where myvar is a text input

    Any idea!

    How can I get using XML?
    I tried to push the table in a textinput & sent the text of entry in php, it worked!

  • Passing an array as a parameter of java (java controls) for the stored procedure

    Hello

    I use java controls (BEA Weblogic Workshop 8.1) to call a stored procedure and send an array as a parameter to the stored procedure of java. The following code throws an exception 'Fail to convert the internal representation.

    Java code
    import com.bea.control.DatabaseControl.SQLParameter;

    Here I create the java
    int [] = {12,13,14} javaArray.

    The code below is used to create the table from sql to oracle for the procedure
    SQLParameter [] params = new SQLParameter [1];
    Object obj0 = javaArray;
    params [0] = new SQLParameter (obj0, oracle.jdbc.OracleTypes.ARRAY, SQLParameter.IN);

    the code below calls the myFunc in file OJDBCtrl.jcx
    String success = dbControl.testFunc (params);

    OJDBCtrl.jcx
    /**
    * @jc: = sql statement ' call CMNT_TST_PROC (?)).
    */
    String Myfunc (SQLParameter [] param);

    The stored procedure that is used:

    SL_tab IS NUMBER TABLE INDEX BY PLS_INTEGER;
    Procedure cmnt_tst_proc (cmnt_tst sl_tab);
    Procedure cmnt_tst_proc (cmnt_tst sl_tab) is
    BEGIN
    dbms_output.put_line ('Hello');
    END;


    I'm getting the following exception

    Failure = Java.Sql.SqlException: Internal failure to convert the representation: [I@438af4 [ServiceException] >]
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
    at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:861)
    at oracle.sql.ARRAY.toARRAY(ARRAY.java:210)
    at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:7768)
    at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7449)
    at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7837)
    at oracle.jdbc.driver.OracleCallableStatement.setObject(OracleCallableStatement.java:4587)
    at weblogic.jdbc.wrapper.PreparedStatement.setObject(PreparedStatement.java:244)
    at com.bea.wlw.runtime.core.control.DatabaseControlImpl._setParameter(DatabaseControlImpl.jcs:1886)
    at com.bea.wlw.runtime.core.control.DatabaseControlImpl.getStatement_v2(DatabaseControlImpl.jcs:1732)
    at com.bea.wlw.runtime.core.control.DatabaseControlImpl.invoke(DatabaseControlImpl.jcs:2591)
    at com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(DispMethod.java:377)
    at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:433)
    at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:406)
    at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:249)
    at com.bea.wlw.runtime.jcs.container.JcsContainer.invoke(JcsContainer.java:85)
    at com.bea.wlw.runtime.core.bean.BaseContainerBean.invokeBase(BaseContainerBean.java:224)
    at com.bea.wlw.runtime.core.bean.SLSBContainerBean.invoke(SLSBContainerBean.java:109)
    at com.bea.wlwgen.StatelessContainer_ly05hg_ELOImpl.invoke(StatelessContainer_ly05hg_ELOImpl.java:153)
    ...

    Can you please let me know, what am I doing wrong and how can I pass an array to a procedure/function using java controls.

    Any help will be much appreciated.



    Published by: user12671762 on February 24, 2010 05:03

    Published by: user9211663 on February 24, 2010 21:04

    Try using an oracle.sql.ARRAY with a nested table or varray instead of a table index. Create the type SQL and Java object as follows

        SQL> create type sl_tab as varray(3) of integer;
        Java:
            ArrayDescriptor ad = ArrayDescriptor.createDescriptor
                (".SL_TAB", java.sql.Connection);
            Object elements = new Object[3];
            elements[0] = new Integer(12);
            elements[1] = new Integer(13);
            elements[2] = new Integer(14);
            oracle.sql.ARRAY array =
                new oracle.sql.ARRAY(ad, oracle.jdbc.OracleTypes.ARRAY, elements);
            SQLParameter[] params = new SQLParameter[1];
            params[0] =
                new SQLParameter(array, oracle.jdbc.OracleTypes.ARRAY, SQLParameter.IN);
            String succ = dbControl.testFunc(params);
    

    I don't think that you can pass an array of Java, this is why you have more success using an oracle.sql.ARRAY with a SQL varray. -Michael-

  • Get the array of unknown size of the CVI code module

    I'm creating a type custom for my client, and I've encountered a problem that I'm not sure how to solve.

    Here's the situation:

    We have a custom step in which the main code is executed within a step after step. The code acquires samples of an instrument, but it is unclear how many samples will be returned. The CVI function has a table, the size of this table and an output parameter that indicates how many samples have been returned as parameters.

    void AcquireSamples (double* samples, int samplesBufferSize, int *numSamplesRetrieved)
    

    The goal is to have the array returned by the size of the number of samples taken.

    I tried several ways, none of which works completely. The problem is that, as described here, TestStand creates a temporary table to move to the code module. but it does not resize the TestStand array property. So I need to manually resize the properties of the table, and I did not understand an elegant way to do it.

    It would be easy if I had to create just a not, because I could use expressions after. I'm creating a type but I don't have that luxury (my code should allow the customer to enter expressions of post, but I run the risk of my client, removing any expression after default I get home).

    First question:

    I noticed when I was creating a stage with a CVI code module, that additional results allowed me to specify logging in both settings [in] and [out]. This I extrapolated that the parameter expression was evaluated before calling the function both again after the call to the function. I did some tests, and it doesn't seem to work that way.

    (1) this is expected behavior? I don't see it documented anywhere, if can I rely on it remains the same in future versions of TestStand?

    I used this behavior to my advantage to create an expression that does what I need an an step code module. But it does not work for a module of code to a later stage.

    I did a small test DLL file and sequence illustrates my problem. I tried to document the file in sequence to show where I'm stuck. You will need to put the DLL in one of your directories to search for the type of custom work.

    Any help would be greatly appreciated!

    I think the problem is that the C programming language does not provide enough information for a caller to know the size of an output table in any kind of standard. I recommend again, you pass a CAObjHandle which is the variable of array instead and set the table directly using CA_Array1DToSafeArray() to create a safearray and SetValVariant on the propertyobject which is the property of the table to set the table. Don't forget to free the array (using CA_SafeArrayDestroy()) that you created with CA_Array1DToSafeArray after that SetValVariant call to avoid leaks.

    Hope this helps,

    -Doug

  • Pass an array to a node form

    I have an example of table [0, 2, 4, 6, 8]. I want to pass this array to a knot of formula that calculate the square of each element of the input array and show the resulting table.

    For example, the formula is 'square '. Output array should be [0, 4, 16, 36, 64]

    I did not like it, but there was an error...

    Can someone please?

    Here's how you do it with a knot of formula.

    Can you tell me which seems easier to code?

    It took me 2 seconds using the square function.  And 10 minutes to get the syntax for the node of the formula.

  • Pass an array of real-time desktop PC

    Hello

    I recently started using LabVIEW Real time. I want to transfer an array of data from a PC to office to a PC in real time. The data transfer is time and once real PC will make further processing of the data. I'm using LabVIEW 8.2 and the corresponding version of the time real LabVIEW. I do not understand how to program the time real PC to receive all the elements of the array in the order. Below is a brief description of what I've tried so far.

    At the beginning, I created a shared variable on the computer which was the data type double target. I activated "Buffering" and set the size as 10 double rooms. Enable FIFO tab real-time time real FIFO, selected several items and set the size as 10 double rooms. On the desktop, I used a loop for to transfer all the elements of the array in the shared variable. I used a 500 ms delay in the loop for debugging purposes. On the target side PC, I used a while loop, the same delay of 500ms and built a table reading the shared variable. To run the program, I ran the VI on the target PC and then the VI on the host. I could see that the painting was being filled with data from the host computer, but the first element of the array of host PC has been filled in the second element of the array on the computer target. Another problem, is that there is no way to prevent the target computer that the host PC had sent all the data and he had to stop the filling of the table. The first problem with lag of data can be attributed to the timing. But I don't know how to solve problems.

    I also tried declaring the variable shared on the computer target with the double data type 'Array of '. But when the data is passed from the host PC for the target computer, I don't see the variables reflected on the target computer.

    Is could someone please tell me what error I do here?

    Hello

    The problem has been resolved. It is LabVIEW time real 8.20 which has been altered. Therefore, did a re-installation of LabVIEW. Now I have the sample project attached (ex2.zip) in the previous post works perfectly. Thank you for your help.

    Kind regards

    Prashant

  • How drag and drop a picture into a shape of the object?

    On my old Lion system that I used to be able to drag a picture from iphoto in the shape of the object open in Pages.  I can't be able to do more.  The system changed?  I tried to use Inspector (under help), but it won't let me access the file of the photo on the right.

    You can drag and drop a picture in a form in v4.3 Pages ' 09, but this can be done in any version of v5 Pages. Quite different applications, as well as more recent Pages has lost about 100 features that were in its antecedent.

    Check if you have Pages ' 09 v4.3 in your Applications: iWork ' 09 file. If so, use it.

    Pages v5 requires that you select a shape, and then on the Image tab in the right panel, you choose Image, scale to fill fill, and then select your image for the background. You cannot select this image from the inside, but you can add text to the form that will appear on your image.

  • Change the shape of the output signal without initializing the new process of output signal

    Hello!

    How to change the shape of the output signal produced on the output channel without initializing the new process of output signal?

    Thank you

    Yes, you can do the same thing without count/killing the task all the time.

    Attached VI shows how to use redeclenchables AO in the same way, using a meter like time base for the AO.

    Please note that attached VI uses the same Subvi as in the example you posted before.

    Christian

  • HOW TO PASS THE HEX OF THE MAIN PROGRAM VI ENUM, SUB VI ENUM VALUE

    HOW TO PASS THE HEX OF THE MAIN PROGRAM VI ENUM, SUB VI ENUM VALUE.

    HOW THEN IT WILL CHOOSE CORRECT ON SUB VI HEXAGONAL ENUM VALUES.

    Enum values are strings, you must first convert the hexadecimal value to a hexadecimal value chain represtation.

    Then that convert from the enum.

  • Passing the data change to Subvi through reference: always newest lack input value

    Hello world

    I'm having a problem that I can not find the solution. I searched the forum and google, but I couldn't find an explanation. I hope you can help!

    In the attached draft, there is the "main.vi", which I use to control an industrial manufacturin mashine. On the façade, I have a group called "manual control". Whenever I have change a value in the cluster, an event is triggered to run the case 'hands-on' in the 'Wirbelschicht_main.vi' [called 'FBC (control of fluidized bed)' in the pattern-block main.vi]. In this case, the data in the cluster are updated via a reference. The order run "Manual control" case is placed in a queue.

    When I change the value of, for example, "InAirTempSet" from 0 to 5, then from 5 to 9, I would expect numbers in the Subvi update in the same way (first from 0 to 5 and with the next click 5 to 9). What I see is that the update process in the subviis always one not behind. Which means, I change the value from 0 to 5 in the main.vi and nothing happens. Then I change the number of 9 and 5 in the Subvi, 5 is received. Only when I change the number in the main.vi again, the 9 is passed to the Subvi.

    What is the reason for this and how can I fix?

    Thank you!

    Qbach

    It is the expected behavior. You read the reference control value at the same time waiting for the order to the queue. This means that once the queue ("hands-on") command is received, the value has been already read a long time ago.

    To avoid race conditions, transmit the data using the queue instead of read it asynchronuously with nodes of property. You are running in a race condition here, because that's exactly what your code tells the application to do!

    Norbert

Maybe you are looking for