loading...

MODBUS RTU z wykorzystaniem WAGO-I/O-SYSTEM, cz. 3

Prosta konfiguracja sieci

Jak szybko i łatwo skonfigurować komunikację pomiędzy dwoma sterownikami sieciowymi PFC200 w sieci MODBUS RTU? To proste! Wystarczy dodać moduł komunikacyjny 750-653/003-000 i skorzystać z MODBUS Master Configurator wbudowanego w WAGO-I/O-PRO . Jak to zrobić, prezentujemy poniżej.

Połączenia elektryczne

Aby skomunikować ze sobą dwa sterowniki w sieci MODBUS RTU, należy zacząć od połączenia pary zacisków TX oraz RX na modułach sterowników, a następnie przewód oznaczony D+ z przewodem oznaczonym D-, zgodnie z poniższym schematem.

Rys.1 Schemat połączenia elektrycznego dla modułów komunikacyjnych 750-653/003-000

Połączenie można wykonać wykorzystując skrętkę dwużyłową J-Y(ST)Y.

Rys.2 Połączenie sterowników PFC200 (750-8202) w sieci MODBUS RTU

MODBUS Master Configurator

WAGO-I/O-PRO posiada wbudowany konfigurator przeznaczony do parametryzacji sieci MODBUS RTU. Automatycznie definiuje on zmienne oraz generuje kod programu w postaci bloków funkcyjnych.

Zaczynamy od przygotowania sterownika PFC200 do pracy w trybie master. W tym celu należy przejść do zakładki Resources w oprogramowaniu WAGO-I/O-PRO, a następnie otworzyć PLC Configuration, wybrać MODBUS-Master[FIX] i kliknąć prawym przyciskiem myszy w Network View.

Rys.3 Okno wyboru narzędzia MODBUS Master Configurator

Kolejnym krokiem jest dodanie interfejsu szeregowego oraz parametryzacja standardu RS-485. Należy określić numer portu komunikacyjnego, prędkość transmisji, liczbę bitów danych, liczbę bitów stopu, parzystość itd.

Rys.4 Okno parametryzacji sieci MODBUS RTU

Jeżeli korzystamy z urządzenie innego producenta niż WAGO, należy wybrać opcję Generic MODBUS slave.

Rys.5 Okno wyboru urządzenia typu

Istotnym parametrem podczas konfiguracji jest Timeout. Jest to czas, po którym urządzenie typu master zgłasza błąd w przypadku braku odpowiedzi od urządzenia typu slave. Ustawiany jest także czas opóźnienia między wysłaniem kolejnej ramki MODBUS oraz adres slave’a (MODBUS unit ID).

Rys.6 Okno ustawień parametrów MODBUS RTU

Deklaracja zmiennych odbywa się w oknie konfiguratora. Należy wpisać zmienne przeznaczone tylko do odczytu (read only) oraz zmienną do zapisu (write only). Klikając na daną zmienną prawym klawiszem myszy wybieramy „Edit address”, a następnie parametryzujemy wyświetlone okno.

Rys.7 Dodawanie zmiennych

Wykorzystujemy do tego funkcje MODBUS nr 03 (FC3), która odpowiada za odczyt rejestrów pamiętających (holding registers). Adres dla danej zmiennej zaczyna się od adresu 0.

Rys.8 Okno parametryzacji dla zmiennej MODBUS tylko do odczytu (read only)

W sterowniku typu master zapisujemy również dane dla slave’a, korzystając z funkcji MODBUS nr 16 (FC16). Adres dla zmiennej tylko do zapisu zaczyna się od 100.

Rys.9 Okno parametryzacji dla zmiennej MODBUS tylko do zapisu (write only)

W głównym oknie konfiguratora istnieje możliwość zmiany typu zmiennej (w tym przypadku są to zmienne typu WORD) oraz trybu dostępu do danej zmiennej: tylko do odczytu (read only) lub tylko do zapisu (write only).

Rys.10 Wybór typu zmiennej

Następnie generujemy kod programu i zapisujemy konfigurację.

Rys.11 Generowanie programu oraz zapis konfiguracji

W drzewie projektu powinny pojawić się automatycznie wygenerowane obiekty. Zmienne zadeklarowane dla slave’a dostępne są w programie MBCFG_MODBUSSlave. Można do nich przyporządkować zmienne zadeklarowane w programie głównym.

Rys.12 Generowanie programu oraz zapis konfiguracji

Konfiguracja sterownika PLC pracującego w trybie slave

W pierwszej kolejności należy dodać określoną bibliotekę o nazwie „Modb_l05.lib”. Razem z biblioteką „Modb_l05.lib” zostanie automatycznie dodanych kilka dodatkowych bibliotek.

Rys.13 Dołączenie dodatkowej biblioteki „Modb_l05.lib”.

W celu konfiguracji sterownika PFC200 do pracy w trybie slave należy zadeklarować w głównym programie blok funkcyjny „MODBUS_EXTENDED_SLAVE”.

Rys.14 Deklaracja bloku funkcyjnego „MODBUS_EXTENDED_SLAVE”

