Zobacz wszystkie

Kategorie

Komunikacja po protokole Modbus RTU | Kurs programowania PLC od podstaw | Odc.16

Sprawdź, co to jest protokół Modbus RTU oraz jak wygląda architektura sieci opartej o Modbus RTU.

W poprzednim odcinku dowiedziałaś/eś się co to jest obiekt Trend i jak go konfigurować.

W tym artykule poznasz podstawowe informacje dotyczące komunikacji w protokole Modbus RTU oraz poznasz architekturę komunikacji w sieci szeregowej. Zobaczysz, jak w praktyce zastosować układ wejść-wyjść oddalonych SmartMod oraz jak mapować rejestry w komunikacji Modbus.

Kurs programowania PLC od podstaw dla automatyków i elektryków Podstawy programowania sterowników PLC

  • 1. Wprowadzenie. Jak skonfigurować, podłączyć oraz uruchomić sterownik PLC?
  • 2. Jak tworzyć i edytować projekty w oprogramowaniu Cscape?

Programowanie sterownika PLC w języku drabinkowym

  • 3. Jak tworzyć oraz konfigurować bazę zmiennych w środowisku Cscape?
  • 4. Jak korzystać ze styków, cewek i bloków operacji arytmetycznych w programie sterującym?
  • 5. Jak odmierzać czas w programie sterującym i jak konfigurować timery?
  • 6. Jak porównywać wartości i wykorzystać wyniki operacji logicznych?
  • 7. Jak zliczać impulsy i konfigurować liczniki?
  • 8. Jak konwertować typy zmiennych i przemieszczać zmienne w programie?
  • 9. Jak sterować wykonywaniem programu logicznego? Instrukcja skoku warunkowego

Programowanie zintegrowanego panelu HMI

  • 10. Jak budować ekrany operatorskie z obiektami do wizualizacji i zadawania wartości zmiennych?
  • 11. Jak umożliwić nawigację między ekranami operatorskimi oraz jak korzystać z gotowych obiektów graficznych w środowisku Cscape?
  • 12. Jak wizualizować zmienne analogowe oraz jak modyfikować ich wartości przy pomocy obiektów dostępnych w oprogramowaniu Cscape?
  • 13. Jak korzystać z obiektu menu?
  • 14. Konfiguracja i obsługa alarmów w sterownikach PLC
  • 15. Kontrolka Data Trend

Komunikacja sterowników PLC w sieci szeregowej i Ethernet

  • 16. Komunikacja szeregowa Modbus RTU Master i Slave
  • 17. Komunikacja CsCAN
  • 18. Komunikacja Ethernet Modbus TCP
  • 19. Wysyłanie wiadomości Email w sterowniku PLC Zaawansowane funkcje sterownika PLC
  • 20. Regulator PID
  • 21. Składowanie danych: Data logging oraz karta MicroSD
  • 22. Trendy historyczne oraz receptury w programie
  • 23. Setpoint, backup i restore danych oraz generowanie raportów z poziomu sterownika
  • 24. Hasła i zabezpieczenia w programie, ustawienia języka oraz edytor dostępny w narzędziu, opcja autodokumentacji / Dodatkowe ustawienia i możliwości edycji

 

Modbus RTU to jeden z najpopularniejszych protokołów komunikacyjnych w systemach automatyki. Jego prostota i niezawodność sprawiły, że jest jednym z najczęściej wykorzystywanych standardów wymiany danych w sieciach szeregowych RS232/485, w przemysłowych systemach sterowania.

 

  Charakterystyka Modbus RTU

Modbus RTU jest protokołem typu Master – Slave i pozwala na dwukierunkową komunikację do 248 urządzeń, podłączonych w ramach tej samej sieci.

  • Modbus RTU Master to urządzenie inicjujące komunikację i wysyłające zapytania do urządzeń typu Slave. W sieci Modbus RTU funkcję Master może pełnić tylko jedno urządzenie.
  • Modbus RTU Slave to urządzenia odpowiadające na zapytania wysyłane przez urządzenia Master. W sieci Modbus RTU może pracować do 247 urządzeń Slave.

 

Przykładowa architektura sieci Modbus RTU

Urządzenie master komunikuje się z urządzeniami slave w trybie dwuprzewodowego RS-485. W tym celu do wymiany danych wykorzystywane są linie DATA +, DATA – oraz GND. Urządzenie master zarządza siecią tak, aby komunikacja była realizowana w prawidłowy sposób.

Jeśli urządzenie w dalszym ciągu nie odpowiada, master zgłasza błąd komunikacji z urządzeniem slave, a następnie przechodzi do odpytywania urządzenia o ID 2, które jest następne w kolejce. Po odpytaniu wszystkich urządzeń pracujących w sieci, master rozpoczyna kolejną kolejkę odpytywania.

 

Horner SmartMod I/O

