-
Notifications
You must be signed in to change notification settings - Fork 0
Labcontrol Dashboard
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.
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()
Het kunnen schrijven van zo'n recept vereist enige kennis en vaardigheid met Python. Zo'n eis beperkt de mogelijke acceptatie van Labcontrol.
Een voor de hand liggend alternatief voor het coderen van recepten is het tekenen van recepten. HP VEE is zo'n voorbeeld uit het verleden. Daarin kon je de meting of acquisitie in soort flow diagram tekenen, zie onderstaande figuur. Een ander, meer recent voorbeeld is Labview, of een tool die in staat is om een toestandsdiagram om te zetten in code. Het zou heel mooi zijn als Labcontrol ooit zo'n frontend zou kunnen hebben, net als een open source tool als gnuradio heeft. Open source is hierbij een belangrijk woord. Het is absoluut niet de bedoeling om vanaf te grond een eigen grafische frontend te ontwikkelen, maar juist is te gebruiken wat er al is. Daarvoor is er een klein marktonderzoek op Internet gedaan om te kijken wat beschikbaar is en of er mogelijk iets tussen zit wat bruikbaar zou kunnen zijn voor Labcontrol.
Grafische invoertools om uiteindelijk iets te programmeren zou je kunnen vangen onder de term 'Visueel Programmeren'. Een inmiddels behoorlijk bejaarde term en ooit als grote revolutionaire belofte neergezet. Door het invoeren van de term 'Visueel Programmeren' in Google, maakte het onderzoek een goede start, met als een Wikipedia pagina als één van de eerste treffers. De Wikipedia pagina over Visual Programming, zie hier voor de link, bevat een lange lijst met allerlei opties op het vlak van grafische tooling om het programmeren te vereenvoudigen. Onderstaande lijst is een selectie van die tools die of open source zijn of die een goed voorbeeld vormen:
- EEZ studio. EEZ studio is open source en is gemaakt voor de instrumentatie.
- Blender en dan met name de ingebouwde 'node graph' (of gerichte graaf in het Nederlands) om 'shaders', 'composites', 'textures' en 'non-destructive geometry' te kunnen maken.
- Blender Game Engine en zie ook. Lijkt veel op vorige punt.
- Flyde. Een AI tool, plugin voor Visual Studio Code.
- Gnuradio. Gnuradio heeft een ingebouwde grafische editor, GRC (GnuRadio Companion). Met GRC kun je een gewenste (de)modulatie vorm definiëren. GRC zet deze grafische beschrijving om in Python.
- Node-RED
- OpenWire
- Scicos. Een Simulink achtige tool. Scilab gebruikt een dergelijke tool. Xcos, dat gebaseerd is op Scicos.
- VEE. Vroeger was dit HP Vee. Een vroege voorganger van Labview dat meer lijkt op node graphs.
- bdsim. Een Python tool voor het tekenen en simuleren van regeltechnische problemen. Het heeft een eigen editor 'bdedit' dat er heel goed uitziet.
- https://github.com/flowrails/awesome-node-editors
- https://github.com/xyflow/awesome-node-based-uis
- Home
- API doc
- Aanleiding Labcontrol
- Automatisch Testen
- Feedback Control Systems met Python
- Hantek 6022BL
- Installatie Labcontrol
- Instrumentatie, VISA en USB
- Interessante dingen
- Labcontrol Dashboard
- Labcontrol ontwerp en Python codering
- OWON DGE1060
- PyInstaller artikel
- Pythonkunde
- Tektronix TDS2002C USB
- Toolings Weetjes
- Wat heb je nodig voor Labcontrol
- klad