Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmIEC62056 - Driver do komunikacji poprzez protokół wg. normy IEC 62056

Driver PmIEC62056 służy do komunikacji z urządzeniami do pomiaru energii elektrycznej. Komunikuje się poprzez protokół opisany normą IEC62056-21:2002 lub IEC1107:1996 Patrz Komunikacja poprzez protokół IEC 62056.
 
Przed zastosowaniem tego drivera w aplikacji PROMOTIC należy zaznajomić się z rozdziałem: Komunikacja przy pomocy driverów PROMOTIC.
 
Podstawowe właściwości drivera:
- Driver wspiera tryby A, B, C. Driver nie wspiera trybu D oraz E, jednak urządzeniom proponującym tryb E (IEC 62056-46: warstwa linii danychkorzystająca z protokołu HDLC) w większości potrafi "wsugerować" tryb C.

Wspierane są następujące typy transmisji komunikacji:

- Readout: Odczyt wszystkich wartości w całości. Działa w trybach A, B, C.

Uwaga: W celu pozyskiwania danych taki sposób jest za wolny (wszystkie zkonfigurowane dane w urządzeniu są pobierane w formie tekstowej). W niektórych przypadkach chodzi o wielką ilość danych, wtedy odczyt może potrwać nawet kilka minut! Dlatego nie jest zalecane stosowanie w przypadku potrzeby częstego odczytu danych (np. co sekundę).

- Programming mode: Odczyt tylko wybranych wartości. Działa w tylko trybie C, ale nie musi być wspierany przez wszystkie urządzenia.

Tryb rejestrowy umożliwia odczyt oraz zapis wartości. W celu zapisu należy wprowadzać hasło, dla odczytu hasło nie jest potrzebne.

- Zastosowanie tego drivera wymaga zakup licencji: PmIEC62056. Z wersją freeeware PmFree lub przy opracowywaniu aplikacji (z licencją deweloperską w celach testowania) element ten zawsze funkcjonuje.
- Komunikacja przebiega poprzez Ethernet lub po łączu szeregowym komputera (COM1, COM2 ...).

Komunikacja poprzez Ethernet: Opcję tą można wybrać na przykład w przypadku, kiedy urządzenie jest wyposażone w łącze szeregowe i przy pomocy konwertera RS232/Ethernet jest podłączone do Ethernetu. Jeżeli konwerter nie zmienia transmitowanych danych, wtedy można w ten prosty sposób komunikować się poprzez Ethernet z urządzeniem, które nie posiada wyjścia Ethernet. Uwaga: Zastosowanie w taki sposób z komunikacji poprzez Ethernet posiada wszak techniczne ograniczenie. Nie można dynamicznie zmieniać prędkości, czego norma wymaga (patrz poniżej)! W takim przypadku takie rozwiązanie jest wskazane tylko dla konfiguracji, gdzie zmiana prędkości nie jest wymagana.

- Driver jest wbudowany do systemu PROMOTIC przy pomocy obiektu PmComm.

Driver umożliwia wykorzystanie obiektu PmCommMsg. Obiekt PmCommData nie można zastosować.

Dla łatwego dodania tego drivera do aplikacji jest dogodne zastosować: Konfiguracje wstępne w grupie "IEC62056 protokół komunikacyjny"

 
Rodzaje fizycznych interfejsów dla komunikacji:

Według normy IEC62056-21 dla komunikacji z urządzeniami do pomiaru energii korzysta się z niektórych następujących interfejsów:

- RS232
- RS485
- 20mA pętla danych prądu
- Głowica optyczna:

Głowice optyczne są produkowane w wykonaniu przeznaczonym do podłączenia do łącza szeregowego komputera (RS232), lub do koncentratora USB.

Do tego, by PROMOTIC potrafił komunikować się z głowicą, którą można podłączyć do USB, musi być na głównym komputerze zainstalowany driver emulujący na koncentratorze USB wirtualny COM. Większość odczytujących głowic jest wyposażona w obwód firmy FTDI (Future Technology Devices International). SO Windows od wersji 7 (jeżeli jest podłączony do internetu) potrafi samodzielnie bez asystencji użytkownika zainstalować drivery. W przypadku korzystania ze starszych wersji SO Windows należy je pobrać ze strony: http://www.ftdichip.com/Drivers/VCP.htm.

Zastosowanie optycznej głowicy może być niekiedy problematyczne. Niektóre głowice zwracają wysyłane dane jako dane odczytane - wtedy należy ustawić konfigurator "Filtrować znaki ECHO". Przed użyciem należy przy pomocy testu sprawdzić wzajemną zgodność głowicy z urządzeniem. Nie można polegać na deklarowaną zgodność na podstawie normy. Również należy dbać na skierowanie głowicy (kąt, pod którym jest zamontowana). Niektóre, inaczej sprawne głowice, pracują tylko pod pewnym kątem zamontowania.

 

Zalecone wartości parametrów:

