Integratie · Analyse

OPC UA koppelen aan Python pandas / Jupyter

ProductPython pandas / Jupyter
CategorieAnalyse
OPC UA-rolClient

OPC UA-data rechtstreeks in een DataFrame trekken is de snelste manier om een vraag over een machine te beantwoorden, en het juiste gereedschap voor een eenmalig onderzoek. Het is geen collector: een notebook dat moet blijven draaien is een productieafhankelijkheid die niemand bewaakt.

Voordat u begint

  • asyncua geïnstalleerd, en de synchrone wrapper als u een hekel hebt aan await in een notebook.
  • Leestoegang tot de server, en zijn certificaat vertrouwd als hij beveiliging vereist.
  • Een heldere vraag. Notebooks zijn uitstekend om er één te beantwoorden en slecht in eeuwig doordraaien.

Het opzetten

  1. Gebruik de synchrone wrapper in een notebookfrom asyncua.sync import Client geeft u dezelfde API zonder asyncio, en dat gedraagt zich in de eigen event loop van Jupyter veel beter dan proberen er een te nesten.
  2. Verzamel in een lijst en bouw de DataFrame daarna één keerPer notificatie aan een DataFrame toevoegen is traag en alloceert voortdurend. Buffer notificaties in een lijst van dicts en construeer de DataFrame aan het eind.
  3. Bewaar de statuscode en beide timestamps als kolommenU hebt ze nodig. Een analyse die stilzwijgend een UncertainLastUsableValue meemiddelt, levert een getal op dat niemand kan verdedigen, en u kunt de status niet reconstrueren nadat u hem hebt weggegooid.
  4. Indexeer op SourceTimestamp, in UTCStel die in als een timezone-aware DatetimeIndex. Naïeve lokale timestamps van meerdere machines door elkaar gebruiken is hoe een ploeggrens er een uur naast komt te liggen.
  5. Haal historie op in plaats van te wachtenOndersteunt de server historische toegang, lees dan een venster uit het verleden in plaats van een uur lang in een subscription te blijven zitten. Hebt u ploegaggregaten nodig, vraag de server dan om TimeAverage of PercentGood - hij berekent die veel goedkoper dan u kunt.
  6. Promoveer naar een echte collector zodra het werktZodra het notebook de vraag herhaaldelijk beantwoordt, verplaatst u de logica naar een kleine service met herverbinding en bewaking. Een notebook dat op iemands laptop blijft draaien is een productiestoring die op een dichtklappende klep wacht.

Hoe de adresruimte eruitziet

Wat u ook selecteert, afgevlakt tot kolommen. Gestructureerde waarden decoderen naar Python-objecten als u eerst de data type definitions van de server laadt, die u vervolgens kunt normaliseren naar kolommen. Companion-spec-structuur is beschikbaar als u ernaar browst, maar pandas bewaart die niet voor u.

De valkuilen

  • Jupyter draait zijn eigen event loop, dus de gewone async client kan zich in een cel vreemd gedragen. De synchrone wrapper vermijdt het probleem volledig.
  • Een subscription in een notebook stopt wanneer de kernel herstart, geruisloos. Elke zo verzamelde dataset heeft gaten die u pas opmerkt als u hem plot.
  • Resamplen voordat u statuscodes controleert is de klassieke analysefout: slechte en onzekere waarden worden meegemiddeld in een reeks die er schoon uitziet.
  • Timestamps zonder tijdzone van meerdere servers kunnen niet veilig worden vergeleken. Normaliseer bij opname naar UTC, niet op het moment van plotten.
  • Lange, onbegrensde historie-reads tegen een productiehistorian leveren u een telefoontje op. Begrens elk verzoek.

OEE-data eruit halen

Ideaal om een OEE-berekening te prototypen voordat u die aan een platform toevertrouwt, en voor de discussie over definities die er altijd op volgt. Bereken beschikbaarheid uit toestandsduren, prestatie tegen een vastgelegde ideale cyclustijd, kwaliteit uit afkeuraantallen, en houd elke aanname in een cel naast het getal. Het is een modelleerinstrument, geen bewakingsinstrument - zodra het antwoord elke ploeg moet bestaan, hoort het in een service thuis.

Verifieer voordat u hierop vertrouwt:API's van bibliotheken veranderen tussen hoofdversies. Pin asyncua en pandas in het notebook en leg de versies vast naast elk resultaat waarnaar u wilt handelen.
Gerelateerde integraties

Laatst geverifieerd op 7 september 2026 tegen OPC UA 1.05.07. OPC UA Connect is een educatieve bron en is niet gelieerd aan de OPC Foundation.

Gratis download
OPC UA Machine Data → OEE Mapping Kit
Op welke nodes u zich abonneert, hoe die Beschikbaarheid, Prestatie en Kwaliteit worden, en welke companion specification u het antwoord al geeft, zodat u niet langer tags hoeft te verzinnen.
Download de gratis mappingkit →
Gratis, geen cursus, geen login