PTPiREE – format danych dobowych o zużyciu energii, stosowany w wymianie danych pomiędzy uczestnikami rynku energii elektrycznej w Polsce. Opracowany przez Polskie Towarzystwo Przesyłu i Rozdziału Energii Elektrycznej (PTPiREE).

Budowa Plik PTPiREE jest to plik tekstowy składający się z nagłówka, listy pomiarów energii elektrycznej oraz sumy kontrolnej. Wiersze oddzielone są znakami końca linii CRLF.

Budowa nagłówka Nagłówek pliku składa się z sześciu wierszy: Skrócona nazwa spółki dystrybucyjnej. ID 1, często numer licznika. ID 2, często typ licznika. Kod rodzaju energii elektrycznej (czynna/bierna) i umowny kierunek przepływu (pobór/oddawanie): CP, CO, QP, QO. Data doby pomiarowej. Liczba pomiarów w dobie: 23, 24 lub 25. Doby liczone są od północy do północy według czasu urzędowego. W dniu zmiany czasu ze strefowego na letni "doba urzędowa" jest krótsza o godzinę i ma 23 godziny, zaś w dniu zmiany czasu z letniego na strefowy jest dłuższa o godzinę i ma 25 godzin, stąd odpowiednia zmiana liczby pomiarów w pliku.

Budowa wiersza pomiaru energii elektrycznej Wiersz składa się dwóch wartości: wartości pobranej energii elektrycznej oraz wskaźnika jakości.

Wartość pobranej energii jest podawana z dokładnością do trzech miejsc po przecinku, separatorem miejsc dziesiętnych jest „.” (kropka), zaś separatorem wskaźnika jakości „,” (przecinek).

Wskaźnik jakości przyjmuje trzy wartości: „+” – (plus) dane poprawne. „-” – (minus) dane niepoprawne lub brak danych. „*” – (gwiazdka) dane niepełne.

Suma kontrolna Suma kontrolna w formacie PTPiREE jest to 16-bitowy cykliczny kod nadmiarowy (CRC) obliczany według algorytmu znanego jako CRC-CCITT (stosowanego m.in. w protokołach XMODEM i Bluetooth). Suma kontrolna wyliczana jest na bajtowym ciągu znaków złożonym z nagłówka oraz listy pomiarów wraz ze znakami końca linii.

Przykładowy kod PHP wyliczający sumę kontrolną: <?php $len = strlen($fullContent); $crc=0; $polynomial = 0x1021; for($i = 0; $i < $len; $i++) { for ($j = 0; $j < 8; $j++)

$b = ord($fullContent[$i]); $bit = (($b >> (7-$j) & 1) == 1); $c15 = (($crc >> 15 & 1) == 1); $crc <<= 1; if($c15 ^ $bit) $crc ^= $polynomial;

$crc &= 0xffff; $fullContent.=sprintf("%04X",$crc)."\r\n"; ?>

Przypisy

Kategoria:Metrologia Kategoria:Komputerowe reprezentacje danych