Fluke

Fluke3000 Industrial System

class instruments.fluke.Fluke3000(filelike)[source]

The Fluke3000 is an ecosystem of devices produced by Fluke that may be connected simultaneously to a Fluke PC3000 wireless adapter which exposes a serial port to the computer to send and receive commands.

The Fluke3000 ecosystem supports the following instruments:
  • Fluke 3000 FC Series Wireless Multimeter
  • Fluke v3000 FC Wireless AC Voltage Module
  • Fluke v3001 FC Wireless DC Voltage Module
  • Fluke t3000 FC Wireless Temperature Module

Fluke3000 is a USB instrument that communicates through a serial port via the PC3000 dongle. The commands used to communicate to the dongle do not follow the SCPI standard.

When the device is reset, it searches for available wireless modules and binds them to the PC3000 dongle. At each initialization, this class checks what device has been bound and saves their module number.

This class has been tested with the 3000 FC Wireless Multimeter and the t3000 FC Wireless Temperature Module. They have been operated separately and simultaneously. It does not support the Wireless AC/DC Voltage Modules as the author did not have them on hand.

It is important to note that the mode of the multimeter cannot be set remotely. If must be set on the device prior to the measurement. If the measurement read back from the multimeter is not expressed in the expected units, this module will raise an error.

Example usage:

>>> import instruments as ik
>>> mult = ik.fluke.Fluke3000.open_serial("/dev/ttyUSB0", 115200)
>>> mult.measure(mult.Mode.voltage_dc) # Measures the DC voltage
array(12.345) * V

It is crucial not to kill this program in the process of making a measurement, as for the Fluke 3000 FC Wireless Multimeter, one has to open continuous readout, make a read and close it. If the process is killed, the read out may not be closed and the serial cache will be constantly filled with measurements that will interfere with any status query. If the multimeter is stuck in continuous trigger after a bad kill, simply do:

>>> mult.reset()
>>> mult.flush()
>>> mult.connect()

Follow the same procedure if you want to add/remove an instrument to/from the readout chain as the code will not look for new instruments if some have already been connected to the PC3000 dongle.

class Mode[source]

Enum containing the supported mode codes.

capacitance = '0F'

Capacitance

current_ac = '03'

AC Current

current_dc = '04'

DC Current

frequency = '05'

Frequency

resistance = '0B'

Resistance

temperature = '07'

Temperature

voltage_ac = '01'

AC Voltage

voltage_dc = '02'

DC Voltage

class Module[source]

Enum containing the supported modules serial numbers.

m3000 = 46333030304643

Multimeter

t3000 = 54333030304643

Temperature module

connect()[source]

Connect to available modules and returns a dictionary of the modules found and their port ID.

flush()[source]

Flushes the serial input cache.

This device outputs a terminator after each output line. The serial input cache is flushed by repeatedly reading until a terminator is not found.

measure(mode)[source]

Instruct the Fluke3000 to perform a one time measurement.

Parameters:mode (Fluke3000.Mode) – Desired measurement mode.
Returns:A measurement from the multimeter.
Return type:Quantity
query_lines(cmd, nlines=1)[source]

Function used to send a query to the instrument while allowing for the multiline output of the PC3000.

Parameters:
  • cmd ('str') – Command that will be sent to the instrument
  • nlines ('int') – Number of termination characters to reach
Returns:

The multiline result from the query

Return type:

Array of str

read_lines(nlines=1)[source]

Function that keeps reading until reaches a termination character a set amount of times. This is implemented to handle the mutiline output of the PC3000.

Parameters:nlines ('int') – Number of termination characters to reach
Returns:Array of lines read out
Return type:Array of str
reset()[source]

Resets the device and unbinds all modules.

scan()[source]

Search for available modules and reformatturns a dictionary of the modules found and their port ID.

input_range

Gets/sets the current input range setting of the multimeter.

The Fluke3000 FC is an autoranging only multimeter.

Return type:str
mode

Gets/sets the measurement mode for the multimeter.

The measurement mode of the multimeter must be set on the device manually and cannot be set remotely. If a multimeter is bound to the PC3000, returns its measurement mode by making a measurement and checking the units bytes in response.

Return type:Fluke3000.Mode
relative

Gets/sets the status of relative measuring mode for the multimeter.

The Fluke3000 FC does not support relative measurements.

Return type:bool
trigger_mode

Gets/sets the trigger mode for the multimeter.

The only supported mode is to trigger the device once when a measurement is queried. This device does support continuous triggering but it would quickly flood the serial input cache as readouts do not overwrite each other and are accumulated.

Return type:str