Konfiguracja uniwersalnego integratora MODBUS RTU

  • Numer dokumentu: PO-064
  • Wersja: 3.0
  • Data publikacji: 19 lutego 2024


Poniżej przedstawiono rozwiązanie programowe dla urządzeń integracyjnych. Jest to oprogramowanie integracji z większością urządzeń wspierających protokół MODBUS RS485. Posiada ono możliwość komunikacji dwukierunkowej z urządzeniami podpiętymi do magistrali RS485.

Konfiguracja w Ampio Designer

Informacje ogólne

Aby urządzenie M-CON-485-s posiadało opisywaną funkcjonalność należy w nie wgrać oprogramowanie z końcówką o wartości 7, jak na przykład plik o nazwie: ampio_T25_P7_S6407.amp. Ze względu na różnego rodzaju funkcje, które pełnią urządzenia z rodziny MCON, aktualizacje ich oprogramowania mogą nie być sygnalizowane jak w przypadku pozostałych. Trzeba je wgrać ręcznie przez wybranie wersji oprogramowania w kolumnie SOFT wybierając odpowiedni plik z dysku lub numer oprogramowania.

Konfiguracja parametrów transmisji

Po wybraniu na liście urządzenia M-CON-485-s i wejściu w jego parametry (ikona zębatki) dostępne są 3 główne zakładki z lewej strony ekranu. Aby zmienić ustawienia transmisji, należy wybrać Parametry, a następnie Parametry transmisji.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Zapytania o wartości urządzeń MODBUS

Zapytania tworzone są w zakładce Funkcjonalności, w podzakładce Modbus - zapytania.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Edytując zawartość kolumny polecenie, wybrać można funkcję Modbus, ID urządzenia, Rejestr do którego wysyłamy zapytanie oraz ilość rejestrów (niektóre dane zapisywane są na więcej niż 1 rejestrze w kolejności). Kliknięcie przycisku Test daje możliwość podglądu aktualnych wartości z rejestru.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

W następnej kolumnie CEL ustawiana jest postać w jakiej wynik rejestru ma być prezentowany w systemie Ampio. Jeżeli odpytywany jest więcej niż 1 rejestr na raz, a wartość zaczyna się nie na pierwszym z nich, można ustawić offset odczytu danych. Następnie wybierany jest typ danych w Modbus, potem typ danych do wysłania w Ampio oraz numer wartości. Jeżeli wartość ma być jeszcze przemnożona, podzielona lub przesunięta (np. dodanie wartości 100 do wyniku), należy rozwinąć MODYFIKACJA WARTOŚCI i wpisać mnożnik, dzielnik lub przesunięcie. Po wprowadzeniu zmian, należy wybrać Zapisz. Po edycji celu, aktualną wartość widac w zielonej ramce.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Wartości wysyłane w magistralę Ampio można następnie podejrzeć w odpowiedniej podzakładce np. Sensor 16bit.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Wartości 32-bitowe w systemie Ampio służą do podglądu danych, nie można od nich robić warunków logicznych.

Rozkazy sterujące urządzeniami MODBUS

Aby wysłać polecenie do magistrali Modbus, należy wybrać zakładkę Modbus - polecenia, dodać nowe polecenie poprzez przycisk + w prawym górnym rogu, a następnie edytować zawartość zakładki POLECENIE. Można zmienić tutaj funkcję odpytującą, ID urządzenia, rejestr do którego wysyłane są dane oraz wysyłaną wartość. Ewentualna wartość zwrotna, ukaże się w polu Wartość.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Konfiguracja w Ampio Smart Home Konfigurator

Dostępne od wersji konfiguratora Ampio 5.0.0.2359

Wgranie odpowiedniego oprogramowania

Aby urządzenie M-CON-485-s posiadało opisywaną funkcjonalność należy w nie wgrać oprogramowanie z końcówką o wartości 7, jak na przykład plik o nazwie: ampio_T25_P3_S707.amp. Ze względu na różnego rodzaju funkcje, które pełnią urządzenia z rodziny MCON, aktualizacje ich oprogramowania nie są sygnalizowane jak w przypadku pozostałych. Trzeba je wgrać ręcznie przez menu Urządzenie>Aktualizuj, wybierając odpowiedni plik.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Informacje ogólne

