Labornetzgerät HM305P mit Python bedienen

Hier möchte ich kurz beschreiben, wie man das Labornetzteil HM305P mit Python fernbedienen kann.

Das Labornetzteil verfügt über eine USB Schnittstelle und ein Modbus RTU Protokoll. Zuerst müsst ihr über pip die Lib minimalmodbus installieren (https://pypi.org/project/minimalmodbus/).

z.b. also: pip3 install minimalmodbus

Als nächstes gibt es ein paar Register zu wissen die man lesen und/oder beschreiben kann:

Hier ein Code Beispiel:

import minimalmodbus
instrument = minimalmodbus.Instrument('/dev/ttyUSB_Labornetzteil', 1) 
instrument.serial.baudrate = 9600
instrument.serial.timeout = 1 # Wichtig damit kein Fehler auftritt bei der verringerten Baudrate

def read_out_voltage():
    try:
        val = instrument.read_register(16, 1) / 10
        val = round(val,  2)
        #print(val)
    except:
        val = 0
    return val
    
def write_out_voltage(value):
    try:
        instrument.write_register(1, 0,  1) # SWITCH OUTPUT OFF FIRST !!!
        value = int(value * 10)
        instrument.write_register(48, value,  1)
        print("Setting Output Voltage to: " + str(value))
    except:
        print("Error setting Voltage")
        
# Beispiel lesen:
print(read_out_voltage())

# Beispiel schreiben
write_out_voltage(5.00)