Note: Be sure to keep a backup of your original document before upgrading to any new release. In most cases once you save your document under the new release, you will not be able to open it in an older release.
Here a few important notes for certain releases. For a full list of changes between releases, please see the downloads page on our website.
As of Release 20.4, if you try and set a variable that does not exist yet you will get an error, for example x = 3 when x does not exist. This is different than previous releases which would ignore such an error. This only applies to new applications created with 20.4 or newer. You can change this behavior by setting the sequence.CheckAssignmentUndeclared variable to 1 to enable the behavior, and 0 to disable it (default for applications created under 20.3 and earlier).
Release 20 is a major change in the user interface components available to you in DAQFactory. Most of the components have been updated, replaced, or deprecated. Old components that are not available in 20+ will still work under the new release with some exceptions:
1) we have replaced the following controls with newer versions:
EditBox
Password Editbox
Multiline Editbox
Date/Time Edit
Combobox
The old versions of these components no longer function. Old versions of these components are automatically converted to the new versions and some of their parameters are copied over to the new versions when you have them in your existing pre-20 release. This was required to support the new multi-window capabilities of DAQFactory 20+. You should check to make sure the new controls work as you expect if you have them in your older documents.
2) As part of this update we have moved off of some 3rd party controls. As part of our licensing arrangement with this 3rd party, these components will function in 20+, but cannot be edited at all. You should replace these controls as soon as possible. The following controls are affected:
The four LED components
The four Gauge components along with the LED Bar
The two Compass components
The Pie Chart and Percent Bar components
The Spectrum Display
Toggle Switch, Lever Switch, Rocker Switch, Valve, 3 Way Rocker and 4 Way components
Slider and Knob components
Most of these components have been replaced with similar, but much more modern and flexible versions. You can replace existing older components with the newer equivalent (if one exists) by selecting the old component and going to Edit - Replace Component in the main menu. Note that conversions aren't perfect and will require some tweaking. Once you replace a component with a newer one, you won't be able to switch back.
Additional components will be added rapidly with subsequent releases after 20.1.
3) the Canvas component has been deprecated for now and do not appear in the popup to add a new control.
4) DAQFactory Connections, i.e. the ability to connect one copy of DAQFactory to another over a network to pass data has been temporarily disabled. We will be adding this back in an upcoming release but in a different format.
As part of the licensing arrangement just mentioned in #2 above, new license purchases of development versions of DAQFactory include a license key that only works on releases 20+. If you require a development license for an older release you will need to contact us. Availability of older license keys is limited. As such you should migrate to the newer, 20+ release as soon as possible. Note that this does not apply to Runtime licenses.
Starting with 5.90 we switched to a different compiler. While it is always true that you should test your document on a new release before putting it into production, this is especially true going from 5.87 to a newer release because of this compiler change. As such, if you are still running 5.87 or earlier, we typically recommend you stay on 5.87 unless you need the new features and have the time to do a full test.
•As with most releases, a number of new functions have been added to the global namespace and may conflict if you have a sequence or variable with the same name. These include "using", "include", "pop3", "ftp", "clearglobals", "startthread", "getthreadstatus", "stopthread", and others.
•The strtodouble() function was updated to return NaN() if the string started with an invalid character (i.e. strtodouble("ab")) instead of 0. As always, if the string starts with a number but then contains an invalid character, the string is still properly converted up to that point: strtodouble("123ab") returns 123.
•On that same note, the Mean / Sum / Max / Min functions have been updated to handle NaNs properly which may cause existing calcs to change if you are using these functions and NaNs in your data.
•Another bug fix that may cause calcs to change is when subsetting by time. Older releases would incorrectly include one point past the end time. New releases properly subset the date range specified.
•Starting with Release 5.30, DAQFactory allows the naming of variables with the Var. or Private. prefix. Your previous documents will still work with the older Var. and Private. notation, but these variables will also be accessible without this notation. So, if you had a variable "Var.MyVar" you could also access this variable simply with "MyVar". This will not cause any problems with older documents unless you happened to name a variable the same as a channel. Since variable names have priority over channel names, referencing a channel with the same name as a variable will result in the contents of the variable, not the channel. So if you had a channel called "MyVar" and you do "MyVar[0]" in an expression, you will get the contents of Var.MyVar instead of the channel MyVar. In these cases, you'll need to rename either your variable or your channel.
•One bug fix in 5.30 may cause problems with earlier documents if you have a workaround in place. In previous versions, when doing the AddValue() function on a channel with a value that had more than one row, the rows would be flipped before being added, so:
•after MyChannel.AddValue(Var.x), Var.x[0] would not equal MyChannel[0]. This has been fixed so that the values are added in the right order.
•The format() function now accepts \ notation for carriage return, line feed and tab. This means that if you have a regular \ in a format() function, you'll need to add a second backslash: \\. This does not affect regular string assignment, so x = "c:\myfile.csv" is still valid, but x = Format("c:\myfile%d.csv",y) needs to be changed to x = Format("c:\\myfile%d.csv",y)
The Runtime version of DAQFactory is now a part of the development version and no longer a separate executable. This has a lot of advantages (see the section on Runtime), but will require some changes. First, you'll need to replace your DAQFactory Runtime installation with a regular DAQFactory installation (licensing will remain the same, so just install into the same directory and change your shortcuts). The Runtime also will no longer automatically load Runtime.ctl, so you will have to specify the file name in a Windows shortcut.
Release 5 of DAQFactory is a major new release with many changes. If you are a user of DAQFactory Release 4.14 or earlier, there are a few things that may cause your old documents not to function the same way:
•DAQFactory.exe: Since DAQFactory Acquire is now part of DAQFactory Control, we have simply named the program DAQFactory and changed the executable from Control.exe to DAQFactory.exe. Please make sure your shortcuts point to the correct executable and that you are running release 5. You can check your release by going to Help - About DAQFactory. The runtime has also been renamed DAQFactoryRuntime.exe.
•Logging: Data logging in DAQFactory release 5 has been completely revamped. User feedback on the difficulties in importing logged data into other programs was the impetus for these changes. All old forms of data logging including binary forms and local condition logging have been removed. Now all data logging is performed using logging sets. Please see the logging chapter for a complete description.
•Sequences: Sequences have been made into a complete scripting language, giving them much more power. Old sequences will load correctly and be correctly translated, however error handling in the new sequences is different. In old versions of DAQFactory, if an error occurred in a step, the step was simply skipped. This often made it difficult to figure out why a sequence was not performing the way it should, since errors were not apparent. The new sequences use a C++ type error handling mechanism. Errors must be caught and processed or the sequence will stop and display an alert. Because of this, all old sequences will load with the command ignore(“all”) added. This will cause all errors to be ignored similar to the older releases.
•Symbols (formally images): To better handle 3rd party symbols and properly scale the symbol factory symbols, symbol scaling has been fixed to display the symbol within the component’s rectangle. This will cause all of your current symbols to be scaled slightly differently. This can be fixed easily by resizing your symbols.
•Point(): The Point() function now returns a 0 index array instead of 1 indexed array.
•Relative time subsetting: is no longer supported. Replace with SysTime() - x notation: MyChannel[SysTime()-5,SysTime()-2]
•Case sensitivity: DAQFactory is no longer case sensitive except when comparing string values. This will only affect older documents if you have two objects with the same name but spelled with different case: for example, MyChannel and mychannel. If so, rename one of the objects.
Also you should reset your menus and keyboard shortcuts. To do this, select Tools-Customize... from the main menu. Go to the Toolbars, Keyboard and Menu pages and click Reset All on each of them (Reset on the menu page).