Do konfiguracji jego parametrów niezbędna jest dokumentacja protokołu MODBUS urządzenia, czyli lista rejestrów ze specyfikacją wartości i sposobem ich pobierania.

Parametry dostępne są w oknie parametrów urządzenia MODBUS, wywoływanym przez naciśnięcie w oknie konfiguracji urządzenia przycisku Parametry, pokazanym poniżej.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Podstawowe parametry urządzenia

Zakładka Podstawowe

W tym miejscu decydujemy czy flagi urządzenia będą widziane przez pozostałe urządzenia w sieci Ampio.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Parametr Minimalne odstępy czasowe … określa minimalny czas pomiędzy kolejnymi ramkami rozgłoszeniowymi sieci Ampio z informacjami, uzyskanymi z magistrali RS485. Wartość jest wpisywana w sekundach, z dokładnością do 0.01s. Musi ona mieścić się w przedziale od 0.01s do 655.35s (maksymalny czas to 10min 55.35s). Domyślnie jest ona ustawiona na 1s. Drugi parametr określa jaki jest odstęp czasowy między kolejnymi zapytaniami (tworzenie zapytań zostanie opisane w dalszej części instrukcji).

Konfiguracja parametrów transmisji

Zakładka Parametry transmisji.

Wszystkie urządzenia MODBUS muszą mieć ustawione identyczne parametry transmisji portu RS485. Za pomocą konfiguratora Ampio CAN takie same parametry ustawiamy w naszym urządzeniu.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Ustawiamy tu szybkość transmisji szeregowej. Dostępne są wszystkie standardowe wartości od 300 – 230400 bitów na sekundę.

Oto cała dostępna lista: 300bps, 600bps, 1200bps, 2400bps, 4800bps, 9600bps, 14400bps, 19200bps, 28800bps, 38400bps, 57600bps, 76800bps, 115200bps, 230400bps.

Najczęściej spotykana prędkość domyślna, wykorzystywana przez urządzenia to 9600bps. Oczywiście większość z urządzeń posiada możliwość zmiany każdego z parametrów transmisji i należy dopasować ją do długości przewodu magistrali i warunków, w których pracuje. W tym miejscu należy dopasować wszystkie parametry do urządzeń podłączonych do magistrali RS485.

Flagi

Flagi binarne oraz liniowe działają tak samo jak innych modułach Ampio.

Monitor transmisji MODBUS

Przydatnym narzędziem podczas konfiguracji, jest tester funkcji MODBUS. Daje on możliwość wysyłania danych do urządzenia i podgląd jego odpowiedzi. Dzięki niemu można zweryfikować dane dostępne w specyfikacji producenta, przeanalizować odpowiedzi z urządzenia, by później użyć ich przy definicji zapytań i rozkazów.

Monitor dostępny jest w zakładce Diagnostyka ModBUS widocznej poniżej.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Widać tu pola ramki wysyłane do urządzenia, przycisk Wyślij, tabelę odpowiedzi, oraz przycisk Wyczyść, który opróżnia zawartość listy.

Objaśnienia pól:

Wszystkie wartości wpisywane są w postaci dziesiętnej.

  • Urządzenie (Adres urządzenia) – W sieci MODBUS może współistnieć wiele urządzeń, i z każdym z nich możemy się komunikować. W tym polu wpisujemy adres urządzenia, z którym chcemy wymieniać informację.
  • Funkcja (Numer instrukcji) – Zgodnie ze specyfikacją istnieje kilkanaście instrukcji MODBUS. Ich listę można znaleźć pod koniec tego dokumentu. Instrukcje dają nam możliwość odczytania lub zapisania wartości rejestru konkretnego typu. W zależności od wybranej instrukcji konstrukcje ramek wysyłanych w magistralę ModBus różnią się od siebie.
  • Rejestr (Adres rejestru) – Urządzenia MODBUS posiadają listę rejestrów które umożliwiają wymianę informacji ze światem zewnętrznym. Ich pełna lista, odpowiednia dla danego urządzenia, wraz z ich przeznaczeniem, opisana jest w dokumentacji protokołu MODBUS urządzenia.
  • Wartość – Pole to służy w zależności od funkcji, jako wartość, lub ich lista do zapisu w rejestrach w przypadku funkcji zapisu. W przypadku funkcji odczytu wpisujemy tu długość danych, które otrzymamy w odpowiedzi. Długości podawane są w paczkach 2 bajtowych, co zdefiniowane jest w standardzie MODBUS. Czyli jeśli odbieramy dane w ilości 2, w odpowiedzi otrzymamy 4 bajty danych. Dzieje się tak, gdyż elementarną wartością wg standardu MODBUS jest wartość 16bitowa.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

