FIFO in real-time instead of 'length of the graphic history.

I was wondering how I can implement the following method with FIFO in real-time instead of 'length of the graphic history.

Well Yes. It uses two FIFO read nodes. The first one reads the elements 0 and the output for the remaining element is wired to the number of items in the second node entry. Voila, check you what is in the FIFO and pull everything out of it.

Tags: NI Software

Similar Questions

  • Shared on a real-time target Variables defined causes the command to remotely fail

    Here's a strange. We create a solution of customer using a CompactRIO, and they want remote panels can view and interact with the executable file. That's fine, we are able to create this, but we noticed a thing is:

    If we build and deploy our code in real-time for CompactRIO with all shared Variables associated with a type definition, the executable will not run. Indeed, it is reported by the browser as a broken VI remote Panel utility.

    Breaking the shared link Variable with the type-def and rebuild the executable file, solves the problem. Weird.

    Anyone else seen this before?

    Hello Thoric,

    I think I spotted a CAR already assigned to it:

    http://www.NI.com/white-paper/13235/en

    #292012

    Looking at our notes this should be fixed in the next version.

  • GetStat-entity (Cluster) - CPU in real-time - values to zero of the recent time intervals

    Hello world:

    I have a strange behavior when querying via PowerCLI CPU statistics.  We have a handful of clusters in a data center, some with HA + DRS and some DRS only.  PowerCLI seems to report different time intervals (5 min. 20 s vs) according to which cluster is queried and for the most recent 15 minutes of data queries is always zero, although sometimes it's only been 5 minutes which are zero.  This behavior is indicated for applications on clusters and resource pools.

    Is this known behaviour?  vSphere Client shows that the data is present when searching in graphics in real time, so it's confusing why smaller or no value is present at all from the CLI.  Ideally, I would like to know the average use of MHz and percentage for all groups to 20 s averaged granularity on the last 2 minutes, but no amount of massage does seem to happen.

    example query:

    Get-Stat - Realtime-Stat "cpu.usagemhz.average" - entity (Get-ResourcePool-name 'Low') - departure (Get-Date). AddMinutes(-20)-Instance "

    As I understand it, the measures for groups and entities related to the cluster as resourcepools, are aggregated values of definition.

    Which means that the vCenter must calculate these metrics of the values collected by the ESXi hosts.

    In other words there is no interval in real time for the metric for clusters, only of the historical intervals.

  • Abnormal behavior observed in real-time executable.

    Hello

    I have an interesting problem. I have developed an embedded application of Real-time/FPGA for cRIO 9024 and come across a problem that I don't understand. I work FPGA and RT of top-level and subVIs, proven individually and together when it is run interactively. When I create and deploy an executable in real-time like start, however, the behavior changes. I posted the code below, which I'll explain briefly:

    I have a state machine with 5 States architecture. "Initialize" and "Shut Down" are exactly meet once whenever the device is reset, and the cycle between them is wait > pre-test > wait > run the Test and repeat as many times as desired. Measures are taken by FPGA and past in real-time by DMA FIFO and are then recorded to the TDMS file by the real time. Everything else is just interface.

    The problem comes from the first time, the program enters the Test case to run. The FPGA send measurements as usual, and they are stored in a growing table updated buffering in the fixed-point shift register shown below.

    Run interactively, this method successfully bed, buffers, sorts and writes all data in the file. However, in time real executable, only the data collected in the first round (147 items total, as it is initialized by the whole shift register) are saved, the rest seems remainsin a buffer? before calling the following function TDMS write, is that in the case before the next test.

    I'm unable to debug the executable file in real time, probably because of the FPGA reference or some other schema components. I tried to replace the pad with a FIFO in real-time, a variable shared with RT FIFO active and tried to write inside the loop. The FIFO are not improving the situation, and when writing inside the loop, the loop does not run quite fast to stand.

    The problem does not exist when I run the VI interactively from my computer, only when I try to deploy all of the embedded, any application that works (as far as I know) except this one place.

    Any ideas to solve, or workarounds?

    Ryan

    Technical support helped me to resolve the problem, the early termination of loop caused loop condition, although I still don't understand why the behavior was different as an executable file, because the condition of the loop has worked in interactive mode, so if someone has any ideas as to the why, I would still like to know.

  • cRIO - creation and deployment of real-time independent startup application troubleshooting

    I use cRIO-9024 with a chassis 9112 for a control system. I use LV2011 SP1. When you run the system in development mode (by pressing the run button), everything seems to work properly. When the autonomous real-time construction and running in startup application, something stops working.

    In order to know if the application is running or not, I toggle the user LED on the cRIO using this code:

    When I turn off all the code in the main VI except this loop, the application deploys and runs at startup without problem (the LED flashes). I then add progressively more loops that I want to run (by disabling the code less and less), and the problem seems to be in the open FPGA VI reference block. If I disable this block, the slopes of autonomous real-time application (I guess the error 63195, handful of peripheral communication not valid, will spread along the line, but I know that the app works because the LED flashes).

    I tried several configurations for this block open FPGA VI and mixed results. For example, if I set it up this way:

    The application in real-time to start runs with the reference block opened VI FPGA active but work stoppages as soon as I turn on a code that makes use of this reference in the subVIs .

    Someone at - it an idea of what could go wrong? I have explored the messages thrown by cRIO at startup but can not see the error messages (in fact, the console output is the same when I managed to deploy an application that is running (by disabling the code). I also tried to explore the error logs (via right click on target Utilities > view error log) but cannot decrypt any useful info on their part.

    Any ideas will be greatly appreciated.

    Hi kkguner,

    My problem is that the code runs (apparently) ok in development mode, but it seems that, when it is deployed as a stand-alone application in real time, it does not at all. As I was not able to get messages through to watch the console output when restarting my cRIO or explore the Project Explorer error logs or error, I can only imagine what is happening.

    I feel that QFang suggestions go in the right direction, but I've yet to be able to determine the exact cause and the solution of the problem.

    The solution I set it with has been to deploy my application as a source with a start VI distribution instead of as a stand-alone application in real time. You can try this option.

    What I could try when I have some time is to clean my system from LV (whether in mass compilation or by reinstalling completely). I tried a massive compilation of vi.lib and I got a good amount of (UN) insanities, the wrong screws and several other unfortunate messages.

    kkguner, let us know what you discover in your inquiry, or if none of the suggestions solves your problem.

    Thank you QFang and xseadog for your help. Best regards!

    --

    Raúl

  • Real-time using RS232 communication

    Hi all

    I want to read a serial port at all times. Transmission speed is 2400. All the 1 sec 5 data packets are sent by the transmitter (hardware). Data package consists of 4-byte ASCII character as-A, d1, d2, d3. . Where A is used for synchronization of the data set, because d1, d2, and d3 are random and should be isolated for furthur v.f.. Here I am attachng my VI.

    Problem:-instead of get 5 packs in 1 second I'm receiving only 2 packages in a second.

    Questions:-ground for above problem? Y at - it another way to do it in real time. ? improvements to the VI Suggetions.

    Please answer for above post your answers will be a great help for me. Please do not hesitate to ask any necessary clarification.

    Thank you!

    @smercurio: Thnak you for your response. You are correct that globle variables were used to transmit the data received from other loops. As you say I will use local variables instead of globle variable.

    In addition, I would like to indicate more clearly that I forgot to mention that each byte 4 data are transmitted in the interval of 200ms. This 200ms includes the time required to transmit also the 4 bytes.

    Earlier, my second loop has been integrated into the 1st loop itself. But since I was getting only 2 packages instead of 5 in one second, I removed this reflection to loop 1st form it might take time for the loop iteration. But stil problem is not solved.

    Do you not assign data received by globle variable is taken on time?

    Note * I have varified 5 packet rate / sec using Terminal Server.

  • Pass an array of real-time desktop PC

    Hello

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

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

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

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

    Hello

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

    Kind regards

    Prashant

  • How to copy a file in real time each 5minus from a PC to another PC via LAN network?

    Hello Labviewers,

    Is it possible can labview auto copy drop every 5 minutes from PC1 to another PC in real time?

    Say in the laboratory classroom I have PC1 labview run in real time, collecting data dump in the folder c:\test\testing.xslx

    Then in my Office PC how can copy file in PC1 every 5 minutes. Is it possible Labview is possible? Please help me IV thanks

    How about something like this?

    First map a network location to a 'reader' in Windows.

    Then just use LabVIEW primitive file copy to copy the file.

    Wait five minutes.

    Do it again.

    Yes, it's the bare minimum, and probably not the best way to do as you can't stop the loop with the stop button once the period has begun. But you can see it's pretty simple, if all what you need to do is to copy a file and location, you can map.

  • Convert the project in real time

    I started to develop a routine that (finally) will be "split" between a host PC and a remote PXI, using LabVIEW Real-time.  I usually test these things on the side PC and create them using LabVIEW project.  I just started a new 'project' and build first the host code.  However, I simply said "New project" and got a "project without real-time targets.  Is it possible to add a 'target' to this project, or what I need to start over with a new project explicitly in real time?  Is the (only) way to do this by selecting new project from the main menu of LabVIEW Real-time (2010)?

    Bob Schor (who should know the answer to that now...)

    Bob,

    All you have to do is right click on the name of your project (in the Project Explorer window) and select new > targets and devices. Select yout real-time target. From there, you can right-click on this target RT and tell New > VI, which will create a VI targeted to run on this RT controller.

    There is really no such notion as "a project in real time. All projects are the same, but I suppose a real-time project is one that contains a real-time target in it.

    See you soon,.

  • Continuous data acquisition and real-time analysis

    Hi all

    It is a VI for the continuous acquisition of an ECG signal. As far as I understand that the analog read DAQmx VI must be placed inside a while loop so it can acquire the data permanently, I need perform filtering and analysis of the wave in real time. How I implemented the block schema means that data stays int the while loop, and AFAIK the data will be transferred on through the tunnels of data once the loop ends the execution, it clearly isn't real-time data processing.

    The only way I can think to fixing this problem is by placing another loop that covers the screw scene filtering and using some sort of registeing shift to transmit the data in the second while loop. My question is whether or not it would introduce some sort of delay, and weather or not it would be supposed to be the treatment in real time. Wouldn't be better to place all the screws (aquicition and filtering) inside a while loop? or it is a bad programming practice. Other features I need to do is back up the data I na file, but only when the user wants to do.

    Any advice would be appreciated.

    You have two options:

    • A. as you said, you can place the code inside your current while loop to perform the treatment.  If you're smart, you won't need to put one another while loop inside your existing (nested loops).  But it totally depends on the type of treatment that you do.

    • B. create a second parallel loop to perform the treatment.  This would be separate processes to ensure that the treatment is not obstacle to your purchase.  For more information, see here .

    Your choice really depends on the transformation that you plan to perform.  If it's much the processor, this could introduce delays as you said.

    I would recommend that you start at any place in the first loop and see if your DAQ buffer overruns (you can monitor the rear of the buffer during operation).  If so, you should decouple the process in separate loops.

    In what concerns or not ' it would be considered as real time processing ' is a trick question.  Most of the people on these forums say that your system is NEVER in real time because you're using a desktop PC to perform processing (note: I guess it's the code that runs on a laptop or desktop?).  It is not a deterministic systemand your data is already "old" by the time wherever he leaves your DAQ buffer.  But the answer to your question really depends on how you define "real time processing".  Many lay it will set as the treatment of 'live' data... but what is "actual data"?

  • Starting process in real time

    I have 2 questions related to LabVIEW Real-time. I'm using LabVIEW 2010 Service Pack 1. We have a PXI-8186 controller running the embedded real-time.

    (1) I have my software written to communicate using TCP/IP. The real time software runs the listener 'TCP create' then the 'wait on TCP listener"to look for the connections of the computer. This works well in the LabVIEW project. I then build the executable and deploy it in the system in real time, set up to run during startup. I put the target name to be my program name "Test program.rtexe" rather than "startup.rtexe". I don't know if that makes a difference. I saw the other files in the startup folder of the system in real time that have been named something else. My questions are: the name possible no matter what name we want and the system in real time all programs contained in the startup folder is running or is there another method to specify the programs to be executed?

    (2) is there a way to monitor or to see what programs are running on the system in real time? As the the Task Manager on a windows system. The reason I ask, is that after I restart the PXI system and without using the program of project, I can't connect to my test program running on the system in real time. I don't know if the software is running on the system in real time, is it established that the network interface which it was assumed, etc. to determine why I can not connect with him. Any help on various methods to determine if the software actually runs would be useful.

    Thanks for any help you can give.

    Bill

    Finally found the problem.

    It would seem that, at least in the 2 controllers shipped we have there, controllers have a flag in the BIOS that allows you to disable the file to begin execution on the system in real time. Once I put the flag on the 'NO', everything works. The flag is named:

    'Disable the boot VI' tab 'LabVIEW RT"in the BIOS.

    It is a good option if the boot VI is damaged or was not debugged prior to deployment.

  • Convert a desktop PC to a target of VeriStand real-time

    Hello

    I have to convert a desktop PC to a target of VeriStand real-time.

    What are the PC requirements to convert the PC to a target of VeriStand real-time? They are the same as the requirements to convert a PC to a time target real LabVIEW?

    http://www.NI.com/white-paper/8239/en

    What is the procedure to install the engine time real Veristand to the RT PC? Is this the same as the procedure to install LabVIEW Real-time to a RT PC?

    http://www.NI.com/white-paper/2733/en/#toc4

    And what I have to install engine LabVIEW Real-time before installing engine VeriStand real-time?

    Last question: can I install the engine time real VeriStand on a PXI controller - 8115 Windows by creating a dual boot on my own? (PXI-8115 can be purchased with Windows or LabVIEW RT or the dual boot Windows/LabVIEW RT.)

    Thanks for your replies.

    Best regards.

    David

    (1) Yes
    2) kind of. Neither veristand engine is just an application that runs on the RT or windows. So once you follow this guide to make the target RT desktop computer you can install the NIVS motor application through MAX
    (3) Yes. Remember that the nivs engine can run on windows or RT so if the 8115 runs windows, you can run NIVS targeted toward you. If the 8115 runs RT you would need a separate windows PC and target the 8115 from that. Or you could put the hypervisor (if the 8115 supports) to simultaneously run windows and RT on the 8115 and so to run the client side NIVS windows targeting the engine on the side of the RT veristand... About a penalty of 50% of the performance

  • How to make the exchange of data between 2 whole loop real-time

    Hello
    I have 2 while loop
    the 1st loop includes data acquisition program
    the 2nd loop includes control program
    --------------------------------------------------------------------------------------------------------------
    My question is how do the exchange of data between 2 whole loop real-time

    --------------------------------------------------------------------------------------------------------------
    I tried with the variable and direct wiring between the 2 local while loop
    It does not work (there is a delay)


  • Browse the contents of the hard disk of the target in real time

    Hello

    Is there an easy way to browse the content of the hard drive on a real-time target by using the file path control (or another type of control)?

    What I have in my application is a PC real-time desktop (running on PharLap) who has a Main.vi running on it. There are a few configuration files (for this VI) I want to be able to read and record to that would be stored on the hard drive of the target in real time. However, when the application runs and I hit the Browse button, it displays the contents of the Windows machine and not the machine in real time. Is there something I'm missing?

    Please note that I can send via FTP on the Windows computer to the target in real time and can interact with the drive of the target in real time without any problem.

    Thank you.

    Mike

    If you LV 2013 actually use WebDAV screws thus:

    http://digital.NI.com/public.nsf/allkb/4EBE45E8A816B19386257B6C0071D025

    http://zone.NI.com/reference/en-XX/help/371361K-01/lvcomm/WebDAV/

  • RT - set the time of real-time target in MAX

    Hello

    I want to manually change the time on my target in time real (cRIO-9022) with MAX

    I followed the steps described here.

    http://digital.NI.com/public.nsf/allkb/FAB0EC4D6E5EE0F386257738005733A3?OpenDocument&MeTC=max_MAXDat...

    In step 2, when you install the remote system OR 14.5.0 Configuration Support

    I get the following error message when you try to install:

    "Labview real-time 12.0.1 requires the service locator 1.0".

    On the host computer, I had SP1 2013 Labview with the module time real 13.0.1

    On the cRIO, I'm under Labview RealTime 12.0.1

    I installed SP1 2012 Labview real-time Module on the host computer and tried 12.0.0.

    Then, I received this message:

    "Remote Server for Labview RT 13.5.0 requires Appweb 13.5.0

    Engine for Services execution Web 13.5.0 requires NEITHER System Web Server 13.5.0

    LabVIEW Real-time 12.0.1 requires the service locator 1.0 ".

    I searched the forum with no luck

    Any help I appreciated.

    BR

    Arne M

    Hello

    I solved the problem.

    Just had to select the correct versions of all additional software necessary

    Support remote Configuration OR system 5.6.0 etc..

Maybe you are looking for