global variable of symbol change

Hello world

I need help, make changes to a global variable.  I created a variable on the creationComplete using the code: sym.setVariable ("information", 1);

Later in the project, I'd like to call this variable, and then increase the value on a button click. In the button symbol (onClick) I can call the variable using: paragraph var = sym.getComposition () .getStage () .getVariable ('information');

When I use an alert (paragraph), the correct value appears.  But, on the click, I need to change the value of the variable stageComplete 'information' to 2.

Can someone give me some pointers on what I'm doing wrong?

Thank you

Randy

Hello

It seems you want to increment using sym.setVariable () and sym.getVariable ().

  • First step: sym.setVariable("counter",1); This means: counter = 1;
  • Second stage (another sign): sym.setVariable ("counter", sym.getVariable ("counter") + 1); This means: counter = counter + 1; or counter += 1

Demo: https://app.box.com/s/dqml4wtbcimtjvlkf2ol

Tags: Edge Animate

Similar Questions

  • Cannot use Global Variable in the Structure of the event

    I'm using LabVIEW 2009.

    In my LabView project, I have a global Boolean variable called EStop. I can read and write the global variable. If I double click on the global variable, it takes me to EStop.vi which includes a text button. EStop.vi is part of my project.

    In one of my report, I have a Structure of the event. If I go to one of the event handlers in this case Structure and right click and select Add event, I get a list of possible events. But this list does not EStop or an EStop events.

    I would like to add an event to EStop case: changed value.

    Why I can not add to a case of events events that include events on Global Variables as value changed?

    How can I add EStop: event changed my structure of the event value.


  • Global variable setting within the chronology of the symbol, how?

    Hello!

    I came across a problem on board animate CC. I've set a global variable, in which I stores the name of a loaded composition and works peachy as long as it has defined (variable) on the main timeline. But I also need to change its value inside the mini menu, which is a symbol with its own timetable and actions. Symbol of the elements (menus) can read the overall (as expected) var on for example the click event, but I can't change its value. How can I do?

    Pawel

    K, obtained at the bottom of the present: After experimenting a little more, it turns out, I did nothing wrong, it's just that Edge animate Gets a little finicky with the order to execute commands. Moving from one line of code 'upward the lader' did, what I was trying to achieve for so long.

    Lesson learned: when you work with Edge, if something doesn't work and the code seems to be ok, try to rearange code, regardless of how stupid it sounds.

    Thanks for your help and your time, robboerman and resdesign. I appreciate it.

  • How to change a global variable in a function?

    Hello

    I want to change a globalvariable in a function, as a first step I made in this way:

    class Global_output_class
    
    GlobalDim("Correlation_Status,fail_part,End_Exp")
    dim pouet
    
    Correlation_Status = 12
    Call Correlation()
    pouet = Correlation_Status
    
    Function Correlation()
      Dim Global_output_class_sub
      Set Global_output_class_sub = new Global_output_class
    
      Correlation_Status = 1
      fail_part = 2
      End_Exp = 3
    
      Global_output_class_sub.CorrelationStatus = Correlation_Status
      Global_output_class_sub.failpart = fail_part
      Global_output_class_sub.EndExp = End_Exp
      set Correlation = Global_output_class_sub
    End function
    

    In this case: correlation_status receives a value of 12, then I go to my correlationn() function where it became 1

    Then he comes out of the Sub-function and takes the previous value of the program (12) (I hate that)

    To solve the problem I did it this way:

    class Global_output_class
    public CorrelationStatus
    public failpart
    public EndExp
    end class 
    
    GlobalDim("Correlation_Status,fail_part,End_Exp")
    
    Correlation_Status = 12
    Set Global_Output = Correlation()
    Correlation_Status = Global_Output.CorrelationStatus
    fail_part = Global_Output.failpart
    End_Exp = Global_Output.EndExp
    pouet = Correlation_Status
    
    Function Correlation()
      Dim Global_output_class_sub
      Set Global_output_class_sub = new Global_output_class
    
      Correlation_Status = 1
      fail_part = 2
      End_Exp = 3
    
      Global_output_class_sub.CorrelationStatus = Correlation_Status
      Global_output_class_sub.failpart = fail_part
      Global_output_class_sub.EndExp = End_Exp
      set Correlation = Global_output_class_sub
    End function
    

    This way my global value are copied in themselves after leaving the subprogramme

    I had a lot of variables, is there an easier way for the global variable in a function of change keep the value after you leave the service?

    Thanks for the help,

    Fred

    Hi Fred,.

    It is possible to use a global variable defined, but the best way is to use a function call (or procedure call) with parameters. Please first find the right solution for a function call with parameter and the suboptimal way with a comprehensive valiable:

    dim oParameter
    set oParameter = new cGlobal_output_class
    
    oParameter.Correlation_Status = 12
    
    msgbox "Correlation_Status before Call Correlation: " & oParameter.Correlation_Status
    Call Correlation(oParameter)
    msgbox "Correlation_Status after Call Correlation: " & oParameter.Correlation_Status
    
    '-------------------------------------------------------------------------------
    Function Correlation(oPara)
      msgbox "Correlation_Status in the FUNCTION before change: " & oPara.Correlation_Status
      oPara.Correlation_Status = 1
      oPara.fail_part = 2
      oPara.End_Exp = 3
      msgbox "Correlation_Status in the FUNCTION after change: " & oPara.Correlation_Status
    End function
    
    '-------------------------------------------------------------------------------
    class cGlobal_output_class
      dim Correlation_Status,fail_part,End_Exp
    end class
    
    call GlobalDim("oPouet")
    
    dim oPouet
    set oPouet = new cGlobal_output_class
    
    oPouet.Correlation_Status = 12
    
    msgbox "Correlation_Status before Call Correlation: " & oPouet.Correlation_Status
    Call Correlation()
    msgbox "Correlation_Status before Call Correlation: " & oPouet.Correlation_Status
    
    '-------------------------------------------------------------------------------
    Function Correlation()
      msgbox "Correlation_Status in the FUNCTION before change: " & oPouet.Correlation_Status
      oPouet.Correlation_Status = 1
      oPouet.fail_part = 2
      oPouet.End_Exp = 3
      msgbox "Correlation_Status in the FUNCTION after change: " & oPouet.Correlation_Status
    End function
    
    '-------------------------------------------------------------------------------
    class cGlobal_output_class
      dim Correlation_Status,fail_part,End_Exp
    end class
    

    Greetings

    Walter

  • Global variable: continuous change

    Hello

    I have some problems with a program of VI. I am creating a program when a start of the X variable with an initial for a few Ms value then this variable should be used in another while loop, and value must be changing continuously after some calculations. I use it just for the first calculation, and then it changes constantly other calculations.
    Perhaps a global variable must be used, but I'm not sure.

    I found this tutorial, is it helpful for this problem?
    http://www.NI.com/white-paper/7585/en/

    Thank you.


  • How to change a global variable of b form to form.

    Oracle forms builder 10.1.2.0.2 version
    version 10.1.2.0.2, Oracle database

    I try to pass a global variable of the form b to form one; I have an error frm-40815
    does not define a global variable in a form file.
    without doubt, I missed something. could you tell me what I missed?

    Here is my sample code;
    form a
    in when new forms instance trigger;
    :myblock.getvalue := :global.p_ck;
    .....
    
    forms b
    in when button pressed;
    call_form('a');
    :global.p_ck := :myblock2.checked;

    I assume that null value passed.
    you have an idea?

    If this previous error is resolved means that now form works well. Now, if there is then no value. So I think that the domain that you assign is not having any value for the test, you can use like this...

    :global.p_ck := NVL(:myblock2.checked,'Blank');
    call_form('a');
    

    -Clément

  • The values of global variables change spontaneously

    I am currently doing a quiz/board game. There is a 'Question to card' button that goes to a random image in a specified movie. All images in this film has a question with answers that make players advence on the Board of Directors. The problem is, I have to make sure that once a question appeared and has received a reply, it cannot pop up again. I thought to declare a global variable for each question ("_global.q1" in question 1 and so on) in the framework one of the movie root with a value of '0 '. The answers to each question, to move the pieces on the Board, becomes the '1' variable value (on (release) {_global.q1 = "1"}). And directly under each question of the film container question, I made an invisible film with the script below, thinking the first time governing load the variable must be set to 0, then the question will load normally. and later, since the answer is set to 1, the script below in the next section. Thus, no question is repeated.

    onClipEvent (enterFrame) {}
    If (_global.q1 = '1') {this._parent.nextFrame ()};
    }

    However, on the film tests, I push the button with the gotoAndPlay (random ()) and all my values of variables defined by one, taking me all the way to the last image in the question that contains the movie.

    > If (_global.q1 = "1")

    Must be:

    If (_global.q1 is "1")

    A = single assignment, a double == is a test for equality.

    --
    Dave-
    www.offroadfire.com
    Developer leader
    http://www.blurredistinction.com
    Adobe Community Expert
    http://www.Adobe.com/communities/experts/

  • DLL and global variables

    OK, here's a strange problem.  I am very new to create the dll, so I don't know that I have just an installation problem.

    But I'm trying to pass a global variable of a host program to its attached DLL.  I got this job when I was the CVI 2014. I recently upgraded to 2015 and then started getting "undefined symbols" errors.  With some struggle I managed to compile again, but broke the variable connection in the process.

    I have compiled my DLL in debug mode so that I walk in from the test project.  Right now, my global variable exists in the test project, as well as in the DLL.

    Can I export the variable and the use of DLLIMPORT/DLLEXPORT?  Confused and curiously not to find anyone quite like this on the forums.

    EDIT: this post stack overflow described pretty well from my experience.  I am linking statically.

    Well, what do you know?  I found my problem.  This draft article and example WERE vital to the solution.  This article called, "using the Export method qualifier"was also useful.  I'll cut to the Chase...

    If you use a qualifier of export on the definition and the import on the declaration, LabWindows/CVI identifier export symbol.

    This is the right key.

    So in my example, it should look like this:

    DLL fichier.c

    int DLLEXPORT varName = 0;

    Header.h DLL

    int DLLIMPORT varName;

    Project that uses DLL.c

    #include "header.h DLL.

    varName! = 1 ;  a method to change this variable for local use

    Pretty easy, huh?  But wow, it took some time to find.

  • Using global variables in a device custom

    Hello world

    I have problems with the passing of data through my device customized using global variables. I want to allow a user to select a RIO device address when you set up the system definition file. This is recorded in a global variable using the hand Page VI. I would later use this RIO device address in RT driver to deploy a bitfile. I can hard-code, but it is much more convenient to use a global.

    When I try to store the address of the global variable, it updates the value temporarily (I confirmed that the structure of the event recognizes the change of value). When I click the node of the tree to define system linked to the Main Page VI and then click on it again, the hand Page VI runs again. I wrote the code to repopulate the address of device of RIO with the last value stored in the global variable, but it is empty. I've included the VI global variables in my build, so I can't imagine why it can reset this value.

    Any help would be appreciated!

    Thank you

    Mitch

    Have you tried to use the custom device properties to store this value instead of GVs?

    Configuration VI, you can set this property, and if I'm not mistaken, you can read these properties on the RT driver.

  • Addition of new global variables

    I change code that uses one or more global variables in a global folder of vi. I would like to add a few variables more and potentially change what exists and ask them to be in the same globals vi. I can easily add a variable of the same type by copying and pasting a variable of the same type on the Panel before the globals vi, but I can't add variables of different types.

    This post comes closest: http://forums.ni.com/t5/LabVIEW/how-to-associate-existing-global-variables/m-p/1079535/highlight/tru... but I did not understand this line:

    • Add FP (there may be several elements in a global variable VI)

    I read some of the warnings against the use of global variables as it can cause race conditions / lead to General illegibility. I'm curious what is recommended if global variables are used as the constants that are defined at the beginning of the program. In general, my LabVIEW code gets pretty unreadable if I have a lot of threads for all of these constants. Is there something better?

    Thank you!

    Kristen

    Hello kllurie,

    The scenario you mentioned (using globals to replace duplicate constants) is probably the best use cases for them - conditions of race etc. problems arise when they are used to the stream or in several scenarios of the writer.  Readability is perhaps a matter of concern, because it is not immediately clear what could be reading from or writing to a global when a thread would suffice.

    With regard to the modification of the globals vi, all you need to do is drop objects on the front of the range of controls (right click).

    Kind regards

  • Functional Global Variables: an indicator can be used instead of a shift register?

    It is a simple question, but I can't find an answer to it. The model agreed to a functional Global Variable is to use an uninitialized as in this example shift register:

    ('Référence IN' and ' Reference to "is actually a pile of references.) There is also a "Se Refnum" case, which comes the straight through the tunnels shift register.

    My question is, why can't we do store the indicator data? It is much simpler to use a shift register (IMHO a non obvious way to store global data!):

    The case "Se Refnum" does absolutely nothing. Other functions such as erasure of data can be implemented just as easily. The advantage of the FGV to help avoid race conditions is maintained because you always use the VI to access the data.

    JonP says:


    Not so much, the Inidicator can happily live outside the case structure, together and Clear would be just assign different values.

    If you have only a case structure, the indicator could not live outside of it.  In order to maintain the indicator data, your design requires that it is not written in for a case of Get.  If you have an exterior structure deal that decides on 'Get' or 'set or clear' and (in the case of "Set or clear") contains the terminal of the indicator and a classiquee case that decides on 'Set' or 'clear '.  However, I would consider this a design below using the standard template of the FGV.

    The difficulty with retrieving the value if you want to do a read operation / writing change. But LV provides many ways to retrieve data from an indicator (one you don't mention is the 'Value' property), do you mean that's all "incorrect"?

    Yes (I mean that they are all incorrect).

    You could hack your way around the design to work with a single structure of matter and the terminal of the indicator being outside using a method to read the value of the indicator and through a tunnel to the structure of the case through wiring for the tunnel of writing indicator in the case of 'Get '.  However, who will require a local Variable or value of property node.  As I said, these (I only mentioned the local Variable originally) are not good choices for performance and scalability.  If you are not aware of the functional differences between the terminals, local Variables and nodes of property value, refer to this article (obviously advantages/disadvantages such as redraw objects on the front panel are not relevant here).

    I guess you could say that indicators should only be written, but it is difficult to be pure!

    No, it's not, just use the classic design of the FGV!

  • Slider - setting through global variables

    Dear friends. Is it possible to change the "maximum value" on the module cursor externally, using the global variable?

    I am programming the communication with the shoot-syringe TSA and I need to change the range of rates according to the diameter used the syringe. I can make six different sliders for each diameter, but it is too inconvenient. Do you have someone has an idea? I tried to set the variable to the maximum value in the field of slider module, but only a certain number was possible.

    What DASYLab version do you use?

    My cursor with DASYLab 12 module allows a Global Variable for the Min and Max, and she changes her running.

    A way to tell whether a Global Variable is supported... right click in the parameter field.

  • Using a Global Variable for the input recorder DisplayRange

    I'm assuming; Since I can't do it; that you cannot change the display range of a graphic recorder by using a variable.  If there is a way I'd love to know how.

    Thank you!

    Determine if you can use a global variable is to click right in the parameter field. If the global variable is available in the context menu, then you can use a variable y.

    You can use a variable of the y-axis from the settings.

    You cannot use a variable for the display range of the x-axis parameter. This is because DASYLab needs to know the amount of memory to be allocated at the beginning of the measure.

  • Get local and global variables using API

    Hi, I do in LV a Publisher for TS. The user should be able to change the value of global variables and the inhabitants of file. Using the TS API, it is possible to get all files of Globals and locals without knowing the name of these variables have ts? I mean, if I knew the name I could use the value of property Get with the search string. But if the I do not know the name of the variable, can I get the list (and their values) of the variable?

    Thank you very much.

    Try the following link

    http://forums.NI.com/NI/board/message?board.ID=330&message.ID=3390&query.ID=6624776#M3390

    In summary:

    Use the GetNumSubProperties method to get the total number of inhabitants / FileGlobals.

    Use GetNthSubProperty to get sub properties using the index starting with 0 to GetNumSubProperties-1

    Use the Name property to get the name of the subproperty.

    Concerning

    Ray Farmer

  • global variable functional to read and write data from and to the parallel loops

    Hello!

    Here is the following situation: I have 3 parallel while loops. I have the fire at the same time. The first loop reads the data from GPIB instruments. Second readers PID powered analog output card (software waveform static timed, cc. Update 3 seconds interval) with DAQmx features. The third argument stores the data in the case of certain conditions to the PDM file.

    I create a functional global variable (FGV) with write and read options containing the measured data (30 double CC in cluster). So when I get a new reading of the GPIB loop, I put the new values in the FGV.

    In parallel loops, I read the FGV when necessary. I know that, I just create a race condition, because when one of the loops reads or writes data in the FGV, no other loops can access, while they hold their race until the loop of winner completed his reading or writing on it.

    In my case, it is not a problem of losing data measured, and also a few short drapes in some loops are okey. (data measured, including the temperature values, used in the loop of PID and the loop to save file, the system also has constants for a significant period, is not a problem if the PID loop reads sometimes on values previous to the FGV in case if he won the race)

    What is a "barbarian way" to make such a code? (later, I want to give a good GUI to my code, so probably I would have to use some sort of event management,...)

    If you recommend something more elegant, please give me some links where I can learn more.

    I started to read and learn to try to expand my little knowledge in LabView, but to me, it seems I can find examples really pro and documents (http://expressionflow.com/2007/10/01/labview-queued-state-machine-architecture/ , http://forums.ni.com/t5/LabVIEW/Community-Nugget-2009-03-13-An-Event-based-messageing-framework/m-p/... ) and really simple, but not in the "middle range". This forum and other sources of NEITHER are really good, but I want to swim in a huge "info-ocean", without guidance...

    I'm after course 1 Core and Core 2, do you know that some free educational material that is based on these? (to say something 'intermediary'...)

    Thank you very much!

    I would use queues instead of a FGV in this particular case.

    A driving force that would provide a signal saying that the data is ready, you can change your FGV readme...  And maybe have an array of clusters to hold values more waiting to be read, etc...  Things get complicated...

    A queue however will do nicely.  You may have an understanding of producer/consumer.  You will need to do maybe not this 3rd loop.  If install you a state machine, which has (among other States): wait for the data (that is where the queue is read), writing to a file, disk PID.

    Your state of inactivity would be the "waiting for data".

    The PID is dependent on the data?  Otherwise it must operate its own, and Yes, you may have a loop for it.  Should run at a different rate from the loop reading data, you may have a different queue or other means for transmitting data to this loop.

    Another tip would be to define the State of PID as the default state and check for new data at regular intervals, thus reducing to 2 loops (producer / consumer).  The new data would be shared on the wires using a shift register.

    There are many tricks.  However, I would not recommend using a basic FGV as your solution.  An Action Engine, would be okay if it includes a mechanism to flag what data has been read (ie index, etc) or once the data has been read, it is deleted from the AE. 

    There are many ways to implement a solution, you just have to pick the right one that will avoid loosing data.

Maybe you are looking for