W przypadku stosowania funkcji zapisu wielu wartości, jak na przykład funkcja 15 czy 16, kolejne wartości wpisujemy rozdzielając je przecinkami, jak pokazano na powyższym rysunku.

Po wypełnieniu wszystkich pól zgodnie z zamierzeniem wciskamy przycisk wyślij.

Na poniższej liście pojawi nam się nowy wiersz z czterema kolumnami. Pierwsza z nich to liczba porządkowa. W drugiej kolumnie pojawi się czas, który upłynął od włączenia komputera do zaistnienia zdarzenia, a w trzeciej kolumnie wyświetlony będzie kierunek komunikacji. W ostatniej zaś pojawi się informacja zwrotna, lub też komunikat o błędzie.

Na poniższym zrzucie widać informację zwrotną (błąd - timeout) do wysłanej funkcji, na którą moduł nie odpowiedział.

Komunikat błędu zasugeruje nam, gdzie błąd został popełniony.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Odpowiedzi z urządzenia na poprawne zapytanie o rejestr numer 2 widać poniżej. Urządzenie MCON z adresem 9C14 odpowiedziało wartością rejestru równą 1.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Dane widać w postaci dziesiątkowej i szesnastkowej.

Funkcja testowania jest niezwykle przydatna zarówno przy sprawdzeniu definiowanych zapytań, jak i rozkazów. Poza podstawowym przeznaczeniem daje również możliwość ustawienie parametrów urządzenia podczas pierwszego uruchomienia. Przydatna jest też przy odczycie wartości, np. statusów błędów podczas diagnostyki, gdy wartości nie będą istotne przy normalnym użytkowaniu i nie ma potrzeby wyciągania ich dla systemu Ampio na stałe.

Zapytania o wartości urządzeń MODBUS

W zakładce Zapytania definiujemy listę zapytań kierowanych do urządzeń i interpretację ich odpowiedzi na nie.

W tym miejscu potrzebna będzie dokumentacja protokołu MODBUS odpytywanego urządzenia.

Przedstawimy tu przykład uzyskiwania informacji z licznika zużycia energii elektrycznej F&F LE-03MW CT.

Poniżej widać wygląd zakładki definicji zapytań z pustą listą definicji podczas tworzenia pierwszego zapytania.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

W najnowszym konfiguratorze mamy również możliwość wykrycia kolizji zapytań. Jeżeli Typ celu i numer celu jest już używany, podpisy zaświecą się na czerwono.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Dodajemy więc nowe zapytanie, przez wciśnięcie przycisku Dodaj zapytanie. Po prawej stronie, pod przyciskami pojawią się pola edycji zapytania, widoczne na poniższym zrzucie.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Opis zapytania ułatwi późniejszą identyfikację konstrukcji i wyświetlany jest w drzewie zapytań.

W polu Adres urządzenia wpisujemy numer adresu urządzenia z magistrali MODBUS, zgodnie z jego konfiguracją. Tu przyjmiemy, że będzie ono miało adres 1.

Dla tego licznika odczytujemy rejestry przy użyciu funkcji nr 3, przez wybranie tej wartości z listy Funkcja. Zakładamy, że podłączona jest tylko jedna jednostka o ID=1 i chcemy z niej odczytać czas wyświetlania widoku. Zgodnie z dokumentacją wpisujemy 13 w polu Rejestr. Po wypełnieniu wszystkich pól zatwierdzamy definicję przez przyciśnięcie przycisku Zatwierdź.

