Features
Scripting
Powerful scripting engine gives you the ultimate in flexibility. Make DAQFactory do what you want.
Read MorePowerful scripting engine gives you the ultimate in flexibility. Make DAQFactory do what you want.
Read MoreUnlike other HMI / SCADA packages, DAQFactory allows you to make changes on the fly, without stopping and rebuilding the application. So, if you decide you need to see a new trend graph of a tag after you already have your application running, you can simply create a new page, drop a new graph on to the page and tell it to plot the tag, all without stopping the application. With the appropriate license, you can even switch a runtime installation to development mode, make a change, and revert to runtime without ever having to stop and rebuild the application.
Not having to stop to make changes means zero downtime. You no longer have to stop your entire process to make a change and that saves you money.
If you are doing an experiment that requires continuous acquisition to maintain the state of the system you can now make changes without having to stop and restart your experiment from scratch.
With your development license on the hardware key option, you can go to a customer site that is running a Runtime installation of DAQFactory, insert the key, switch to development mode, make changes and debug your application, save the doc, pull the key and the system reverts back to Runtime mode without ever having stopped. In addition, since the runtime and development executables are the same, you don't have to install any additional software at the customer site to make edits on-site.
Since DAQFactory systems are always live unless you explicitly put it in safe mode, you can develop your application using live data. It is much easier to create your screens when you can see actual numbers. Plus you can build on each part, testing as you go without having to go through the typical, stop - edit - compile - run cycle. With DAQFactory there is no cycle.
Whether you have 10 I/O points or 1000, keeping track of your data can be difficult. DAQFactory's channels take care of the hard work for you. Channels are the center point of the DAQFactory architecture. They provide the link between your I/O and all the other components in DAQFactory. Creating channels is usually as simple as filling out a table. Each channel contains the details to identify your I/O and a name. The channel name is then used throughout the rest of DAQFactory to identify the I/O point. The details of the hardware does not need to be remembered. This also allows you to change the hardware without having to recreate all your screens and control loops.
Simply creating the channel will start DAQFactory acquiring your data. No scripting required. The timing parameter allows you to specify how often you want DAQFactory to request data from your device. Each channel can have a different polling interval allowing you to acquire data at different rates from different I/O points. Other tweaks are also available at the channel level to allow you to average your data on the fly, control memory usage and networking. For total flexibility, combine channels with some basic scripting.
Using conversions you can take DAQ values such as volts, bytes, words, milliamps, or any other value that might come from your device and convert them into proper engineering units. Conversions are not limited to just slope and line. Conversions are expressions and so you can use the full power of DAQFactory Expressions and its wide function support. To save time you can apply a single conversion to multiple inputs, so no retyping the same formula over and over again for each input or output.
Some devices require some extra configuration. This is made easy by using the device configurator for the device. The device configurator provides a configuration window for setting the properties of your special devices. This can be as simple as selecting the communication port parameters for a Modbus device, or identifying the I/O port of a PC104 card. More advanced configurators are available for other devices. For example, DAQFactory is an OPC client and the OPC configurator allows you to quickly browse and select your tags. This configurator even allow you to create your channels from within the configuration window simply by double clicking on the OPC tags.
DAQFactory offers support for a wide range of devices including:
Simply acquiring and logging data, although an important part, is not nearly as useful as being able to view the state of your system in real time. Since just about every data acquisition application is different, DAQFactory allows you to design your own screens to display your data and control your system in the best way appropriate for your system.
Unlike other data acquisition software packages, the applications you develop in DAQFactory do not require compilation. You can design your screens, add control loops, tweak logging, or edit your channels while you are taking data. There is no need to stop your process and recompile. This is especially useful when creating your screens. Not only does it mean that you can add a new graph or other control half way through your process, but you can see your data and how your newly created screens will interact with it as you are creating the screens.
With DAQFactory you can create an unlimited number of screens, and can even overlay them or display popup windows to keep important information on top. There are 42 screen components that you can use to display your data in various formats. You can combine these components in any way to create your own unique system, from a virtual instrument to an animated schematic of your process or experiment.
All of the components are modified using simple parameters windows. This makes it very easy to tweak every component to display exactly how you want them to. If you require advanced control over the components, most all the parameters of each component are available programmatically from within DAQFactory's scripting engine.
If you are looking to create interactive diagrams of your process, DAQFactory includes a 3800 image library of everything from pumps and motors, to buildings and cars, to standard symbols. Most of these images can be animated, rotated, have their color changed, or move around the screen to best depict the state of your system.
DAQFactory allows you to easily create multi-lingual applications. Enter all the text you might translate in your native language with a @ in front, and you can easily and dynamically change that text to another language.
The standard DAQFactory components offer many different tools for creating your own custom user interface displaying your data in real time. But the current state of your system is often not as useful as the state of your system over time. To view long term trends in your data you need to create some graphs. You can place trend graphs on any of your screens along with the other components. These graphs can display Y vs Time trends, or X vs Y comparisons. You can create as many traces as you may need on up to 12 different Y axes.
Traces use expressions too, so there's no need to precalculate the values you would like to graph. If you want to plot Sin(PumpRotation^2) / PumpSpeed vs. Log(TankPressure) you simply enter these two expressions.
Since graphs reference back to channels and their history, you can create or edit graphs on the fly and they will immediately display the appropriate data. They do not have to sit and collect data to be displayed first.
Graphs offer many features for displaying your data including error bars, wind barbs, axis, line and bound annotations, and colorization of a trace based on an expression. Graph markers can be used to identify points and quickly analyze peaks in your data. DAQFactory creates the graphs in a background process, so even the most complicated graphs won't make DAQFactory sluggish.
The full power of DAQFactory's graphs is hard to describe without actually creating some, so we suggest downloading a copy of DAQFactory and giving them a try!
After you have created some channels, you will probably want to start by saving your newly acquired data to disk.
If you simply want to save you historical data so you can retrieve it for trending or other calculations with DAQFactory, you can use channel persistence. Channel persistence is a fast binary file that makes accessing historical data transparant to you. You simply tell DAQFactory how many data points you'd like to keep on disk, and the rest is taken care of for you.
If you also, or instead, wish to log your data to regular files or a data base, you can create a logging set. You can create as many logging sets as you need to log different subsets of your data in different formats at different times. You can log to ASCII delimited files or to an ODBC compliant database, or if you prefer total control, you can use low-level file I/O scripting. The ASCII format is universal allowing you to import your data into your favorite analysis software such as Excel. The ODBC format allows you to get your data directly into most all SQL (and non-SQL) databases.
There is even support for ODBC querying, so you can easily retreive the data you have logged to your ODBC database, or load other parameters from your corporate databases.
DAQFactory offers many tools to perform the most common data acquisition, display, logging, and control tasks without coding. For maximum flexibility DAQFactory also includes a complete multitasking scripting language called sequences. Sequences are basically a data acquisition programming language, allowing you to interact programmatically with most of DAQFactory tools using a high level scripting language. The syntax is very similar to both Visual Basic, C, and many other languages making the transition easy for anyone with any programming experience.
Sequences can be used for all sorts of tasks. They can be as simple as setting a few output values to a preset state, to complex control loops. The possibilities are endless. Sequences are designed to be easy to use, extending the expression syntax used throughout DAQFactory into a procedural language. You do not need to be an experienced programmer to use sequences. Sequence statements are very high level, like "delay()" to wait a preset time, or "read()" to read an input channel. Even though sequences are multitasking, DAQFactory takes care of all the difficult tasks of memory management, thread control and timing.
DAQFactory has many built in features. Most can be extended with sequence script, or you can bypass the automatic features and get lower level access. The choice is yours. When you are starting out, you can use all the built in features to acquire your data, log it, display it, do alarming and other tasks without writing any code. You can then pick one area that needs a little extra flexibility and write some simple script while still using all the built in features. As you get more experienced, you can take further advantage of the power of DAQFactory scripting.
Because sequences are multitasking, you can split your tasks up into separate sequences, and have them all run concurrently. This helps you organize your tasks and keeps your scripts simple. In one sequence you can be monitoring for an over temperature condition, while another sequence runs through a batch. You can even control the priority levels that sequences execute to create, for example, background data processing routines. Sequence code can also be run when different events occur, such as new data arriving on a channel, a completed PID loop calculation, or a user clicking on screen component.
From DAQFactory sequences, you have access to most of the parameters of screen components, PID loops, logging sets and the other DAQFactory objects. You can also access other useful functions for sending emails, file manipulation, playing sounds, requesting information from the user, or displaying standard Window's dialog boxes such as file or color selection, or custom alert messages with optional HTML help.
To help you develop your sequences, DAQFactory includes an integrated debugger. With the debugger you can insert breakpoints, and step through your sequences one line at a time. A watch window allows you to view variables and other expressions. Sequences also include several options for error handling, allowing you to create robust scripts that can handle any problems.
Expressions are formula that are used in many different places throughout DAQFactory where variable data is needed. Expressions can take a simple channel name or scalar, or be a complex calculations on multiple data points. DAQFactory allows all the standard mathematical processing you may need, from math functions, to Boolean operators, to thermocouple conversions, to string manipulation functions and more.
Expressions are optimized for array math. This allows you to easily and quickly process and analyze your data, which is stored in arrays. You can manipulate whole data sets with a single expression.
Expressions allow you to subset your data based on point number or time. The first element of any data set is always the most recent, so pulling up recent data is easy. Or, you can subset your data by specifying a time range and then analyze the result, all in a single expression.
Of course expressions include all the standard math functions such as sin, cos, abs, plus higher level functions like search and filter, a full suite of string functions, functions to process binary data, thermocouples, statistical functions and many more.
All the functions in DAQFactory can be used on your live data in real time. This means you get your results immediately! Unlike other packages, including analysis tools like Excel, you do not need to create a separate column, or variable to store the result of a calculation in order to graph this result. You can put expressions directly into your graphs and DAQFactory will plot the result on the fly.
The screen components available within DAQFactory provide many different ways for you to manually control outputs. However, to have DAQFactory automatically control your outputs requires other DAQFactory tools.
PID loops are the standard for controlling closed loop systems. They allow you to control a process variable, such as temperature, by adjusting an output. The PID algorithm is a tried and true method used throughout science and industry.
While you certainly could develop a PID algorithm with DAQFactory sequences, we have saved you the trouble and did it for you. Within DAQFactory you can create as many PID loops as you need and eliminate the need for hardware controllers, saving you money. Like most of the DAQFactory tools, setting up a PID loop is as simple as creating a new loop and filling in a few boxes with the desired parameters. If you need help determining the P, I and D parameters, DAQFactory can autotune them for you.
DAQFactory alarming allows you to watch for different events that may occur within your system and flag them. This allows you to see if your system did something unusual while you were not watching. Unlike other SCADA software which only allows you to monitor for a single parameter going above or below one or two threshold points, DAQFactory allows you to create an alarm that watches for multiple conditions to occur. So where before you might only be able to alarm when the temperature of your system gets above 300C, with DAQFactory you can alarm when the temperature gets above 300C and the pressure is above 100psi. And your conditions can be much more complicated than that even.
When the alarm does occur, the alarm is logged to disk and displayed in a table. The alarm remains displayed in the table until you acknowledge that you have seen the alarm. You can also have DAQFactory play a sound, email you, call you on the phone, or perform any automated task when the alarm event occurs. You can have as many alarms as you need, and creating them is as simple as filling in a few parameters.
DAQFactory supports both SMTP outgoing email and POP3 incoming email. With SMTP, you can have the system email you when there is an alarm, or email the daily logs or status once a day. With POP3, you can check and process email from within DAQFactory. You could then query your system by emailing it, having it email back requested information.
DAQFactory is an FTP client and can upload or download from any FTP server. So, you can FTP your log files to a central off-site server, or use FTP to upload screen capture images of your DAQFactory screens to your webserver without having to lower your firewall security settings.
DAQFactory also contains an autodialer with text to speech and tone and voice detection. This is used in with any valid TAPI compliant voice modem to allow you to call any numbers or receive calls and either playback a recorded message, or one generated on the fly using a synthesized voice. This could be used to announce alarm levels or really anything you can imagine. The autodialer also supports DTMF tone detection and voice recognition to allow the person on the phone to perform any tasks you wish, such as acknowledging an alarm, or even doing remote control. The possibilities are endless.
DAQFactory can easily be setup to send data to the DAQConnect service (www.daqconnect.com) allowing you to view your data and control from anywhere without any firewall issues, static IPs or IT expertise.
A remote copy of DAQFactory can connect into another copy of DAQFactory. Once connected, the remote copy can view live data and control outputs. DAQFactory can connect to multiple locations allowing you to centrally monitor multiple installations.
DAQFactory has the unique feature of being able to run and develop at the same time. Many users purchase a single development license and use it to develop and to run their application. This allows them to make changes at any time, on the fly, without stopping. Many times, however, you do not want your end users editing the document. For this there is the Runtime license. The runtime license is like regular DAQFactory except you can't modify the document. You can of course still control outputs and manipulate the screens you created for your end users, but they will not be able to modify the screens, modify script, add new inputs, etc.
The runtime version of DAQFactory is the same executable as the development version. Because of this, you can switch between runtime and development mode without stopping. With the development license on the hardware key option, you can go to a computer with a runtime license, insert the hardware key with the development license, switch to development mode, make a few changes, save the document, then pull the key to revert back to runtime mode, all without stopping the application. This is especially useful when you need to debug your application on the real machinery. Since the runtime version of DAQFactory is the same executable as the development version, you do not need to install any other software to get into development mode.