Fluke NetDAQ

Fluke NetDAQ (2640A, 2645A) and 2680 Series (2680A, 2686A) data acquisition units, configured from the tags and read through Fluke's own library in a 32-bit helper process: the device and its Instrument card, a tag's point and function, reading, writing, and what the driver leaves to Logic.

View as Markdown

The Fluke NetDAQ driver reads and writes Fluke's networked data acquisition units: the NetDAQ 2640A and 2645A, and the 2680 Series, 2680A and 2686A. Each device is one instrument on the network, and each tag is one of its points: an analog channel and what it measures there (a thermocouple, a DC voltage, a resistance, an RTD), one of its digital lines, a relay of a 2680 Series DIO module, or its totalizer. The station configures the instrument from the tags: every time it connects, it sends the whole configuration and replaces the one the instrument held, so the instrument measures exactly what the station's tags say.

The driver speaks to the instruments through Fluke's own library, NTOOL32.dll, the same library the LabVIEW driver for these instruments is built on, which the station ships beside the driver. Add the driver and its devices on the Connector page.

Before you start

What Why
The 32-bit Microsoft Visual C++ 2005 runtime on the computer Fluke's library needs it, and Ganter Lab cannot include it. The station checks for it by itself and, while it is missing, the driver's page, the page of each device and each device's last error say so, with the steps of Installing the Visual C++ 2005 runtime.
The instrument on the network, in its General network mode, with its IP address and its base channel number (BCN) set on its front panel The station reaches the instrument at its IP address on TCP port 4369, and Fluke's library names the instrument by its base channel number.
One computer at a time An instrument talks to one computer: while another program (Fluke DAQ, NetDAQ Logger, a LabVIEW program) holds it, the station cannot open it.
A NetDAQ with embedded software 2.0 or later Fluke's library does not configure an older NetDAQ; the device's connection fails saying the instrument needs an update.

The driver runs on Windows only.

Installing the Visual C++ 2005 runtime

The station checks by itself whether Windows can load Fluke's library, without waiting for a device: the first time the driver's page, the page of one of its devices or the agent asks, and again every 30 seconds while the runtime is missing. Until the Connector has started, whether the runtime is there is not known, and nothing is said about it. While it is missing:

Where What it says
The driver's page A caution notice, "The Microsoft Visual C++ 2005 runtime is not installed on this computer", with the steps below. Its link opens Microsoft's page in the computer's browser.
The page of each device The same notice.
The last error of each device The same steps, in English, as the driver's own causes are written.
The agent driver_capabilities gives them under prerequisite, with installed false.

To install it:

  1. Open Microsoft's page Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC Security Update, the one Microsoft's list of the latest supported Visual C++ downloads gives for Visual C++ 2005.
  2. Choose the file vcredist_x86.exe (2.6 MB), even on 64-bit Windows: vcredist_x64.exe does not work, because Fluke's library is 32-bit.
  3. Run it as administrator. Windows may ask to restart the computer.

If the list of installed programs already shows "Microsoft Visual C++ 2005 Redistributable", install it anyway: the one there may hold only the C runtime, without the MFC part Fluke's library needs.

Within 30 seconds of the installation the notice goes away and the devices of this driver connect with the configuration they have, without restarting Ganter Lab.

Device

A device of this driver has the Host field of the Connection card and the Instrument card under it.

Field Meaning Default
Host The instrument's IP address on the network, or a name that resolves to an IPv4 address. There is no port: every instrument answers on TCP port 4369. empty
Base channel The base channel number (BCN) set on the instrument's front panel, 1 to 99. Fluke's library names the instrument by it, so two devices of the station never share one. empty
Scan speed Slow, Medium or Fast. A slower scan integrates longer and reads with more resolution and less noise; a faster one scans more channels per second. Slow
Poll interval (ms) How often the station reads the device's tags, unless a tag sets its own interval. The instrument scans at the shortest poll interval among the device's tags, so every poll finds a fresh scan. 1000

A new device has neither a host nor a base channel, and the station does not try to reach it until it has both: its row reads "Host not entered yet" until the host is written, then "Base channel not entered yet" until the base channel is, and its page says what to fill in. The Base URI the header shows is netdaq://192.168.0.21/1?speed=slow: the host, the base channel and the scan speed.

Saving a device whose base channel another NetDAQ device of the station already holds is refused, on whichever host: "Base channel 5 already belongs to Fluke NetDAQ device 'Logger'. Choose another base channel number." A device still waiting for its base channel holds none, and a device keeps its own number when it is saved again.

The Instrument card also shows what the instrument said it is the last time the station connected to it: its Instrument model (2640A, 2645A, 2680A or 2686A) and its Firmware version, that of its embedded software, both of which the journal also records. They read "Not read yet" until the instrument has connected, and they are never stored, so the same device can be pointed at a 2640A today and a 2645A tomorrow.

Tag addressing

The point

A tag's Source card holds the Point picker, what the tag reads on the instrument, and the fields that point needs. They are the tag's whole address.

Point Fields Data type Access Value
Analog channel Channel and Function, with the function's own fields Double or Float Read only The measurement, in the function's unit
Digital line Line, 0 to 7 on a NetDAQ, 0 to 19 on the DIO module of a 2680 Series Boolean Read only (the default) or Read and write True while the line is high
Relay Relay, 0 to 7, on the DIO module of a 2680 Series Boolean Read and write (the default) or Read only True while the relay is closed
Totalizer none Int64 or Double Read only (the default) or Read and write The count of the totalizer input