Poniżej zrzut opisu rejestrów z dokumentacji F&F.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Po tej operacji na liście definicji pojawi się pozycja zapytania, jak na poniższym obrazie.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

W nawiasie kwadratowym widać, ile w danej gałęzi jest funkcji obróbki (obecnie ich nie ma, poniżej dalsze informacje jak je tworzyć i do czego służą). Jeśli zapytanie zostanie opisane widoczna jest treść opisu i adres pytanego urządzenia, widać to w pozycjach od pierwszej do trzeciej. Jeśli natomiast nie wypełnimy treści opisu pojawi się pełna konstrukcja zapytania, czyli adres urządzenia, nr funkcji modbus, adres rejestru oraz długość danych, widać to w ostatniej pozycji na liście.

Jednak aby wartość pobrana przez zapytania była dostępna po stronie systemu Ampio, należy jeszcze dokonać analizy odebranych danych. Do tego celu służą funkcje obróbki danych z odpowiedzi na dane zapytanie.

Jak widać opis dodanego wiersza obrazuje wartości, które przed momentem wpisaliśmy.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Do każdego z zapytań można zdefiniować do 10 takich funkcji. W tym przykładzie zwracane odpowiedzi mają pojedyncze wartości, więc do każdego zapytania wystarczy po jednej funkcji analizy.

Po dokonaniu wskazania zapytania wciskamy przycisk Funkcja. Pojawią się pola definicji funkcji analizy danych.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Pole Typ danych ModBUS to rodzaj danych jakie analizujemy w odpowiedzi na zapytanie. Dostępne typy danych:

  • Int16 – wartość całkowita o długości 16 bitów, czyli 2 bajtów (jednostka długości jednej paczki danych w standardzie MODBUS);
  • Int32 – wartość całkowita 32 bitowa, zajmująca 2 informacje wg standardu MODBUS;
  • Bool – wartość logiczna przyjmująca wartość prawda lub fałsz.
  • Float16 – wartość zmiennoprzecinkowa 16 bitowa
  • Float32 – wartość zmiennoprzecinkowa 32 bitowa
  • Reg8/24 – typ dedykowany pod jeden z liczników F&F liczony w nietypowy sposób

Kolejne pole bajt odpowiedzi określa numer paczki odpowiedzi.

Kolejne pola służą do definicji przelicznika wartości wg prostej zależności linowej:

  • X – Wartość z MODBUS – to wartość uzyskana z odpowiedzi na zapytanie;
  • Mnożnik – to licznik ułamka zwykłego współczynnika kierunkowego równania przelicznika, może przyjmować wartości od 1 do 65535;
  • Dzielnik – to mianownik ułamka zwykłego współczynnika kierunkowego równania przelicznika, może przyjmować wartości od 1 do 65535;
  • Przesunięcie – wartość przesunięcia równania przelicznika i może przyjmować wartości od 32768 do 32767

Teraz zdecydujemy w jaki sposób dane dostaną się do sieci Ampio. W polu Typ celu danych wybieramy typ informacji danych wg standardu rozgłoszeniowego Ampio. Do wyboru mamy:

  • Temp16b – wartości 16 bitowe (2 bajtowe) prezentowane z dokładnością do 0.1 z zakresu: 99.9 do 100.0, np. wartości temperatur;
  • Int32Val – wartości 32 bitowe (4 bajtowe), np.: chwilowy pobór mocy, prądu czy napięcia, lub zużycie energii w kWh;
  • AmpioInt16Val – 16 bitowa (2 bajtowa) wartość linowa ze znakiem, z dokładnością do 0.1;
  • Uint8Val – 8 bitowa (1 bajtowa) wartość liniowa z dokładnością do 1 i z zakresu -99 do 100;

