• Content Count

  • Joined

  • Last visited

Everything posted by AzeoTech

  1. AzeoTech

    DAQFactory Express

    Within the next few days you will be able to try DAQFactory Express by downloading the regular DAQFactory Trial. A dialog will appear on startup allowing you to select the version of DAQFactory you would like to try and Express will be an option. As for receiving a licensed copy of DAQFactory Express, we will be selling DAQFactory Express for $35 starting next week, or you can now get a free license with the purchase of a LabJack U12.
  2. AzeoTech

    Loggin Interval? or ?

    Alternatively, you can set the logging set into Fixed Interval mode. This causes the logging set to go out at an interval specified in the logging set and either take a snapshot of the last read value of all the channels in the logging set, or average all the data points that have accumulated on each channel over the interval. This mode is often nice when you need to get your data on a particular time interval, but is not as precise and in many situations can create time noise, i.e. noise in your signal due to noise in how precisely time is recorded. DAQFactory records time to the microsecond to keep this at a minimum, but using fixed interval mode bypasses this as the time logged is the time the logging set happened to go out and collect the data to log and not the actual time of acquisition.
  3. AzeoTech

    Loggin Interval? or ?

    When the "All Data Points (aligned)" option is selected (the default) in a logging set, all data is logged. The interval is determined by the polling interval to the device. So if you are reading the LabJack once a second, you will get a line in the log once a second. If you are reading the LabJack twice a second, you will get two lines each second and so forth. With this mode there is something called Alignment threshold, which by default is set to 0.05 seconds. This number determines how close two data points need to be to be considered happening at the same time. For example, lets say you are reading all 8 analog input channels with a timing of 1 and an offset of 0. It takes 20 ms (approx) to read the first 4 analog channels, and another 20ms to read the second. The second block with therefore have a time stamp that is 20ms later. Since the Alignment threshold is set to 0.05 or 50ms, all eight points will appear on the same log line. The problem comes when you try and read faster than 20hz. Lets say you are streaming 4 channels at 300hz. In this case the difference in time between consecutive is 1/300th of a second or 0.0033 seconds. With the alignment threshold set to 0.05, only one in every 15 data points will be written. To fix this, you have to set the alignment threshold smaller than the acquisition rate, or in this case, you can just set it to 0 since all the streaming channels will have the same time stamp.
  4. There are an infinite number of nice features that we could add to DAQFactory, but if we did, the program would be impossibly combursome to use as you would have pages and pages of options to do anything. Instead, we provide easy to use standard features that offer the more popular options, and then give you the ability to create sequences to extend the capabilities of these standard features. Using your example, a logging set offers many options for the time format, automatically splitting files, and several different logging formats. If you want to add the features you described, you would use a combination of logging sets and sequences. In the sequence, you would use "File." direct file access functions to create the necessary directory structure and specify the logging set name. DAQFactory would then take care of logging the data as it came in with the logging set. The File. functions you will probably want to use is File.MakeDirectory(). This will enable you to create your desired directory structure on the fly. Use the FormatDateTime() function to add year, month, day to the directory name. Then use Logging.MyLoggingSetName.strFileName to change the name of the file that the logging set is writing to. When you change this variable, the current file is closed and the new file opened, so you don't need to stop and restart the logging set.
  5. AzeoTech

    DAQFactory Express

    This download does not include the complete application. You must install DAQFactory Express from the LabJack CD before updating with this download. You are receiving this error because the files from the LabJack CD are missing.
  6. AzeoTech

    DAQFactory Express

    DAQFactory Express is currently only available on the LabJack CD. You must purchase a LabJack to receive DAQFactory Express. It is a special version for use with the LabJack and not publically distributed on our website. As I mentioned, if you want to see what DAQFactory Express does, just download the regular DAQFactory trial and note the limitations mentioned above in our earlier post in this topic, or buy a LabJack U12.
  7. AzeoTech

    DAQFactory Express

    DAQFactory Express is just a limited version of DAQFactory. To try it, simply download a trial of DAQFactory from Here are the limitations: -Only 2 pages allowed -the following components: --text --panel --variable value --descriptive text --symbol --graph --button --edit box --multiline edit box --combo box -limit of 16 channels -limit to 5 sequences, each with a maximum of 10 lines -plus all the limitations of DAQFactory-Lite (i.e. no PID, email, networking, etc) Unlike the other versions of DAQFactory where features are controlled by the license key, DAQFactory express is a complete rebuild with the features fixed. The menus and workspace therefore do not show features of other versions of DAQFactory. All documents created in DAQFactory-Express will work in other versions of DAQFactory.
  8. AzeoTech


    The startup guide is located at:
  9. AzeoTech

    Graph Scale

    If your axes are thawed, the graph should use the Scale From and Scale To values specified in the properties. But, until you have data in the graph, the scale might not display exactly these values. Once you have two data points, the scale should pop into the correct value. One other thing to watch out for is to make sure the bottom axis is set to Lin (Linear) and not Date/Time (the default) when creating an XY graph. Also, make sure the bottom axis doesn't have Use Time Width checked (also the default.)
  10. AzeoTech

    Clear History

    Yes, that was the purpose of my very first question. Release 5 is now available and I thought you were running under that release. Please go to our website and download it. You can upgrade for free, though you won't have access to all the new features. Release 5 is quite a bit different than release 4, including a complete scripting back-end and new, much improved, logging/exporting methods. Some things from your old doc won't work (like logging), so you'll need to plan for an hour to learn about the new logging sets and implement them. But in the end I think you'll like the new version much better, and you'll be able to do everything I've described so far.
  11. AzeoTech

    Clear History

    Yes, sequences are a scripting language and can do most things that C can. Variables work slightly differently though because there are variables AND channels. First I suggest checking out the chapter in the help file on sequences, as it will walk you through everything and should open up all sorts of possibilities to you. But to answer your question, lets say you want to loop 10 times: for (Private.counter = 0, Private.counter < 10, Private.counter++) ? ... something in the loop endfor or, if you prefer: Private.counter = 0 while (Private.counter < 10) ? ... something in the loop ? Private.counter++ endwhile You will probably want to put a wait() or delay() statement in the loop unless its a really short loop or the sequence will hang your computer while it runs the loop. Repeated question: Clearing a history in a sequence. As I mentioned before, its done by using a channel function. Lets say your channel name is MyChannel. The following will read MyChannel once a second for 10 times, then wait 10 seconds then clear the history and repeat: while (1) for (Private.counter = 0, Private.counter < 10, Private.counter++) read(MyChannel) wait(1) endfor wait(10) MyChannel.ClearHistory() endwhile
  12. AzeoTech

    data from virtual channels

    I'm going to assume you are running under DAQFactory Release 5. If not, please go to and download the new release. I think you will find things a bit easier. Assuming you do this: 1) To clear the history, use the ClearHistory() function of the channel. So if you have a V channel called MyChannel: V.MyChannel.ClearHistory() 2) To clear the history from a button, assign it the Quick Sequence action then put the above code in to clear the history. 3) To export to a new file everytime you clear the history: assuming you've created an export set to export your data, and that exports set's called MyExport, you can change the same of the file using a variable value component directly by using the Set To action and using the Export.MyExport.FileName as the set channel. Alternatively, if you want to prompt the user using a standard window's file save dialog, do this: a) create a button (or optionally another component that has Actions) set the action to quick sequence c) set the action code to: Private.strName = File.FileSaveDialog(Export.MyExport.FileName) if (!IsEmpty(Private.strName)) Export.MyExport.FileName = Private.strName endif The first line prompts the user and puts the result in a variable. The second line checks to make sure the user didn't press Cancel, and if they didn't, sets the export file name to requested file. You could then start the export right after that: Private.strName = File.FileSaveDialog(Export.MyExport.FileName) if (!IsEmpty(Private.strName)) Export.MyExport.FileName = Private.strName V.MyChannel.ClearHistory() beginexport(MyExport) endif By putting everything inside the if !IsEmpty() if the user hits cancel nothing happens. Hopefully this helps. Please feel free to email us with your .ctl document at if you have further questions or need help.
  13. AzeoTech

    DAQFactory for Linux?

    It is certainly a possibility, but is largely dependent on demand. There have been other requests but not enough to justify it. While we would love to get out from under Microsoft we are unfortunately limited by economics. Because of the current number of Linux vs Windows users, we wouldn't be able to maintain our current low prices for a Linux version. There is always hope though, as several larger companies have made similar requests and may help offset development costs.
  14. AzeoTech

    Thermocouple Inputs with EI-1040

    A few things: 1) You need the EI-1040 at a gain of 100 or 1000 to read thermocouples. Thermocouples output between -5 and 2 mV (give or take). The LabJack inputs at maximum gain (+/-1 V) have a step size of 0.4 mV. This gives you about 15 steps across the entire range of the thermocouple, which is typically 1000 degrees or so. A gain of 1 on the EI-1040 doesn't really do anything but solve impedence problems. A gain of 10 will give you 150 steps across 1000 degrees, which is still pretty bad. Thus 100 or preferably 1000 gain will work best. 2) To properly use thermocouples you have to take into account cold junction compensation. This is to take care of the voltage that is generated between the thermocouple wire and the screw terminal. To do CJC you typically measure the temperature of the screw terminal itself with a thermistor or other temperature device (but not a thermocouple), or, depending on the accuracy you need and the stability of the temperature of the screw terminal, you can often just use a constant like 25C (or whatever your room temperature is). 3) The functions in DAQFactory for converting a voltage into a temperature, such as the TypeK function, require a CJC number as the second parameter, otherwise the function will fail. If a Conversion fails, DAQFactory will simply return the unconverted value, thus the reason you still see raw voltage values. So, to solve your problem, make your conversion read something like: "TypeK(Value,25)" and apply the conversion to your input channel. This example uses 25C as your CJC. Do these things and you'll be golden. Depending on your temperature range, you may want to consider the EI-1022 temperature probe. This sensor gives a 0-5V measurement which is much easier to read with the LabJack (no 1040 required) and has a very simple Volts to C conversion.
  15. AzeoTech

    Low frequency measurement

    Actually there is no way to read the precise time between counts on the counter with the LabJack. Other DAQ devices have this ability as a count-down timer, but the LabJack counter is just a pulse count counter. But there are other ways. The best way depends on the precision you need. If you need low precision (pulse measurement with 20ms), you can use the digital inputs and software polled reading. In DAQFactory just create a digital input channel and set the timing to something small (but not smaller than 0.02). If you are doing other things on the LabJack like A to D, remember that those take 20ms too (in groups of 4). Then you just have to detect the change of state. For this you can simply create a sequence that compares the most recent value to the previous value and if it goes from 0 to 1, then record the time. You can then assign this sequence to the channel so it gets called every time a new data point comes in. The alternative for higher precision is to stream the A to D or IO lines and detect the pulse that way. This will get you much higher precision (1/1200 on one channel), but you'll have to scan the data yourself in a sequence. For both of these, I'd suggest trying the beta of our next version of DAQFactory. It offers many more programming features in sequences to make scanning rather easy. If you are interested, email me at