TelWin | TEL-STER Sp. z o.o. 

Instrukcja modułu DLMSModuł DLMS systemu TelWin SCADA firmy TEL-STER Sp. z o.o.

W odpowiedzi na potrzeby rynku energetycznego oraz rosnącą liczbę wdrożeń inteligentnego opomiarowania, nasz system SCADA został rozszerzony o natywną integrację z jednym z najważniejszych standardów komunikacyjnych stosowanych w licznikach energii. Dzięki temu możliwe jest nie tylko pozyskiwanie bieżących wartości pomiarowych, ale również dostęp do bogatego modelu danych, profili obciążenia, rejestrów historycznych i informacji diagnostycznych. W dalszej części artykułu przedstawimy zarówno podstawy działania protokołu DLMS, jak i możliwości jego wykorzystania oraz obsługi w systemie SCADA. 

Protokół DLMS/COSEM

Inteligentne liczniki energii elektrycznej, gazu i wody wymagają protokołu komunikacyjnego, który nie tylko przesyła dane, ale także je opisuje - definiuje typ wartości, jednostkę fizyczną i znaczenie pomiaru. Taką rolę pełni DLMS/COSEM, standard przyjęty przez IEC jako seria norm IEC 62056 i opracowany przez DLMS User Association. Stał on się podstawą wymiany danych w systemach smart metering.

Standard ten składa się z dwóch uzupełniających się specyfikacji: DLMS (Device Language Message Specification) definiuje mechanizmy komunikacji - transport, sesję komunikacyjną, uwierzytelnianie i szyfrowanie; COSEM (Companion Specification for Energy Metering) definiuje obiektowy model danych urządzenia. Oba elementy funkcjonują łącznie pod wspólną nazwą DLMS/COSEM. DLMS/COSEM opisuje dane urządzenia przez obiekty należące do klas zdefiniowanych w standardzie - każdy z kodem OBIS i określoną strukturą atrybutów. Obiekty klasy Register, stosowanej dla wartości pomiarowych, zawierają wynik pomiaru wraz ze współczynnikiem skalowania i jednostką fizyczną. Odróżnia to DLMS/COSEM od protokołów takich jak Modbus, gdzie wartości przypisane są do numerów rejestrów bez zdefiniowanego typu, jednostki ani znaczenia (parametry te muszą być dostarczone poza protokołem, w dokumentacji urządzenia).  

Model danych COSEM

COSEM definiuje klasy - każda ma identyfikator class_id i określa zestaw numerowanych atrybutów i metod. Obiekty COSEM to instancje tych klas zaimplementowane w konkretnym urządzeniu. Standard ten dopuszcza rozszerzenia producenckie: obiekt może zawierać dodatkowe atrybuty i metody spoza standardu. Dostęp do danych urządzenia odbywa się w jednym z dwóch trybów adresowania. W trybie LN (Logical Name) każdy obiekt identyfikowany jest przez logical_name zawierający kod OBIS; dostęp do atrybutu lub metody odbywa się przez podanie class_id, wartości logical_name i numeru atrybutu lub metody. W trybie SN (Short Name) każdy atrybut i każda metoda mapowane są na 16-bitową liczbę całkowitą - tryb ten stosowany jest przez część producentów niezależnie od złożoności urządzenia.

Kody OBIS to identyfikatory jednoznacznie opisujące dane w urządzeniu pomiarowym - zarówno wartości pomiarowe, jak i dane konfiguracyjne czy informacje o stanie urządzenia. Listę obiektów dostępnych w danym urządzeniu wraz z kodami OBIS i identyfikatorami klas odczytuje się przez obiekt Association LN lub Association SN po zestawieniu połączenia. Dane archiwalne przechowywane są w obiektach klasy ProfileGeneric (class_id = 7) - każdy profil zbiera wybrane atrybuty innych obiektów COSEM w określonych odstępach czasu i zapisuje je w buforze. Bufor można odczytać selektywnie, podając zakres wartości lub zakres wpisów. Zawartość profilu - jakie obiekty są rejestrowane i z jaką częstotliwością - wynika z konfiguracji samego licznika i nie podlega zmianie przez system odczytujący.

Asocjacja i bezpieczeństwo