W polu Numer celu danych wpisujemy indeks wartości z danego typu. W systemie Ampio ilość poszczególnych wartości jest również zdefiniowana, każde urządzenie może wysłać po kilka/kilkanaście konkretnych typów danych, numerowanych od 0 i tak:

  • Temp16b – do dyspozycji mamy 6 wartości (0 do 5);
  • Int32Val – 16 różnych wartości (0 do 15);
  • AmpioInt16Val – 9 wartości (0 do 8);
  • Uint8Val – 18 wartości (0 do 17);

UWAGA!

Należy pamiętać o różnicach w przesyłaniu typów danych między różnymi sieciami. Np. dla przeliczania temperatur:

Załóżmy że z sieci ModBUS wartości temperatur podawane są z dokładnością do 0.1 ⁰C, w postaci liczby całkowitej ze znakiem, pomnożonej przez 10. Oznacza to, iż wartość 1 jest równa 0.1⁰C. Identycznie wygląda to systemie Ampio. Jednak w przypadku temperatur w Ampio wartości wysyłane są jako wartości UInt16, czyli bez znaku. Aby możliwe było przesyłanie liczby ujemnej zastosowaliśmy offset równy 1000.

Więc do otrzymanej wartości z urządzenia (np. rekuperatora) należy dodać wartość 1000. Zgodnie z nią wypełniamy pola jak na poniższym zrzucie.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Rozkazy sterujące urządzeniami MODBUS

Lista rozkazów wykorzystywana jest do sterowania urządzeniami, np. sterowanie prędkości obrotowej wentylatorów rekuperatora z przycisków panela sensorowego, aplikacji mobilnej, czy w reakcji na obecność domowników.

Przeprowadzimy tu przykład konfiguracji na podstawie jak powyżej, rekuperatora firmy ZEFIR.

Skonstruujemy tu rozkazy sterujące wydajnością wywiewu i nawiewu.

Podobnie jak w przypadku zapytań, rozkazy również podzielone są na bloki. Daje to możliwość wysłania wielu rozkazów przez wywołanie jednej funkcji. Niektóre rekuperatory, czy inne urządzenia do osiągnięcia pewnych parametrów wymagają ustawienia paru wartości rejestrów, np. w przypadku wydajności wentylacji nieraz należy osobno ustawić nawiew i wywiew, czy jeszcze dodatkowo inne parametry. Tu ustawimy przez jedną funkcję zarówno nawiew jak i wywiew.

Zakładka rozkazów wygląda podobnie do zakładki pobierania wartości.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Bloki rozkazów dodajemy przez przycisk Blok widoczny powyżej.

Po jego naciśnięciu pojawi się możliwość wpisania nazwy bloku. Wpisanie nazwy ułatwi w znacznym stopniu wykorzystanie jego definicji podczas konfiguracji funkcji i jego późniejszej reedycji.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Po zatwierdzeniu pojawi się nowa pozycja na liście definicji rozkazów. Tu podobnie jak poprzednio, w bloku definiujemy rozkazy składowe przez naciśnięcie przycisku Dodaj rozkaz.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Pojawią się pola definicji rozkazu jak na poniższym rysunku.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Widać tu wszystkie elementy rozkazu które musimy wpisać, znów posłużymy się dokumentacją do rekuperatora firmy ZEFIR.

Według standardu ModBus istnieje kilka funkcji umożliwiających zapis danych w urządzeniach. Aplikacja wspiera instrukcje 05, 06, 15, 16. Każda z nich ma inne znaczenie i zwykle, której z nich należy użyć opisane jest w dokumentacji integrowanego urządzenia.

Zgodnie z powyższym, by ustawić wartość zastosujemy funkcję MODBUS nr 6 (Write Single Register). Jak wcześniej przyjmiemy, że adres urządzenia ma wartość 0. W dokumentacji odszukujemy właściwego rejestru i wartości do ustawienia nawiewu.

2.4. Wydajność nawiewu Adres rejestru (offset): 0003 Tryb: odczyt/zapis W przypadku centrali ze sterownikiem STANDARD rejestr ten zawiera dane o numerze włączonego biegu na wentylatorze nawiewnym, w innych sterownikach jest to wartość procentowa. Wydajnością nawiewu można sterować przesyłając do rejestru odpowiednią wartość. Wysyłane/odbierane dane: 1 – 5: numer biegu w przypadku sterownika STANDARD 20 – 100: procent wydajności w pozostałych sterownikach

