PTPiREE (format danych)
Ten artykuł należy dopracować |
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[edytuj | edytuj kod]
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.[1]
Budowa nagłówka[edytuj | edytuj kod]
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[edytuj | edytuj kod]
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[edytuj | edytuj kod]
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[edytuj | edytuj kod]
- ↑ Formaty plików publikowanych na Platformie Wymiany Danych innPWD [online], innogy Stoen Operator, marzec 2020 [zarchiwizowane z adresu 2021-07-26] .