A NetDAQ numbers its analog channels 1 to 20. A 2680 Series numbers them by module and channel: the module (1 to 6) and then the channel on it (01 to 20), so channel 3 of module 2 is 203. Picking another point brings a data type and an access it allows where the tag held one it does not.

The function of an analog channel

Function Unit Fields
DC voltage volts Range: automatic, 90 mV, 300 mV, 3 V, 30 V, 50 V, 150/300 V
AC voltage volts Range: automatic, 300 mV, 3 V, 30 V, 150/300 V
Resistance ohms Range: automatic, 300 Ω, 3 kΩ, 30 kΩ, 300 kΩ, 3 MΩ; Wiring
Frequency hertz none
RTD degrees Celsius Resistance R0 (Ω), 10 to 1010 (100 for a Pt100); Wiring, four wires by default. A platinum RTD with alpha 0.00385
Thermocouple degrees Celsius Thermocouple type: J, K (the default), E, T, R, S, B, C or N, and L or U on the 2680 Series; Check for an open thermocouple, on by default
Current milliamperes, or percent Range: 100 mA, read in milliamperes, or 4 to 20 mA, as a percentage, read as 0 at 4 mA and 100 at 20 mA; Shunt resistance (Ω), the resistor the current crosses, 10 to 250 (250 by default)
Thermistor degrees Celsius Steinhart-Hart coefficients: the A, B and C of the thermistor's data sheet, each above 0 and at most 0.1; Wiring. The 2680 Series only

Wiring is Two wires or Four wires. A four-wire channel takes the channel ten above it for its sense pair (channel 3 takes 13), so only channels 1 to 10 of an instrument or a module are four-wire channels, and a tag on the sense channel reads nothing of its own. Picking another function brings that function's range and wiring.

Some ranges and wirings belong to one family of front ends:

Front end Instruments What it alone has
Fast the 2645A, and the FAI module of the 2680 Series the 50 V range; an RTD, and the 300 Ω and 3 kΩ ranges, over four wires only
Precision the 2640A, and the PAI module of the 2680 Series the 150/300 V range (300 V on channels 1 and 11, 150 V on the others)

The panel offers every range, since which instrument answers is known only when the station connects. A tag the connected instrument cannot read is left out of its configuration, and the tag shows the reason as its error; the rest of the instrument is configured and read.

The read-only Source address (wire) line shows the address the driver receives, such as ch=3&fn=tc&tc=T&otc=on, ch=5&fn=vdc&range=3v, ch=1&fn=rtd&r0=100&wires=4, ch=9&fn=current&range=4-20ma&shunt=250, dio=0, relay=2 or totalizer.

How the station configures the instrument

Step What the station does
Connecting Opens the instrument by its base channel number and reads its model.
Configuring Stops the instrument's scanning, sends the configuration built from the tags (every analog tag configures its channel, every other channel is off), and starts scanning again at the shortest poll interval among the tags, at the device's scan speed.
A channel the instrument refuses The channel is left out, its tag shows the instrument's reason, and the rest is sent again.
Disconnecting Stops the instrument's scanning and closes the connection.
Losing the connection The instrument stops scanning on its own after a while, which keeps the relays of a PAI module from wearing out; the station configures it again when it reconnects.

Whatever was configured on the instrument's front panel, or by another program, is replaced. Two tags that configure the same channel differently cannot both be read: the second one shows the first one's address as its error.

Reading

The instrument scans on its own clock. A read takes the instrument's last scan, and one scan serves every analog tag of the device for half the shortest poll interval among them; a 2680 Series is read one module at a time. Digital lines, relays and the totalizer are read from the instrument directly, in the same way. What the instrument answers decides what the tag shows (see The value pipeline):

The instrument The tag
A reading The value, in the function's unit, before the tag's own stages convert it
An overload Positive or negative infinity
An open thermocouple, with the check on NaN, which the tag's policy for a value that is not a number decides
No scan yet, just after it was configured Nothing, until the first scan
No answer in time Silence: the tag's policy for a device that did not answer decides what it shows
A lost connection, or another computer holding it The device reconnects and configures the instrument again

Writes

Point What a write does
Digital line, Relay Sets the line high or closes the relay with true (or 1), and the other way with false (or 0). Any other value is refused.
Totalizer Sets the count back to zero. 0 is the only value it takes; any other value is refused.
Analog channel Nothing: an analog channel is only read.

A write the instrument refuses comes back refused, with Fluke's error code and the library's own words in the journal.

Fluke's library and the 32-bit helper

Fluke's library is a 32-bit library, which the 64-bit station cannot load, so the driver runs in the station's 32-bit helper process, Lab.Desktop.DriverBridge.exe, as the OPC DA driver does: the helper starts the first time a device of the driver connects or the station checks for the Visual C++ 2005 runtime, and its devices and tags are read, written and journalled like any other. If the helper stops, the devices show that it stopped, and reconnect through a new one.

The library keeps the list of instruments it reaches in a file of its own, ccf.cfg, beside the helper (bridge-x86\ccf.cfg in the program folder). The station writes that file itself: nothing has to be set up in it, and a file deleted is written again at the next connection. The library calls one instrument at a time, so the instruments of a station are read one after the other.

Limits worth knowing

Not done Where it is done instead
The instrument's own alarms and alarm outputs Alarms on the tags, and Logic actions that set a digital line or a relay
Computed channels and channel math Variables in Logic
Recording on the 2686A's PC Card, and the instrument's scan queue The station's own history: a Process run or a datalog
Discovery None: add each instrument with its host and base channel
macOS The driver runs on Windows only