07-03-2018 03:55 AM - edited 07-03-2018 03:57 AM
Hi James,
When we use a chart it gives us an error.
Three notes:
1. You don't use a chart. You use a graph as the (default) label says! (If you would use a chart you wouldn't get that error…)
2. The error is explained in the context help. Did you read it?
3. Just because the labels are "original signal" and "waveform graph" the data in those wires aren't "waveforms" or "signals"! Right now those wires just transport scalar float values…
Solution: use a different read mode! Read "N samples" instead of "1 sample"…
We need this waveform graph because we will use WA detrend VI
Wrong.
A graph is just an indicator for some data. You don't need an indicator to run a VI to analyze your data… (THINK DATAFLOW!)
08-12-2024 02:52 PM - edited 08-12-2024 02:53 PM
Hello,
I see that you have have reasonable tips in your comment. And right now I am facing some challenges with implementing DAQ with myRIO.
So to introduce my idea. I want to acquire (at max speed) data, with myRIO 1900 over MSP-C connector. And I want to save my data with TDMS format.
So First question, you have mentioned host VI, when I look at the "Project Explorer" is that under My Computer dropdown or under myRIO -chassis? Because at the end I would like to analize data on my PC
Also can you direct me, how to approach my problem?
Thank you in advance.
08-12-2024 03:44 PM
Hello, SuperLearner. I do hope you live up to your name, and have several months of LabVIEW Experience, including familiarity with DAQmx (and how to avoid the Dreaded DAQ Assistant!) under your belt.
As you undoubtedly know, what I will call "Regular" LabVIEW runs on a PC, and can communicate with a variety of data acquisition (DAQ, for short) devices that either plug into the PC's backplane or connect to the PC over a USB cable. They are capable of data acquisition and signal generation in the kilohertz range, and because they run on a PC, they have to contend with the PC's "doing many things all at once", putting a limitation on the number of simultaneous LabVIEW tasks that can run concurrently without losing time synchronization.
For better results, you need another Operating System and another computer dedicated to running such a system. The myRIO is an example of such a device -- it runs NI's Real-Time Linux OS, and has on-board numerous DAQ hardware devices for A/D, D/A, digital I/O, and other functions.
When talking about a LabVIEW Real-Time environment, such as exists with the myRIO, there are three computers involved. One is the PC, where all the LabVIEW Programming is done, and which "manages" the LabVIEW Real-Time Project. It is often called the Host because (a) it as the code for both itself and its real-time Target (the myRIO), (b) has support for a User Interface typically implemented on the Main routine's Front Panel, and (c) typically is the site for data storage (as it has scads of memory and disk space). The second computer is the myRIO, running a Real-Time OS (which means it doesn't take time out to do Virus Checking, Web Browsing, etc., but only does the Real-Time Task you have programmed it to do in LabVIEW. The third "PC" is the FPGA chip that lives inside the myRIO. This can be programmed to do multiple tasks truly simultaneously, as the code you write literally "builds a special-purpose computer" to do, say 16 low pass filters running precisely at the same time.
So in a myRIO Project, the Host code is saved in the "My Computer" section of the Project, and the Target (myRIO) code is saved under the myRIO section (all of the LabVIEW code actually "lives" on your PC). It is probably a good idea to put the myRIO code in a Project file called something like "Target" or "myRIO Code", and to make this a physical Folder inside the physical Folder that is your entire Project. [Project Folders do not need to actually be physical folders, but I find it help me to keep my code elements better organized, as I might have VIs or Types with the same name running on both Host and Target, and they need to be located in the Project file in the correct "slot".
Remember that the myRIO (and RT devices, in general) are not a good place to acquire and store data. That's the job of the Host. Fortunately, the Host and Target communicate over TCP/IP, so a common technique is to set up one or more TCP/IP communication streams between the Host and Target. Also, because the Target lacks a Front Panel for User Commands, you need to consider how to get Commands from the PC to the Target, and maybe how to get requests and responses from the Target to the Host.
The technique I have used is LabVIEW's Network Streams. I generally have 3 or more Streams. The first is a set of Messages (or "commands", "requests", "responses") from the Host to the Target. The second is another set of Messages from the Target to the Host (same kind of deal, a "command", "request", "response"). The third consists of a Data Stream from Target (which is acquiring the data) to Host (which is streaming it to disk) -- if you have multiple data streams, particularly if they are somewhat asynchronous, you might have multiple Target-to-Host Streams.
Chew on that for a bit. Try to divide your Project into Host tasks, Target (Real-Time) (where most of the I/O takes place) tasks, and Communication Needs. When you are ready, return and ask more questions.
Bob Schor
08-13-2024 10:12 AM - edited 08-13-2024 10:17 AM
Thank you for explanation and for a guidance of a good practice.
I will take a day to think about it..
I have forgot to mentions some key highlights about my plan.
If someone knows about some kind of good tutorial that will be helpful for me I highly recommend you share it, as you already know sharing is caring, Thank you.