Skip to content

Labcontrol Dashboard

Bart Snijder edited this page Jun 22, 2025 · 10 revisions

Een belangrijk doel van Labcontrol is het kunnen uitvoeren van vooraf aangemaakte 'recepten', waarmee componenten of (sub)systemen gekarakteriseerde kunnen worden. Daarbij is de belangrijkste eis: het moet niet moeilijk zijn om 'recepten' uit te voeren zijn vanaf een willekeurige (studenten) PC of laptop. Voor die eis is inmiddels een oplossing bedacht (WinPython met Jupyter Notebook). Voor de eis: 'Recepten moet eenvoudig te definiëren zijn' bestaat nog geen oplossing.

Huidige situatie

Recepten kunnen nu alleen via een Python script vastgelegd worden. In een poging om het schrijven van meetscripts te versimpelen, is apparatuur binnen Labcontrol gecodeerd volgens een soort van 'Factory Pattern'. Hierdoor hoeft de gebruiker niet te weten welke merk en type oscilloscoop is aangesloten. Het aanmaken van een BaseScope() is voldoende. Labcontrol doet de rest. In Python ziet een 'recept' voor het meten van de HFE curve:

def makeCurveWithOnlySupply():
    supp = BaseSupply()
    baseControl = supp.CH2
    collControl = supp.CH1
    collControl.set_voltage(25)
    time.sleep(0.01)
    baseControl.set_voltage(0)
    time.sleep(0.01)
    collControl.set_current(500e-3)
    baseControl.set_current(10e-3)
    input("druk toets")
    collControl.set_output(True)    
    input("druk toets")
    baseControl.set_output(True)
    time.sleep(0.01)
    base_curr = list()
    coll_curr = list()
    base_vol = list()
    for x in np.arange (0.0, 3, 0.5):
        baseControl.set_voltage(x)
        time.sleep(0.2)
        curr1 = collControl.measure_current()
        time.sleep(0.2)
        coll_curr.append(curr1)
        curr2 = baseControl.measure_current()
        time.sleep(0.2)
        base_curr.append(curr2)
        base_vol.append(baseControl.measure_voltage())
        time.sleep(0.2)
    #maak plot
    collControl.set_output(False)    
    time.sleep(0.1)
    baseControl.set_output(False)
    time.sleep(0.1)
    plt.plot(base_vol,coll_curr)
    plt.show()

Enige kennis en vaardigheid met Python is dan een voorwaarde.

Clone this wiki locally