Przyjmiemy, że posiadamy sterownik o płynnej regulacji nawiewu i wywiewu od 20 do 100%.

Jak widać, aby nastawić nawiew na 30% musimy w rejestrze o numerze 3 wpisać wartość 30. Odpowiednio wypełniamy pola jak na poniższym zrzucie.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Całą konstrukcję zatwierdzamy przyciskiem Zatwierdź i pojawia się pierwszy element bloku.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Teraz do bloku dodamy polecenie ustawiające wydajność wywiewu na 30%, analogicznie do nawiewu i zgodnie z dokumentacją.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

2.5. Wydajność wywiewu Adres rejestru (offset): 0004 Tryb: odczyt/zapis W przypadku centrali ze sterownikiem STANDARD rejestr ten zawiera dane o numerze włączonego biegu na wentylatorze wywiewnym, w innych sterownikach jest to wartość procentowa. Wydajnością wywiewu można sterować przesyłając do rejestru odpowiednią wartość. Wysyłane/odbierane dane: 1 – 5: numer biegu w przypadku sterownika STANDARD 20 – 100: procent wydajności w pozostałych sterownikach

W bloku dodajemy kolejny rozkaz i wypełniamy odpowiednie pola jak poniżej.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Zatwierdzamy i mamy przykładowy komplet rozkazów na poniższym rysunku.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Analogicznie do powyższego przebiegu konstruujemy kolejne bloki, odpowiedzialne za wydajność wentylacji czy inne parametry urządzenia.

Reedycja nazwy bloku, czy poszczególnych rozkazów analogicznie jak przy zapytaniach o wartość odbywa się za pomocą przycisku Edytuj.

Jeśli istnieje konieczność użycia funkcji zapisu wielu rejestrów przez funkcję 15 (Write Multiple Coils) lub 16 (Write Multiple Holding Registers), konfiguracja wygląda podobnie. Różnicą jest tylko sposób wpisywania wartości do wysłania. W polu wartość do wysłania wpisujemy kolejne wartości w systemie dziesiętnym, rozdzielone przecinkami. Przykład konfiguracji rozkazu przy użyciu funkcji 16 widać na następnym rysunku.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Tak skonstruowane bloki rozkazów możemy użyć w funkcjach systemu Ampio SmartHome.

Wysyłanie i odczyt parametrów do i z urządzenia

Jak w przypadku każdego z urządzeń, tu również przygotowaną konfigurację parametrów należy wysłać do urządzenia. Operację wykonujemy przez naciśnięcie przycisku Wyślij.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Pobieranie parametrów odbywa się automatycznie przy otwieraniu okna konfiguracji, gdyby jednak zaistniała konieczność ponownego ich pobrania, można to wykonać naciskając przycisk Pobierz widoczny powyżej.

Zapis i odczyt parametrów do i z pliku

Istnieje możliwość przechowywania danych parametrów w pliku. Plik może być przenoszony i wczytywany ponownie. Daje to możliwość tworzenia kopii ustawień, tworzenie gotowych konfiguracji do wykorzystania w przyszłości. Da to również możliwość tworzenia bazy konfiguracji dla różnych integrowanych urządzeń i udostępniania ich innym, np. na forum.

W pliku przechowywane są wszystkie wartości parametrów urządzenia, łącznie z opisami bloków rozkazów i funkcji zapytań. Do pliku nie dołączane są inne wartości, by nie nadpisywać danych nie edytowanych w tym oknie, np. nazw flag przy zaimportowaniu gotowych konfiguracji parametrów Modbus.

Zapisywanie i odczyt danych z pliku możliwe jest przez przyciski Otwórz z pliku i Zapisz do pliku widoczne poniżej.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Domyślną lokalizacją dla plików kopii konfiguracji jest folder:

Dysk:\Users\{UŻYTKOWNIK}\Ampio\AmpioSmartHome\Params\

