I am writing regarding DAQWare, data logging software, and the PC-LPM-16 board, which a group of us a trying to come to grips with. This is rather lengthy, I'm afraid...
We are a group of college students in a computer programmer/analyst program. We have a course that involves doing a project to go through the software development lifecycle (or as much of it as can be done in a term). For our project we teamed up with a group in the industrial hygiene program; they have a computer (standalone) with a PC-LPM-16 (PnP) DAQ board and the NI-DAQ software (all of this has been around for a few years, but has not been used much), and our goal was to capture the data they are measuring (atmospheric pollutants) to an Microsoft Access database.
We are not familiar with DAQ systems, but were shown the software they had installed. This included DAQWare (appears to be version 2.0). We thought we could use DAQWare to log data to a text file, which we then would import into the Access database. We came up with VBA code to parse the ASCII text file created, but have run into one problem: DAQWare does not timestamp each sample, but only puts a single timestamp in the header information. Now we could extrapolate the time for each line based on the sample rate, except that sometimes it seems to put in 8 values per sample, sometimes 12 values. For instance, in the sample of a text file below, the capture was run for 1 minute at a sample rate of 60, and there were 480 measurements in the file, or 8 lines of measurements per sample. (At a sample rate of 100, we got 800 measurements in the file etc.) This was two weeks ago. Today, we returned to capture more data, and DAQWare was logging 12 measurements per sample (so at a sample rate of 100, we ended up with 1200 lines of measurements). We do not know where this factor of 8 or 12 is coming from or how it got changed in the two weeks between captures. We would like to be able to have them just run DAQWare, for days on end if they wanted, capture the data to file, then use our code to parse the text file into the database, but if we cannot put timestamps on the readings, there seems no point. *** Example of a capture below... *** DAQWare File Version: 2.0 Number of Lines in Header: 10 Comment: Date: 10-18-1999 Time: 10:01:39 Sample Rate: 60.0 Scan Rate: 0.0 File Format: 1 Samples per Channel: 480.0 Number of Channels: 5 O3 SO2 NOX NO2 NO 4 3 2 1 0 1 1 1 1 1 0.537 0.276 0.259 -0.017 0.015 0.537 0.273 0.261 -0.022 0.012 0.537 0.276 0.259 -0.037 0.012 0.537 0.276 0.264 -0.007 0.015 *** and so on... *** Regarding this attempt to use DAQWare: 1. Can you tell us where this factor (8 or 12 or however many more readings than we would expect) means, where it is read from or set? 2. Is there an updated version of DAQWare that we should download that would be better? 3. Is there some other existing software that we can download to use to perform basic logging of multichannel analog input to a text file (with timestamp)?
I realise that the software comes with tools (DLL functions) that one can use to create custom software to interface with the DAQ board, but in the limited amount of time we have we are not sure we can learn enough about these functions to write our own datalogging software.
However, to see if I could grasp the basics, I have looked through the examples for Visual Basic and think that a program would run something like this: 1. at the beginning, use LPM16_Calibrate to reset the board 2. configure acquisition with DAQ_Config 3. start acquisition with Lab_ISCAN_Start 4. loop to check is acquisition done with Lab_ISCAN_Check 5. once sampling done, write data out to file 6. loop back up to 3 to get next lot of samples Unfortunately, a sample app using Access and VBA I created came back with an error telling me it could not find nidaq.dll (even though this is in the Windows system directory); probably it is not a good idea to try to do this in Access in the first place. I am going to have a go using Delphi, which I know a bit better. One thing I am unsure of is what the numbers will be coming out of Lab_ISCAN; the reference file seems to indicate they will be binary readings, not voltages, and I wonder how to correlate these with instrument measurements (the instrumentation people we going to set it up so that 1mV=1ppm).
Any help you can give to point us in the right direction would be appreciated.