Przed wymianą danych klient i urządzenie muszą nawiązać asocjację - połączenie na poziomie aplikacji, w ramach którego uzgadniane są uprawnienia dostępu i poziom uwierzytelniania. Każda asocjacja przechodzi przez trzy fazy: nawiązanie połączenia, wymianę danych i rozłączenie. Poziom uwierzytelniania decyduje o zakresie dostępu do urządzenia. Standard ten przewiduje trzy poziomy: brak uwierzytelniania, uwierzytelnianie hasłem (Low Level Security, LLS) i wzajemne uwierzytelnianie kryptograficzne obu stron (High Level Security, HLS). Zakres danych dostępny bez uwierzytelniania zależy od implementacji producenta - część urządzeń udostępnia przez asocjację publiczną wyłącznie informacje o strukturze, inne umożliwiają odczyt wybranych danych pomiarowych. Pełny dostęp zgodny z konfiguracją uprawnień urządzenia zapewnia asocjacja z uwierzytelnianiem. DLMS/COSEM obsługuje różne profile komunikacyjne: HDLC dla łączy szeregowych i wrapper TCP/IP dla połączeń sieciowych. Dobór profilu wynika z fizycznej infrastruktury oraz możliwości konkretnego urządzenia.

Implementacja DLMS/COSEM przy wykorzystaniu modułu DlmsDrv w systemie TelWin SCADA

Obsługę protokołu DLMS/COSEM w systemie TelWin implementuje moduł DlmsDrv. Jego zadaniem jest przejęcie całej złożoności protokołu - negocjacji asocjacji, uwierzytelniania i szyfrowania - tak by konfiguracja sprowadzała się do zdefiniowania parametrów połączenia i listy zmiennych.

Konfiguracja urządzenia

Definicja urządzenia DLMS obejmuje parametry połączenia - łącze komunikacyjne, adres klienta, adres fizyczny i adres logiczny serwera - oraz parametry bezpieczeństwa: metodę uwierzytelniania i klucze dostępu. Adres klienta i adresy serwera wynikają z konfiguracji konkretnego licznika i powinny być uzyskane z dokumentacji urządzenia lub od jego dostawcy. DlmsDrv obsługuje oba tryby adresowania obiektów - LN i SN; w przypadku urządzeń stosujących tryb SN moduł mapuje kody OBIS na adresy wewnętrznie. Niektóre modele liczników wymagają negocjacji maksymalnego rozmiaru ramki danych (PDU) podczas zestawiania asocjacji - jest to zachowanie specyficzne dla modelu urządzenia i powinno być uwzględnione w konfiguracji, jeśli dokumentacja producenta tego wymaga. 

Tablica asocjacji

DlmsDrv pobiera tablicę asocjacji z urządzenia i przechowuje ją lokalnie jako plik XML. Tablica zawiera listę obiektów COSEM dostępnych w danym liczniku - kody OBIS, klasy i uprawnienia dostępu - i stanowi podstawę do definiowania zmiennych. Ponieważ zakres dostępnych obiektów jest specyficzny dla każdego modelu, tablica pobierana jest osobno dla każdego skonfigurowanego urządzenia.

Dane bieżące i archiwalne

DlmsDrv obsługuje definiowanie zmiennych dla obiektów klas COSEM - typ klasy określa się przy definicji każdej zmiennej na podstawie tablicy asocjacji urządzenia. Dla zmiennych posiadających współczynnik skalowania dostępna jest opcja automatycznego przeliczenia odczytanej wartości na jednostki fizyczne. Dane archiwalne pobierane są z obiektów ProfileGeneric licznika. DlmsDrv obsługuje selektywne pobieranie danych z bufora profilu i automatycznie uzupełnia historię od ostatnio pobranego rekordu. Interwał między rekordami wynika z konfiguracji profilu w samym liczniku i nie podlega zmianie po stronie systemu SCADA.

Szyfrowanie

W przypadku urządzeń stosujących szyfrowanie konfiguracja po stronie użytkownika ogranicza się do podania kluczy w definicji urządzenia: GUEK odpowiada za szyfrowanie komunikacji, GAK za uwierzytelnianie ramek, KEK za szyfrowanie kluczy przy ich wymianie. DlmsDrv automatycznie negocjuje asocjację oraz szyfruje i odszyfrowuje ramki.

Podsumowanie

DLMS/COSEM to standard komunikacyjny dedykowany urządzeniom pomiarowym, definiujący zarówno warstwy komunikacyjne, jak i obiektowy model danych. Jego główną zaletą jest to, że obiekt COSEM zawiera informację o typie, jednostce i znaczeniu pomiaru bez konieczności odwoływania się do zewnętrznej dokumentacji. Zakres obiektów dostępnych w konkretnym liczniku oraz zawartość profili archiwalnych zależą jednak od producenta i modelu, co wymaga indywidualnej analizy tablicy asocjacji dla każdego urządzenia. W systemie TelWin złożoność protokołu obsługuje moduł DlmsDrv - negocjacja asocjacji, uwierzytelnianie i szyfrowanie przebiegają automatycznie. Konfiguracja po stronie systemu sprowadza się do zdefiniowania parametrów połączenia, kluczy dostępu i zmiennych na podstawie kodów OBIS z tablicy asocjacji licznika.

 

Sterownik komunikacyjny obsługujący ten standard jest udostępniony w wersjach 7.24 oraz 8.0.