Update cookies preferences
Promotic

PmIEC62056 - Driver do komunikacji poprzez protokół 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 obejżeć "PROMOTIC wideo kurs 4 - Drivery komunikacyjne".

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) zazwyczaj 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 komunikacji 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 tylko dla tryb C, ale nie musi być wspierany przez wszystkie urządzenia.
Tryb rejestrowy umożliwia odczyt oraz zapis wartości. W celu zapisu jest konieczne określić hasło, dla odczytu hasło nie jest potrzebne.
- Zastosowanie tego drivera wymaga zakup licencji PmIEC62056. Podczas wytwarzania aplikacji w trybie freeware PmFree lub z licencją deweloperską oraz podczas jej testowania w runtime element ten jest zawsze funkcjonalny.
- Komunikacja jest dla Ethernetu (aplikacja PROMOTIC jest klientem) lub dla łącza szeregowego (COM1, COM2 ...).
Standardowy interfejs mierników to łącze szeregowe.
Komunikacja poprzez Ethernet może być realizowana na dwa sposoby:
- Przy pomocy konwertera Ethernet-łącze szeregowe. Opcję tą można wybrać na przykład jeżeli 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ć szybkość transmisji, 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.
- Niektóre mierniki mogą wspierać komunikację Ethernet bezpośrednio.
Na przykład moduł CU-E22 dla mierników Landis-Gyr (E650 lub E850) wspiera Ethernet protokół IEC62056 na porcie 12212 (może również na porcie 4059 ?).
- Driver jest wbudowany do systemu PROMOTIC przy pomocy obiektu PmaComm.
Driver wspiera zastosowanie obiektu PmaCommMsg. Obiekt PmaCommGroup nie można zastosować.
Dla łatwego dodania tego drivera do aplikacji jest dogodne zastosować: Konfiguracje wstępne w grupie "IEC62056"


Typy 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 system 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 port. Większość odczytujących głowic jest wyposażona w obwód od 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 jest konieczne 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 jest konieczne 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 obiektu PmaComm:

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 szybkość transmisji (zazwyczaj 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ą szybkość transmisji 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ę na przykład 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).
Timeout 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 od firmy LandisGir nie może być więcej niż 1200 ms.
Filtrować znaki ECHONie.
Jeżeli urządzenie zwraca wysyłane dane (np. niektóre głowice optyczne), wtedy należy ustawić Tak.
Opis i zalecane wartości dla pozycji Parametry protokołu:
Timeout odbioru odpowiedzi20000 ms. Tylko 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. Tylko 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 obiektu PmaCommMsg

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 do zmiennej ResultString. Projektant powinien już sam taki tekst podzielić oraz stwierdzić żądane wartości.
Dla wytworzenia takiego typu wiadomości jest zalecane 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 wiadomości a tym można komunikację optymalizować.

W karcie "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 karcie "Dane-odbiór" znajdujuą się zmienne:
ResultList: (String) Uzyskany łańcuch tekstowy. Patrz Opis uzyskanego łańcucha tekstowego ResultList.


2) Tryb rejestrowy - Blokowo orientowana transmisja danych:
Ten typ 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 jest przede wszystkim przez system PROMOTIC przeznaczony do odczytu pojedyńczych wartości. Podczas odczytu nie trzeba wprowadzać hasło, 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 karcie "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 tej wiadomości.
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 wprowadzania 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. jeżeli 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 określa się puste hasło ().
seq:3;psw:P2.(0000) = Jeżeli chcemy tylko odczytywać, wtedy określa się 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 według normy może wyglądać następująco:
- 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. według 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 karcie "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 zazwyczaj 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(24-03-07 06:54)
2.6.0*03(000.00*kW)
1.8.1*03(283570.39*MWh)
0.9.7(24-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.2024
- 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 energia (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.2024)


Każdy wiersz ma postać ogólną:
OBIScode(Wartość*Jednostka)(Wartość*Jednostka)...
- Wszystkie pozycje są ogólnie opcjonalne, 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.

Historia:
Pm8.02.07: Wytworzono
© MICROSYS, spol. s r.o.