Abstract

Lab::Measurement is a framework for test and measurement automatization using Perl 5. While primarily developed with applications in mesoscopic physics in mind, it is widely adaptable. Internally, a layer model is implemented. Communication protocols such as IEEE 488 [1], USB Test & Measurement [2], or, e.g., VXI-11 [3] are addressed by the connection layer. The wide range of supported connection backends enables unique cross-platform portability. At the instrument layer, objects correspond to equipment connected to the measurement PC (e.g., voltage sources, magnet power supplies, multimeters, etc.). The high-level sweep layer automates the creation of measurement loops, with simultaneous plotting and data logging. An extensive unit testing framework is used to verify functionality even without connected equipment. Lab::Measurement is distributed as free and open source software. Program summaryProgram Title: Lab::Measurement 3.660Program Files doi:http://dx.doi.org/10.17632/d8rgrdc7tz.1Program Homepage:https://www.labmeasurement.deLicensing provisions: GNU GPL v233The precise license terms are more permissive. Lab::Measurement is distributed under the same licensing conditions as Perl 5 itself, a frequent choice in the Perl ecosystem. This means that it can be used and distributed according to the terms of either the GNU General Public License (version 1 or any later version) or the Artistic License; the choice of license is up to the user.Programming language: Perl 5Nature of problem: Flexible, lightweight, and operating system independent control of laboratory equipment connected by diverse means such as IEEE 488 [1], USB [2], or VXI-11 [3]. This includes running measurements with nested measurement loops where a data plot is continuously updated, as well as background processes for logging and control.Solution method: Object-oriented layer model based on Moose [4], abstracting the hardware access as well as the command sets of the addressed instruments. A high-level interface allows simple creation of measurement loops, live plotting via GnuPlot [5], and data logging into customizable folder structures.[1] F. M. Hess, D. Penkler, et al., LinuxGPIB. Support package for GPIB (IEEE 488) hardware, containing kernel driver modules and a C user-space library with language bindings. http://linux-gpib.sourceforge.net/[2] USB Implementers Forum, Inc., Universal Serial Bus Test and Measurement Class Specification (USBTMC), revision 1.0 (2003). http://www.usb.org/developers/docs/devclass_docs/[3] VXIbus Consortium, VMEbus Extensions for Instrumentation VXIbus TCP/IP Instrument Protocol Specification VXI-11 (1995). http://www.vxibus.org/files/VXI_Specs/VXI-11.zip[4] Moose—Apostmodern object system for Perl 5. http://moose.iinteractive.com[5] E. A. Merritt, et al., Gnuplot. An Interactive Plotting Program. http://www.gnuplot.info/

Highlights

  • Experimental physics frequently relies on complex instrumentation

  • The magnetic field is controlled with an Oxford Instruments (OI) Mercury iPS magnet controller; a Rohde & Schwarz (R&S) ZVA vector network analyzer (VNA) is used for generating the microwave signal and detecting the complex transmission parameter S21(f )

  • An Oxford Instruments Mercury power supply is performing a continuous magnetic field sweep; in an inner loop, complex signal transmission is measured by a Rohde & Schwarz ZVA vector network analyzer at several discrete frequency values

Read more

Summary

Introduction

Experimental physics frequently relies on complex instrumentation. While high-level equipment often has built-in support for automation, and while more and more ready-made solutions for complex workflows exist, the nature of experimental work lies in the development of new workflows and the implementation of new ideas. One of the most widely used applications of this type is National Instruments LabVIEW [1], where programming essentially means drawing the flowchart of your application. While this is highly flexible and supported by many hardware vendors, more complex use cases can lead to flowcharts that are difficult to understand and to maintain. [11,12], Lab::Measurement features a modular structure which facilitates adding new hardware drivers. We highlight the unique features of Lab::Measurement. This includes in particular its high-level, descriptive ‘‘sweep’’ interface, where data and metadata preservation as well as real-time plotting is intrinsically provided.

Implementation and architecture
Minimal example of an instrument driver
Instrument layer usage
Sweep layer usage
Quality control
Testing with mock connection objects
Historical interface
Requirements and licensing
Summary
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call