Lab::Measurement—A portable and extensible framework for controlling lab equipment and conducting measurements


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 summary: Program Title: Lab::Measurement 3.660 Program Files doi: Program Homepage: Licensing provisions: GNU GPL v23 Programming language: Perl 5 Nature 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. [2] USB Implementers Forum, Inc., Universal Serial Bus Test and Measurement Class Specification (USBTMC), revision 1.0 (2003). [3] VXIbus Consortium, VMEbus Extensions for Instrumentation VXIbus TCP/IP Instrument Protocol Specification VXI-11 (1995). [4] Moose—Apostmodern object system for Perl 5. [5] E. A. Merritt, et al., Gnuplot. An Interactive Plotting Program. © 2018 The Author(s)

Ethernet, GPIB, Measurement control, Perl, SCPI, USB T&M, VISA, VXI-11
Reinhardt, S., Butschkow, C., Geissler, S., Dirnaichner, A., Olbrich, F., Lane, C. E., et al. (2019). Lab::Measurement—A portable and extensible framework for controlling lab equipment and conducting measurements (Version publishedVersion, Vol. 234). Version publishedVersion, Vol. 234. Amsterdam : North Holland Publ. Co.