LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

error 200279

Solved!
Go to solution

I've seen some other posts about this error code, but I still don't quite understand the problem with my specific code. I'm attempting to read some voltage differences in 4 channels of a daq, then graph one point every 30 seconds and also record all of the data to a spreadsheet file. For some reason, I keep getting error 200279 and sometimes the program won't save a file. I really don't understand why it wouldn't save to a file at all. I have somewhat of an understanding what the 200279 error is, but I don't understand why this specific code is giving me that issue. Thank you for your help in advance. 

0 Kudos
Message 1 of 7
(2,966 Views)

Your only reading samples every 30 seconds.  Your DAQ buffer isn't big enough to store that much data.

 

You could try to increase the size of the buffer.

 

But having a while loop that only iterates every 30 seconds isn't very friendly to a user.  You should have it iterate more often and collect data more often.

0 Kudos
Message 2 of 7
(2,960 Views)

@RavensFan wrote:

Your only reading samples every 30 seconds.  Your DAQ buffer isn't big enough to store that much data.

 

You could try to increase the size of the buffer.

 

But having a while loop that only iterates every 30 seconds isn't very friendly to a user.  You should have it iterate more often and collect data more often.


How do you know that the DAQ buffer isn't big enough to store the data? Is there some calculation that I don't know of to determine buffer size or whether or not it is large enough to store my data? 

 

I have the while loop iterate every 30 seconds because this is meant to monitor the temperature of a very hot oven and the temperature of it changes at a very, very slow rate so there is no need to acquire the data quickly. Also, it makes it easier on QC to only have one or two new points on the graph every minute. Why is it a bad idea to have it iterate once every 30 seconds?

0 Kudos
Message 3 of 7
(2,952 Views)

Read http://digital.ni.com/public.nsf/allkb/E1E67695E76BA75B86256DB1004E9B07?OpenDocument  It talks about the default size of the relative to the data acquisition rate.

 

It seems like the buffere is typically about 10 seconds worth of data, and 30 seconds worth of data is usually more than the buffer can hold.

 

A 30 second while loop is too long.  You don't need to make it that long.  Try making it 1 second.  You can use the Elapsed Time Express VI and a case structure to determine when 30 seconds have passed and execute the code.

0 Kudos
Message 4 of 7
(2,936 Views)

I believe that the link is broken or incorrect. Also, do you have any idea why sometimes the code will write to a file and sometimes it will not? It appears almost random and I'm not sure why.

0 Kudos
Message 5 of 7
(2,931 Views)

@jmejiagusmer wrote:

I believe that the link is broken or incorrect. Also, do you have any idea why sometimes the code will write to a file and sometimes it will not? It appears almost random and I'm not sure why.


Remove the empty space at the end of the link string and it will work.

 

Ben64

0 Kudos
Message 6 of 7
(2,918 Views)
Solution
Accepted by topic author jmejiagusmer

Try this link.  http://digital.ni.com/public.nsf/allkb/E1E67695E76BA75B86256DB1004E9B07?OpenDocument

 

It looks identical to the other one and this one works, but for some reason the other one has a non-breaking space at the end of it that breaks it.

 

With your VI, the file writing is occurring outside of the loop.  So it is only going to write to the file once you hit stop.

 

Your array manipulations inside the loop are much more complicated then they should be.  Insert into Array is the wrong function to use 99% of the time.  Generally you want to use Build Array whenever you are adding to the beginning or end of an array (Just like you are doing with the arrays for the graphs in the upper half of the loop.)  Use Build Array, then you can get rid of the Array size function.

 

For something where you are only logging every 30 seconds, I would put the writing to the file inside the loop.  It won't take that long, and you are relying on storing long term results in a shift register that would be susceptible to a power outage.

 

Another bad LabVIEW construct in the top of your loop.  Don't convert an array to a cluster just to unbundle the elements.  Use Index Array on the array of waveforms coming out of the DAQmx read.

Message 7 of 7
(2,917 Views)