Przy komunikacji poprzez Ethernet jest wygląd transmitowanych danych taki sam jak dla M-BUS dla łącza szeregowego. Warunkiem takiej komunikacji jest, żeby konwerter M-BUS/Ethernet nie zmieniał transmitowanych danych.
Driver wspiera stosowanie obiektów PmaCommMsg oraz PmaCommGroup. Dla zwykłych przypadków transmisji danych dogodniejszym jest zastosowanie obiektu PmaCommGroup.
Dla łatwego dodania tego drivera do aplikacji jest dogodne zastosować: Konfiguracje wstępne w grupie "M-BUS protokół komunikacyjny"
Jednostka: | Wartość fizyczna: |
---|---|
GJ | Energia |
W | Moc |
m3 | Objętość |
kg | Waga |
m3/h | Przepływ objętościowy |
kg/h | Przepływ wagowy |
C | Temperatura (Forward, Return, Difference, External) |
mbar | Cisnienie |
V | Napięcie elektryczne |
A | Prąd elektryczny |
ilość sekund | Czas odpowiedziy (Averaging Duration), Czas aktualizacji (Actuality Duration) .. |
ilość dni | Czas biegu (On time), Operation time |
Przeliczane są binarne formaty daty (TimePoint) na wartośc typu Date. Pozostałe wartości (licznik, numer fabryczny ...) nie są przeliczane.
W obiekcie PmaCommGroup pozycje danych należy konfigurować w taki sposób, że jest określany typ danej (Temperatura, Objętość ...). Wtedy driver w odebranej wiadomości odnajdzie wymaganą wartość (jeżeli taka wartość znajduje się we wiadomości) i zapisze na danej pozycji.
W obiekcie PmaCommMsg do ogólnego odczytu danych z miernika jest przeznaczona wiadomość "Miernik ogólny/Odczyt danych ustawionych ogólnie". Projektant może konfigurować dane obiektu PmaCommMsg dokładnie według danego miernika. Jeżeli projektant nie wie, jakie dane miernik oferuje, wtedy można w tej wiadomości ustawić, żeby informacje o odebranych danych zostały wypisane do INFO systemu. Według tego wypisu następnie projektant może ustawić dane obiektu.
Prędkość transmisji | 300 Bd. Taką szybkość trtansmisji powinny wspierać wszystkie mierniki. Według wykorzystanych mierników można następnie podnosić szybkość transmisji. Do następnie zalecanych szybkości transmisji należą:2400 Bd, 9600 Bd, 38400 Bd. Duża część mierników potrafi się dostosować do niektórych szybkości transmisji, nawet jeżeli zostały ustawione na szybkość inną. Uwaga: konwertery często wspierają tylko szybkość transmisji tylko do 9600 Bd. |
---|---|
Ilość bitów informacji | 8 (przepisane przez standard M-BUS) |
Parzystość | EVEN (parzysty) (przepisane przez standard M-BUS) |
Ilość bitów stopu | 1 |
Ilość powtórzeń przy nieudanej transmisji | 0. Z powodu oszczędzania baterii mierniki często przełączają się do stanu uśpienia i przed rozpoczęciem komunikacji jest konieczne je obudzić. Obudzenie można najczęściej wykonać przez ustawienie konfiguratora "Ilość powtórzeń przy nieudanej transmisji" na wartość 1 (lub więcej, najlepiej chyba na 2) oraz "Timeout odbioru odpowiedzi" na wartość od 500 do 1000 ms. Wtedy pierwsze wysłanie wiadomości spowoduje "obudzenie" miernika i kolejne powtórzenie wiadomości już przebiegnie poprawnie. |
Timeout pomiędzy odbiorem 2 znaków | 100 ms (można zwiększać) |
Zwłoka pomiędzy odbiorem-wysyłaniem | 0 ms (można zwiększać) |
Filtrować znaki ECHO | Nie. Zależne od konwertera M-BUS/RS232. |
Sterowanie działaniem RTS | log.0 |
Sterowanie działaniem DTR | log.0 |
Numer portu TCP/UDP | według ustawienia konwertera M-BUS/Ethernet |
---|---|
Typ transmisji Ethernet | według ustawienia konwertera M-BUS/Ethernet |
Timeout odbioru odpowiedzi | 1000 ms (można zwiększać). 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). |
---|
Odczytywanie danych z mierników z częstotliwością większą niż 1 minuta w eiększości nie ma sensu. Jeżeli dane są odczytywane częściej niż 4-30 sekundy (zależne od miernika), wtedy miernik nie odeśle danych.
Zmiennych w obiekcie PmaCommGroup (albo jeszcze lepiej zmiennych w obiekcie PmaData z rozszerzeniem danych ExtComm) może być dowolna ilości, mogą być dowolnego typu danych i w dowolnej kolejności. Driver sam w zoptymalizowany sposób odczyta dane z urządzenia przy pomocy wewnętrznie wytworzonych wiadomości komunikacyjnych.
Odczytywane są wszystkie zmienne (jeżeli konfigurator "Odświeżanie danych zezwolone" jest zaznaczony). Dla tego drivera nie jest umożliwiony zapis do urządzenia.
W jadnym obiekcie PmaCommGroup mogą znajdować się pozycje (zmienne w karcie "Dane" lub rozszerzenia danych ExtComm) dla kilku mierników jednocześnie.
Jednak może okazać się bardziej stosowne, żeby jeden obiekt PmaCommGroup był przeznaczony tylko dla jednego miernika - wtedy można adres miernika wprowadzić w konfiguratorze "Domyślny adres miernika" i wtedy już nie jest konieczne okreżlanie adresu dla każdej pozycji danych (wystarczy wprowadzić tekst "saD.." - patrz dalej). W ten sposób można w prostszy sposób zmienić adres miernika na jednym miejscu.
ItemId jest identyfikatorem tekstowym pozycji, który służy do adresacji parametru w urządzeniu. Z konfiguratora ItemID driver stwierdzi, w jaki sposób ma zostać wartość pozycji wczytana lub wysłana.
Tekst można wpisać ręcznie, lub ułożyć przy pomocy okna, które zostanie otwarte przy pomocy przycisku wprawo od konfiguratora.
Do wprowadzenia można zastosować Makro wyrażenie (wartość jest obliczana po uruchomieniu aplikacji).
Przykłady formy identyfikatora:
Tekst rozpoczyna się zawsze skrótem "sa" (Slave/Station Address), za którym następuje adres dziesiątkowy miernika. Zamiast adresu miernika można jednak wprowadzić znak "D" (=default) jako znacznik, że adres miernika ma zostać przejęty z konfiguratora "Domyślny adres miernika".
Następny identyfikator za kropką określa obszar wymaganych danych (określa rodzaj wiadomości M-BUS, która spowoduje, że miernik wyśle dane z odpowiedniego obszaru). Możliwe są następujące wartości:
Następny identyfikator za kropką określa wymaganą daną z danego obszaru. Miernik wysyła jednocześnie wszystkie dane z wybranego obszaru. Wymaganą daną można określić albo indeksem (Index) albo określeniem znaczenia danej (pozostałe możliwości):
Następna identyfikatory za kropką określają dalsze sprecyzowanie danej i są opcjonalne.
Domyślny adres miernika | W tym miejscu wprowadzony adres można zastosować przy ustawianiu konfiguratora "ItemID" w zmiennych w tym obiekcie (tzn. w zmiennych w karcie "Dane" lub rozszerzeniach danych ExtComm). Adres można wprowadzić w ItemID: - jako na przykład sa1... - wtedy wartość zmiennej będzie odczytywana z miernika o adresie 1. - lub saD... - znak "D" w tym miejscu oznacza default (to znaczy, że adres zostanie przejęty z niniejszego konfiguratora). Parametr ten można podczas biegu aplikacji zmienić i odczytać w skrypcie przy pomocy metod: SetSpecParam("SlaveAddr") oraz GetSpecParam("SlaveAddr"). |
---|
Typ miernika | Wybór rodzaju miernika. Tu należy wybrać tylko "Miernik ogólny". Następne wybory są przestarzałe i jest wskazanym ich zastąpienie obiektem PmaCommGroup. Kamstrup MULTICAL - przestarzałe ABB SVM - przestarzałe Danfoss INFOCAL 5 - przestarzałe Landis ULTRAHEAT - przestarzałe Supercal SONTEX - przestarzałe CALMEX VKP - przestarzałe |
---|---|
Typ wiadomości | Wymagany typ wiadomości dla danego miernika. Poniżej znajduje się lista powiadomień tylko dla Typ miernika = Miernik ogólny. |
Inicjalizacja miernika (wiadomość typu SND_NKE). Służy przede wszystkim do inicjalizacji sterowania tzw. znacznik FCB (patrz Obsługa znacznika FCB), który miernik wykorzystuje jako informację o poprawnej kolejności przesyłania wiadomości. Jest zalecone wywołanie tej wiadomości podczas startu aplikacji jak również przy powstaniu błędu transmisji (patrz parametr pEvent.Error w zdarzeniu PmaCommMsg.onEndOfTransfer).
Adres miernika można ustawić dokładnie (wartością od 0 do 250) - w tej sytuacji każdy miernik potwierdzi (odpowie) że przyjął polecenie do wiadomości. Jest również przydatym wykorzystanie uniwerslanego adresu 255. W tym przypadku zainicjalizowane zostaną wszystkie mierniki jednocześnie bez jakiegokolwiek potwierdzania (patrz Adresacja).
Przesłanie takiej wiadomości do miernika zapewni reset aplikacyjnych zmiennych miernika (wiadomość typu SND_UD). Do czego dokładnie dojdzie w mierniku jest zależne wyłącznie od miernika. Większość następujących mierników nie wymaga stosowania tej wiadomości. Wiadomość tę wykorzystuje: Komunikacja z miernikami Sontex SUPERCAL.
Opisywana wiadomość wprowadzi miernik do tzw. stanu wybranego (selected). Po wprowadzeniu do stanu wybranego stacja komunikuje się tak, jak gdyby jej adres był ustawiony na 253 (patrz Adresacja), do tej chwili, kiedy do wybranego stanu jest wprowadzona inna stacja. Stacja jest wybierana według tzw. adresu wtórnego, który jest zdefiniowany następująco: IdentNr = numer identifikacyjny miernika, Manufac = numer identifikacyjny producenta, Version = wersja miernika, Medium = mierzone medium. Dane te są wprowadzane w karcie "Dane-wysłanie" i można je z miernika stwierdzić na przykład wiadomością "Miernik ogólny/Odczyt danych ustawionych ogólnie" przy wdrażaniu miernika do ekslpoatacji.
Adresacja stacji przy pomocy adresu wtórnego jest stosowna na przykład:
(wiadomość typu SND_UD). Wykorzystanie tej wiadomości w większości przypadków będzie zbędne, ponieważ szybkość można ustawić bezpośrednio w mierniku i nie jest stosowna zmiana szybkości podczas biegu aplikacji. Duża część mierników potrafi dostosować się do różnych szybkości transmisji nawet jeżeli są ustawiona na inną szybkość.
Wiadomość przeznaczona do odczytu danych z mierników (wiadomość typu REQ_UD2). Stosowana jest tylko w specjalnych przypadkach - w celu standardowego odczytu danych dogodniejszym jest zastosowanie obiektu PmaCommGroup - patrz Opis komunikacji przy pomocy obiektu PmaCommGroup.
Podczas odczytu danych standardowych z miernika w odpowiedzi znajdują się nie tylko wartości, lecz również znaczniki typu wartości (czy chodzi o przepływ, energia, moc, itd.), znaczniki typu jednostki (np. czy chodzi o kWh,J,0.001kWh ...), znaczniki o numerze taryfy lub pamięci, itd. Jeżeli jest znane znaczenie wartości w odpowiedzi danego miernika, wtedy w karcie "Dane-odbiór" jest możliwa ręczna konfiguracja i nazwanie poszczególnych pozycji, do których będą zapisywane odebrane wartości. Jeżeli nie wiadomo co miernik wysyła, wtedy można zastosować typ powiadomienia "Miernik ogólny/Uzyskanie pełnej listy mierzonych wartości miernika".
Poza danymi standardowymi może miernik tramsnitować dane specyficzne, które nie posiadają już znacznika o znaczeniu i jednostce. Dane te bywają ulokowane zawse za danymi standardowymi. Jeżeli znasz znaczenie omawianych danych (np. z dokumentacji miernika), wtedy również takie dane można odczytać w takiej wiadomości. Wystarczy w karcie "Dane-odbiór" za uprzednio wytworzonymi zmiennymi definiować następne zmienne odpowiednich typów (Byte, Integer, Long) i artość w odczytanej wiadomości zostanie bez jakichkolwiek przeliczeń do odpowiedniej zmiennej. Dokładniej powiedziawszy, można jeszcze określić, jeżeli dane specyficzne pozostaną w wiadomości w formie binarnej (tzn. przeliczanie nie jest konieczne) lub w kodzie BCD. Jeżeli dane specyficzne są w kodzie BCD, wtedy możesz uprzednio wymienioną zmienną "DataAttr" ustawić na 1, i w tym przypadku driver przeliczy wartość do formy binarnej (również byłoby możliwe nieprzeliczanie i wykorzystanie metody Pm.TransformValue, lecz ten sposób byłby trudniejszy).
Niektóre mierniki transmitują dane w kilku wiadomościach w dokładnej kolejności po sobie. Odbiór takich danych można zrealizować przy pomocy tego typu wiadomości. Jest konieczne ustawienie większej ilości obiektów PmaCommMsg dla poszczególnych wiadomości, odpowiednio ustawić dane i następnie wiadomości uruchamiać po sobie (przy pomocy metody PmaCommMsg.Run). W tego rodzajach transmisji danych miernik wykorzystuje znaczniki FCB (patrz Obsługa znacznika FCB), i z tego powodu jest konieczne ustawienie zmiennej "FcbAttr" na 1. Niektóre mierniki w ten sposób zapewniają odczyt historii. Jeżeli nie zostanie ustawione "FcbAttr" na 1, wtedy byłaby odczytywana bezustannie 1. wiadomość (w której zazwyczaj znajdują się wartości beżące). Jeżeli ustawiono "FcbAttr" na 1, wtedy miernik kolejno odsyła wszystkie wiadomości, które ma - w niektórych przypadkach ma tych wiadomości dużo. Na przykład miernik ABB SVM posiada dane historyczne zapisane w 128 wiadomościach (na szczęście tego samego typu więc można je odczytać przy pomocy jednego obiektu).
Niniejsza wiadomość jest przeznaczopna dla projektantów, którzy znają protokoł M-BUS. Można tutaj ustawić wiadomość (osobno dla odbioru i osobno dla transmisji) typu "SingleCharacter", "ShortFrame", "ControlFrame" oraz "LongFrame", które oznaczają 4 możliwe typy wiadomości na najniższym poziomie z projektanckim ustawieniem wartości CField, AField oraz CIField i z ustawieniem danych użytkownika. Można także wybrać wiadomość typu "Pure Bytes", dzie można nadawać/odbierać dane bez jakiejkolwiek transformacji przez protokół.
Ten typ wiadomości będzie chyba wykorzystywany bardzo rzadko do celów specjalnych lub w celu testowania.
Ta wiadomość wytworzy listę wszystkich pozycji, które można uzyskać o określonym typie powiadomienia danych (z powiadomienia z FCB znacznikiem 0 lub 1).