Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

W miarę uniwersalny skrypt do obsługi DMM - logowanie zapadów napięcia

avatar 31 Gru 2017 14:40 1905 5
  • Witam, z racji świąt i większej ilości wolnego czasu postanowiłem zweryfikować napięcie sieciowe, jakie dostarcza operator. Pomijając mniej ciekawe szczegóły (przekroje przewodów i punkt pomiaru), do sieci na dłuższy czasu został podłączony woltomierz. Z racji braku dużych obciążeń w domu (ogrzewanie gazowe tak samo jak kuchnia) ewentualne zapady spowodowane odbiornikami są raczej pomijalne.

    Wyniki:
    Poniżej załączony wykres napięcia w czasie 30 000 sekund (około 8 godzin) od 18:30 do 3:30 25 grudnia . Jak widać – same góry i doliny – ciekawe, czy ktoś potrafi powiedzieć, że jest to standard czy jakiś ewenement ? Miejscowość w której znajduje się dom to stosunkowo szybko rozwijająca się wieś pod Gdańskiem.
    W miarę uniwersalny skrypt do obsługi DMM - logowanie zapadów napięcia
    Z tego, co wiem wartości, jakie udało się złapać, nie kwalifikują się do reklamacji, bo są jeszcze w normie.

    Oprogramowanie i sprzęt:
    Pomiaru dokonałem za pomocą multimetru firmy Rigol 5,5 cyfry oraz złącza RS232, jakie oferuje na tylnym panelu.
    Do odczytu wartości z miernika napisałem prosty skrypt w windowsowym Powershellu, który po drobnych modyfikacjach można dostosować do dowolnego typu miernika czy też innego urządzenia komunikującego się z komputerem za pomocą RS232. Jest to gotowe rozwiązanie, które zapewne przyda się wielu osobom, bo nie wymaga posiadania jakiegokolwiek specjalnego oprogramowania – zazwyczaj interpreter Powershella jest dostępny w każdym Windowsie od XP. Co ważniejsze wysyłamy bezpośrednio bajty! Więc nietypowe oraz białe znaki nie są dla tego skryptu problemem!
    Code:
    <# Rigol pomiar napięcia AC AC :MEASure:VOLTage:AC? #>
    
    Param(
    [string]$NazwaPliku
    )
    $NazwaPliku=$NazwaPliku | Foreach-Object {$_ -replace "`/","_"}
    echo $NazwaPliku
    Add-Type -AssemblyName System.speech
    $speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
    echo("Program otwiera port COM10, loguje co 1 sekunde pomiar na napiecu AC i zapisuje w katalogu TEMP wartosci do CSV, praca przez xx godzin")
    $zapisywany2="sep=;"+"`n" <#Linijka przyjazna MSExcel#>
    $zapisywany2 | Set-Content C:\Temp\$($NazwaPliku+".csv")
    <#Otwieranie portu i wyslanie zapytania o odczyt#>
       $port= new-Object System.IO.Ports.SerialPort COM10,115200,None,8,one
       $port.open()
       $a = 1

    DO
    {   
       <#Wymagane przez rigol - komenda dla miernika Rigol wysyłana bajt po bajcie oraz CRLF #>
       [Byte[]] $request = 0x3a,0x4d,0x45,0x41,0x53,0x75,0x72,0x65,0x3a,0x56,0x4f,0x4c,0x54,0x61,0x67,0x65,0x3a,0x41,0x43,0x3f,0x0d,0x0a
       $port.Write($request, 0, $request.Count)   <#Zapisz komende do portu#>
       $obecny_czas=Get-Date -format T            <#Pobiereanie czasu ssytemowego#>
       Start-Sleep -s 1                     <# 1 sekunda #>
       $buffer=$port.ReadLine()               <#Odczyt danych z portu rs232#>
       $zapisywany2=$obecny_czas+";"+$buffer+";"   <#Składanie na piechote danych do zapisu#>
       $zapisywany2 | Add-Content C:\Temp\$($NazwaPliku+".csv") <#Append do pliku#>
    $a++

    "Zapis numer $a"

    } While ($a -le 30000) <#Ilosc zapisow#>
       
    $port.close()
    $speak.Speak("Koniec")
    $speak.Dispose()


    Z graficzną reprezentacją były drobne problemy – MS Excel jest w stanie poradzić sobie z plikiem, ale jest to bardzo powolny proces. Dlatego do graficznej reprezentacji polecam ciekawy i darmowy programik GnuPlot. Obsługa jest banalna – całe sterowanie odbywa się z linii komend. Program posiada bardzo wiele ciekawych opcji, ale tu już trzeba się wgłębić w instrukcję dla swojego przypadku. Skrypt, mam nadzieję, posiada wystarczającą ilość komentarzy, aby połapać się, co jest od czego. :) Zasadniczo skrypty Powershell posiadają rozszerzenie *.ps1 i tak należy zapisać zawartość okienka kod.
    Pozdrawiam.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • #2
    lukashb
    Poziom 39  
    Witam! Mieszkam w Lublinie, również wykonałem taki sam pomiar kiedyś tylko innym sprzętem + dane na WWW szły. Niestety już tego niema. Ale do rzeczy.

    Wyniki wyszły zbliżone do Twoich, aż martwiłem się czy mój sprzęt źle mierzy? bo takie skoki i pływania, ale okazało się porównując z innym miernikiem, że jest zbliżone. W nocy 240V - 242V w dzień 230V. Zauważyć dało się moment uruchomienia lamp oświetlenia ulicznego w wykresie u mnie :) z trafostacji z której się zasilam (mam do niej 50 metrów, 2x trafo 400kVa) jest zasilana szafka oświetlenia ulicznego na spory obszar. Skok kilkuwoltowy zauważony. Tak samo uruchomienie windy, ale to wynika z przekroju przewodów bezpośrednio już. Czy to norma? uważam, że tak. Gdyby zapiąć amperomierz na szynach stacji uważam, że pomiar by szalał. Tyle osób ile jednocześnie odłącza urządzenia i dołącza, to amperomierz wskazuje raz tyle a tyle, te skoki napięcia o tym świadczą.
  • #3
    TechEkspert
    Redaktor
    Zjawisko ma pewnie charakter silnie lokalny, kiedyś robiłem eksperyment z pomiarem częstotliwości napięcia sieciowego przy okazji próbkując co 1000s napięcie sieciowe. Zauważyłem wahania napięcia noc/dzień oraz tydzień/weekend (w weekend napięcie niższe) ale transformator zasila dużo budynków mieszkalnych, w okolicy przemysłowej efekt pewnie byłby odwrotny.

    Ciekawe czy w opisanym przypadku zapady napięcia są skutkiem działania pojedynczego odbiorcy, czy też jest to suma wielu zdarzeń w lokalnej sieci...
  • #4
    ghost666
    Tłumacz Redaktor
    avatar napisał:
    W miarę uniwersalny skrypt do obsługi DMM - logowanie zapadów napięcia




    Jakie jednostki są na osi X?
  • #5
    TechEkspert
    Redaktor
    Pewnie V na Y i s na X, w takim przypadku przydałby się pomiar w kilku miejscach sieci nN zasilonej z lokalnego transformatora, ciekawe czy byłaby korelacja spadków napięć.