Reklama: Chcesz umieścić tutaj reklamę? Zapraszamy do kontaktu »
Powrót do listy artykułów Aktualizowany: 2020-03-18
Komunikacja po protokole Modbus RTU | Kurs programowania PLC od podstaw | Odc.16

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.

 

 

Kurs-sterowniki-plc-Horner-APG-16-01-840x280.png

 

 

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.

 

Kurs-sterowniki-plc-Horner-APG-16-02.png

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.

 

Kurs-sterowniki-plc-Horner-APG-16-03-840x357.png

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

 

Kurs-sterowniki-plc-Horner-APG-16-04.png

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.

 

Kurs-sterowniki-plc-Horner-APG-16-05.pngOpis sygnałów w module HE359DIQ512

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

 

Kurs-sterowniki-plc-Horner-APG-16-06.png

 

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.

Kurs-sterowniki-plc-Horner-APG-16-06A.png

 

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

 

Kurs-sterowniki-plc-Horner-APG-16-07.png

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.

 

Kurs-sterowniki-plc-Horner-APG-16-08.png

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.

 

Kurs-sterowniki-plc-Horner-APG-16-09.png

 

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.

 

Kurs-sterowniki-plc-Horner-APG-16-10.png

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.

 

Kurs-sterowniki-plc-Horner-APG-16-11.png

 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.

 

Kurs-sterowniki-plc-Horner-APG-16-12.png

 

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

 

Kurs-sterowniki-plc-Horner-APG-16-13.png

 

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

 

Kurs-sterowniki-plc-Horner-APG-16-14.png

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.

 

Kurs-sterowniki-plc-Horner-APG-16-15.png

 

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

 

Kurs-sterowniki-plc-Horner-APG-16-16.png

 

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.

 

Kurs-sterowniki-plc-Horner-APG-16-17.png

 

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.

 

Kurs-sterowniki-plc-Horner-APG-16-18.png

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

Sprawdź pozostałe bezpłatne kursy i poradniki na Poradniku Automatyka.

Autor:
Kamil Zajdel
Źródło:
Poradnik Automatyka
Dodał:
ASTOR Sp. z o.o.