Domyślna nazwa pliku składa się ze słowa Param-{MAC}-{CZAS}.ashparxml

Jest to plik w postaci XML, zawierający binarne postaci elementów parametrów.

Wykorzystanie bloków rozkazów w konfiguracji warunków uniwersalnego integratora Modbus

Do przykładowej konfiguracji wykorzystamy nasz moduł wraz z panelem dotykowym. Przygotowaliśmy bloki rozkazów, które ustawią nam wydajność nawiewu rekuperatora na 3 różne prędkości.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Na wykonanie każdego z bloków przeznaczymy jedno pole dotykowe urządzenia M-DOT.

W oknie konfiguracji urządzenia U025 MCON485, wybieramy nasz panel dotykowy i dodajemy od niego warunek.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Pierwsze pole ma nam spowodować wyłączenie wentylacji, drugi ustawienie jej na 30% i trzeci na 100%.

Tworzymy standardowo warunek podstawowy od pola nr 1 i zatwierdzamy, jak poniżej.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Pojawi nam się okno konstrukcji funkcji, wybieramy zakładkę Funkcja MODBUS i z listy rozwijalnej wybieramy odpowiednią funkcję, zdefiniowaną wcześniej w parametrach. Przy polu nr 1 będzie to funkcja Wylacz wentylac.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Widać tu przydatność opisów bloków rozkazów z parametrów. Bez nich są to dla nas tylko numery funkcji, które oczywiście nadal będą funkcjonowały, jednak konfiguracja bez kartki i ołówka byłaby dość trudna.

Zatwierdzamy i mamy już pole, które nam wyłączy wentylację, opis widzimy również na liście warunków.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Analogicznie tworzymy kolejne warunki. Dla pola 2 ustawiamy wentylację na 30%, a dla pola nr 3 na 100%. Otrzymaną listę warunków wysyłamy do urządzenia i gotowe.

Konfiguracja warunków od wartości ModBus

Dzięki stworzeniu funkcji zapytań, i wybraniu gdzie mają trafiać dane wartości, informacje te trafiają do magistrali. Poza ich prezentacją w aplikacjach na smartfonie, czy tablecie mogą one być również wykorzystane do stworzenia warunku.

Warunki od wartości 8 bitowych (8bLinVal)

Zakładka konfiguracji warunku od wartości 8 bitowych pokazana jest na poniższym rysunku.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Istnieje możliwość umieszczenia danych 8 bitowych w 18 miejscach. W związku z tym do magistrali trafiają one w 3 różnych wiadomościach typu broadcast (po 6 na 1 wiadomość). Stąd możemy w konstrukcji jednego warunku wykorzystać do 6 sąsiednich wartości (1-6 LUB 7-12 LUB 13-18).

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Powyżej pokazany jest elementarny komponent konstrukcji, czyli pojedynczej wartości 8 bitowej. Widać tu numer wartości, pole wyboru, jej opis, aktualny odczyt oraz wartość warunku.

W naszych warunkach możemy sprawdzić czy wartość jest równa (=), większa niż(>), mniejsza niż(<) lub nierówna zadanej (!= czyli inna niż).

Lista funkcji według standardu MODBUS RTU

DEC HEX Opis funkcji
1 0x01 Read Coils - Odczyt stanów wyjść binarnych, wyjść przekaźnikowych
2 0x02 Read Discrete Inputs - Odczyt stanów wejść binarnych, np. krańcówki zamknięcia obudowy
3 0x03 Read Holding Register - Odczyt rejestrów pamiętających
4 0x04 Read Input Register - Odczyt wejścia analogowego, np. wartości z czujnika temperatury
5 0x05 Write Single Coils - Zapis pojedynczego wyjścia binarnego, np. wysterowanie przekaźnika
6 0x06 Write Single Holding Register - Zapis pojedynczego rejestru pamiętającego
15 0x0F Write Multiple Coils - Zapis wielu wyjść binarnych, np. odpowiednie wysterowanie kilku przekaźników
16 0x10 Write Multiple Registers - Zapis wielu rejestrów, np. zapis do rejestrów danych o długości większej niż 16bitów