Jump to content

Tim_S

Members
  • Content Count

    848
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by Tim_S

  1. I've gotten a test bench of 1 MS/sec of 32-bit data (24-bits plus 8-bits channel identifier) across FPGA->RT->Windows using DMA channel to RT FIFO to TCP and let it run overnight without drop of any data. Buffer was set to maximum size of U32. Now that was with a cRIO rather than a myRIO. Are you using NI's recommendations for best practices? Particularly the one where you check for available (request 0 samples) and then read all is a good way to read on the RT side. If you wait until the buffer is full then the FPGA can (and almost certainly will) overwrite before host side can service an interrupt.
  2. The DMA FIFO is what you're looking for with the data transfer.
  3. That error looks suspiciously like one I was getting when trying to uninstall software after something got messed up on my system (MSI files for uninstall were missing). There is (at least currently) a way around the package manager as listed in the knowledgebase article: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P70TSAS&l=en-US in the section "Software installed originally without NI Package Manager". This brings up the old interface which has the repair option. This was able to fix a bunch of installations which I couldn't uninstall before repairing. There are error logs that NI tech support had me send them which read pretty good for debugging the installer issue: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P6FcSAK&l=en-US
  4. The way I read the OP was first wanting to know if it was possible to create a bar graph (which does seem a strange question as the picture looks like a screenshot of a VI). If it's past that and getting the coordinates, then that's a mouse click event and an invoke node.
  5. There are 3rd party controls that do this. It's also possible in LabVIEW native controls, but it's a bit of work. Been quite a while, but seem to recall fill to zero and a property node to set custom axis labels was involved.
  6. You would need to associate the plot with the second Y axis: https://forums.ni.com/t5/LabVIEW/associating-a-plot-with-a-specific-y-axis-on-a-multiple-y-axis/td-p/63688?profile.language=en
  7. Directions on how to create two Y axes is at: http://www.ni.com/example/25089/en/. Directions on annotations is at: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019QhmSAE&l=en-US
  8. Not familiar with your setup, but was thinking that STOP immediate (NI term) could be a fast stop (drive term). Fast stop, with the hardware I've worked with, is usually a physical digital input on the drive that has to be configured to perform a fast stop through a drive setting.
  9. Your post is a bit confusing as you're interchanging string and array terms. Cleaning that up and posting a bit of what you've tried would help people give better feedback. It sounds like you're using primitives that would do what you want, so it would be helpful to see how you are using them.
  10. @Michael Aivaliotis, rereading my reply today that's a very fair criticism.
  11. What you are looking for exists, but not in the way you are looking for it. The documentation is in the context help for the the VIs installed. Some of the libraries do install examples with them, though most do not need examples as the information in the context help is rather good and any confusion can be resolved by looking the block diagram. One thing that I'm not sure is clear is that VIPM is a software package written by JKI that is used by many groups (including NI) to create easily installable packages, all of which is versioned and controlled separately so the VIPM version has no impact on the information the OpenG library provides for VIPM to display.
  12. Sorta. DAQmx is the software interface the same way a print driver (software) is the interface to a printer (hardware).
  13. To add to what smithd said... The biggest difference with LabVIEW versus other languages is that it is a data-driven language, meaning if something has new data at all of the inputs then it executes. LabVIEW is inherently multi-threaded because of this (there is some exceptions to that when dealing with DLLs and the like). So, looking at your code... The while loop has no inputs, so it will start immediately. The "input path" control has no data coming in, so it outputs a value that goes to the 'output path' which will display the value as that's the only input. The event structure will start and wait as it's input is some event to occur. The event structure and input/output path will occur 'simultaneously' as there is no data dependency (output of one to input of another) between the two. Similarly, other VIs you have can continue to run the same way if there is no data dependency.
  14. Well, you don't do what you're describing in the way you're looking to. You could do what you're describing using invoke nodes to get/set control values and run the VI. What problem are you trying to solve?
  15. Not clear on what you're trying to do, but... Open VI reference does not need a type specifier to open a reference. When the type specifier is passed in, then the VI at the VI path must conform to the front panel layout and data types. When the type specifier is not passed in, the To More Specific Class primitive can be used to change.
  16. A while loop iterates once everything in the loop has completed. The event structure has a timeout (little blue box in the upper left corner of the structure) that defaults to -1 which is no timeout. So what is going on is the while loop is entered, the input path control is written to the output path indicator, and the event structure waits for something to happen. And waits. And waits. And waits. The while loop never iterates as the first iteration hasn't completed yet. With the probe, unless you have "Retain Wire Values" selected (icon up in the button bar of the block diagram) then the probe can be misleading. If you don't have it selected, the "not executed" really means not-executed-since-you-created-the-probe. Turning on "Retain Wire Values" before you run a VI changes that to a literal meaning.
  17. rscott9399... You may want to look through an Introduction to LabVIEW on NI's website and LabVIEW Basics at LabVIEW MakerHUB website.
  18. To provide the obligatory quote... " It just so happens that your friend here is only MOSTLY dead. There's a big difference between mostly dead and all dead. Mostly dead is slightly alive. With all dead, well, with all dead there's usually only one thing you can do. Go through his clothes and look for loose change. "
  19. Yes, I am assuming there is one pixel. Never found a way to create an actual borderless cluster with LabVIEW.
  20. I've gotten around this by selecting a region containing the control and then right-clicking on that.
  21. Total Harmonic Distortion (appears to have been renamed Harmonic Distortion Analyzer from when last used it) can be used to find the fundamental frequency.
  22. You could sample at the same sampling rate, or re-sample to the slower rate.
  23. Think I've narrowed down the cause... the uninstaller for VIPM 2017 is not on my hard drive anymore. The error message is misleading as the 'older version of VI Package Manager 2018' is actually version 2017.
  24. Posted this on the JKI VIPM forum a week back but haven't gotten a response yet. I've installed LabVIEW 2018 which also attempted to update VIPM. LabVIEW installed OK, but VIPM failed to install. Been getting the message "The older version of VI Package Manager 2018 f1 cannot be removed. Contact your technical support group." Anyone seen this before? Tried uninstalling VIPM then reinstalling through LabVIEW installer with no luck.
  25. Whenever I have something that an average human is going to edit I use INI files. It's a lot harder to completely mess up and easier to understand for non-software types. Otherwise, I've shifted to JSON.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.