Instytut Informatyki Politechnika Poznańska 1
Sieć Modbus w dydaktyce Protokół Modbus Rozwiązania sprzętowe Rozwiązania programowe Podsumowanie 2
Protokół Modbus Opracowany w firmie Modicon do tworzenia sieci sterowników PLC Organizacja Modbus-IDA skupia niezależnych użytkowników i producentów urządzeń automatyzacji i zajmuje się prawidłowym rozwojem standardu i jego popularyzacją 3
Protokół Modbus 4
Protokół Modbus 5
Protokół Modbus 6
Protokół Modbus 7
Protokół Modbus 8
Protokół Modbus 9
Protokół Modbus 10
Protokół Modbus 11
Protokół Modbus 12
Protokół Modbus Przykładowe rozwiązanie połączenia między węzłami sieci Modbus (max 247 węzłów slave) 13
Protokół Modbus Ramka protokołu Modbus PDU (ang. Protocol Data Unit) Adres węzłów slave z zakresu 1 247 Adres 0 jest adresem rozgłoszeniowym; w tym przypadku żaden węzeł slave nie generuje odpowiedzi W protokole Modbus przewidziano dwa podstawowe tryby transmisji: RTU oraz ASCII 14
Protokół Modbus Formaty jednostki informacyjnej w trybie Modbus RTU Tryb RTU jest najczęściej stosowany Każdy znak składa się z 11 bitów Znak może być zabezpieczony bitem parzystości; w przeciwnym przypadku występują dwa bity stopu 15
Protokół Modbus Ramka Modbus w trybie RTU Ramka może zawierać maksymalnie 256 bajtów i dlatego pole danych zostało ograniczone do 252 bajtów. Zabezpieczeniem integralności ramki jest dwubajtowe słowo CRC mniej znaczący bajt transmitowany jest jako pierwszy. Ponieważ w Modbus jest transmisja znakowa, zostały przyjęte kryteria czasowe pozwalające określić ciągłość znaków. 16
Protokół Modbus Zależności czasowe transmisji w trybie RTU W trybie RTU odległość między ramkami powinna wynosić minimum 3,5 znaku. Przerwa między znakami wewnątrz ramki nie może przekroczyć 1,5 znaku. 17
Protokół Modbus Typy danych standardu Modbus W protokole Modbus przyjęto analogiczne typy danych jak dla sterowników PLC; wzorem były sterowniki Modicon. Dostęp do określonego typu danych realizowany jest użycie odpowiednich funkcji protokołu. 18
Protokół Modbus Wybrane kody funkcji protokołu Modbus 19
Rozwiązania sprzętowe (przykłady) Uniwersalne rozwiązania przemysłowe Sterownik PLC Twido (TWD LCAA 24DRF) firmy Telemecanique Specjalizowane moduły Modbus Moduł slave AMB300 konwerter protokołów, firmy Alfine Uniwersalne moduły rozwojowe Moduły Toolstick firmy Silicon Labs. 20
Rozwiązania sprzętowe (przykłady) Sterownik PLC Twido (TWD LCAA 24DRF) 21
Rozwiązania sprzętowe (przykłady) Sterownik PLC Twido (TWD LCAA 24DRF) Wbudowana obsługa protokołu Modbus Dwa interfejsy szeregowe, które można skonfigurować w standardzie Modbus Możliwość konfiguracji urządzenia jako slave lub master Obsługiwane funkcje: 1, 2, 3, 4, 5, 6, 15 i 16 Dostępne tryby RTU i ASCII; prędkość transmisji do 38,4 kb/s Obsługiwane języki: Lista Instrukcji, Schemat Drabinkowy, Grafcet TwidoSoft narzędzie do tworzenia i uruchamiania aplikacji użytkownika. 22
Rozwiązania sprzętowe (przykłady) Moduł slave AMB300 konwerter protokołów 23
Rozwiązania sprzętowe (przykłady) Moduł RS232/RS485 24
Rozwiązania sprzętowe (przykłady) Uniwersalne moduły firmy Silicon Labs z mikrokontrolerami C8051Fxxx 25
Rozwiązania sprzętowe (przykłady) University Daughter Card firmy Silicon Labs z mikrokontrolerami C8051F020 26
Rozwiązania sprzętowe (przykłady) Wirtualne narzędzia Toolstick University: Terminal 27
Rozwiązania sprzętowe (przykłady) Wirtualne narzędzia Toolstick University: Virtual LCD 28
Rozwiązania sprzętowe (przykłady) Wirtualne narzędzia Toolstick University: Virtual Oscilloscope 29
Rozwiązania programowe. Dokumentacja Modbus Dokumentacja standardu Modbus Całkowicie zmodyfikowane dokumenty zostały wydane w grudniu 2006 r. MODBUS over Serial LineSpecification and Implementation Guide V1.02, Modbus-IDA.ORG, 20.10.2006. MODBUS Application Protocol Specification V1.1b, Modbus-IDA.ORG, 28.10.2006. 30
Rozwiązania programowe. Dokumentacja Modbus Przykłady: Diagram stanów węzła Slave 31
Dokumentacja Modbus Przykłady: Diagram stanów transmisji w trybie RTU 32
Rozwiązania programowe. Dokumentacja Modbus Przykłady: Diagram stanów odczytu wejść 33
Rozwiązania programowe. Oprogramowanie MBed Dwie aplikacje: ModbusMaster i ModbusSlave Obsługa 10 funkcji Modbus kody 01, 02, 03, 04, 05, 06, 08, 0F, 10, 11 w obu trybach transmisji (ASCII i RTU) Dobór parametrów transmisji na poziomie bitowym Zmiana parametrów połączenia i maksymalnego czasu oczekiwania na odpowiedź Szablony ramek oraz zaawansowany edytor ich zawartości z podpowiedziami i kontrola błędów 34
Rozwiązania programowe. Oprogramowanie MBed Podgląd przesyłanych ramek Opis przesyłanych ramek W aplikacji Master, na podstawie otrzymywanych odpowiedzi, tworzony jest automatycznie bieżący obraz rejestrów węzłów slave Prezentowane mogą być cztery typy danych dostępne w Modbus a ponadto zawartości rejestrów diagnostycznych (funkcja 0x08) i także opis urządzeń slave (funkcja 0x11) W aplikacji Slave, funkcja wypełniania rejestrów losowymi wartościami 35
Rozwiązania programowe. Aplikacja ModbusMaster Okno główne programu ModbusMaster 36
Rozwiązania programowe. Aplikacja ModbusMaster ModbusMaster historia transmisji 37
Rozwiązania programowe. Aplikacja ModbusMaster ModbusMaster rejestry urządzenia slave 38
Rozwiązania programowe. Aplikacja ModbusMaster Przebieg transmisji w programie ModbusMaster 39
Rozwiązania programowe. Aplikacja ModbusSlave Przebieg transmisji w programie ModbusSlave Kreskowane połączenie bloków wyświetlanie ramek w historii transmisji 40
Podsumowanie Przedstawione środowisko sprzętowo-programowe umożliwia badanie różnorodnych aspektów protokołu Modbus. Umożliwia organizację interesujących, w pełni poznawczych zajęć laboratoryjnych i projektowych z zakresu zarówno sieci przemysłowych jak i systemów wbudowanych. 41
Podsumowanie Przykłady ćwiczeń (konfiguracje) komputer Master komputer Slave, komputer Master sterownik Twido Slave, komputer Master moduł Slave, sterownik Twido Master komputer Slave, sterownik Twido Master moduł Slave, SCADA ifix Master (komputer) sterownik Twido Slave, sieć Modbus komputer Monitor Modbus, SCADA ifix Master sieć Modbus 42
Podsumowanie SCADA ifix 3.5 PL firmy GE Fanuc 43
44
Oprogramowanie Diagram stanów węzła master 45
Oprogramowanie Diagram stanów węzła slave 46
Oprogramowanie Podstawowe funkcje aplikacji ModbusSlave: Transmisja w trybie ASCII oraz RTU, Podgląd przesyłanych ramek, Opis przesyłanych ramek, Historia transmisji, Sygnalizacja i opis błędów, Bieżący podgląd Rejestrów Diagnostycznych, Obsługa 10 funkcji Modbus: 1, 2, 3, 4, 5, 6, 8, F, 10, 11, Obsługa podstawowych rejestrów: Discrete Inputs, Coils, Input Registers, Holding Registers, Obsługa rejestrów diagnostycznych poprzez funkcję 0x08 oraz opisu urządzenia slave funkcja 0x11, Dowolne tworzenie mapy adresów rejestrów, Funkcja wypełniania rejestrów losowymi wartościami, Możliwość zapisu i odczytu rejestrów, Wpisywanie wartości w systemach: dziesiętnym, szesnastkowym oraz binarnym. 47
Oprogramowanie Podstawowe funkcje aplikacji ModbusMaster: Transmisja w trybie ASCII oraz RTU, Podgląd przesyłanych ramek, Opis przesyłanych ramek, Historia transmisji, Sygnalizacja i opis błędów, Szablony do obsługi 10 funkcji Modbus: 1, 2, 3, 4, 5, 6, 8, F, 10, 11, Możliwość wysłania dowolnego zapytania, Dynamiczne tworzenie map rejestrów urządzeń slave na podstawie uzyskanych odpowiedzi na zapytania. Oprócz standardowych rejestrów Discrete Inputs, Coils, Input Register, Holding Register również rejestrów diagnostycznych (funkcja 0x08) oraz opisu urządzenia slave (funkcja 0x11), Dowolna konfiguracja parametrów transmisji (parametry połączenia, maksymalny czas oczekiwania na odpowiedź). 48
Protokół Modbus Przykład użycia funkcji zapisu rejestrów (kod 0x10) 49
Przykłady transmisji 50
Przykłady transmisji 51
Przykłady transmisji 52
Przykłady transmisji 53