TopGAZ 2011-Tel-Ster
Transkrypt
TopGAZ 2011-Tel-Ster
Protokół GAZ-MODEM – porównanie z innymi standardami możliwymi do implementacji w elektronicznych licznikach gazu Tomasz Lis TEL-STER sp. z o. o. Gaz-Modem jest powszechnie stosowanym w Polsce standardem do komunikacji z elektronicznymi przelicznikami gazu. Zapewnia przekazywanie bieżących danych telemetrycznych, służących przede wszystkim do monitorowania przepływu gazu, jak również pobieranie danych historycznych rejestrowanych bezpośrednio w przeliczniku, które są najczęściej wykorzystywane do celów rozliczeniowych i mogą być pobierane okresowo po zamknięciu okresu rozliczeniowego. W artykule omówiono podstawowe funkcje protokołu oraz przedstawiono alternatywne rozwiązania takie jak DSfG czy IEC 62056-21. Wstęp W momencie, gdy możliwa stała się budowa liczników elektronicznych, pojawiło się pytanie o sposób komunikacji z takimi urządzeniami w celu odczytu rejestrowanych przez nie danych. Zastosowanie istniejących protokołów, stosowanych w typowych systemach telemetrycznych, nie rozwiązywało problemu ze względu na specyfikę tego rodzaju urządzeń. Odmienność ta polega przede wszystkim na tym, że liczniki operują na dwóch podstawowych typach danych – wartościach chwilowych mierzonych parametrów oraz ich wartościach historycznych, rejestrowanych w sposób cykliczny. Wartości rejestrowane w urządzeniu mają przy tym często charakter rozliczeniowy. Ponadto w wielu instalacjach liczniki nie są odczytywane w sposób ciągły, a jedynie okresowo (np. po zamknięciu okresu rozliczeniowego). Istotną kategorią danych są też informacje o zdarzeniach mających wpływ na dokładność mierzonych i rejestrowanych wartości. W typowych układach telemetrycznych, sterowniki PLC operują najczęściej wyłącznie na danych chwilowych. Ewentualna rejestracja tych wartości oraz wykrywanie nieprawidłowości jest zazwyczaj realizowana przez nadrzędny system komputerowy (SCADA). W związku z tym, powszechnie stosowane w systemach SCADA protokoły komunikacyjne (np. ModBus) nie umożliwiają przesyłania wartości rejestrowanych oraz zdarzeń. Konieczne zatem było zdefiniowanie nowych protokołów, które uwzględniałyby specyfikę liczników elektronicznych. Istnienie wielu różnych rozwiązań firmowych jest oczywiście niekorzystne dla użytkowników urządzeń, w związku z czym pojawiło się dążenie do standaryzacji interfejsów oraz protokołów komunikacyjnych stosowanych w licznikach. Ze względu na liczbę produkowanych urządzeń, prace komitetów normalizacyjnych koncentrowały się na licznikach energii elektrycznej. W Europie powstał standard IEC 1107 (1992r.), umożliwiający odczyt liczników m.in. za pomocą złącza optycznego. Standard ten był wielokrotnie aktualizowany i rozwijany, obejmując swoim zasięgiem także inne media, jak również rozwiązania firmowe różnych producentów, takie jak DLMS. Obecnie standard ten nosi oznaczenie IEC 62056-21. W Ameryce Północnej opracowano m.in. standard ANSI C12.18 (1996r.). Na rynku gazowniczym w Niemczech popularność zyskał protokół DSfG (opracowany w ramach stowarzyszenia DVGW). W Polsce został natomiast opracowany od podstaw i ustandaryzowany protokół Gaz-Modem (Polskie Górnictwo Naftowe i Gazownictwo, norma zakładowa ZN-G-4007 – 1995r.) oraz jego nowsza wersja – protokół Gaz-Modem II (2001r.). Dzięki temu obecnie przytłaczająca większość produkowanych i eksploatowanych w naszym kraju przeliczników gazu jest wyposażona w protokoły GazModem i Gaz-Modem II. W standard ten wyposażane są również urządzenia zagranicznych producentów, którzy wprowadzają swoje produkty na polski rynek. O sukcesie protokołu Gaz-Modem w dużej mierze zadecydowały zastosowane rozwiązania, wśród których należy wymienić: • stosunkowo prosta definicja protokołu, umożliwiająca łatwą implementację w urządzeniach i efektywną transmisję (format binarny), • możliwość działania w systemach telemetrycznych (online) – ciągły odczyt danych chwilowych i ewentualne pobieranie danych rejestrowanych, • możliwość pracy w trybie okresowego odczytu danych rejestrowanych (rozliczeniowych), • możliwość używania protokołu w różnych kanałach łączności (łącza szeregowe, sieć lokalna, WAN, GSM/GPRS), • możliwość rozszerzania specyfikacji o dodatkowe funkcje specyficzne dla producenta sprzętu. Protokół Gaz-Modem Protokół Gaz-Modem realizuje następujące podstawowe grupy funkcji: • odczyt parametrów konfiguracyjnych, • modyfikacja parametrów konfiguracyjnych (GazModem II), • odczyt wartości chwilowych, • odczyt i synchronizacja zegara, • modyfikacja parametrów/sterowanie (Gaz-Modem II, chronione hasłem), • odczyt wartości rejestrowanych, • odczyt zdarzeń. Komunikaty protokołu Gaz-Modem są przesyłane w ramkach o stałej strukturze: <0x68> <długość> <adres urządzenia pytanego> <adres urządzenia pytającego> <funkcja> <parametry> <dane> <suma kontrolna> <0x16> Zarówno nadawca jak i odbiorca komunikatu jest identyfikowany za pomocą 16 bitowego adresu, co umożliwia jednoznaczną identyfikację ramek i ich multipleksację w kanale komunikacyjnym. Co więcej, dostępna pula 65535 adresów umożliwia unikalne adresowanie wszystkich przeliczników w ramach całego nadzorowanego układu. Każda ramka chroniona jest 16 bitowym zabezpieczeniem CRC, umożliwiającym wykrycie większości ewentualnych przekłamań zawartości ramki. Przesyłane wartości parametrów są identyfikowane za pomocą adresu, mającego formę liczby całkowitej z zakresu 0-65535. W przypadku wersji pierwszej protokołu specyfikacja jednoznacznie określa adresy podstawowych parametrów. Producenci urządzeń mogą też dodawać nowe pozycje, przypisując je do niewykorzystanych adresów. W przypadku wersji drugiej protokołu, z urządzenia można odczytać dostępną listę parametrów wraz ich adresami (oraz dodatkowymi informacjami). Odczyt danych bieżących wymaga pojedynczej interakcji z przelicznikiem – system nadrzędny wysyła zapytanie do przelicznika o określonym adresie, zawierające informację o numerze pierwszego rejestru i ilości rejestrów do odczytu (razem 14 bajtów), a w odpowiedzi przelicznik przesyła żądane dane (14 bajtów + 5 bajtów na każdy parametr). W jednej iteracji możliwe jest do przesłania 255 wartości. Odczyt danych rejestrowanych odbywa się dwuetapowo. W pierwszej fazie system nadrzędny wysyła polecenie wyszukania danych z określonego czasu, a w drugim kroku wysyłane są polecenia pobrania kolejnych wartości określonego parametru (ilość iteracji zależy od ilości pobieranych danych). W każdej odpowiedzi przesyłana jest etykieta czasowa pierwszej wartości, okres archiwizacji oraz ciąg wartości bez indywidualnych etykiet czasowych (w przypadku rozszerzeń protokołu zaimplementowanych w rejestratorach MacRej II, możliwy jest odczyt danych rejestrowanych ze zmienną częstotliwością). W jednym komunikacie przesyłane są zawsze wartości jednego, wskazanego w zapytaniu parametru. Dane są przesyłane w formacie binarnym. W przypadku wersji pierwszej protokołu są to czterobajtowe liczby zmiennoprzecinkowe. W drugiej wersji protokołu do dyspozycji jest cała gama wartości stało i zmiennoprzecinkowych jak również tekstowych. Protokół DSfG Protokół DSfG zakłada występowanie wielu logicznych jednostek, realizujących poszczególne funkcje systemu. Przykładami takich jednostek są: • korektory (przeliczniki), • rejestratory, • jednostki kontrolujące skład gazu, • jednostki nawaniania, • jednostki sterujące, • jednostki zdalnego dostępu. Fizyczne urządzenia mogą realizować funkcje wybranej jednostki logicznej lub łączyć funkcje kilku jednostek. Poszczególne elementy systemu komunikują się ze sobą za pomocą specjalizowanej magistrali DSfG (standardem łącza fizycznego jest RS-485). Jedna z jednostek pełni zawszę funkcję zarządcy magistrali, koordynującej komunikację między poszczególnymi elementami. Do jednej magistrali może być podłączonych maksymalnie 30 jednostek logicznych (adresy od ‘A’ fo ‘Z’). Dostęp systemów nadrzędnych (np. SCADA) do urządzeń na magistrali DSfG realizowany jest za pomocą jednostki DFÜ (zdalnego dostępu). Zapewnia ona autoryzację dostępu i odpowiednie mechanizmy pośredniczenia w komunikacji z urządzeniami podłączonymi do magistrali. Komunikacja z jednostką zdalnego dostępu odbywa się najczęściej za pomocą interfejsu RS232 (połączenie bezpośrednie lub modemowe). W nowych produktach stosowany jest też interfejs Ethernet. Jednostka zdalnego dostępu może też udostępniać wybrane dane z systemu DSfG za pomocą innych protokołów (np. ModBus). Protokół DSfG jest protokołem tekstowym, w którym zarówno adresy parametrów jak i ich wartości są przesyłane w postaci znaków ASCII. Poniżej przedstawiono przykładowe polecenie odczytu: <STX><US>255<US>963<US>1<US>1<US>G<US>A<US>J<US>M <US>7<US>bia<GS>bba<GS>bbb<GS>bbc<GS>bace<GS>baca <GS>bacc<FS><ETX> i odpowiedź z danymi: <STX><US>255<US>963<US>1<US>1<US>A<US>R<US>N<US>M <US>14<US>baae<US>50682579<GS>baaa<US>2102535092< GS>baac<US>13336639122<GS>bdde<US>.0<GS>bdfe<US>. 0<GS>bdbe<US>34.210625<GS>bdce<US>.748257<GS>bhfc <US>0<GS>bba<US>.0<GS>bbb<US>.0<GS>bbc<US>.0<GS>b ace<US>94677<GS>baca<US>4475067<GS>bacc<US>495614 53<FS><ETX> Adresy poszczególnych parametrów mają postać ciągu maksymalnie pięciu znaków. Przykładowo „baaa” oznacza przepływ normalny dla pierwszego urządzenia pomiarowego. Pierwszy znak adresu określa jednostkę funkcjonalną (w tym przypadku „b” oznacza korektor). Drugi znak adres precyzuje grupę parametrów (np. liczniki, pomiary, parametry korekcji, wartości archiwalne, zdarzenia). Trzeci znak może określać np. numer urządzenia pomiarowego czy numer kanału archiwizacji. Czwarty i piąty znak, w miarę potrzeby, w sposób jednoznaczny precyzują określony parametr w danej grupie. Specyfikacja DSfG zawiera szczegółowe tabele definiujące grupy adresów i adresy poszczególnych parametrów, co w dużej mierze ułatwia identyfikację odczytywanych danych. Przesyłane ramki mogą być chronione kodem CRC12, umożliwiającym wykrycie większości ewentualnych przekłamań zawartości ramki. Odczyt danych rejestrowanych może wymagać wcześniejszego pobrania z rejestratora zakresu dostępnych indeksów, na podstawie których można z kolei określić zakres czasowy dostępnych danych. Sam proces pobrania danych polega na przesłaniu do rejestratora odpowiedniego zapytania, określającego adres parametru oraz okres czasu. W odpowiedzi rejestrator przesyła komunikat z wartościami z tego okresu. Każda wartość jest opatrzona indywidualną etykietą czasową. Specyfikacja protokołu przewiduje wiele typów komunikatów oraz opcji, co z jednej strony zapewnia dużą elastyczność i możliwość konfiguracji systemu w zależności od potrzeb, natomiast z drugiej strony może powodować problemy z implementacją protokołu i kompatybilnością urządzeń. Protokół IEC 62056-21 Protokół IEC 62056-21 jest protokołem tekstowym (opcjonalnie dostępny jest tryb binarny HDLC). Urządzenia mogą pracować w jednym z pięciu trybów: ‘A’ – ‘E’, przy czym tryb ‘D’ jest protokołem jednokierunkowym (wysłanie danych przez urządzenie po wzbudzeniu np. przyciskiem), a tryb ‘E’ jest furtką dla innych protokołów (np. DLMS). Komunikacja z urządzeniem przebiega etapowo. W pierwszej fazie następuje wywołanie urządzenia o określonym adresie (możliwe jest także wywołanie bez adresu), na które urządzenie odpowiada swoim identyfikatorem. Adres urządzenia ma postać do 32 znaków ASCII. Nie jest on przesyłany w kolejnych komunikatach, co uniemożliwia jednoczesną komunikację z wieloma urządzeniami (w trybie tekstowym). Po wywołaniu urządzenia, w trybach ‘A’ i ‘B’, urządzenie spontanicznie przesyła komplet danych, zawierających najczęściej wartości chwilowe wybranych wartości mierzonych i parametrów konfiguracyjnych oraz wartości za ostatnie okresy rozliczeniowe (tzw. readout). Informacje te są przesyłane w postaci tekstu składającego się z wierszy, z których każdy zawiera identyfikator parametru oraz jego wartość: 1.8.1(0000123.4*kWh) W przypadku wartości historycznych dodatkowo zamieszczany jest identyfikator okresu lub czas rejestracji: 32.32.0(0002)(10-11-05 12:56) Zestaw przesyłanych wartości parametrów jest stały i nie jest kontrolowany przez stację nadrzędną (jest ustalany na etapie konfiguracji urządzenia). W praktyce liczniki przesyłają kilka kilobajtów danych. (Jeśli wykorzystywana jest tylko część danych, to taki sposób komunikacji jest bardzo nieefektywny.) Identyfikatory poszczególnych parametrów są znormalizowane za pomocą systemu OBIS (Object Identification System – IEC 62056-61), dzięki czemu możliwa jest jednoznaczna identyfikacja poszczególnych wartości. Adresy składają się z 6 elementów: A-B:C.D.E*F A – medium (energia elektryczna, gaz, ciepło itd.) B – kanał C – typ parametru ( np. moc czynna) D – rodzaj wartości (np. wartość maksymalna, średnia) F – taryfa W przypadku trybów ‘C’ i ‘E’ stacja nadrzędna może zażądać przesłania standardowego zestawu parametrów (jak w trybie ‘A’ i ‘B’) lub przejść do tzw. trybu rejestrowego (co może wymagać przesłania hasła). Na tym etapie możliwa jest też zmiana prędkości transmisji między systemem nadrzędnym a urządzeniem (tryb ‘C’). W trybie rejestrowym możliwe jest wykonywanie komend, między innymi polecenia odczytu (‘R’) i zapisu (‘W’). W trybie tym możliwy jest odczyt pojedynczych parametrów, a także wartości rejestrowanych określonych parametrów (np. tzw. „profil mocy” dla liczników energii) oraz historii zdarzeń. Niestety zestaw poleceń dostępnych w trybie rejestrowym nie jest taki sam dla różnych typów urządzeń, w związku z tym system nadrzędny musi posiadać informacje o specyfice danego typu urządzenia. Poniżej zamieszczono przykładowe zapytanie i fragment odpowiedzi z profilem mocy: <SOH>R5<STX>P.01(01103070100;01103080100)<ETX> <STX>P.01(0110307010000)(0010)(15)(7) (1.5.0)(kW)(2.5.0)(kW)(5.5.0)(kvar) (6.5.0)(kvar)(7.5.0)(kvar)(8.5.0)(kvar) (13.5.0)() (0.0000)(0.0000)(0.0000)(0.0000) (0.0000)(0.0000)(1.00) (0.0000)(0.0000)(0.0000)(0.0000) (0.0000)(0.0000)(1.00) … <ETX> W odpowiedzi przesyłana jest informacja o czasie, częstości archiwizacji i ciąg rekordów zawierających wartości wszystkich dostępnych parametrów z kolejnych okresów archiwizacji. Tryb rejestrowy umożliwia praktycznie dowolne rozszerzanie zastawu dostępnych funkcji, umożliwiając dowolne dostosowanie urządzeń do aktualnych potrzeb. Niestety, powoduje to również konieczność wprowadzania zmian i dostosowywania systemów nadrzędnych, w dużej mierze niwecząc korzyści wynikające ze standaryzacji. Porównanie istotnych cech protokołów W poniższej tabeli zestawiono porównanie istotnych cech opisanych wcześniej protokołów z punktu widzenia systemów telemetrycznych. Cecha format danych efektywność odczytu danych chwilowych (dla 20 parametrów) adresy urządzeń równoczesny odczyt wielu stacji na tym samym łączu zabezpieczenie hasłem adresy parametrów odczyt adresów parametrów z urządzenia możliwość komunikacji za pomocą różnych kanałów (modem, GPRS, SMS) Gaz-Modem binarny IEC 62056-21 ASCII (opcjonalnie binarny) DSfG ASCII ok. 75% ok. 5% (readout) <30% 0-65535 32 znaki ‘A’ – ‘Z’ tak nie (możliwy w HDLC) tak tak (tylko sterowanie) tak tak (DFÜ) 0-65535 Kody OBIS (6 elem.) 5 znaków tak (tylko Gaz-Modem II) nie (OBIS) częściowy (konfiguracja kanałów arch.) tak ograniczona ograniczona zabezpieczenia CRC ramek tak nie (suma kontrolna BCC) tak wykrywanie duplikatów ramek nie nie tak nie tak tak tak tak tak tak tak tak prosty złożony złożony nie tak nie zmienny okres archiwizacji odczyt zdarzeń możliwość sterowania synchronizacja czasu łatwość implementacji informacja o czasie letnim nie (dostępne w MacRejII) tak tak (GazModem II) Podsumowanie Przegląd cech protokołu Gaz-Modem na tle innych protokołów potwierdza, że zastosowane w nim mechanizmy nie ustępują innym rozwiązaniom. Jest to protokół o stosunkowo prostej specyfikacji, umożliwiającej łatwą implementację, a przy tym bardzo efektywnie przesyłający użyteczne dane, co ma istotne znaczenie np. przy coraz powszechniejszej komunikacji przez GPRS. Konkurencyjne protokoły wymagają wymiany wielokrotnie większej ilości danych, między innym z powodu kodowania tekstowego za pomocą znaków ASCII. Jak pokazała praktyka, przyjęte w specyfikacji protokołu Gaz-Modem rozwiązania, mimo pewnych mankamentów i ograniczeń, spełniają wymagania użytkowników, zapewniając przy tym pełną kompatybilność dostępnych na rynku urządzeń z systemami nadrzędnych. Literatura [1] Norma zakładowa PGNiG ZN-G-4007:1995, Załącznik A; Protokół wymiany danych GAZ-MODEM. [2] Norma zakładowa PGNiG ZN-G-4007:2001, Załącznik B; Protokół transmisji danych GAZ-MODEM II [3] IEC 62056-21 Electricity metering – Data exchange for meter reading, tariff and load control - Part 21 Direct local data exchange [4] DVGW Information Nr. 7–4. Überarbeitung 10/2009; Technische Spezifikation für DSfG-Realisierungen; Teil 1: Grundlegende Spezifikationen