A client needed to display remote flow sensor data using existing an Windows XP laptop computer and RS-232 serial radio modem system. The major requirement was to minimize cost. In collaboration with the client, we selected DAQFactory Express by Azeotech, to provide the user interface software.
Two existing sensors are being used to sense waterflow at a remote location within the client’s facility. The client already had a data logging system attached to those sensors. The sensor output is a 4-20mA current loop that indicates flow rate in GPM. Using a current loop sensor allowed easy addition of another sensing interface without impacting the existing system setup.
The selected sensing interface was a Datexel DAT3015-I/232, which is a 4-channel current input Modbus converter. The DAT3015I converts the current analog signal to a 16 bit digital format in engineering units (uA). Data are transmitted using Modbus RTU protocol over RS-232 (option).
Since this was a remote sensing application, the client reused a frequency hopping, spread spectrum radio modem to connect the display PC to the sensing interface. The radio modem used RS-232 running at 38,400 bps.
The original thought was to use Excel since it easily interfaces with serial data, supports code (VBA), graphics displays, and a version runs on Windows XP. The only problem was the sensor interface used Modbus RTU protocol.
Although there are Excel packages to support Modbus, a survey was performed on existing software packages that provided real-time display of two sensors, Modbus RTU protocol, RS-232 38400, 8-N-1 protocol, and runs on Windows XP.
Nine different packages were evaluated. The list was reduced down to three packages with DAQFactory Express being selected. DAQFactory Express met all the requirements and the free version (Express) supported up to 8 channels, 2D graphical display, and a robust scripting language.
DAQFactory supports multiple methods for capturing and displaying data. My primary approach used sequences for the level of control over the data. Sequences are code segments that have a C like syntax. One key element is the try/catch block that simplify error handling (e.g. communications errors).
Sequences managed the DAT3015-I interface using the DAQFactory built-in Modbus RTU protocol support. Sequence received data are converted from current (in uA) to GPM and supplied to the channel for display (channel object AddValue() method).
The data displays included both real-time historical data and instantaneous values. The amount of historical data shown in the 2D plot is user adjustable. The client requirement was for 12 hours of data. That meant using a sampling rate of 1/6 Hz, each channel would need to store 7,200 values, which is set in the channel setup.
Instantaneous values show the last data sampled and are shown as both raw (in mA) and converted values (GPM). If the input falls below a user specified value, a status indicator turns red and blinks. This type of control is easy to setup in DAQFactory and is associated with the display object.
Feedback was provided if there are communications or other types of errors while attempting to read data from the DAT3015. The primary problem is a communication error when a data request was made and nothing was returned. Also, the DAT3015 has a power reset coil that is also feedback to the user. The coil is reset by clicking on the status.
While we were waiting of the delivery of the DA3015, prototype versions were created and tested by the client. A test mode was introduced that generated random data for both channels allowing the client to make display recommendations early in the development process.
A live test environment was setup for development using 9V batteries and 5K potentiometer + series resistor. This allowed current adjustments to test threshold alarms and watch a battery current drain over many hours.
Overall the project was very successful. The development time was short, DAQFactory provided a very robust environment, and the final installation occurred without any issues.