Zalecane wartości dla pozycji Parametry łącza szeregowego:
Prędkość transmisji300 Bd (według normy).

W trakcie komunikacji drivera z urządzeniem po łączu szeregowym komputera korzysta się z 2 różnych prędkości komunikacji. Pierwsza prędkość komunikacji (typowo 300Bd) jest wykorzystana do nawiązania połączenia z urządzeniem oraz do wymiany podstawowych informacji pomiędzy urządzeniem a driverem. Następnie urządzenie "zaproponuje" nową prędkość komunikacji a driver się do niej dostosuje.

Chociaż norma określa pierwszą wartość prędkości 300 Bd, niektóre urządzenia mogą być zkonfigurowane na inną prędkość domyślną. Na przykład urządzenia Landis+Gyr wyposażone w jednostkę komunikacji Dialog CU-Bx posiadają domyślną prędkość do zkonfigurowania dlatego, żeby nie dochodziło do zmian prądkości w trakcie komunikacji - i w ten sposób umożliwia komunikację np. za pośrednictwem modemów lub tunelów w internecie.

Ilość bitów informacji7 (według normy).
ParzystośćEVEN (parzysty) (według normy).
Ilość bitów stopu1 (według normy).
Limit czasu pomiędzy odbiorem 2 znaków100 ms (lub więcej).

Informacje te nie powinny być jednak zbyt duże. Na przykład dla liczników firmy LandisGir nie może być więcej niż 1200 ms.

Opis i zalecane wartości dla pozycji Parametry protokołu:
Limit czasu odbioru odpowiedzi20000 ms. Wyłącznie dla łącza szeregowego.

Okres czasu (w milisekundach) w którym driver będzie oczekiwać na odpowiedć po odesłaniu wiadomości. Jeżeli do tego czasu nie zostanie odebrana żadna odpowiedć, wtedy transmisja wiadomości zostanie zakończona (zostanie wywołane zdarzenie onEndOfTransfer z błędem 24 lub 66).

Wymiana danych poprzez protokół IEC62056-21 zabierze względnie sporo czasu (kilka dziesiąt sekund)! Z tego powodu w przypadku ustawienia maksymalnej prędkości komunikacji do 9600Bd zalecamy ustawić następujący timeout 20000ms. W przypadku prędkości 1200Bd zalecamy aż 40000ms.

Ilość początkowych zer budzących pakietu10.

Niektóre urządzenia potrzebują przed samym nawiązaniem komunikacji "obudzić" ze stanu obniżonego zużycia. Tutaj można określić ile zerowych znaków powinien driver wysłać właśnie z tego powodu jeszcze przed rozpoczęciem właściwej komunikacji.

Ograniczenie prędkości komunikacji19200. Wyłącznie dla łącza szeregowego.

Jeżeli do połączenia z urządzeniem wykorzystano fizycznyinterfejs danych z ograniczeniem przepływu danych (np. Głowica optyczna), wtedy można takie ograniczenie ustawić właśnie w tym wyborze. Wtedy podczas transfer ów inicjalizacyjnych driver nie dostosuje się do sugerowanej wyższej prędkości, ale sam ją obniży do tutaj określonej wartości.

Opis komunikacji przy pomocy obiektów PmCommMsg

Lista oraz opis wiadomości komunikacyjnych:
 
1) Readout - Odczyt wartości:

Ten typ wiadomości pyta urządzenie o dane a to odpowie wysłaniem jednego (często bardzo długiego) łańcucha danych w formie tekstowej. Te dane są bez większej obróbki zapisane w zmiennej "ResultString". Projektant powinien już sam taki tekst podzielić oraz stwierdzić żądane wartości.

Dla wytworzenia takiego typu wiadomości jest wskazane wykorzystać "Konfiguracja wstępna "PmIEC62056 - Zestaw komunikacji z danymi i panelem"". Ta konfiguracja wstępna między innymi wytworzy również skrypt do podzielenia uzyskanego tekstu.

Uwaga: Uzyskany tekst może być naprawdę bardzo długi (nawet kilka set wierszy) a jeżeli urządzenie wspiera tylko wolne prędkości transmisyjne (300Bd, 600Bd, 1200Bd), wtedy cała transmisja jednej wiadomości może przebiegać nawet kilka minut! W urządzeniu można niekiedy ustawić, co ma zostać przekazane w jednej wiadomości a tym można komunikację optymalizować.

 
W zakładce Dane-wysłanie znajdują się zmienne:
Addr: (String) Adres urządzenia. Jeżeli pozostanie pusty, wtedy urządzenie zawsze odpowie bez względu na ustawiony adres.
W zakładce Dane-odbiór znajdujuą się zmienne:
ResultList: (String) Uzyskany łańcuch tekstowy. Patrz Opis uzyskanego łańcucha tekstowego ResultList.
 
2) Tryb rejestrowy - Blokowo orientowany transfer danych:

