How to run TCP/IP Tx in cRIO vi only when value changes?

My design uses NI's TPC-2006 as the user interface for a cRIO-based product.  I use TCP/IP to exchange data between the TPC-2006 and cRIO.  My code causes the TPC to lock up after a variable number of minutes, typically about 10.  The OS is completely locked and requires a power cycle to recover.
Based on the theory that the TPC-2006 is not keeping up with the TCP/IP packets sent by cRIO, I want to try configuring cRIO to transmit only when it has something new to say.  The event structure that I use for the TPC-2006 won't work on cRIO.  Can anyone out there suggest another approach?
Jeff
Climbing the Labview learning curve!
Sanarus Medical
Pleasanton, CA

Hi Jeff,
The simplest way to reduce transmission overhead in this scenario would be to encase your existing TCP/IP routine in a case structure that only executes if the data element you're interested in is not equal to its last value (stored in a shift register).  This shouldn't add much in the way of computational overhead on the RT side, but should reduce the flood of data if the value doesn't change very often.  Keep in mind also that if you have LabVIEW 8, you can use Shared Variables to send the data over your tcp/ip connection only when a new value is written to the variable - this may meet your needs just as well.
Cheers,
Matt Pollock
National Instruments

Similar Messages

  • How to tackle the dataflow problem when Value Change event always triggers after another GUI event

    We know that Value change event always triggers after another GUI event. Eg, the user modifies string control, the user clicks on a boolean control. Then event boolean clicked is triggered before event string control value change.
    Now suppose somehow the GUI event that must happen to subsequently trigger the Value change event can potentially affect the data that Value change event is supposed to work on. How can we tackle this problem ?
    For example, in a mockup application that the grand purpose is to have user entered values in a textbox logged to a file (no missing information is accepted, and there is a boolean to determine how the information is logged).
    There are 2 controls, boolean A when clicked (mouse down) will load random number in text box B. Text box B is designed with event structure VALUE change which saves whatever values user enters into text box B to a log file.
    There are 3 problems when instead of clicking anywhere on the front panel after modifying text box B, the user ends up clicking on boolean control A.
    1. Event mouse down on Boolean control A will execute first, modifying text box B content before the user entered values in B get saved.
    2. The value of boolean A can potentially affect how textbox B is loggged.
    3. The value of boolean A affects how the file is logged and this is indeterminate. Somehow when running this VI with no Highlighting, the textbox B Value change event executes -before- boolean A value is updated (F to T). When running this VI with Highlighting, the boolean A value is updated (F to T) (because we click on it) -before- textbox B value change event occurs. Why is it like this ?
    Now the situation I made up seems non-sense, but I believe it resembles one way or another a problem that you might run into. How would you solve this problem elegantly ?
     

    You can set the string control to "update while typing".
    Are you sure appending the log to itself is reasonable? Wouldn't it grow without bounds if the users keeps entering strings or pressing the ingore button?
    Why isn't the "constant" a diagram constant instead of a control. Is the user allowed to change it?
    To reset just write empty strings or a false to local variables of the controls (renit to defaults" seems a bit heavy handed).
    All you probably need is a single event case for "ignore:value change" and "String" value changed", no need for the local variable..
    Also add a stop button and an event for it.
    You don't need the timeout event.
     

  • How i can play smoother HD video files in realtime, when i change the duration in cs6

    How i can play smoother HD video files in realtime, when i change the duration in cs6.

    More information needed for someone to help... please click below and provide the requested information
    -Information FAQ http://forums.adobe.com/message/4200840

  • How to write rfc when value change in the screen (browser) in webdynpro.

    Hi,
    I want to know how can i write an RFC when screen value change in webdynpro. I already designed a rfc where all the value can be seen in the webdypro screen. Now when user change the value how can i pick the changed value in R/3 so that i can save it into the respective database.  Please send some code for understanding it easily as i am new to this field.
    Regards
    Deep

    Hi Deepak,
    Though I dint understand your requirment properly but as it is raised in Web Dynpro forum I considering that you want to send the data filled by the user to your backend using RFC calls. For this purpose you can refer to this two documents available on SDN.
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webdynpro/creating%20a%20web%20dynpro%20application%20accessing%20abap%20functions.pdf">Tutorial 4</a>
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d352a790-0201-0010-5082-b1a608d22b6c">Tutorial 5</a>
    Regards
    Sid

  • How to run the same procedure in parallel for different parameter value.

    Hi There,
    I am currently working on extracting data in to flat file and I am able to do so for one revenue month (e.g. 200101) using PL/SQL procedure(get_rev_data). it takes almost 1 hour to execute the procedure completely and it generates 400 MB data file. Now I have to run this procedure for last 10 yrs of data (i.e. 120 revenue months) . my prolem here is to figure out a way/logic in such a way that I can run the procedure in parallel for each revenue month and at the same time it will write the data in respective data file for each revenue month. so the final result of this exercise would be 120 flat files, one for each revenue month with file names like
    EXTRACT_00001001 to EXTRACT_00001120.
    where
    first five digits : 00001 will indicate the Extract run number and
    last three digits : 001 will indicate the thread number for each run.
    I am thinking of doing this by creating a table "RevMonth" with two values (revenue_month, thread_num) and calling the procedure in a simple select statement and passing revenue_month as parameter of the procedure like
    SELECT get_rev_data(revenue_month, thread_num)
    FROM REVMONTH;
    But I am not sure if that will do the needful. Any idea on how to achieve this will be of great help. Thank you.

    Hi Smit,
    Thanks for the advise. I am not planning to run for all 120 months at once. actually I am planning to run like 1 year (12 revenue months at a time). I am not sure if that will work well but I was planning to run this through shell script (Unix) and will call the same procedure with different parameter (revenue_month and Thread_number) values and see what happens. I hope that will run in parallel for each revenue month.
    Let me know if you have more knowledge about it. THanks a lot.
    Thanks,
    .

  • How to run a subVI without poping up normally, but when clicking a button, popup the front panel?

    I know pop-up the front panel of a subVi when called by selecting VI Properties>>Windows apperence.
    But what I need to do is: always run the SubVI inside the parent VI as the nornal subVI do without poping up. But when I click a button"show front panel", the SubVI popup the front panel.
    Is there anyway to do this?
    Thanks,

    ossoo,
             You can use a static VI reference to the subVI and then use the Front Panel Open invoke method to show the front panel when you want. I have attached two VIs that show this. I saved these VIs for LabVIEW 2009 so you should be able to open them up and run them in 2009 or later. Add.VI is the subVI that you are calling. The Caller.VI is just a While Loop that contiually calls the Add subVI. Inside of the While Loop is also a Case Structure with a Static VI Reference (you might need to change the path this is pointing to after downloading the VIs to your computer for this to work) and the Front Panel Open invoke method. You can run the Caller.VI and interact with the main Front Panel as normal and see the subVI but then you can click the Open subVI? boolean button and it will open the subVI's front panel. You can continue to interact with the main front panel and see the values update on the subVI's front panel as well. You can just close the subVI's front panel when you are done viewing it. Does this help?
    Grant H.
    National Instruments
    LabVIEW Product Marketing Manager
    Attachments:
    Caller.vi ‏19 KB
    Add.vi ‏23 KB

  • How to create array of indicators, with the indicators numeric text value changes as it falls above or below the limit

    Hi,
    I am a newbie here. Just started using Labview for my project. Currently having some difficulties over here. Hopefully someone could enlighten me. I wanted to create an array of 60 indicators, where the indicators value are measured from the PCI card. But now the problem is how to make my indicator values in the array change its numeric text color if it falls below or above the limit set. I've attached the vi together with this. Thanks.
    Regards,
    CH.Ong
    Attachments:
    testing.vi ‏15 KB
    try.vi ‏120 KB

    Maybe, you can try something like this...
    - Partha
    LabVIEW - Wires that catch bugs!
    Attachments:
    To change Boolean Text Color in Array of Clusters.vi ‏18 KB

  • How do I get back old emails that were lost when I changed my email address?

    I changed email providers. I have the new account set up. I then went to Tools/Account Settings/Account Actions. I then removed the old account (assuming that it would stay in my inbox and just not try to send or receive) and all of the old incoming and sent emails that I had been saving under that account in my inbox and sent files folders disappeared. How do I get them back?

    Which program do you use for email: Thunderbird? Outlook Express? Other?
    As you may know, you can set up accounts using two different protocols: POP3 and IMAP. With POP3, you actually download copies of all mail and Sent messages are stored locally. Removing your account should be no problem. With IMAP, you are viewing a mirror of your mail which really lives on the server. Removing an IMAP account might remove the folders, although I can't recall ever trying it.

  • How come my contribution for the translation is visible only when I'm connected?

    I contribute to the wiki today by translating this page (http://support.mozilla.com/fr/kb/What+is+Firefox+Sync) to french. I see it's not translated and need translation when I'm not connected, but as soon as I'm connected, I can see the page in french

    Moving this to the contributors forum.
    Your article is in the staging area, and needs to be reviewed before it can be visible to people not logged in.
    See [[How we are different]]

  • How to dynamically calculate sub-total of rows and display when member changes in Hyperion Financial Report

    Requirement - I am writing a very  large reports from Hyperion Performance Cost management.
    Account is in Row. We are taking all level0 members in Row. In columns we are taking Entity,Cost Centers
    Current Structure of the Report
    41100  Entity1 Cost center1 20
    41100  Entity1 Cost center2 30
    41100  Entity1 Cost cenetr3 40
    41200  Entity 10 Cost center1 200
    41200  Entity 10 Cost center2 210
    41200  Entity 10 Cost center3 200
                 Grand Total  1000 ( For Example)
    User wants to dynamically add a sub total into the report when account (41200,41100) changes i.e. This is because , its a very large report of 100's of pages,
    Future State
    41100  Entity1 Cost center1 20
    41100  Entity1 Cost center2 30
    41100  Entity1 Cost cenetr3 40
    sub total 1 --------------------------90 ( This line should be automatically inserted here)
    41200  Entity 10 Cost center1 200
    41200  Entity 10 Cost center2 210
    41200  Entity 10 Cost center3 200
    sub total (n) -------------------------610  ( This line should be automatically inserted here)
                 Grand Total  1000 ( For Example)

    Hello,
    maybe re-consider this approach and say no to the users who request this. Try to think about other solutions.
    Sometimes a "no" helps them more than doing what they ask.
    You might export the whole in Excel. Then they can make their subtotals at every line.
    Regards,
    Philip.

  • Foxfire automatically opens when I start my computer. How do I disable this and go to foxfire only when I click on it?

    Somehow I have set Foxfire to open automatically every time i start my compute. I only want it ot open when I click on the Firefox icon.
    Thanks for any help you can give me.

    Go to System Preferences>Accounts and then select your account, then startup items, remove Word from the list and reboot, you should be fine then.

  • How to run a webdynpro multiple times by passing different parameters each time and save webpages with parameter name?

    Hi Experts,
    I am a BW consultant and new to webdynpro. Not sure how to run RSO_METADATA_REPOSITORY multiple times and by passing different parameter values each time(either taken from an a standard BW table or user provided - anything is fine) and build web pages with parameter name. Need help with direction on where to start.
    Let me step back and explain my requirement:
    In BW we have an object called transformation.
    One way of generating documentation for transformation is highlight transformation and press F1. Then its documentation will be opened as a local web page.
    I need these web pages for all transformations. This is my requirment.
    I came to know that RSO_METADATA_REPOSITORY is beeing used to generate this web page.
    The web link is something like below:
    http://ubw05.xxx.com:8005/SAP/BW/DOC/METADATA/?page=BW_O_D&SystemID=BWPCLNT100&ClassID=TRFN&ID=0KHR6J65AIIUTCJZEC093K6XDFV909PB&objectVersion=A&sap-language=EN&sap-client=100
    When i run this link seperately(not by selecting transformation and pressing F1) i need to enter login credentials to BW system.
    My challenges is how do i pass login credentials and multiple transformation IDs to generate multipe web pages with each page named by transformation ID?
    WHere to start? First of all is RSO_METADATA_REPOSITORY Webdynpro JAVA or webdynpro ABAP or can i use anything?
    Since it is beeing opened as local webpages i assume it is webdynpro JAVa is that correct?
    Thanks,
    Raghu

    hello,
    might be a problem with the version you are using.
    regards,
    the oracle reports team

  • The attached VI works when I run it initially creating the XML file, but when run after the XML file is created, it's not updated. What am I doing wrong?

    The attached VI works when I run it initially creating the XML file, but when I change data and run after the XML file is created, it's not updated with new data. What am I doing wrong?
    Thank you.
    Solved!
    Go to Solution.
    Attachments:
    Attractive Force XML.vi ‏23 KB

    That looks like the logic which was written into the VI
    Inner true/ false case:
    (file exists : false) write to XML file, unflatten for display
    (file exists : true) read from XML file, unflatten for display
    At no time when the file exists (true case) is the XML file updated...

  • How to run fsck.vfat for USB-stick during cRIO-9030 boot?

    Hi all,
    we have a cRIO-9030 with a USB-stick. Sometimes after power loss the USB-stick filesystem (FAT32) gets corrupted and has to be checked/fixed. How can I configure cRIO LinuxRT to do that?
    I've checked /etc/fstab, but it looks that the USB-stick is mounted somewhere else. I run mount - here is the line:
    /dev/sdc1 on /media/sdc1 type vfat (ro,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,quiet,errors=remount-ro)
    It would be nice if I can run fsck.vfat /dev/sdc1 every boot or when an error is detected.
    Thanks in advance,
    Nikolai

    Hi NickViz,
    My name is Ed form National Instruments Technical Support, I have researched into the topic and found that it is possible to use the 'System Exec.vi' to complete the command during the initialization of your RT application.
    You simply need to input your commands as a string just as you would to command prompt/terminal (depending on OS), you can also execute commands via SSH however this is one way communication between the RT application and the command shell.
    I have included some links below to articles which describe the methodology as well as give some further explanation into the NI Linux Real-Time OS.
    http://digital.ni.com/public.nsf/allkb/AFCAC25164CDBD4C86257C6A00545CD5?OpenDocument
    http://digital.ni.com/public.nsf/allkb/9822A3A39B1D0CBB86257C55006B962A
    http://www.ni.com/white-paper/14626/en/
    I hope this is helpful and you achieve what it is you need, do note you will need to enable SSH scripting as described in the article on using PuTTY for your Real Time device.
    Kind Regards,
    Ed

  • How to run 3 operations through my USB-6210 at the same time w/o gettin an error

     Hi, I am using a USB-6210 data logger from national instruments to collect data and run it through labview 7.1. However, when i try to run two labview files at the same time on two different channels in the data logger i get an error #50103 "The specified resource is reserved the operation could not be completed. How do i fix this?

    Hi Mariachi,
    I believe your overall project will be to collect data from
    your USB-6210 on multiple lines and save this to a file. Photon Dan is correct
    in the reason why you cannot use multiple tasks – because of the multiplexor,
    only one AI task can be run at a time. I would suggest putting all lines into
    one task and program, therefore eliminating the error, the need for multiple VI’s,
    and writing all data to a file at once. If you have further questions, I would
    ask that you post more detail about how you are collecting data (LabVIEW?
    SignalExpress? Etc) and your program. Unless you are connecting to other
    computers, you will not need to use VI Server, TCP, etc.
    David L.
    Systems Engineering
    National Instruments

Maybe you are looking for