Moduły rozszerzeń SmartMod I/O, to rozwiązanie pozwalające na lokalną rozbudowę sterowników, o obsługę kilkunastu dodatkowych sygnałów wejść-wyjść, w oparciu o komunikację szeregową. Charakteryzują się niewielkimi gabarytami, dzięki czemu idealnie nadają się do instalacji w miejscach o ograniczonej przestrzeni montażowej.

Moduły SmartMod I/O komunikują się ze sterownikiem Horner APG przy pomocy sieci szeregowej, w oparciu o protokół Modbus RTU – w trybie dwuprzewodowego RS485. Wyposażenie modułów w taki interfejs pozwala na ich integrację z dowolnym urządzeniem Modbus RTU master, nie generując przy tym dodatkowych kosztów, związanych z zakupem dedykowanych interfejsów komunikacyjnych. W jednej sieci może pracować do 31 urządzeń SmartMod.

 

Okablowanie w sieci Modbus RTU

Prawidłowa komunikacja w sieci Modbus RTU wymaga przygotowania odpowiedniego kabla. Schemat kabla komunikacyjnego do podłączenia układów wejść-wyjść SmartMod I/O ze sterownikiem Horner XL7e prezentuje poniższa grafika.

W tej aplikacji, komunikacja z układem SmartMod w sterowniku XL7e, realizowana jest na porcie MJ2, w trybie dwuprzewodowego RS-485. Port MJ2 sterownika wyprowadzony jest fizycznie na złączu RJ-45, na pinach 1, 2 oraz 6.

 

Kabel komunikacyjny wykonaj w następujący sposób:

  • Sygnał D- po stronie układu SmartMod podłącz do Pinu A,
  • natomiast po stronie sterownika – do Pinu 1.
  • Sygnał D+ po stronie układu SmartMod podłącz do Pinu B, natomiast po stronie sterownika – do Pinu 2.  
  • Sygnał GND po stronie układu SmartMod podłącz do Pinu C, natomiast po stronie sterownika-  do Pinu 6.

Prawidłowa konfiguracja komunikacji pomiędzy układem SmartMod, a sterownikiem Horner wymaga ustawienia takich samych parametrów komunikacyjnych na portach obu urządzeń.

W układach SmartMod, zwarcie zacisków GND oraz INIT powoduje ustawienie domyślnych parametrów komunikacyjnych na porcie.

  • Modbus ID = 1
  • Baud rate = 9600
  • Parity = None
  • Stop Bits = 1

Dokładnie takie same parametry ustaw na porcie komunikacyjnym w sterowniku. Pełną konfigurację zobaczysz w dalszej części artykułu.

 

Mapowanie zmiennych w sterowniku PLC

Prawidłowa obsługa dodatkowych sygnałów I/O, pochodzących z modułu SmartMod wymaga odpowiedniego zmapowania zmiennych po stronie sterownika.

Adresy zmiennych w modułach SmartMod możesz odczytać z dokumentacji do danego modułu. W tym przykładzie, dla modułu SmartMod I/O, o numerze katalogowym HE359DIQ512, zmienne dostępne są w następujących obszarach pamięci:

  • sygnały dyskretne wejściowe: w obszarze 00001 do 00004,
  • sygnały dyskretne wyjściowe: w obszarze 00017 do 00020.

Prawidłowe podłączenie sygnałów obiektowych do układów SmartMod przedstawiono na schemacie poniżej.  

 

Programowanie w akcji!

Aby utworzyć komunikację z układem SmartMod, w programie sterującym skonfiguruj protokół Modbus RTU. Komunikacja będzie odbywała się na porcie MJ2 sterownika XL7e.

W tym celu z poziomu menu Program wybierz Protocol Configuration.

Następnie z rozwijalnej listy MJ2 wskaż protokół Modbus RTU Master i przejdź do jego konfiguracji.

W oknie Network Config, w sekcji Port Configuration ustaw parametry pracy portu szeregowego, zgodnie z domyślnymi parametrami komunikacyjnymi w module SmartMod:

  • Baud Rate – 9600,
  • Parity – none,
  • Stop Bits – 1,
  • Protocol – Modbus RTU.

Parametr Retries oznacza ilość prób, jakie urządzenie master będzie wykonywało w celu nawiązania komunikacji z urządzeniem slave. Ustaw 2.

Timeout oznacza czas, jaki urządzenie master odczeka pomiędzy kolejnymi zapytaniami. Ustaw 10000 ms.

W sekcji Update Scan konfiguruje się sposób, w jaki urządzenie master będzie odpytywać urządzenie slave. Opcja Automatic powoduje, że master samodzielnie, tak często jak to możliwe, będzie zaciągał zapytania do urządzeń slave. Jeśli nie chcesz generować dużego obciążenia/?/ na sieci, zmień parametr Update Interval, co spowoduje obniżenie częstotliwości odpytywania.

Opcja Manual pozwala skonfigurować zmienną, której zmiana stanu na „wysoki” będzie powodowała wysyłanie zapytań z urządzenia master do slave.

Sekcja Status powala na opcjonalne skonfigurowanie adresu statusowego dla komunikacji Modbus.

