06-29-2017 05:36 PM
Hello,
I'm having trouble writing a VI for a scope that, when triggered by a signal from one channel, will plot multiple waveforms from other multi-channel devices. The trigger needs to display at t=0, and we need to be able to view events before the trigger as negative t's (i.e., t = ... -3, -2, -1, -, 1, 2, 3...).
I cannot use DAQmx or DAQ Assist. The express VI's I can use are limited because my hardware has no NI drivers. I'm using Acqiris digitizers in a cc108 chassis.
What I've done so far is write a VI which enables me to turn the lights on the digitizers on and off simultaneously with the push of a button. I figured this functionality would be similar to that of the trigger I will be using. However, the trigger also needs to be capable of starting on the rise or fall of a function slope. Lately, I've been looking at some sample VIs to try to learn how to augment them to fit my needs.
I also need to display multiple waveforms on the same waveform chart (at least a few per chart).
I'll post my LED blinking VI along with some of the ones I've been looking at. The sample VIs have not been edited by me, and it took completing Core 1 and 2 courses online to be able to understand half of what's going on in the sample VIs.
07-04-2017 11:06 AM
Hi mprince956
Is the LED blinking VI the same as My attempt2.vi? Lets try to break the problem:
1) You need to start acquiring data from a trigger
2) Plot data before the trigger??
3) Plot multiple waveforms in the same waveform chart.
What are the challenges you are facing with 3?? You can bundle all signals and graph them in a chart.
What do you mean to view events before the trigger? What kind of events??
07-05-2017 09:17 AM
Hi A-Guz-Man,
Yes, the blinking LED VI is My Attempt2. The challenges I'm facing with plotting multiple waveforms on the same chart are as follows:
1) I don't know how to create a waveform with multiple inputs. Are you saying I could build a bundle of waveforms by name and pass them to the chart?
2) What I meant by "view events before the trigger" is exactly what you said: plot data before the trigger. The only thing is that, once the trigger is activated, any data displayed before the trigger event should be indexed by negative time. It just dawned on me that I might want to have one chart continuously graphing data and another chart which would be activated at the time of the trigger (t = 0). The second chart would probably import the data from the other chart and continue graphing while the trigger is active. The second chart would have an x-axis indexed such that the trigger starts at t = 0 and data from before the trigger is indexed on the negative x-axis.
The triggering event would be a certain signal from one of the channels on one of the digitizers connected to a chassis. Again, bear in mind, that there are no NI supported drivers for this chassis. I'm using generic drivers supplied by the vendor. As a result, I cannot use DAQmx or any express VIs to communicate with the hardware.
Thanks in advance,
Marshall
07-05-2017 10:19 AM
You need to configure your digitizers
to capture the needed number of samples
trigger with pretrigger on choosen channel at choosen level/ slope
read the values
(all these functions seems to be supported by the hardware... )
and depending on how the data is provided stuff it into a wfrm.
We can't help you in detail with your driver .. so how does the data you look like?
@mprince956 wrote:
Hi A-Guz-Man,
Yes, the blinking LED VI is My Attempt2. The challenges I'm facing with plotting multiple waveforms on the same chart are as follows:
1) I don't know how to create a waveform with multiple inputs. Are you saying I could build a bundle of waveforms by name and pass them to the chart?
2) What I meant by "view events before the trigger" is exactly what you said: plot data before the trigger. The only thing is that, once the trigger is activated, any data displayed before the trigger event should be indexed by negative time. It just dawned on me that I might want to have one chart continuously graphing data and another chart which would be activated at the time of the trigger (t = 0). The second chart would probably import the data from the other chart and continue graphing while the trigger is active. The second chart would have an x-axis indexed such that the trigger starts at t = 0 and data from before the trigger is indexed on the negative x-axis.
The triggering event would be a certain signal from one of the channels on one of the digitizers connected to a chassis. Again, bear in mind, that there are no NI supported drivers for this chassis. I'm using generic drivers supplied by the vendor. As a result, I cannot use DAQmx or any express VIs to communicate with the hardware.
Thanks in advance,
Marshall
07-05-2017 11:49 AM
I'm very new to LabVIEW, so I'm struggling with how to start approaching this challenge. I'm not sure if I should put a case structure, sequence, or an event structure into a while loop. I'm also not sure which steps to implement first. I know that the program will need to identify the devices, but I'm not sure if that should come before or after asking the user to input parameters for the waveform.
07-06-2017 06:46 AM - edited 07-06-2017 06:54 AM
Driver problem:
What cards do you actually have?
How do currently access them?
Are IVI driver supported/used?
I would begin with simple vis, testing the basic functionality of card access
For a single unit:
next try to rearm /read, configure more cards, configure for shared trigger, read all cards
If you have the basics to access your cards, you can start thinking about the labview program for your application.
I would start with a state MC (on paper first, than start 'drawing' LV) search the online and shipped tutorials for state MC ..
Display features comes last 😉
If you have an array of values and a known trigger condition it's no big thing to convert it into an array of wfrms and set the t0 value as you want 🙂
07-06-2017 09:45 AM
Henrik, thanks for your reply!
The chassis I'm using is an Acqiris CC108 with digitizer models DC240, DC270, and DC440. Acqiris, the original manufacturer, was sold to Agilent, and then the product line was bought by Keysight Technologies. The original chassis used a fiber optic interface, but I've replaced that with an MXI Express X1 system to allow me to use the chassis with my workstation.
The Acqiris hardware has been discontinued, but is still supported, which is how I acquired the custom drivers for it. I don't know much about IVI drivers. From what I've read about them, they seem pretty sophisticated. The drivers I have been given by Keysight Technologies seem to fall under the "contributed" category. I'll attach the driver trees they provided me.
I have complete access to the hardware functionality. I've used the Keysight soft front panel I was provided to read functions from the digitizers, and they work fine. I've also accessed this functionality in LabVIEW, but the sample scopes I've been provided will only read 1-2 channels at a time, and I need to be able to plot from more than 14 2 GS/s 500 MHz channels simultaneously.
With the "My Attempt2.vi" provided in an earlier comment, I've been able to make all of the digitizers blink simultaneously when "triggered" by a button. However, I don't know much about plotting the data from them and how to plot all of them at about the same time on the same graph/chart.
Getting the array of values, even getting the values, is something I'm not sure how to do yet. The trigger condition, for now, could just be the falling of a signal on the negative slope of a sine wave.
07-06-2017 09:46 AM
When you say "state MC", is that a State Machine? I'll have to look into that a bit more.