• Content Count

  • Joined

  • Last visited

Everything posted by AzeoTech

  1. 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.)
  2. 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.
  3. 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
  4. 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.
  5. 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.
  6. 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.
  7. 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