|
Długość ramki "response" na podstawie ramki"query" 1 Rok, 3 mies. temu
|
|
|
Witam!
Czy jest możliwość jednoznacznego obliczenia długości ramki oczekiwanej (response) na podstawie ramki zapytania (query)? Jeśli tak prosiłbym o wyjaśnienie.
|
|
Seba
|
|
|
|
|
O:Długość ramki "response" na podstawie ramki"query" 1 Rok, 3 mies. temu
|
|
|
Witam.
O jaką komunikację dokladnie chodzi, MODBUS-RTU ??
|
|
|
|
|
|
|
O:Długość ramki "response" na podstawie ramki"query" 1 Rok, 3 mies. temu
|
|
|
Chodzi o Modbus Ascii. Przepraszam, za nie jasne wyrażenie.
|
|
Seba
|
|
|
|
|
O:Długość ramki "response" na podstawie ramki"query" 1 Rok, 3 mies. temu
|
|
|
Czy jest możliwość jednoznacznego obliczenia długości ramki oczekiwanej (response) na podstawie ramki zapytania (query)? Jeśli tak prosiłbym o wyjaśnienie
Można tą długośc określić. Wynika ona z protokołu Modbus. Przykładowo urządzenie Master wysyłajace zapytanie do Slave o odczyt N-rejestrów (funkcja 0x03) wysyła następującą ramkę
(przyklad na Modbus-RTU, dla modbus ASCII kazdy znak jest wysyłany jako osobna liczba)
Bajt0: Adres slave
Bajt1: Funkcja (0x03)
Bajt2: Ilosc rejstrów do odczytania HI
Bajt3: Ilosc rejestrow do odczytania LO
Bajt4: Adres początkowego rejstru HI
Bajt5: Adres początkowego rejstru LO
Bajt6: Adres początkowego rejstru HI
Bajt7: Suma CRC HI
Bajt8: Suma CRC LO
Urządzenie slave odpowie (co wynika z protokolu modbus)
Bajt0: Adres slave
Bajt1: Funkcja (0x03)
Bajt3: Ilosc bajtow do odebrania = Ilosc rejestrow do odczytania*2 <- bo rejestry w modbus są 2 bajtowe
Bajt4: Rejestr 1
Bajt5: Rejestr 2
BajtN: Rejestr n
BajtN+1: Suma CRC HI
BajtN+2: Suma CRC LO
Łaczna liczba bajtów które wysle Slave to: 5 + ilość rejestrów do odczytania x2
|
|
|
|
|
|
|