Parametry wejściowe oraz wyjściowe bloku funkcyjnego muszą być odpowiednio sparametryzowane według dokumentacji opisującej bibliotekę „Modb_l05.lib”.

Rys.15 Parametryzacja bloku funkcyjnego MODBUS_EXTENDED_SLAVE

Opis poszczególnych wejść oraz wyjść bloku funkcyjnego znajduje się w opisie biblioteki „SerComm” dodawanej automatycznie do projektu razem z biblioteką „Modb_I05.lib”. Można go znaleźć w zakładce Library Manager, w sekcji Data types.

Rys.16 Opis wejść oraz wyjść bloku funkcyjnego MODBUS_EXTENDED_SLAVE

Wgrywanie programów oraz sprawdzanie poprawności działania komunikacji

Nadszedł czas na kompilację projektów napisanych w środowisku WAGO-I/O-PRO, a następnie wgrywanie programów do sterowników. Jako pierwszy należy wgrać program dla sterownika PFC200, który ma pełnić funkcję mastera.
Po wgraniu programów do obu sterowników trzeba się upewnić, czy komunikacja jest aktywna. Można to sprawdzić, analizując stany diod na modułach komunikacyjnych 750-653/003-000 (szczegóły tabela poniżej).

Rys.17 Diagnostyka modułu 750-653/003-000

Analiza programów w trybie on-line z wykorzystaniem oprogramowania WAGO-I/O-PRO

W MODBUS master przygotowana jest wartość dla zmiennej wWrite przeznaczonej do zapisu do slave’a. Jest to wartość w systemie dziesiętnym i wynosi 1555. MODBUS master odbiera wartość ze slave’a, która wynosi 200 w systemie dziesiętnym.

Rys.18 Podgląd programu w trybie on-line dla sterownika pracującego w trybie master w sieci MODBUS RTU

Slave zapisuje do adresu nr 0 wartość 200. Master odpytuje slave’a o adres nr 0. Slave odbiera od mastera wartość 1555 zapisaną w systemie dziesiętnym.

Rys.19 Podgląd programu w trybie on-line dla sterownika pracującego w trybie slave w sieci MODBUS RTU

Maciej Kurantowicz, WAGO.PL

Czytaj więcej

MODBUS RTU z wykorzystaniem WAGO-I/O-SYSTEM, cz. 1

MODBUS RTU z wykorzystaniem WAGO-I/O-SYSTEM, cz. 2

MODBUS RTU z wykorzystaniem WAGO-I/O-SYSTEM, cz. 3

Komentarze o ”MODBUS RTU z wykorzystaniem WAGO-I/O-SYSTEM, cz. 3

  1. F pisze:

    A czy można jedną zmienną w Slavie zapisywać i odczytywać?

    1. WAGO.PL pisze:

      Opcja read/write w konfiguratorze nie działa.
      W bibliotece można to zrealizować funkcją FC23.
      Pełną odpowiedź przesłaliśmy na e-maila.

      1. Rafał pisze:

        Czy jest dostępny przykład użycia funkcji F23?

        1. WAGO.PL pisze:

          Funkcja 23 nie jest obsługiwana przez konfigurator modbus w CoDeSys 2.3. Nie zawsze jest także zaimplementowana jej obsługa w urządzeniach i częściej spotyka się odczyt funkcją 3 (read holding registers) lub 4 (read input registers) i zapis funkcją 6 (write single register) lub 16 (write multiple registers). Przygotowaliśmy bibliotekę ModbusEasy, która zastępuje w rozbudowanych aplikacjach konfigurator modbusowy. W paczce znajdują się biblioteki, które należy dołączyć do projektu, przykładowa aplikacja z wykorzystaniem wszystkich dostępnych bloków funkcyjnych oraz manual opisujący każdy z elementów biblioteki. W razie problemów zapraszamy do kontaktu ze wsparciem technicznym. [LINK]

  2. Kamil pisze:

    Czy sterownik np. PFC200 może pracować zarazem jako slave i master. Chciałbym z modułu 750-653 odczytywać parametry z urządzenia, a port wbudowany w sterownik służyłby do udostępniania danych dla systemu nadrzędnego.

    1. WAGO.PL pisze:

      Sterownik 750-8202 może pracować zarówno jako slave i master na dwóch różnych portach.
      W takiej konfiguracji nie ma problemu, aby sterownik był równocześnie slave’m i masterem.

      1. Kamil pisze:

        Dziękuje serdecznie za odpowiedź. Mam ogromną prośbę, czy mógłby Pan wysłać mi na maila krótki opis co powiniem skonfigurować w sterowniku WAGO, aby móc z COM0 odczytywać wartości poprzez MODBUS RTU. Przyznam jestem początkującym programistą sterowników WAGO.

        1. WAGO.PL pisze:

          Poleciało na e-mail.

          1. Wojtek pisze:

            Poproszę o przesłanie jak wyżej.

          2. WAGO.PL pisze:

            Poleciało na e-mail

  3. Piotr pisze:

    Witam serdecznie.
    W jak najprostszy sposób przeprowadzać diagnostykę sieci MODBUS (sprawdzanie czy slave jest online) przy wykorzystaniu MODBUS RTU Fieldbus Configurator wbudowanego w e!Cockpit ?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *