Alternate Methods for FP Updates

I am trying to come up with the most efficient method--both from an execution standpoint, as well as from a development standpoint--for updating indicators on a front panel.
We have an application with multiple windows containing many numeric indicators, representing measurement devices. We also have a subvi that handles performing queries of a central current value table to return the values of devices by name; you pass in an array of devicenames, and it returns an array of values. The standard LabVIEW paradigm for updating indicators would probably be as follows:
In this simplified example, that seems straightforward enough, but it quickly becomes unmanageable if you have to keep adding/removing indicators. It's a constant struggle to make sure that your lookup array and output array indexing matches. In the example above, there's an example of a common subtle mistake. Can you see it?
In order to speed up development and avoid such mismapping issues, we started playing with scripting, and came up with the following paradigm:
In this example, we just place the indicators on the front panel and ensure that the label matches the device. Then we run a script that will place the terminals into cases in a case structure, and generate the lookup string array. So then we can step through the outputs in a for loop, and update the indicators one by one. This method is slightly easier to maintain that the first one, provided you stick to the scripted methods, but if you ever start manually making changes to the devices, cases, or lookup array, you quickly find yourself in a world of confusion as the inevitable mismapping errors start to come up. Further, it is generally frowned upon to update indicators in a case structure like that (anyone in the LV community care to comment on what that is, exactly?).
Recently, I came up with an alternative that I really like, at least for certain cases: if you can bundle all your FP indicators into a single cluster, then you can perform aggregate lookup/update operations:
This way is super nice, since you are guaranteed that the lookup will always be in the correct order. And you don't have to duplicate the indicator labels explicitly on the block diagram. It will even work if you have nested clusters, as long as they are monolithic! However, there are many cases where a given VI does not lend itself to clustering all the front panel indicators together. Particularly if you have them spread out, and have controls nearby (many displays are schematics, with indicators placed where the physical transducers are located, and often there are controls immediately next to them). Sure, you could just create one giant transparent cluster container and toss all your indicators in that, then put any controls on top. But I tend to shy away from floating objects on top of other objects if I can help it. And it is really easy to screw up and accidentally add items to the cluster when you don't mean to...
Ideally, what I would really like is to be able to update all the indicators by reference:
In this example, we just grab all the references once (this is a simplified example, you would probably need to be a little fancier in your traversal to avoid including controls, etc.) and then update the Value property. But, of course, we all know how well LabVIEW handles property node updates, so we defer and undefer FP updates to avoid slowing things down to an absolute crawl. But even doing so, our attempts at using this method have still proven to be pretty darn slow and computationally expensive. 
So, my question to you, LabVIEW Community: have any of you come up with a different way to handle this? Do you have any suggestions for updating indicators quickly and efficiently, while maintaining code legibility and scalability? I'm guessing someone out there has come up with some better methods...

As a follow-up. I did a quick benchmark test to compare the For Loop/Case Structure method with the By-Reference method. I took one of our GUI windows and copied all the indicators into a separate test VI. In this case, there were roughly 100 individual indicators, all DBL type. Yes, that seems like a lot, but again, we were distributing them over a background image and grouping them based on the data they represent. I stripped out all the graphics and captions to avoid displaying anything proprietary/confidential, so here's how the FP looks now (not pretty, I know):
So, not pretty, to be sure. But you can see it's not a ridiculous number of indicators. [I assure you, with the captions and background images, it looks a lot spiffier]
So, I made two benchmark VIs to update these indicators. First, I did the update-them-in-dedicated-cases-inside-a-for-loop method:
[devicenames have been blurred to protect the innocent]
If I run this as shown, updating all ~100 indicators 100 times, the total update time is roughly 6ms. Not too shabby.
If I try the by-reference method, performance is decidedly crappier:
Even if I defer panel updates throughout the entire update process, as shown above, writing the values to all indicators 100 times takes over 2.3 seconds. That's over 380 times slower! 
So, from this example, my main conclusion is that property nodes are not the way to go. It's unfortunate, since they would provide the cleanest and most versatile/scalable mechanism. Unless anyone has come up with better workarounds, or can point out flaws in my implementation...?

Similar Messages

  • Alternate method for LSMW

    Hi friends, kindly let me know alternate solution for my problem.
    Q. For transacton code MB11 iam posting the data through LSMW using standard program RM07MMBL(Batch input program). This program is having structure called BMSEG it will accept only one record per transaction.
    In my flat file iam having total 20000 records, due to this iam getting performance issue.
    Could you please tell me alternate method for the same?
    Regards,
    Sreenivasa Babu,
    9866123064.

    Hi srinivas..
    In this Case it will be better to Call BAPI than using LSMW.
    We have the BAPI_GOODSMVT_CREATE which is used to Create Goods movement.
    It will be faster since the Data will not be processed in Screens when we Call BAPI.
    Sample code to Call this BAPI:
    data : gm_header type bapi2017_gm_head_01,
            gm_code type bapi2017_gm_code value '01',
            gm_headret like  bapi2017_gm_head_ret,
            matdocument type    bapi2017_gm_head_ret-mat_doc,
            t_gmitem type table of  bapi2017_gm_item_create,
            wa_gmitem type   bapi2017_gm_item_create,
            t_gmsernumber type table of bapi2017_gm_serialnumber,
            wa_gmsernumber type  bapi2017_gm_serialnumber,
            ret type table of bapiret2.
    gm_header-pstng_date = '20051201'.
    gm_header-doc_date = sy-datum.
    gm_code = '01'.
    wa_gmitem-material = 'SAMPLE'.
    wa_gmitem-plant = '0001'.
    wa_gmitem-stge_loc = '0001'.
    wa_gmitem-move_type = '501'.
    wa_gmitem-entry_qnt = 10.
    append wa_gmitem to t_gmitem.
    wa_gmsernumber-matdoc_itm = 10.
    wa_gmsernumber-serialno = 1.
    append wa_gmsernumber to t_gmsernumber.
    call function 'BAPI_GOODSMVT_CREATE'
      exporting
        goodsmvt_header             = gm_header
        goodsmvt_code               = gm_code
      TESTRUN                     = ' '
    importing
      GOODSMVT_HEADRET            =
       materialdocument            = matdocument
      MATDOCUMENTYEAR             =
      tables
        goodsmvt_item               = t_gmitem
       goodsmvt_serialnumber       = t_gmsernumber
        return                      = ret
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    WAIT  = 'X'.
      write:/ matdocument.
    <b>reward if helpful</b>

  • What is the alternate method for IPTMyPages.AddPage?

    Hi, IPTMyPage.AddPage is deprecated. There is no alternate method suggested. Does any one know answer?
    Thanks
    Sampath

    iPhoto Library Manager - http://www.fatcatsoftware.com/iplm/ - , duplicate annahalitor, Decloner
    LN

  • Webdynpro abap-method for saving updated values in new database table

    Hi Experts,
    I am creating an ALV  application in weddynpro abap where i have given update button to update fields & save button to save values in mastertable,but whenever i am updating & saving ,it will overwrit previous values. For this,I need  to create a separate method to save the updated values of the fields in a new database table.
    Looking forward for solutions.
    Thank You!

    becuase of the below statement u r getting the error
    insert into ZTAB_CS_ISSSAL values Item_Dates.
    u declared the field Item_Dates as Stru_Issuesal-DATES
    and u were trying to inesrting the record in the table ZTAB_CS_ISSSAL with the field Item_Dates
    the error is related to the compatible.
    so declare work area for updating the table should be of type ZTAB_CS_ISSSAL.

  • Looking for alternate method for RFC adapter with BAPI

    Hello Friends
    Right now I have a scenario as follows
    An External   ==>  SOAP        ==>  XI    ==>   RFC          ==>  SAP TABLE
    Application  
    I have an external application that is sending some DATA to XI via SOAP adapter and in turn XI using a ZBAPI  via RFC updates the table.
    However, the problem is that BAPI's doesn't support STRINGS anymore.
    SO MY QUESTION IS: Is there any other way (any other adapter) without using BAPI that I can update the table with this data.
    Your feedback will be greatly appreciated.
    Thanks
    Ram
    Edited by: Ram Prasad on Mar 20, 2008 2:16 PM

    Hi Prateek
    Thanks for your response.
    To be honest with you, I have not used Proxy in my job here so far, even though I studied during the courses I took to get certified in XI. I have to go back and look at my notes :).
    The data that I am having problems with is of 'STRING' Type, which is a blob data or a CUD string (XML string) of variable length.
    If you have any hints or steps for creating ABAP proxy, please let me know. I would appreciate it.
    Thanks
    Ram

  • Alternate solution for Refurbishment Process without split valuation

    Hi Experts,
    We are implementing SAP PM module. We want any alternate method for Refurbishment process ( Internally processed inside the plant) without activating the split valuation . Is it possible ? If possible, please suggest the process .
    Thanks in Advance.
    VT

    No suggestion received, I am closing this.
    regards
    VT

  • Alternate method of removing hard disk from 13" MacBook (aluminium body)?

    Hi,
    I've recently encountered the need to replace my MacBook's hard disk but when I tried to do so, the head of the one screw that I was required to remove to get the hard disk out got stripped, even though I was using the right size screw driver. I guess I just wasn't careful enough.
    Does anyone know if there's an alternate method for me to remove the hard disk as getting that one little screw out now seems next to impossible without doing real damage to my MacBook?
    Thanks in advance!
    Steve

    Best thing to do at this point is take it to a repair shop. They should be able to drill the screw out and even replace it.

  • Best method for controlling Office 365 updates

    Were looking for the best method for updating Office 365. We will be testing prior to releasing the version to the rest of the company.  We have a couple of methods we're contemplating but looking for any pros or cons for each.  We are also
    using SCCM 2012.
    1. Run setup.exe setting the version and internal install source in an .xml file run as an SCCM package using distribution points as the install source.
    2. Run click2runclient.exe with command lines setting the version and internal install source as an SCCM package using distribution points as the install source.
    3  Set the version through group policy and turn on automatic updates and don't specify an install source.
    Option 3 appears to be the most straight forward with the least administrative overhead.  Would it be possible to revert back to an earlier version using this method?
    I have read various articles but looking for any input as to what is working well  or not working for others.

    Hi,
    I would like to share this
    blog post with you, which provides an example how to implement a fully automated testing and deployment process of Office 365 updates. This deployment method provides you the ability to test updates before you approve them in my environment.
    The process might look like:
    Deploy Office 365 in your environment with Office Deployment Tool, configure the "Updates" element in the configuration.xml file so that updates are enabled and the "UpdatePath" attribute points to an internal source.
    Download the latest Office 365 build into a different internal source, configure your test machine to pick up builds from it.
    After testing the updates, copy the updates to the first internal source.
    You should be able to integrate the process with SCCM to reduce your administrative effort.
    Hope this helps.
    Regards,
    Ethan Hua
    TechNet Community Support
    It's recommended to download and install
    Configuration Analyzer Tool (OffCAT), which is developed by Microsoft Support teams. Once the tool is installed, you can run it at any time to scan for hundreds of known issues in Office
    programs.
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact [email protected]

  • What's the method for updating a book?

    I use a variation of FrameMaker 10's FM_Outputs_CondText.jsx to automate generation of PDFs.
    What do I need to add to force a book update?
    It looked to me as if it were doing that, but I just noticed that the build date variable in the front matter is updated only when I manually update the book.

    To be a little more elaborate: I checked the script you mentioned and it only updates cross-references when opening a book and its files. That is not the same as updating the book and all its variables. You do need to use the Book.UpdateBook method for that explicitly, after first opening all files in the book. That amounts to the same as manually updating the book.
    Ciao again

  • My previous method for payment on itunes was debit card but now I dont have one.  How do I change to no card without creating a new apple id

    My previous method for payment on itunes was debit card but now I dont have one.  How do I change to no card without creating a new apple id?  It tells me to update payment details when I try to update apps but it only has visa, mastercard, amex and maesto.  I dont have any of them.  I did previously use visa but I dont have the card anymore and cant get another one.  Please can someone help me set it up so I dont need a payment method.  Thanks

    Thanks for you reply.  Is that the only way as it would cost me £15?

  • Can someone please tell me a simple but effective method for burning a slideshow to DVD? Now that the connection between iPhoto and iDVD no longer exists, I can't figure out a way to get there with an acceptable quality result.

    Can someone please tell me a simple but effective method for burning a slideshow to DVD? Now that the connection between iPhoto and iDVD no longer exists, I can't figure out a way to get there with an acceptable quality result.

    Export the slideshow out of iPhoto as a QT movie file via the Export button in the lower toolbar.  Select Size = Medium or Large.
    Open iDVD, select a theme and drag the exported QT movie file into the open iDVD window being careful to avoid any drop zones.
    Follow this workflow to help assure the best qualty video DVD:
    Once you have the project as you want it save it as a disk image via the File ➙ Save as Disk Image  menu option. This will separate the encoding process from the burn process. 
    To check the encoding mount the disk image, launch DVD Player and play it.  If it plays OK with DVD Player the encoding is good.
    Then burn to disk with Disk Utility or Toast at the slowest speed available (2x-4x) to assure the best burn quality.  Always use top quality media:  Verbatim, Maxell or Taiyo Yuden DVD-R are the most recommended in these forums.
    If iDVD was not preinstalled on your Mac you'll have to obtain it by purchasing a copy of the iLife 09 disk from a 3rd party retailier like Amazon.com: ilife 09: Software or eBay.com.  Why, because iDVD (and iWeb) was discontinued by Apple over a year ago. 
    Why iLife 09 instead of 11?
    If you have to purchase an iLife disc in order to obtain the iDVD application remember that the iLife 11 disc only provides  themes from iDVD 5-7.  The Software Update no longer installs the earlier themes when starting from the iLIfe 11 disk nor do any of the iDVD 7 updaters available from the Apple Downloads website contain them. 
    Currently the only sure fire way to get all themes is to start with the iLife 09 disc:
    This shows the iDVD contents in the iLife 09 disc via Pacifist:
    You then can upgrade from iDVD 7.0.3 to iDVD 7.1.2 via the updaters at the Apple Downloads webpage.
    OT

  • Why can I no longer, after having downloaded Lion, write accents and other diacriticals when in the Google, Yahoo, FaceBook, or even here in this post? The new method for getting at the "option" symbols works fine in other places like spotlight, but now e

    Why can I no longer, after having downloaded Lion, write accents and other diacriticals when in the Google, Yahoo, FaceBook, or even here in this post? The new method for getting at the "option" symbols works fine in other places like spotlight, but now even the older "option+letter" doesn't work in most places.

    Chrome doesn't support the new accent/diacritics/macron chooser. I'm not sure about other browsers such as Firefox. You can use the old Option+letter combination that Doug suggested. Hopefully updates will solve these little incompatibilities shortly.
    Neill

  • CSS Flexbox - a new layout method for web pages

    Hi,
    As you may all know, css flexbox is a new layout method for laying out your web page, and with Firefox releasing version 22 within the next few days, (should have been yesterday) it is now no longer hidden behind browser settings. Add to this the fact that all desktop browser except IE10 and Safari 5 & 6, no longer require the use of a vendor prefix, and that http://html5please.com/ simply say ’USE’, flexbox is now finally a viable layout alternative, especially for responsive layouts.
    Flexbox has been available on all Android and iOS devices, (and any device using the webkit engine, e.g. new blackberry’s and Kindle Fire devices) since they were first release.
    To help find problems, and provide help in using flexbox, we would be grateful if you would experiment and provide feedback in the use of flexbox for layouts.
    To help you get started a video tutorial, (with files to download) and examples of layouts, (more to be added next week) and tips & tricks to help with some of the more common problems have been provided at http://flexboxlayouts.com/. This site will also be updated to provide you with a list of problems and hopefully the solutions to those problems, so that you will have a ’one stop’ reference site for using flexbox.
    If you have any tips in using flexbox, or a flexbox layout that you would like added to the site, then you can use the ’Submit’ email address on the http://flexboxlayouts.com/ site.
    For more info on the css flexbox specifications see -
    http://www.w3.org/TR/2012/CR-css3-flexbox-20120918/
    or if you just want to know what property is supported by which browser/device -
    http://flexboxlayouts.com/pdfs/flexbox%20browser%20Properties%20.pdf
    Note to regular contributors & moderators:
    As I only have time to visit and help in the forum for a few hours per week, should you find any flexbox problems unanswered then please let me know via email.
    PZ

    Hi Al
    Yes I know, and this is why I am asking people to experiment with flexbox.
    The fix for IE10 is to give the right hand sidebar, (or the content) a larger flex-grow property, the bug is caused by the flex shorthand property not recognizing % values, and using the flex-basis as a set width instead of a preferred size.
    I have logged the bug, (and many others) with the various browser bug bases.
    This and other bugs, do have 'fixes', so I hope users will experiment with flexbox and provide feedback.
    Flexbox is no different than any other css feature, "we can only find the problems in actual use".
    Strangely enough, I have found the most consistent to use is the old 2009 implementation on mobile devices, (no doubt iOS7 will change all that ).
    PZ

  • I have file with 500 pages created from AutoCad file. In all pages, I have different document numbers.The file is not editable in pdf. How to change all the document numbers using "Comment" feature? Any alternate method?  alternate method? I have Adobe Ac

    I have pdf file with 500 pages created from AutoCad file. In all pages, I have different document numbers.The file is not editable in pdf. How to change all the document numbers using "Comment" feature? Any alternate method?  alternate method? I have Adobe Acrobat X Pro and Windows -7 platform.

    Yes, I just want to cover up all the pages for those particular area of document numbers.
    Nothing sensitive about it. I just want to show the correct document numbers on all pages in print out.
    So, I wanted to cover up by comments, but commenting on each page will be difficult. So, I wanted to comment the same on all pages.

  • Best Practice for Expired updates cleanup in SCCM 2012 SP1 R2

    Hello,
    I am looking for assistance in finding a best practice method for dealing with expired updates in SCCM SP1 R2. I have read a blog post: http://blogs.technet.com/b/configmgrteam/archive/2012/04/12/software-update-content-cleanup-in-system-center-2012-configuration-manager.aspx
    I have been led to believe there may be a better method, or a more up to date best practice process in dealing with expired updates.
    On one side I was hoping to keep a software update group intact, to have a history of what was deployed, but also wanting to keep things clean and avoid issues down the road as i used to in 2007 with expired updates.
    Any assistance would be greatly appreciated!
    Thanks,
    Sean

    The best idea is still to remove expired updates from software update groups. The process describes in that post is still how it works. That also means that if you don't remove the expired updates from your software update groups the expired updates will
    still show...
    To automatically remove the expired updates from a software update group, have a look at this script:
    http://www.scconfigmgr.com/2014/11/18/remove-expired-and-superseded-updates-from-a-software-update-group-with-powershell/
    My Blog: http://www.petervanderwoude.nl/
    Follow me on twitter: pvanderwoude

Maybe you are looking for

  • CWMS Permissions and Email Updates

    We are on our 2nd month of running CWMS and so far we are very happy with the product. Couple of questions have popped up so far: 1) Host or Administrator. Will it be possible in the future to delegate a "help Desk" type role to allow a user to have

  • Collect statement issue

    Hi all, I have a requirement in which I am using Collect statement to club the numeric values. TYPES: BEGIN OF  ST_VBBE ,                   MATNR TYPE VBBE-MATNR,                   WERKS TYPE VBBE-WERKS,                   OMENG TYPE VBBE-OMENG,      

  • Apple mail crashing after opening

    I am using mail which has worked fine for years (literally) and suddenly 2 days ago it starts crashing as soon as I try to do anything with emails inthe inbox. I suspected malware and deleted the emails from within library and rebuilt the inbox. This

  • a href... problem

    I have a table of data. When my mouse goes over a row, that row is highlighted via the following code... <table> <tr onmouseover='highlight(this,"cococo")' onmouseout='highlight(this,document.bgColor)' > <td> </td> </tr> </table> I want to be able to

  • Helping my daughter with an older mac computer and isight

    My oldest daugher and I successfully video chat with our macs and isight cameras, my younger daugher now has an older laptop It is a 500mhz Power PC G3. 128 mb and has 10.2.8 will she be able to use the isight camera if the isight camera says it need