Data Acquisition Idea Exchange

Community Browser
Top Authors
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

Screenshot from the help for number of samples per channel for a Read task :

 


Extract of help.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

Please add an option for a continuous sample task to read all currently available samples (-1) but with a wait for a minimum number of samples (#min). Behavior of this configuration :

  • #available samples >= #min : read all available samples
  • #available samples < #min : wait until #min samples are available or until timeout

 

This would be very useful in several cases. For example :

  • No extra coding to handle or avoid the error that appears if 0 sample is available.
  • Avoid the use of a wait function in the loop to ensure a minimum number of samples are available.

Hey all,

 

Just passing an idea for some new HW and SW for the PXI and LV. I think a touch panel PC monitor would be an ideal O/P for a PXI as you could plug it in the back and eliminate the use for a mouse and keyboard whilst using the PXI chassis. This also leads onto my second idea, the creation of a front panel customization tool kit. This tool kit will enable users to easily customize the front panels of their VI's much in the way a function pallet would work. This way you are able to quickly customize your front panel to suit the end users needs.

It matters less to me right now because I am about to change jobs but instead of a frame grabber to connect to cameras, we could use frame grabbers that acquire both Hi-Def and standard-def video. We've found some that usually work but get a bit flaky when we are using two simultaneously. Having robust LabVIEW drivers from NI instead of writing our own would save a lot of time.

I have a USB-6509 and a USB-8951 connected to a computer through an external USB Hub.  MAX locks-up hard when I disconnect the External USB Hub from the computer, always requiring a reboot. When I connect/disconnect the individual devices on the other side of the External Hub, leaving the External Hub connected and powered, I do not get any problem.


Should there be problems when the External Hub is connected/disconnected, instead of the individual devices??? I'm thinking this is a "USB Problem", but the Windows Device Manager seems to roll smoothly with all the connection/disconnection variations. It is MAX (and any subsequent LV prog) that has the hangup.

 

Any ideas? Thanks!

The request is for NI to prioritize development of VIs that allow integrators’ CAN data to be measured and stored in standardized formats.

 

While TDMS and XNET are decent tools, it’s lack of modern development and open compatibility in industry makes it somewhat difficult to deal with. NI could probably expand and service its user base if it supported XNET and MDF4 better.

 

Currently our process is as follows:

  1. LabView XNET data comes from the cRIO FPGA (eg. NI-9853) as an array of 6 U32s
    1. https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000PASzSAO&l=en-CA
  2. LabView XNET default data structure is the typdef ‘XNET Frame CAN.ctl’
    1. See XNET help ‘XNET Convert (Byte Array to Frame CAN).vi’
    2. There are obscure (near obsolete) VIs or the end user must write code to convert from 6 U32 to XNET Frame CAN on poor documentation.
  3. As an aside, there doesn’t seem to be a clean standardized way to store either of these structures in the TDMS files
    1. There is a way to configure a TDMS channel for CAN frame logging, but it is not easy for signal post processing because it is only one channel of frames.
    2. We believe a much better way would be something like this if we stuck with TDMS.

KineticsTestEng1_0-1747240261033.jpeg

 

However as to this feature request we have found that the industry standard MDF4 file format to be advantageous in most aspects. 

Our tests found that a 1 hour 1.1GB raw CAN frames and analog data TDMS file could be stored as a 200 MB file in the compact MDF4 file ! When the CANbus data was expanded into actual signals, the MDF4 file was 900 MB (still less than the raw TDMS). Further this MDF4 file loaded into FAMOS for review in ~1 sec !

We would prefer to output directly to MDF4 rather than having to script this conversion process.

    1. One key detail is the storage of raw CAN frames such that other industry tools (eg. MATLAB, FAMOS, PYTHON, MDFvalidator, ASAMmdf GUI) can natively interpret and process with various DBC files (the standard includes tools to extract CAN signals).
    2. Secondly with high channel counts of fast sample rates, the file size quickly becomes enormous. MDF4 allows excellent compactness, further compression, and usability of data (including but not limited to CAN).
    3. However, NI’s DataPlugin needs work as it fails to read much of the structure, properties and data of MDF4 files (as seen from ‘Data File Viewer.vi’ utility below). To unlock the true power of MDF4, the CAN frame has to be written correctly. Currently this is impossible.
    4. We were surprised that NI as an ASAM member had not fully supported the MDF4 format.
    5. KineticsTestEng1_1-1747240261034.pngLV vs. free ASAMmdf GUI KineticsTestEng1_2-1747240261040.jpeg
    6. Vector’s free MDFvalidator tool useful for seeing the file structure                    KineticsTestEng1_3-1747240261043.jpeg

       

APPENDIX: here are some links and resources to summarize importance of MDF4 file format.

    1. Link to the standard’s homepage ASAM MDF [asam.net]
    2. Link to the MDF4 format’s documentation asammdf "7.3.14" documentation [asammdf.readthedocs.io]
    3. Link to a founding company’s page Measurement Data Format MDF | Vector [vector.com]
    4. Link to NI MDF4 plugin showing features https://www.ni.com/pdf/manuals/asam-ev-dataplugin-mdf4-2023-q3.html (note that #10 ByteArray is not supported).
    5. Why MDF4 is Popular for Testing:

      • Efficient Storage: As a binary format, MDF4 allows for the efficient storage of large volumes of data, which is crucial in extensive testing scenarios.
      • Standardization: Being an ASAM (Association for Standardization of Automation and Measuring Systems) standard ensures interoperability between different tools and systems used in the industry.
      • Metadata Support: MDF4 allows for the inclusion of rich metadata, providing context and facilitating the interpretation of the raw measurement data. This includes information about the signals, units, and test conditions.
      • High Performance: The format is optimized for fast read and write access, which speeds up the analysis of large datasets.
      • Flexibility: MDF4 supports various data types and allows for extensions, making it adaptable to evolving testing needs.

 

When I drop a DAQmx Task constant on my LabVIEW block diagram, I have the right-click menu option to Generate Code >>Configuration 

 

This scripts out a sub.vi that creates the Task by adding each channel with channel specific properties sequentially, one channel at a time, to repeated calls of DAQmx Configure Channel.vi.

 

I have a hard time saving that vi output!  I have not really learned how to name it properly without Using:  "BLEEP_BLEEP_BLEEP_Configuration_that_cannot_be BLEEPING_scaled.vi"

 

I believe that an autoindexing loop would be much nicer.

 

My grandmother thanks you for improving my manner of speach.

Note: this might only be relevant & useful for multiplexing AI devices.

 

It was an important technique used to investigate channel-to-channel ghosting influence on a multiplexing device.  For example, suppose you had a large signal A and a small signal B.  You could set up a channel list to read "A,B,B,B,B", and thereby *investigate* the trend of these successive readings of the same channel and use *evidence* to determine when the ghosting influence had dissipated.   THIS WAS IMPORTANT!

 

I recall hearing of others use the capability to be able to get faster sampling for one of their fast-changing channels, using a channel list along the lines of "A,B, C,B, D,B, E,B".

 

The feature that used to be supported on multiplexing MIO devices as far back as I could remember working with NI DAQ products.  I only recently discovered that such support was inexplicably removed from DAQmx sometime in the last few years, now producing a fatal task error.   I tested a few available systems and found that it was still supported under DAQmx 16.0, not supported by DAQmx 18.1, and not yet restored as of DAQmx 20.1.  (All verifications were done with desktop or PXI X-series devices.)

 

Why was this ability taken away?   Stop being so overzealous trying to protect us from ourselves!  Multiple readings of the same channel is a legitimate and sometimes almost necessary technique.  Maybe you lacked the imagination to understand why we'd want this, but guess what?  We knew what we were doing.  So stop stopping us.

 

 

-Kevin P

It would be great if there is c series CAN interface module which doesn't need an external power supply. This makes it easy to use and saves time to set up because we don't have to find or prepare an additional power source.

Hi

So I have a cRIO with a 9203 mA input module. I also have sensors etc that are 4-20mA. So when it came to using the scaling feature of the shared variable as below see if you can spot the bug. 

sv1.png

So I was thinking in mA from sensor to mA input to the 9203 which is a mA module - but the RAW scale is in Amps! (Which is obvious once your colleague points it out!) Consequently I wasn't seeing any signal readings from the cRIO as 20mA << 4A. 

 

Since there is an error if you get Full and Zero around the wrong way... can there also be an error or warning if its outside the range of the module? 

 

sv2.pngsv3.png

 

Regards

Nick

Download All

Hi,

 

it would be really nice to be able to set user defined scalings in MAX and daqmx-tasks.

It's possible to do this in common analogue input module like NI-9203, NI-9205 and so on, but I miss this option in NI-9212, NI-9217 and so on.

 

The goal is to set a calibrated scaling to several sensors to get best results and accuracy.

 

Thanks for upvoting my idea!

Yves

Hello All,

 

I would like to know that, why XNET sessions can not be configure in NI-MAX?

It will will be great, if developer can create session in MAX, and use in VI like DAQmx tasks.

 

BR,

Aniket Gadekar. 

Basically, FlexLogger limits the range of readings to the values used in the 2 point calibration.  For example, if your sensor has a range of -10 to 10 PSI, and the 2-point cal is done at +/- 10 PSI, FlexLogger will only display values within +/- 10 PSI (and will saturate otherwise).

 

I totally understand why this is done, but sensors in fact DO read above (and sometimes below) their stated ranges and have documented accuracy (i.e. 1% above 95% full scale) , so clipping the value to the scaling settings in the cal page is the wrong thing to do...the sensor can still be measuring correctly, but FlexLogger will only show the saturated value.

 

The scaling, however it is done, probably result in a Y=mX + b equation, and FlexLogger should display Y, whatever Y is, regardless of stated sensor range or 2-point cal/scaling.

 

A worse case is if the sensor has a range of +/- 10 PSI but your cal/verification system is only capable of +/- 5 PSI, you will be limited to +/- 5 PSI with the FlexLogger 2-point cal implementation.

 

Yes, there are way around this, but why should the user, usually technicians who don't necessarily understand the math or ins/outs of software, have to figure out a way around FlexLogger?

Since version 19, NI stopped distributing the "run time only "installer of DAQ MX. This is a terrible idea.

Here is the thread where no good solution was given.

https://forums.ni.com/t5/Multifunction-DAQ/DaqMX-19-0-runtime/m-p/3994378#M98483

 

Please, NI, if you find it easy enough for the user to build an installer, do it yourself, like you did before.

Not sure if this should be in another category, but here is the idea.

 

In DAQmx you  can register for events like Change Detection Event, Sample Complete Event, etc. These events occur in the Event structure.

 

Idea: Extend this capability to NI-Sync.

For example allow a future time event to occur in an event structure, instead of firing a TTL pulse. The steps would be:

1. Create a new NI-Sync instrument driver session;
2. Read the current time of the clock;
3. Define when the event will be generated by introducing a delay to the current 1588 time;
4. Program when the event will occur at the specified time;
5. Register for Event
6. Event Occurs - do something.
7. Clean Up

See below for diagram.

mcduff

FutTimeEvent2.jpg

I can't say I've investigated this at all, maybe it's already moving this way; all hardware should have it's own available parameters stored on-board, available to be read back by software, for example on startup. Things like available, valid, ranges in volts, current, frequency, channels etc...

 

It would always be a good idea to read those parameters from hardware by software, instead of relying on model number, manuals, drivers. Then, software could easily adapt to different models of the same main type. Plug in a new hardware and it would announce what it's main capabilities are.

 

My2c

Hi,

I am aware of the previous idea here on a filter for the USB DAQ devices, this time I propose a different solution.

Some cDAQ moduls include an anti-aliasing filter, see a documentation here: https://www.ni.com/en/support/documentation/supplemental/18/c-series-modules-with-anti-aliasing-filters.html

In many cases our cDAQ and cRIO system could be the solution to higher frequency (100 kS/s - 1 MS/s) voltage signal acquisition if the signal could be (from LabVIEW) programmatically conditioned prior acquisition. Two main processes are required most: amplification/attenuation and filtering.

I think amplification/attenuation is a trivial processing step, I just mention here a flat frequency and phase transfer requirement in the working range, allowing a bypassing of this stage.

Filtering is a little more challenging. My proposal is a "tunable" anti-aliasing filter, fo the sake of simplicity with one programmable cut-off frequency and fixed roll-off charasteristics. Similarly high pass and band pass filters could be implemented but these are just nice-to-have features. Please note that all filters should be in hardware, e.g. some ASIC before any ADC.

Thanks for your attention

Cheers

Istvan Pinter | Sales Development Engineer, EMEIA

Some users have expressed that they would be interested in getting a 4 port version of the USB-8502/2 CAN interface device with a metal housing, instead of plastic. 

In NI MAX, mV/(m/s^2) should be added to the available choice in the dropdown menu for accelerometer sensitivity units.

 

(Currently avaliable choice is only mV/g and V/g)

Currently there are only two options available if you want a C-series card that has ±10V analog inputs with internal excitation voltage. Both of the available options have serious limitations which makes them impractical in dynamic testing environments. 

 

9218: With two input channels, it is impractical for large channel count testing. As an example at our test facility, we may run 60 analog channels which would require 30 of these cards. That would require 4 cRIO chassis' 

9219: With a max sample rate of 100 s/s, it cannot be used in a dynamic environment to accurately record data. 

 

 

 

There are two options that would be very beneficial to dynamic testing:

1) Add more input channels to the 9218 card so that high channel count tests don't need 3+ cRIO's. 

2) Make a new card similar to the 9218 with less capability but more input channels (No bridge, no IEPE, no ±20mA). 

For example:

± 5V, ±10V, ±60V Input Range

± 1V, ± 5V, ± 10V Internal Excitation

Minimum of 4 analog input channels.

Sample Rate 5 Ks/s

 

Does anyone else have a need for a card like this?

To change a signal name within the Digital Waveform Editor, you double-click on it and in the box that pops up, you enter a new name.  But that same name-entry box does not allow cutting and pasting of text for more mass-production of similarly-named signals. It should (allow cut and paste).