Protokół komunikacji ModBus falownika L200
Procedura transmisji
Transmisję pomiędzy zewnętrznym urządzeniem sterowniczym a falownikiem przedstawia poniższy opis
• Zapytanie - ramka nadana z zewnętrznego urządzenia sterowniczego (master) do falownika (slave)
• Odpowiedź - ramka nadana z falownika (slave) do zewnętrznego urządzenia sterującego (master
Falownik nada odpowiedź tylko w sytuacji, gdy wcześniej otrzymał prawidłowe zapytanie z zewnętrznego urządzenia sterowniczego. Każda ramka ma następującą postać:
Format ramki |
Czas przerwy rozpoczęcia wiadomości |
Adres Slave-a |
Kod funkcji |
Dana |
Sprawdzenie sumy kontrolnej CRC |
Czas przerwy zakończenia wiadomości |
Konfiguracja przesyłanej wiadomości: Zapytanie
Adres Slave-a:
• Jest to numer od 1 do 32 przypisany każdemu z falowników (slave-ów). (Tylko falownik o adresie takim samym jak adres slave-a zamieszczony w zapytaniu, może odebrać to zapytanie)
• Kiedy adres slave-a jest określony w zapytaniu jako "0", zapytanie to może być adresowane do wszystkich falowników jednocześnie (Broadcasting)
• Podczas broadcasting-u nie jest możliwe nadawanie i odbiór danych
Dana:
• Ustawiana jest tutaj funkcja rozkazu
• Format danych używanych w falowniku SJ200 musi korespondować z formatem danych ModBus pokazanym poniżej
Nazwa danej | Opis |
Status wejść/wyjść binarnych | Binarna dana, która może być sprawdzona i zmieniona (dł.1 bitu) |
Rejestr | 16-bitowa dana, która może być sprawdzona i zmieniona |
Kody funkcji:
Określają funkcje, które falownik ma wykonać. Kody funkcji dostępnych dla falownika SJ200 są wymienione poniżej:
Kod funkcji | Funkcja rozkazu | Maksymalny rozmiar danych (bity dostępne na jedną wiadomość) | Maksymalna liczba elementów danych dostępna na jedną wiadomość |
0 1 h | Odczyt statusu wejść/wyjść binarnych | 4 | 32 wejścia/wyjścia binarne (w bitach) |
0 3 h | Odczyt rejestru | 4 | 4 rejestry ( w bajtach) |
0 5 h | Ustawianie wejścia/wyjścia binarnego | 1 | 1 wejście/wyjście binarne (w bitach) |
0 6 h | Zapis do pojedynczego rejestru | 1 | 1 rejestr (w bajtach) |
0 8 h | Funkcja testująca | — | — |
0 F h | Ustawienie grupy wejść/ wyjść binarnych | 4 | 32 wejścia/wyjścia binarne (w bitach) |
1 0 h | Zapis do grupy rejestrów | 4 | 4 rejestry (w bajtach) |
Suma kontrolna:
ModBus-RTU używa sumy kontrolnej CRC (Cyclic Redundancy Check) dla sprawdzenia błędu danych
• Kod CRC jest 16 bitową daną generowaną poprzez sprawdzanie każdego bitu, każdej 8-bitowej danej
• Kod CRC jest generowany przez generator polinominalny liczący CRC-16 (X16+X15+...+X2+X1)
Początek i koniec wiadomości:
Całkowity czas oczekiwania na odpowiedź jest to czas pomiędzy przyjęciem zapytania od mastera a transmisją odpowiedzi z falownika.
• Długość czasu przerwy rozpoczęcia/zakończenia wiadomości jest definiowana jako 3,5 bajta
(tj. 24 bity).
• Całkowity czas oczekiwania na odpowiedź będzie więc równy czasowi przerwy rozpoczęcia/ zakończenia wiadomości (dł. 3,5 bajta) + C078 (czas rozpoczęcia nadawania odpowiedzi)
Konfiguracja wiadomości: Odpowiedź
Czas wymagany transmisji:
• Jest to okres czasu od przejęcia zapytania od mastera, do transmisji odpowiedzi przez falownik. Jest sumą czasów przerwy rozpoczęcia/zakończenia wiadomości + C078 (czas rozpoczęcia nadawania odpowiedzi).
• Po otrzymaniu odpowiedzi od falownika master musi zapewnić czas przerwy rozpoczęcia/ zakończenia wiadomości (24 bity) lub dłuższy, zanim wyśle kolejne zapytanie do falownika.
Prawidłowa odpowiedź:
• Otrzymując zapytanie zawierające kod funkcji 08h - funkcja testująca, falownik odsyła odpowiedź o takiej samej zawartości co zapytanie
• Otrzymując zapytanie zawierające kod funkcji 05h, 06h, 0Fh lub 10h - ustawianie wejścia/ wyjścia binarnego, ustawianie grupy wejść/wyjść binarnych, zapis do pojedynczego rejestru lub zapis do grupy rejestrów, falownik odeśle bezpośrednio zapytanie jako odpowiedź
• Otrzymując zapytanie zawierające kod funkcji 01h lub 03h - odczyt statusu wejść wyjść binarnych lub odczyt rejestru, falownik odeśle jako odpowiedź odczytane dane razem z takim samym adresem slave-a i kodem funkcji , jak tym zawartym w zapytaniu.
Odpowiedź w sytuacji kiedy pojawi się błąd:
• W sytuacji, kiedy w zapytaniu znajdzie się jakikolwiek błąd (za wyjątkiem błędu transmisji), falownik odsyła odpowiedź zastrzeżoną i nie wykonuje żadnego polecenia
• Można sprawdzić rodzaj błędu przez sprawdzenie kodu funkcji w odpowiedzi zastrzeżonej. Kod funkcji w tej odpowiedzi jest sumą kodu funkcji z zapytania i 80h.
• Rodzaj błędu jest rozpoznawalny na podstawie kodu zastrzeżonego
Pole konfiguracyjne |
Adres slave-a |
Kod funkcji |
Kod zastrzeżony |
CRC-16 |
Kod zastrzeżony | Opis |
0 1 h | Podana funkcja nie jest obsługiwana |
0 2 h | Podany adres nie został odnaleziony |
0 3 h | Format określonej danej nie jest akceptowalny |
2 1 h | Wartość wpisanej w rejestr danej jest z poza zakresu nastaw falownika |
2 2 h |
• Podane niżej funkcje nie są dostępne dla falownika: - Funkcja zmiany zawartości rejestru, która nie może być zmieniona podczas obsługi falownika - Funkcja dopuszczająca rozkaz wykonania komendy ENTER podczas biegu silnika (UV) - Funkcja wpisywania do rejestru podczas wystąpienia błędu (UV) - Funkcja wpisywania do rejestru (lub ustawianie wej./wyj. binarnego) przeznaczonego tylko do odczytu |
Brak odpowiedzi:
• W niżej określonych przepadkach falownik ignoruje zapytanie i nie wysyła odpowiedzi:
• Kiedy otrzyma zapytanie broadcasting-owe
• Kiedy wykryje błąd transmisji przy przyjmowaniu odpowiedzi
• Kiedy adres slave-a zawarty w zapytaniu nie pokrywa się z adresem falownika
• Kiedy czas przerwy pomiędzy kolejnymi wiadomościami jest krótszy niż 24 bity (3,5x bajtów)
• Kiedy długość danej z zapytania jest niewłaściwa
NOTATKA: Sprawdź i utrzymuj odpowiednie czasy reakcji mastera. Ponów procedurę zapytania mastera, w sytuacji braku odpowiedzi od slave-a po upływie czasu spodziewanej odpowiedzi