Ten tryb komunikacji działa tylko w przypadku urządzeń wspierających tryb C (natomiast nie musi być wspierany każdym takim urządzeniem).

Teoretycznie można w trybie rejestrowym równiaż zapisywać ale w systemie PROMOTIC jest przede wszystkim przeznaczony do odczytu pojedyńczych wartości. Podczas odczytu nie trzeba wprowadzać hasła, ewentualnie hasło jest znane (np. hasło jest 0000).

Dokładna postać polecenia (tzn. wartości, które należy zapisać do zmiennych Param oraz Data) różni się w zależności od typu miernika i należy ją pozyskać z dokumentacji danego urządzenia.

 
W zakładce Dane-wysłanie znajdują się zmienne:
Param: (String) Parametry polecenia rejestrowego. Dane są tutaj w formacie KeyVal, na przykład "seq:3;psw:P2.0000;".
- seq: Sekwencja transmisji komunikacyjnych tego powiadomienia.
0 = (domyślnie) zostanie wykonane tylko określone polecenie
1 = przed poleceniem zostanie nawiązana połaczenie z urządzeniem oraz przełączenie do trybu rejestrowego
2 = po poleceniu zostanie zakończony tryb rejestrowy
3 = zostanie wykonane 1, następnie zostanie wykonane polecenia a później zostanie wykonane 2
- psw: Typ oraz wartość polecenie do wprowadzenia hasła. Dane są oddzielone kropką. Może np. posiadać wartości "P1.", "P2.0000", itd..

Parametr ten należy określić tylko jeżeli wiadomość ma wykonać przełączenie do trybu rejestrowego (tzn. w przypadku seq:1; lub seq:3;) oraz jeżeli urządzenie wymaga hasło (nawet jeżeli jest np. () lub (0000)).

 
Przykłady dla Landis+Gyr MAP120:
seq:3; = Jeżeli chcemy tylko odczytywać, wtedy hasło nie jest potrzebne (parametr psw nie jest określany).
Przykłady dla POZYTON EQM:
seq:3;psw:P1.() = Jeżeli chcemy tylko odczytywać, wtedy należy wprowadzić puste hasło ().
seq:3;psw:P2.(0000) = Jeżeli chcemy tylko odczytywać, wtedy należy wprowadzić hasło (0000) (dla starszych wersji POZYTON 02.13-02.15).
Data: (String) Typ oraz dane polecenia (wartości są oddzielone kropką). Postać poleceń jest zależna od rodzaju urządzenia. Typ polecenia zawiera 2 znaki oraz wg normy może wyglądać w następujący sposób:
- R1 - odczyt danych w kodzie ASCII
- R2 - odczyt metodą formatowanych kodów transmisji
- R3 - odczyt w kodzie ASCII w pojedyńczych blokach
- R4 - odczyt metodą formatowanych kodów transmisji w pojedyńczym bloku
- W1 - zapis danych w kodzie ASCII
- itd. wg normy IEC62056-21/6.3.14.
 
Przykłady dla Landis+Gyr MAP120:
R2.C001() = Read time and date (w formie YYMMDDhhmmsswwn)
R2.C100() = Read cumulation counter
Przykłady dla POZYTON EQM:
R1.VI() = Read meter type
R3.MOM(aaaa) = Read current values
W zakładce Dane-odbiór znajdujuą się zmienne:
Data: (String) Dane odczytu odpowiedzi na polecenie. Patrz Opis uzyskanego łańcucha tekstowego ResultList.

Opis uzyskanego łańcucha tekstowego ResultList

Łańcuch tekstowy w większości składa się z wielu wierszy. Każdy wiersz zawiera informacje o jednej wartości (niekiedy o więcej wartościach) urządzenia. Przykład kilku wierszy:
 
F.F(01000000)
0.1.0*03(18-03-07 06:54)
2.6.0*03(000.00*kW)
1.8.1*03(283570.39*MWh)
0.9.7(18-03-07)
 
Opis:
- 1. wiersz: F.F jest zapis rejestru błędów
- 2. wiersz: 0.1.0 jest MD reset counter, ostatni reset (3. w kolejności) był 7.3.2018
- 3. wiersz: 2.6.0 jest Negative active maximum demand (A-) total, maksymalne ujemne czynne zużycie jest równe 0 kW.
- 4. wiersz: 1.8.1 jest Positive active energy (A+) in tariff T1, pozytywna czynna energia w taryfie T1 jest równa 283570 MWh.
- 5. wiersz: 0.9.7 jest aktualna data (7.3.2018)
 
Każdy wiersz ma postać ogólną:
OBIScode(Wartość*Jednostka)(Wartość*Jednostka)...
- Wszystkie pozycje nie są ogólnie obowiązkowe, nawiasy, w których są wartości mogą się wilokrotnie powtarzać.
- OBIScode jest identyfikator zmiennej w urządzeniu. Opis tego kodu patrz Opis kodu OBIS dla protokołu normy IEC 62056.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice