Jak inżynierowie elektrycy wykorzystują Pythona?
Łukasz Menclewicz, programowanie back-end (senior) | | Zaktualizowano | 6 min czytania
W skrócie
Operator testera płytek PCB, który ręcznie ustawia zasilacz i przepisuje odczyty do Excela, traci czas przy każdej płytce, a każdy ręczny krok to okazja do fałszywego odczytu. W dobrze zorganizowanych fabrykach te kroki wykonuje oprogramowanie: komunikuje się z przyrządami, zbiera dane i tworzy raporty. Często to oprogramowanie działa w Pythonie, z bibliotekami takimi jak PyVISA do przyrządów, Pandas do danych oraz Django albo Flask do alertów. W artykule pokazuję trzy sposoby, w jakie fabryki wykorzystują Pythona (testowanie płytek, monitorowanie maszyn i raportowanie pomiarów), oraz to, gdzie ten sam język działa w oprogramowaniu dla energetyki.
Python w automatyce i sterowaniu
Jeden program w Pythonie może sterować zasilaczami, kartami przekaźników i przyrządami pomiarowymi w fabryce, bez względu na to, jakiego protokołu używa każde z tych urządzeń.
Komunikacja między różnymi urządzeniami w fabryce jest trudna, bo maszyny i urządzenia często mówią różnymi językami i korzystają z różnych protokołów, takich jak GPIB, RS232, USB i Ethernet.
Umożliwiają to biblioteki takie jak PyVISA: sterują urządzeniami bez względu na ich interfejs.
Wyobraź sobie maszynę do testowania płytek PCB. Gdy wkładasz płytkę, po jej drugiej stronie pracują dwa rodzaje pinów:
- piny zasilające, które doprowadzają odpowiednie zasilanie do właściwych punktów na płytce PCB,
- piny pomiarowe, podłączone do urządzenia pomiarowego, które wykrywają zmiany sygnałów elektrycznych na płytce.
Gdy piny zasilające zapewnią właściwe zasilanie w jednym miejscu, maszyna wykonuje odczyty na płytce przez piny pomiarowe i rejestruje zmiany prądu lub napięcia.
Dzięki temu możesz sprawdzić i potwierdzić poprawność przepływu prądu i utrzymywania napięcia. Takie procesy lub przełączenia mogą się powtarzać wiele razy w jednym cyklu testowym, co daje pełną ocenę płytki.
W takiej maszynie program w Pythonie pośredniczy między urządzeniami. Wysyła komunikat, czeka na odpowiedź, a gdy dane dotrą, przetwarza je i archiwizuje, tak że od razu można je przekazać dalej.
Ten sam program automatyzuje cały proces testowania i steruje co najmniej trzema urządzeniami: kartą przekaźników, która łączy odpowiednie punkty z wejściem/wyjściem właściwego urządzenia pomiarowego lub zasilającego, zasilaczem, na którym ustawia i podaje odpowiednią wartość napięcia, oraz urządzeniem pomiarowym, które ustawia na właściwy zakres i z którego odczytuje wynik.
Po pierwsze, skrypt ogranicza ludzkie błędy, takie jak pomyłki przy wprowadzaniu danych, niedokładne pomiary czy złe ułożenie pinów, które prowadzą do fałszywych odczytów.
Po drugie, nikt nie musi ręcznie ustawiać zasilaczy ani podłączać się do punktów na płytce PCB.
Po trzecie, dzięki integracjom przez API skrypt na bieżąco informuje zespół i alarmuje, gdy pomiary odbiegają od normy.
Python w utrzymaniu ruchu i eksploatacji
Python może pilnować każdej maszyny w sieci i powiadomić właściwą osobę, gdy tylko któraś przestanie działać tak, jak powinna.
Tradycyjnie, gdy z maszyną działo się coś złego, operator to zauważał i zgłaszał. Ta metoda ma jednak swoje słabe strony.
Operator może przeoczyć problem albo zauważyć go za późno, a wtedy ryzykujesz uszkodzenie maszyny i całej partii produktów. Nawet jeśli go zauważy, zgłoszenie może zaginąć lub dotrzeć z opóźnieniem, zwłaszcza gdy kierownik nie jest od razu dostępny.
Dzięki narzędziom takim jak Django i Flask Python może zestawić bezpośredni kanał komunikacji między maszynami podłączonymi do sieci. Zbiera dane w czasie rzeczywistym, a właściwe osoby od razu dostają informacje, na przykład o tym, czy maszyny są online i działają tak, jak powinny.
Gdy coś pójdzie nie tak, informacja pojawia się w aplikacji webowej zbudowanej na Django lub Flask i może też trafić e-mailem, SMS-em lub powiadomieniem prosto do technika.
Zespół wie o problemie od razu, co skraca przestoje i przyspiesza naprawy.
Weźmy testowanie płytek PCB. Python pozwala stale mierzyć i weryfikować wyniki testów. Jeśli system zauważy powtarzający się błąd na kilku płytkach, zasygnalizuje możliwy problem z testerem, na przykład wygięty pin.
Takie drobne usterki łatwo przeoczyć gołym okiem, ale Python zgłasza je od razu. To zapobiega przestojom produkcji i oszczędza firmie czas i materiał.
Optymalizacja pomiarów elektrycznych z Pythonem
Maszyny na bieżąco zbierają pomiary i zapisują je w bazach danych. Inżynierowie wyciągają potem te dane i przygotowują na ich podstawie raporty.
Wyobraź sobie, że masz ocenić stabilność napięcia urządzenia w określonym czasie: napięcia stałego DC albo wartości skutecznej (RMS) napięcia przemiennego AC. W idealnym przypadku wykres napięcia w czasie powinien być równą linią, bez oscylacji.
Tradycyjnie maszyna wykonuje odczyty w określonych odstępach, a operator żmudnie przenosi dane do arkusza Excel, żeby zrobić wykres.
Ta ręczna metoda działa, ale zajmuje dużo czasu i łatwo w niej o błąd.
Biblioteki Pythona, takie jak Pandas do analizy danych i Matplotlib do wizualizacji, pozwalają automatycznie zbierać dane i tworzyć wykresy. Mogą to być histogramy, mediany i średnie, a także wartości maksymalne i minimalne.
Python może też zebrać te dane w raporty dzienne, miesięczne lub roczne i przekonwertować je do formatów takich jak DOC czy PDF. Raporty można potem szybko wysłać do właściwych osób.
W porównaniu z tradycyjną ręczną metodą zautomatyzowane podejście w Pythonie ma wyraźne zalety. Jedno polecenie w Pythonie może wykonać całą serię zadań za każdym razem tak samo.
Spada też ryzyko błędów, bo dobrze napisany skrypt powtarza każdy krok dokładnie, czego ręczna praca nie zapewni.
Biblioteki Pythona dla elektrotechniki
Do automatyzacji testów, monitorowania i raportowania inżynierowie elektrycy używają PyVISA, Pandas, Matplotlib oraz Django lub Flask. Do obliczeń służą NumPy, SciPy i ElectricPy:
- PyVISA steruje zasilaczami, kartami przekaźników i przyrządami pomiarowymi przez GPIB, RS232, USB albo Ethernet.
- Pandas analizuje zapisane pomiary, od średnich i median po wartości minimalne i maksymalne.
- Matplotlib rysuje histogramy i wykresy napięcia w czasie.
- Django i Flask obsługują aplikacje webowe, które pokazują stan maszyn i wysyłają alerty e-mailem lub SMS-em.
- NumPy i SciPy obsługują obliczenia numeryczne, a SciPy ma też moduł do przetwarzania sygnałów.
- ElectricPy dodaje funkcje i stałe Pythona związane z elektrotechniką.
Python w oprogramowaniu dla energetyki
Python działa też w systemach energetycznych. Kod brzegowy systemu zarządzania energią (EMS), który zbudowaliśmy dla platformy fotowoltaiczno-bateryjnej Skyfri, jest napisany w Pythonie z asyncio i działa na Azure IoT Edge, a w chmurze na Azure IoT Hub. Na każdym obiekcie obsługuje ładowanie i rozładowanie, peak shaving, handel energią, polecenia operatora sieci i limity eksportu, a przy tym działa w pełni offline. Wśród wymagań startowych były okna wysokiego obciążenia (HLZF) z taryfy sieciowej.
Enerace.Online, w którym konsultanci Enerace i ich klienci zarządzają zakupem energii, jest zbudowany w Pythonie, Django, GraphQL i React na AWS. Oba projekty i pozostałe nasze prace dla energetyki znajdziesz na stronie Energy Hub.
Czy Python zawsze się opłaca?
Z mojego doświadczenia: w takie systemy pomiarowe i raportowe warto inwestować. Zdarzają się wyjątki, na przykład małe firmy z niewielką skalą produkcji, w których koszt wdrożenia rozbudowanego systemu może przewyższyć korzyści.
W większości dużych zakładów przemysłowych narzędzia oparte na Pythonie się jednak opłacają, a inżynierowie, operatorzy i kierownicy dostają dane, na których mogą polegać.
Systemy zbudowane w Pythonie automatyzują zadania, które tradycyjnie wykonywali ludzie, i pozwalają urządzeniom wymieniać informacje szybciej i pewniej.
Raporty i analizy, które inżynierowi zajmują od kilku minut do kilku godzin, jeden skrypt może udostępniać w czasie rzeczywistym albo przygotować w kilka sekund.
Python dla inżynierów elektryków: najczęściej zadawane pytania
Czy inżynierowie elektrycy używają Pythona?
Tak, zwłaszcza tam, gdzie przyrządy i maszyny trzeba połączyć z oprogramowaniem. W fabrykach Python steruje sprzętem testowym, sprawdza, czy maszyny są online, alarmuje techników, gdy coś przestaje działać, i zamienia zapisane pomiary w wykresy i raporty. Korzysta z niego też oprogramowanie dla energetyki: kod brzegowy EMS-u, który zbudowaliśmy dla Skyfri, działa na Pythonie z asyncio.
Jakich bibliotek Pythona używają inżynierowie elektrycy?
Do automatyzacji testów, monitorowania i raportowania zwykle wystarczają PyVISA, Pandas, Matplotlib oraz Django albo Flask. PyVISA komunikuje się z przyrządami, Pandas analizuje dane pomiarowe, Matplotlib rysuje histogramy i wykresy napięcia w czasie, a Django albo Flask pokazują stan maszyn i wysyłają alerty e-mailem lub SMS-em. Wzory i stałe z elektrotechniki zawierają wyspecjalizowane pakiety, takie jak ElectricPy.
Czy Python może sterować przyrządami laboratoryjnymi, takimi jak zasilacze i multimetry?
Tak. PyVISA steruje urządzeniami pomiarowymi bez względu na ich interfejs: GPIB, RS232, USB czy Ethernet. Na stanowisku testowym płytek PCB Python przełącza kartę przekaźników, ustawia napięcie zasilania, wybiera zakres pomiarowy miernika, odczytuje wynik i go archiwizuje, a potem powtarza cykl bez ręcznych kroków.
Python czy MATLAB: co lepiej sprawdza się w elektrotechnice?
Używa się obu. MATLAB to płatny produkt firmy MathWorks, rozszerzany o dodatkowe pakiety (toolboxes), np. do automatyki i przetwarzania sygnałów (MathWorks). Python jest otwartoźródłowy i bezpłatny, a jeden język obejmuje sterowanie przyrządami (PyVISA), analizę danych (Pandas) i aplikacje webowe (Django). Przy automatyzacji testów i raportowaniu Python obsługuje cały łańcuch.
Pracuj ze specjalistami high-tech
Porozmawiajmy o Twoim projekcie!