Labview property node used in a subvi

I have a group of front panel Boolean control I would like to minipulate the visiblity and color(4) in a subvi.  I created a cluster of boolean refnum and passed them to the VI.  In the VI I created a cluster of CTLRefnum which I used as the input cluster.  In the subVI I am able to control the visibility via the visibiliy property node, however the Color(4) property node does not appear as a selection in the subvi.  Any ideas on how I could control the colors in a subvi.
Solved!
Go to Solution.

Hello HEJ@WR,
It sounds like you may have cast your Boolean refnums to more generic Control refnums- as the Color property is specific to Booleans you'll need to ensure that you're maintaining the reference type.  Visibility is a more generic property that applies to all types of controls. Refer to this article for more information on casting refnums:
LabVIEW Help: To More Specific Class Function
http://zone.ni.com/reference/en-XX/help/371361H-01/glang/to_more_specific_class/ 
LabVIEWWiki also has a pretty good discussion of refnum types and class-specific properties here:
LabVIEWWiki: Control References
http://labviewwiki.org/Control_References
Also- if you attach example code demonstrating what you're attempting to do it's much easier for other forum users to assist!
Regards,
Tom L.

Similar Messages

  • Using Property Nodes to view a subVI's xy-graphs in the mainVI

    Hey all.
    Yet again I sit here facing a problem. I currently working on subtracting a background spectra from another measured spectra. This part work good enough, and is what you can see in the RemoveBackground.vi.
    My problem is that I want to display the xy-graphs from the subVI in my mainVI named Sample.VI. For some reason it worked for the one called Derevative, but though I am doing the very same thing to get the reference control (right-click the xy-graph in the mainVI and created a reference -> right click to create a control to the reference -> copy-paste the control into the subVI -> make a property node and connected the control and the property node -> selected the property value -> changed the property of the node to write -> linked the cluster going to the subVI's xy-graph to the property node as well).
    Why won't it work for my signal as well?
    Christian Maden
    Attachments:
    Sample1.vi ‏16 KB
    RemoveBackground.vi ‏38 KB

    The problem is that your Delta Signal XY Graph is expecting an array of clusters and you're feeding in a cluster to the "Value" property. If you insert a Build Array function prior to writing to the "Value" property it will work. Did not intend to have an array of clusters for that graph?
    You should not you have a nasty bug in your code. If you run the top level VI as is, you get into a continuous loop that displays a dialog message about not having any data, and the only way to get out is to force quit LabVIEW, unless you have a handy-dandy LabVIEW app that aborts all running VIs.

  • Propert nodes using references in subVIs

    Does passing a reference to a control in the master VI to a subVI for use of changing the control via property nodes cause the subVI front panel to load in memory? I would think that it would not since the property node does not refer to a control on the front panel of the subVI.

    hi there
    "..For example, this can occur if the subVI uses Property Nodes, because Property Nodes manipulate state information for front panel controls..."
    i think that's true for the front panel that holds the control from which you call properties. the sub-VI calls a property of the control on the Top-Level, NOT of the reference control on the FP of the Sub-VI. rename the executable i posted in the zipfile to *.llb and open it in explorer. then open the Sub-VI and you'll see that the FP is not part of the executable anymore. so it can't be loaded at all.
    if you call a property of the reference control you can't remove the frontpanel in the VI-settings any more (see attachment), because now you refer to a control of the Sub-VIs FP.
    Best regards
    chris
    CL(A)Dly bending G-Force with LabVIEW
    famous last words: "oh my god, it is full of stars!"
    Attachments:
    Properties.JPG ‏18 KB

  • Setting DAQ channel by property node does not display the value

    I am writing a configuration VI to set channel selection and calibration parameters for an SCXI chassis. I store a default setup in a configuration (ini) file and read that file automatically when the VI is called. The value from the file are set by property nodes using the "Value" property. The values from the file do not display in the DAQ channel selection rings, but the numerical calibration values do display correctly. When I click the down arrow in the channel rings, the correct value displays.
    This behavior exists both in LabView and app-builder EXEs. Also, if I change the property nodes for the DAQ channels to local variables, it works. The Value (signaling) property doesn't cause them to display
    properly either. Why can't I use the property node?

    I don't understand exactly what you are trying to do.
    Please upload a simple VI to demonstrate the behavior you are describing. Remember also to attach the .ini file.
    Best regards,
    Philip C.
    Applications Engineer
    National Instruments
    www.ni.com/ask
    - Philip Courtois, Thinkbot Solutions

  • X-y graph property node

    I am looking for a means by which to programmatically turn on and off some of the plots in an x-y graph.
    I have the code that plots a series of thermocouple inputs to an x-y multigraph where the x-value is time. Using a property node I can wire in a Boolean to turn the "plot visible" input TRUE or FALSE. This works for the first plot on the graph, but I can't make it work for the rest of the plots. Creating multiple property nodes and assigning different plot ID numbers to the Plot Y. Scale Index input doesn't work, they're just ignored. I can't even get multiple plots to turn off if I wire multiple plot ID numbers into the same property node (using multple Plot Y Scale Index inputs).
    Is there a trick to turning plots on and off in a multiple plot x-y graph?
    thank you. 
    Laura SImpson
    Electrical Engineer
    BEI Precision Systems and Space Company
    Solved!
    Go to Solution.

    That and a for loop were exactly what I needed. Thank you.
    Laura SImpson
    Electrical Engineer
    BEI Precision Systems and Space Company

  • Add Intellisense support to the property node

     
    I really hate having to dig through a long hierarchy of menus when I know what I want:
    Visual Studio (and other MS and non-MS products) have a feature called Intellisense, which is meant to make this easier. Basically, as you type, it pops up a list of matching objects, based on context, so you can quickly select what you want:
    It would be nice if LV had a similar feature - click on a property in the property node using the text tool (or Ctrl+click if using the auto-tool) and now you can type in the property name and you will get an Intellisense-like pop-up, which will have all the relevant properties.
    Specific features it could have:
    It should know all the relevant names - full names with the hierarchy (Boolean Text.Font.Color), long names (Mechanical Action) and short names (MechAction). This could probably be similar to how Quick Drop handles shortcuts or they could simply appear as separate items.
    It should be context sensitive. If the class is Boolean, then there's no need to have Listbox properties in the list.
    It should match all the properties which include the search string (so "in" on a boolean would match both "Indicator" and "Strings[]") and only them.
    It should have the ability to use caps for acronyms (e.g. in the above screenshot you could use "BT" instead of "Boolean Text", similar to what appears in this video).
    It could probably also work on the invoke node, although there it's less needed.
    It could probably also be used to quickly select a class if you have a class specifier using the same basic mechanism.
    This example (LV 2009) shows how useful this could be. You don't need anything installed. Just run the VI and start changing properties.
    Caveats:
    It will only work on the last property in the node.
    It doesn't have the proper list of names and it doesn't implement all the features in the idea, as this is just a basic example.
    Note - this is similar to this idea, but I think that it's much more usable. Also note that the second idea refers to a QDKS which ships with 2010, but that is far from perfect.

    Here's a more detailed response.
    Browser:
    Click Ctrl+Shift+B.
    Get a new window. Great. Just lost a little bit of focus on what I was doing.
    Find the search button. Oh, there it is. It's that little button.
    Oh, another window popped up. What did I want? ...   ...   ... Ah, yes. It was that property.
    Search for it. OK, that was easy. Now Enter.
    Oh, I'm back to the original browser window, but the property is highlighted.
    OK, so now I can drag the property into the BD and get a new property node with that property, but that's not actually what I wanted. I wanted to set a property on an existing node.
    So, to summarize: A key combo, some mouse activity, 3 window changes and we still didn't get what we want.
    Compare that to:
    Ctrl+Click on the property you want to replace.
    Start typing.
    The intellisense popup appears as part of the current window, already navigable with the up and down keys.
    Press Enter.
    And two additional points:
    Imagine working in VS without intellisense. What if you had to use something similar to the browser (or the menu hierarchy) every single time you wanted to get a property?
    You encourage people to work with LV classes. Property nodes offer a productivity enhancement when working with classes and this offers another one, so you not only not be questioning it. You should be evangalizing it.
    And for those who survived this far, a bonus. This example (LV 2009) shows how useful this could be. You don't need anything installed. Just run the VI and start changing properties.
    Caveats:
    It will only work on the last property in the node.
    It doesn't have the proper list of names and it doesn't implement all the features in the idea, as this is just a basic example.

  • Using a property node of a menu ring to generate a secondary address does not work in a subvi unless the subvi has been or is opened. Why?

    I am writing drivers for third party equipment using LabView 6.1. I am using the property node, digdisp.text, to get the item number of menu ring. This number is being used as the GPIB secondary address for the equipment. This vi is one many subVIs like it in a main vi.
    The only way the main vi works consistently is if I open all the subVIs, otherwise the secondary address isn't picked up and I get a EARG and ENOL error in NISpy and a GPIB write error in the Error Out cluster.
    I have attached an example of a NIspy capture of a failed attempt.
    Attachments:
    Capture.spy ‏9 KB

    Hi,
    EARG (4)
    Error Condition: Invalid argument to a function call.
    Description: EARG results when an invalid argument is passed to a function call.
    Possible Cause: The following are some examples: you call ibtmo with a value not in the range 0 through 17 (possible timeout values correspond to a table of values ranging from 0 to 17, where the default is 13, which represents a 10 second timeout); you call ibeos with meaningless bits set in the high byte of the second parameter; or you call ibpad (or ibsad) with invalid addresses.
    The reason you are getting the error is because not only is your secondary address invalid, but your primary address is also invalid. Lines 14 and 16 of your attached NI-SPY capture set
    the primary address (ibpad) and secondary address (ibsad) respectively. You need to make sure that you are passing the addresses properly to the subVIs using a connector. It seems like your programming when sending and receiving data (like the addresses) from your subVIs is not correct. You have to be sure to pass the data back and forth in the proper method using connectors.
    A.S.
    Anu Saha
    Academic Product Marketing Engineer
    National Instruments

  • Use of boolean property node in LabView 6i

    I am running LabView 6i version 6.0.2.
    I am using a reference to a front panel boolean control to stop the execution of a state machine in a subVI.  The subVI has a property node linked to this reference.  This property node shows that it is "Bool", but when I set the property node's element to "value", the value is not a boolean type.  I can't figure out how to set the boolean property node's element so that I can read the state of the boolean control.  How should I configure this?  

    The data type of the value property is a variant.  It is possible to convert a variant to a boolean, but you probably don't want to do that.
    The reason is that you have the mechanical action of the boolean set to "latch ...", and that means that the value property isn't very useful.
    Change the mechanical action to "switch ...", then the value property will be a boolean.
    Note that this means that you will probably have to reset the boolean programatically after the user clicks on it.

  • Tab Control Property Node gives a build error when used in a VI for LabVIEW PDA

    Hello,
        Iam new to LabVIEW development & need help regarding this:
        We are trying to port a LabVIEW application from desktop to a Windows Mobile PDA. Please note that the LabVIEW application works fine on the desktop. In one of the VIs, a Tab control property node is used which gives a build error with LabVIEW PDA project. A sample VI which shows the problem & the error list snapshot is attached with this post. Can anyone please suggest an alternate approach to achieve the same functionality with LabVIEW PDA? Waiting for an early response from anyone...
    Thanks & Regards,
    Subhashini
    Attachments:
    VI_Error.zip ‏31 KB

    Hello Ton,
        Am glad that i got a response, thanks. The following links indicate that Tab control is supported on PDA target:
    http://digital.ni.com/public.nsf/allkb/CBA335641E27B858862571490015EA88?OpenDocument
    http://forums.ni.com/ni/board/message?board.id=170&message.id=221507&requireLogin=False
        I feel that the Tab control property node that has been used in the VI (which is attached earlier) may not be supported on the PDA target. Can u (or any LabVIEW expert) suggest an alternate approach to achieve the same goal with LabVIEW PDA (changing colour of Tab control pages programatically)??
        I had missed out some details earlier: We are using LabVIEW 8.5 PDA module on a Windows Mobile PDA.
    Thanks & Regards,
    Subhashini

  • Labview 2014 Excel Active X Property Nodes disabled - Why?

    Hello,
    I am using Labview 2014 and want to open, write to and close Excel by the use of Active X.
    I am confronted with the problem, that, if connecting (Active X-) property nodes to the references (e.g. "Excel_Application"), right-clicking on the context menue doesn´t let me choose any properties, the item is disabled (one can read in German "Keine Eigenschaften" (no properties)).
    How can I resolve this? What am I doing wrong?
    Thank you!

    I am having the same problem.  When I left click to choose/change the property I do not get a list - instead I get the greyed No Properties popup - see screenshot.
    If I drag and drop an existing property node from within an example subVI it connects to the reference and keeps showing the current property but I cannot change to a different one.
    I am using LV 2012, Win7, Office 2013.
    When I try with LV 2012, Win7, Office 2010, it works properly.  So my guess is that is has to do with the version of office.  But I would like to know the reason why as well.
    Attachments:
    NoProperties.png ‏67 KB

  • Unable to use correctly the value property node in a re-entrant VI

    Hi everybody,
    I am using labview 6.1 and developing an application which call a reentrant SubVI. However when I use the Value Property Node (which I need : the use of local terminal isn't possible in my final application) in the re-entrant SubVI, i get the initial value of the control, not the current value !?
    Is there anybody to explain me why and how to solve this problem ?
    I have attached 3 VIs for a better explanation.
    Thanks.
    Attachments:
    Master.vi ‏9 KB
    Slave.vi ‏23 KB
    globales.vi ‏7 KB

    You just need to create a local variable instead of a property node to read the value of the control that was passed in. Popup on the control and select Create >> Local Variable. Or just wire the control to where you need it. Data flow is still working; Feroz just explained an idosyncracy of how property nodes work in reentrant VIs.
    BTW - I don't mean to turn this into a sales opportunity, but you might want to check out the VI Analyzer Toolkit. It reports the following for a reentrant VI that uses property nodes:
    "You are using an implicit property node in this reentrant VI. This can result in unexpected block diagram behavior, as a reentrant VI will occupy multiple data spaces but will maintain only a single front panel. You should consid
    er either making this VI non-reentrant, or eliminating the use of implicit property nodes."
    I'm not sure how many people would know what the message means, but they would be forewarned and hopefully check into it further (e.g. test with this specifically in mind).
    I filed a bug report to have this investigated further and at least documented better.
    Roy

  • Is it better to use Invoke nodes or property nodes to set/get control values?

    I have a series of VI's that run in parallel, each to manage different functions- pumping, sensing, a fluid flow model, an experiment generator/runner.
    These need to exchange data, which I am currently doing using invoke nodes (that are all in subVIs), using methods "Set control value" and "Get control value". I find that every now and then (perhaps 1% of the time) the data isn't exchanged correctly and therefore the system doesn't work. I can imagine how "set" could go wrong if they happen simultaneously, and can devise ways of preventing this. However, the "Get" method suffers from the same problem. This is a major problem, because I want to leave it running for several hours.
    I could in
    principle achieve the same thing using property nodes and find myself wondering if this might be more reliable. But I don't want to change over only to find it makes no difference!
    Can anyone advise?

    You can use some kind of syncronization such as queues, occurances, or notifiers but I think the easiest way would be to create and action engine. This was only one action can execute at a time avoiding a "race condition". Possibly a write action and a read action might help. You also can add queues or notifiers into this concept. hope this helps.
    BJD1613
    Lead Test Tools Development Engineer
    Philips Respironics
    Certified LV Architect / Instructor

  • How to show/hide sliders on a slider control using property nodes?

    If I have a slider with multiple sliders on it how do I change which sliders are visible using property nodes? The only property I have found is making the entire control to be visible or not.  This is a possible solution to have two different controls, one slider with only one slider and another slider with two sliders overlapped, but not desirable.
    I found on a thread in the forum that it is possible but the user did not provide any specifics about which property it was. (http://forums.ni.com/ni/board/message?board.id=170&message.id=181279&query.id=34404#M181279)
    I would appreciate an example VI if possible (Preferred version is 8.5 but versios 8.2, 8.0, and 8.6 are available to me).
    Thank you in advance for the help,
    Aaron

    Just make them transparent! Here's a quick draft.
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    HideSliders.vi ‏20 KB

  • How to use Property nodes?

    Hi everyone,
                           I am a beginner of LabVIEW. So I want to know about Property Node in detail. Please Please someone help me know the function of each property node......
    Thank You in Advance,
    Solved!
    Go to Solution.

    Achuthaperumal wrote:
    I am a beginner of LabVIEW. So I want to know about Property Node in detail.
    Property node allows you to programmatically read/write that particular property of associated object. For example, say you have a String Control, and you want to modify its 'Display Style'... for that you need to create and use that particular property node (of the String control).
    Check the attached example.
    I am not allergic to Kudos, in fact I love Kudos.
     Make your LabVIEW experience more CONVENIENT.
    Attachments:
    Example - Using Property Node [LV 2009].vi ‏11 KB

  • Can I use the 'Export Signal Property Node' on a quadrature encoder?

    Hi,
    So I don't know which counter board I'd be using yet for this (it's used in conjunction with a PCI-6280--the PCI-6280's counter inputs are all taken and so I need another board), but assuming this is possible at all in DAQmx I wouldn't mind knowing whether, say, the PCI-6601 (or any other timer board for that matter) could do this. I'm programming this in LabVIEW 2010 by the way. 
    I want to have a counter which counts the number of pulses on one channel (I'll call this the 'clock' channel) between when another channel goes from low to high (which I'll call the trigger). It's basically a pulse width measurement, but I only care if there are more than n clock pulses between triggers. I need to have a hardware-timed digital signal which goes from low to high if there are ever more than n pulses between trigger changing state from low to high. 
    What I am planning to do is this: 
    Wire 'trigger' to the z-input of the quadrature encoder, and set the z-input value to some arbitrary large value such that, at the quadrature encoder counter task's settings, the counter reaches terminal count in n pulses.
    Configure the quadrature encoder counter using DAQmx Export Signal Property Node (tutorial I was looking at is here: http://zone.ni.com/devzone/cda/tut/p/id/5387 ) to toggle a digital channel ('counter event output') from low to high if the counter reaches terminal count (ie, if the encoder reads n pulses).
    If the encoder ever reads n pulses on 'clock' between two rising pulses on 'trigger', it sets counter event output high.
    Is this possible? Reading through the manual of M series PCI-62xx devices, the index pulse loads the counter with a particular value so it seems like you could conceivably set the counter to the terminal count if you wanted. My only real problem is whether DAQmx Export Signal Property Node works on all counter tasks or just on edge counting tasks. 
    Thanks in advance for your help. If this isn't possible, I can reply with more details on the problem this is supposed to solve so that you can help me figure out an alternate method.
    Solved!
    Go to Solution.

    There is probably a way to do it, but it it may be easier to use an X-series board for the job.   They support a new counter capability for count reset on a digital edge without needing to be configured in encoder position mode.  I am not sure exactly how that feature's been implemented however, so maybe it won't make things easier after all.
    The plan based on the hoped-for behavior: 
    1. Configure an X-series counter for pulse generation based on "ticks" of your clock channel.
    2. Set both initial delay and low time to the critical # of ticks.
    3. Configure for count reset on a digital edge (if possible in pulse generation mode)
    4. Configure the count reset value to be the critical # (or possibly 1 less, if possible in pulse generation mode)
    5. If you want the output to remain high indefinitely, configure the counter task to use its own output as a
    pause trigger, and pause while high.
    The way pulse generation works is to preload a # of "low time" ticks into the count register.  Then every source edge will decrement the count.  When the count reaches terminal count (0), the counter's output is toggled (or can be configured to pulse).  The register is then loaded with the # of "high time" ticks and the process continues.
    You would be perpetually interrupting the count-down process as long as you got your triggers in time.  The count would keep getting reset to the # of low counts, keep decrementing toward 0 without reaching it, and so on.  If ever you did reach 0, the output state would toggle high, then the high state would prevent subsequent clock signals from decrementing the count.
    You can conceivably do a similar thing with a 6601, but I'm pretty sure you'd need 2 counters working together to get it working.
    -Kevin P

Maybe you are looking for