Links

Documentation and Support

Download Lab::Measurement

News flash: Lab::Measurement 2.94 a.k.a. 3.00 beta4 released... This still is a beta version of a full code rewrite. We've been using it successfully in measurements on Linux with LinuxGPIB and on Windows with NI VISA. Things seem to work ok, so version 3.00 slowly comes closer, but there may still be bugs of course...

Lab::Measurement allows to perform test and measurement tasks with Perl scripts. It provides an interface to several instrumentation control backends, as e.g. Linux-GPIB or National Instruments' NI-VISA library. Dedicated instrument driver classes relieve the user from taking care for internal details and make data aquisition as easy as

$voltage = $multimeter->read_voltage();

The Lab::Measurement software stack comprises several parts that are built on top of each other. This modularization allows support for a wide range of hardware on different operating systems. As hardware drivers vary in API details, each supported one is encapsulated into perl modules of types Lab::Bus and Lab::Connection. Normally you won't have to care about this; at most, your Instrument object (see below) gets different initialization parameters.

A typical measurement script is based on the high-level interface provided by the modules Lab::Instrument and Lab::Measurement. The former silently handles all the protocol overhead. You can write commands to an instrument and read the result. Drivers for specific devices are included, implementing their specific command syntax; more can easily be added to provide high-level functions. The latter includes tools for metadata handling (what was that amplifier setting in the measurement again?!), data plotting, and similar.

These classes together are distributed as the Lab::Measurement system. Designed to make data aquisition fun!

How to obtain

Lab::Measurement is free software and can be downloaded from CPAN. The source code archive is hosted at Gitorious, where you can also obtain the newest pre-release code and browse the version history. If you would like to contribute, just send us your patches, merge requests, ... :) For browsing the code we also have a direct gitweb access.

Documentation

Quite some documentation of Lab::Measurement (PDF format) is available. This documentation includes a tutorial on using Lab::Measurement (outdated). Detailed installation instructions are provided as well. In addition, there's also a collection of back-end specific documentation and links.

There is a mailing list (lab-visa-users) set up for Lab::VISA and Lab::Measurement. This mailing list is the right place to give feedback and ask for help.

Status

Lab::Measurement is a the result of a full restructuring of the code of its predecessor Lab::VISA. Right now we're using Lab::Measurement in a first real measurement, but the ride is still a bit bumpy. If you're willing to hack, feel free to try- otherwise we recommend you use the stable Lab::VISA code for now.

Lab::Measurement and its predecessor Lab::VISA are currently developed and employed at nanophysics group, LMU München and mesoscopic physics group, Uni Regensburg. Users have reported further applications in academic and industrial r&d environments.

Authors and history

The Lab::VISA system was originally developed by Daniel Schröer and continued by Andreas K. Hüttel, Daniela Taubert, and Daniel Schröer. Most of the documentation was written by Daniel Schröer. In 2011, the code was refactored mostly by Florian Olbrich to include the Bus and Connection layers; subsequently the name of the entire package collection was changed to Lab::Measurement.