Okno Devices umożliwia dodawanie urządzeń slave. Po wciśnięciu przycisku Add zobaczysz kolejne okno, w którym dodasz I/O SmartMod. W oknie podaj nazwę urządzenia slave jako SmartMod oraz ustaw jego adres ID na 1.

W sekcji Device Options możesz skonfigurować typ urządzenia slave, sposób w jaki adresowane są w nim zmienne oraz funkcje protokołu Modbus, które obsługuje podczas komunikacji.

Device Typ pozwala skonfigurować typ adresacji zmiennych:

  • Modicon na 5 znakach,
  • Modicon na 6 znakach,
  • Adresację native.

Parametr Mode pozwala określić, które funkcje obsługuje urządzenie:

  • wszystkie funkcje,
  • Tylko funkcje 5/6,
  • Tylko funkcje 15/16.

Sekcja Status umożliwia ustawienie opcjonalnego adresu statusu komunikacji z urządzeniem slave oraz sposobu zachowania w chwili, gdy pojawia się błąd komunikacji.

W tym przypadku typ urządzenia skonfiguruj jako Modicon PLC 5-Digit Addressing, obsługujący wszystkie funkcje Modbus.

W zakładce Scan List, zgodnie z dokumentacją, dokonaj mapowania zmiennych w sterowniku pochodzących z modułu SmartMod.

Wybierz ADD i z listy Device Name wskaż wcześniej dodane urządzenie slave. W polu Device register ustaw adres 00001, a w polu Length wpisz 4.

W sekcji Local podaj rejestr sterownika %M16, w którym będą przechowywane stany wejść, odczytane z modułu SmartMod.

W sekcji Update Type sposób aktualizacji zmiennych ustaw jako Polled Read. Oznacza to, że sterownik w każdym cyklu będzie aktualizował stan zmiennych.

Analogicznie skonfiguruj mapowanie zmiennych wyjściowych. Wybierz Add i ustaw Device Register na 00017, a długość (Length) na 4.

W sekcji Local podaj rejestr sterownika %m32, z którego będziesz wystawiać sygnały wyjściowe do modułu SmartMod.

Sposób aktualizacji zmiennych ustaw jako Polled Read/Write. Oznacza to, że sterownik będzie aktualizował stan wyjść na module SmartMod – w chwili, gdy zmieni się ich stan.

 

Rozbudowa aplikacji o dodatkowy ekran operatorski

Teraz rozbudujesz aplikację o ekran operatorski, na którym będą wizualizowane stany sygnałów wejściowych i wyjściowych, pochodzących z modułu SmartMod.

W tym celu utwórz kolejny ekran operatorski. Zgodnie ze sposobem pokazanym w poprzednich artykułach, umieść na nim 4 lampki i 4 przełączniki.

Utwórz nowe zmienne wejściowe i podłącz je pod obiekt lampek. Zmienną o adresie %M16 nazwij Smartmod_IN0.

Lampkę z podłączoną zmienną %M16 opisz jako Wejscie IN0.

Analogicznie postępuj, tworząc kolejne trzy zmienne wejściowe: %M17, %M18 i %M19.

Po utworzeniu zmiennych wejściowych, utwórz nowe zmienne wyjściowe i podłącz je pod obiekt przełącznika. Jako pierwszą utwórz zmienną o nazwie SmartMod_OUT0 i adresie %M32.

Obiekt „Switch” opisz jako Wyjscie OUT0. Aby to zrobić, skorzystaj z pola Legend.

Analogicznie postępuj, tworząc kolejne trzy zmienne wyjściowe:  %M33, %M34, %M35.

Umieść na ekranie także pole tekstowe o nazwie SmartMod I/O oraz przycisk Screen Jump i skonfiguruj go jako Simulate ESC.

Ten ekran operatorski będzie wywoływany z poziomu ekranu pierwszego. W tym celu na ekranie numer 1 dodaj obiekt Screen Jump. Ekranem docelowym będzie ekran numer 9. Zaznacz opcję Allow Escape.

Tak przygotowany program wgraj do sterownika.

Podłącz zasilanie do układu SmartMod i kabel komunikacyjny pomiędzy sterownikiem a modułem. Z poziomu ekranu 9 wysteruj wyjścia modułu.

 

Chcesz nauczyć się programować sterowniki PLC?

Wszystkie odcinki kursu, bezpłatne oprogramowanie oraz dodatkowe materiały znajdziesz na stronie: Kurs - programowanie PLC od podstaw (https://www.astor.com.pl/poradnikautomatyka/kurs-programowania-plc-od-podstaw-dla-elektrykow-i-automatykow/)

Sprawdź pozostałe bezpłatne kursy i poradniki na Poradniku Automatyka. (https://www.astor.com.pl/poradnikautomatyka/)

Zapytania ofertowe
Komunikacja po protokole Modbus RTU | Kurs programowania PLC od podstaw | Odc.16
Zapytaj o produkt