| Products > Test Equipment |
| Need advice on what software to use to control T&M equipment in the home lab |
| (1/4) > >> |
| Swake:
I've always used all my equipment in stand-alone mode, and now is the time to evolve and let it talk together so that more advanced or even automated things can be achieved with it. This probably sounds similar for many of us enthusiasts that have collected power supplies, electronic loads, function generators, scopes, multimeters all equipped with GPIB/LAN-LXI/RS-232/ etc. Connecting these to a computer is not that difficult ones you discover AR488 and the like. Connecting over the LAN is a bit more challenging, but there are some initiatives such as YAUGI that, I hope, will land soon. OK, that is the hardware layer. What software are you using to make all this talk together? There are a million things out there, and that's the issue: I'm lost now, waaay too many possibilities, cant identify the good choices... |
| alm:
In terms of hardware, almost all of my equipment is old enough that GPIB is the only interface, and I connect to it using GPIB-to-Ethernet interfaces like HP/Agilent E5810A and E2050A, which support VXI-11. I think this is by far the simplest solution from software support point of view. No USB drivers necessary. I found USB-GPIB interfaces a pain to use in terms of stability and updating drivers with OS upgrades. But this was with a NI GPIB-USB-B interface, I can't speak about the Arduino solution. Most instruments I control were not supported by any pre-existing solutions when I started, and do not support SCPI (a sort of standard protocol supported by many more modern test instruments). And I sometimes need extra logic in the instrument driver to easily control it. For example maybe an instrument needs to go through an adjustment procedure before a particular measurement. Then I want to be able to implement that logic in the instrument driver. So I have been using python-ivi and been writing pretty much all of my own drivers. Python-ivi will use python-vxi11, python-usbtmc, PyVISA and a number of other libraries to actually talk to the hardware. To then use it looks something like this: --- Code: ---dmm = ivi.keithley.keithley2000("TCPIP::gpib1::gpib,17::INSTR", id_query=True) dmm.measurement_function = 'four_wire_resistance' dmm.range = 10e3 with open('output.csv', 'a', newline='') as csv_file: csvw = csv.DictWriter(csv_file, fieldnames=['datetime', 'value']) while True: row = {} row['datetime'] = datetime.datetime.utcnow().isoformat() row['value'] = dmm.measurement.fetch(1) csvw.writerow(row) --- End code --- The advantage is that this is based on an industry standard, however imperfect, which means different instrument drivers for the same type of instrument, like multiple DMMs or multiple scopes, will behave pretty similar, so if you have a program that uses a function generator and a scope to do a measurement, you could swap out a different brand, higher bandwidth function generator and scope without much of any changes to the program. For the metrology-type work I do this is quite helpful. Changing the Keithley 2000 I used in the above script to an Agilent 34401A DMM would just require changing the first line. A problem with python-ivi is that it's not being maintained, so instrument drivers are spread out over different Github repositories (including mine). The best suggestion I have is trying to find a fork that has the drivers you need. |
| Berni:
Yeah the problem is that there are many solutions out there but none of them is really good. So far i end up just writing my own quick and dirty little single purpose programs that run the measurement setup by directly firing off SCPI strings into the VISA API. It is not the best setup as it takes a fair bit of time to create what i need, but at least it is infinitely flexible to do anything. At least a nice thing about VISA is that it doesn't care how the instrument is connected. Be it USB, RS232, Ethernet, GPIB..etc it all just shows up as a VISA instrument that can be talked to. That way my program doesn't have to worry about it. |
| little.tesla:
I use the HP/Agilent E5810A to interface my devices over ethernet to GPIB. As a "control" software I use https://github.com/pymeasure/pymeasure which is easy and fast to write simple GUIs, where you see a live plot of your measured data or you can change settings of a device for the next run. I added as well some drivers for my more older and exotic devices, which is not too difficult. I shall create a pull request at one point. |
| RoGeorge:
For what instruments exactly? Big brands usually have their own graphical tools/environments/libs. Most instruments are talking SCPI over various physical layer (LAN, Serial, GPIB, etc), others can talk MODBUS (rare, e.g. the optical link for Metrix MTX3283 DMM). I am usually writing my own scripts using Python and PyVISA (or alike SCPI libraries). Most nowadays instruments are LXI ready (LXI == SCPI over LAN), so just plug the LAN cable and write a python script. Since each instruments has its own set of SCPI commands, there is nothing that works across all brands and all instruments. There is an attempt to make all instruments interchangeable, this is called IVI (Interchangable Virtual Instruments). IVI is yet another software layer on top of already existing SCPI and VISA, so it will make all instruments appear the same, by category (for example all lab power supplies have will respond to the same commands, all generators, etc. https://www.ivifoundation.org/specifications/) Again, you need to be specific what brand of instrument you have, what models, and what exactly do you want to automate. There is no silver bullet. |
| Navigation |
| Message Index |
| Next page |