Czym jest protokół DLMS?
DLMS to standardowy protokół, który jest używany w licznikach energii elektrycznej, wody i gazu na całym świecie. Ten rodzaj protokołu jest niezbędny do odczytywania danych z liczników różnego typu i od różnych producentów. Korzystając z tego standardu, klient może komunikować się z licznikiem i porozumiewać się w tym samym "języku". Istnieje możliwość pojawienia się dużego problemu. W momencie gdy użytkownik posiada liczniki różnych producentów, które nie posługują się tym samym "językiem", pojawia się potrzeba użycia różnych systemów gromadzenia danych, co jest kosztowne i skomplikowane. Wówczas należy zacząć od obsługi kilku systemów odczytu, a następnie przekształcać zebrane dane do tego samego formatu, aby były kompatybilne. Ponadto może wystąpić blokada jednego z producentów liczników, a zmiana licznika na inny model nie jest w tej sytuacji możliwa.
DLMS jest standardem opartym na następujących normach IEC:
- EC 62056-42 Physical Layer Services and Procedures for Connection-Oriented Asynchronous Data Exchange
- IEC 62056-21 Direct local data exchange
- IEC 62056-46 Data link layer using HDLC protocol
- IEC 62056-47 COSEM transport layers for IPv4 networks
- IEC 62056-53 COSEM application layer
- IEC 62056-61 OBIS Object identification system
- IEC 62056-62 Interface objects
Istnieją również znormalizowane podstandardy z DLMS. Idea podstandardów polega na usunięciu niepotrzebnych funkcji. Dzięki temu rozwiązania te są łatwiejsze do wdrożenia i bardziej niezawodne.
- India Standard 15959 (Part-1) 2011: Wymiana danych do odczytu liczników energii elektrycznej, taryfy i kontroli obciążenia: specyfikacja towarzysząca
- Norma indyjska 15959 (część 2) 2016: Wymiana danych do odczytu liczników energii elektrycznej, taryfy i kontroli obciążenia: specyfikacja towarzysząca część 2 dla inteligentnego licznika
- Włoska Norma UNI/TS 11291-11-2
- Chińska norma DL/T698.45
Jak widać, DLMS jest bardzo dobrze udokumentowany, ale nie jest to łatwy protokół, jeśli porównuje się go na przykład z M-BUS, MeterBus, Profibus lub innymi magistralami sieciowymi. Nie powinno się porównywać DLMS do magistrali sieciowych, ponieważ ich przeznaczenie jest nieco inne, ale takie sytuacje mają miejsce nieustannie. Fieldbusy są najczęściej stosowane w czytnikach, więc zostatnie tutaj użyty jako przykład. Główną różnicą między tymi protokołami a DLMS jest ilość danych. Zazwyczaj fieldbusy są używane do odczytu wartości rejestrów, a pakiet danych jest bardzo mały. Przykładowo, ładunek odczytu może mieć tylko 16 bitów adresu rejestru.
-
Odczyt 2 rejestrów na żądanie Modbus RTU
- 01 03 02 58 00 02 44 60
-
Odczyt 2 rejestrów na żądanie DLMS
- 7E A0 24 03 21 5A 5C F0 E6 E6 00 C0 03 C1 02 00 03 01 01 15 19 00 FF 02 00 00 05 01 00 1F 04 00 FF 02 00 31 8E 7E
Czym nie jest system DLMS?
DLMS jest bardzo otwartym protokołem i nie definiuje, jaki rodzaj funkcjonalności musi być obsługiwany przez licznik. Opisuje jedynie sposób komunikacji z licznikami. Liczniki są bardzo różne, mierzą różne rzeczy, a ich kanały komunikacji są bardzo różne. Niektóre liczniki mierzą tylko kilka rzeczy, a inne setki, ale wszystkie mogą mieć certyfikat DLMS. To od użytkownika zależy, jaki rodzaj licznika będzie mu potrzebny.
Poziomy uwierzytelniania umożliwiają różne prawa dostępu
W DLMS istnieją różne poziomy uwierzytelniania, których brakuje w magistralach sieciowych. Każdy poziom uwierzytelniania zapewnia inny rodzaj kontroli licznika. Korzystając z poziomów uwierzytelniania, klient może odczytać ilość zużytej energii elektrycznej, ale nie może zatrzymać licznika. Warto też odpowiedzieć na najczęściej zadawane pytanie: "Jak można zmienić ustawienia licznika, aby zmniejszyć zużycie energii elektrycznej?". Bez uwierzytelnienia klient może normalnie odczytywać wartości z licznika, przy użyciu niskiego uwierzytelnienia klient może ustawić czas, a przy wysokim uwierzytelnieniu klient może zrobić wszystko. Zaktualizować firmware, zresetować licznik itp. Oczywiste jest, że nie ma potrzeby stosowania poziomów uwierzytelniania w systemie zamkniętym, a magistrale sieciowe ich nie potrzebują, ale w DLMS konieczne jest nawiązanie komunikacji z licznikiem, zanim będzie można cokolwiek z niego odczytać. Istnieją również wstępnie ustanowione połączenia, które nie wymagają uwierzytelnienia dostępu, a klient może jedynie odczytać wartość z licznika. Uwaga! Nie wszystkie liczniki obsługują wstępnie ustanowione połączenia.
Zabezpieczone połączenia za pomocą szyfrowania
Nie ma rzeczywistej potrzeby zabezpieczania połączeń w magistralach sieciowych, ale jest to obowiązkowe, gdy dane są przesyłane bezprzewodowo za pomocą sieci Lora lub innych sieci Mesh. DLMS obsługuje trzy różne sposoby zabezpieczania danych.
- Uwierzytelnianie
- Szyfrowanie
- Uwierzytelnianie i szyfrowanie
Nazewnictwo logistyczne i interfejsy
W protokołach magistrali polowej należy znać adres rejestru, aby odczytać wartość z licznika. Jeśli wartość rejestru jest poprawna, licznik wyświetla pewną wartość. Jeśli zmieni się typ lub model licznika, adres rejestru jest inny i musi zostać zaktualizowany. Jeśli użytkownik posiada 10 liczników, aktualizacja tych informacji nie stanowi dużego problemu. Zupełnie inaczej wygląda aktualizacja w przypadku posiadania 100 000 lub nawet większej liczby liczników. W DLMS istnieją interfejsy, które opisują rodzaj danych, które użytkownik chce uzyskać z licznika. Idea jest prosta: wszyscy producenci liczników powinni używać tych samych interfejsów i nazewnictwa logicznego. Licznik można wymienić na nowy, gdy różne liczniki używają tych samych interfejsów i nazw logicznych. Umożliwia to nawet zmianę modelu licznika i producenta, przy zachowaniu starego systemu zbierania danych.
Adres klienta
Każdy poziom uwierzytelniania ma własny adres klienta. Tak więc, gdy zmienia się poziom uwierzytelniania, zmienia się również adres klienta. Adres klienta jest zdefiniowany w standardzie DLMS tylko wtedy, gdy połączenie jest nawiązywane bez uwierzytelnienia. W idealnym świecie wszyscy producenci liczników używają tych samych adresów klienta, ale nie są one zdefiniowane w standardzie DLMS, więc różne liczniki używają różnych wartości. Jeśli adres klienta jest nieprawidłowy, licznik nie odpowiada. Tylko producent licznika wie, jaki adres klienta może być używany. Dlatego ważne jest, aby ta wartość była udokumentowana. Można ją znaleźć przy użyciu "brutalnej siły", ale prościej jest ją odczytać z dokumentów.
Adres serwera
Każdy licznik musi mieć unikalny adres serwera. Korzystając z tego adresu, licznik wie, jakie wiadomości ma otrzymywać. Ponadto klient także rozpoznaje nadawcę komunikatu. Jeśli połączenie jest nawiązywane za pomocą połączenia Point To Point (TCP/IP, port szeregowy itp.), można użyć domyślnego adresu serwera 1. Numer seryjny licznika może być zwykle używany jako adres serwera. Umożliwia to pracę kilku liczników w tej samej sieci (UDP, radio, RS-485).
PDU i pakiet danych
Rozmiar PDU zależy od licznika. Jeśli licznik nie ma dużej pamięci, rozmiar PDU jest mniejszy. pakiet danych zależny jest kanału komunikacyjnego. Jeśli kanałem komunikacyjnym jest np. TCP/IP, rama danych może wynosić 1024 bajty. W przypadku komunikacji bezprzewodowej pakiet danych może wynosić przykładowo 100 bajtów.
Oto przykład:
Rama danych wynosi 1 MB, ale licznik ma tylko 2 KB (PDU) pamięci, w której można przechowywać dane. Z tego powodu wszystkie dane nie mogą być odczytane jednocześnie. Rozmiar PDU (2 KB) jest odczytywany z pamięci. Gdy PDU jest już pełny, zostaje on przesłany przez kanał komunikacyjny. Pakiet danych zależy od kanału komunikacyjnego. Może się więc zdarzyć, że PDU zostanie podzielony na 20 ramek, a każda ramka musi zostać przesłana przed żądaniem kolejnego PDU. Istnieje wiele liczników, które używają domyślnego pakietu danych 128 bajtów i nie stanowi to problemu, jednak może to być problemem w sytuacji, gdy kanał komunikacji zostanie zmieniony z GPRS przykładowo na Lora.
Zachęcamy do zapoznania się z ofertą CONSTEEL Electronics, w której można znaleźć m.in. przemysłowe bramki z protokołem DLMS służące do szybkiego odczytu danych z liczników.