Czym jest RS485?
RS485 to norma transmisji elektrycznej, a nie protokół. Dane przesyłane są jako różnica napięć między dwoma przewodami, zwykle oznaczanymi A i B, czasem D+ i D−. Ponieważ odbiornik ocenia tylko różnicę, zakłócenia działające jednakowo na oba przewody w dużej mierze się znoszą. Dlatego RS485 działa też w szafach z przemiennikami częstotliwości i na długich dystansach.
Klasycznie jeden segment obsługuje 32 uczestników (unit loads); nowoczesne nadajniki obciążają magistralę tylko ułamkiem tego. Linia może mieć około 1200 m, przy wysokich prędkościach mniej.
Przez RS485 działają różne protokoły, oprócz Modbus RTU na przykład BACnet MS/TP. W przypadku licznika energii RS485 dopiero razem z protokołem wiadomo, jak go odczytać.
Jak prawidłowo okablować magistralę RS485?
- Układać liniowo: od urządzenia do urządzenia, bez gwiazdy i bez długich odgałęzień.
- Na obu końcach linii umieścić po jednym rezystorze terminującym 120 Ω, nie przy każdym urządzeniu.
- Stosować skrętkę ekranowaną, najlepiej o impedancji falowej około 120 Ω.
- Prowadzić masę odniesienia (GND), jeśli urządzenia są daleko od siebie lub zasilane z różnych źródeł.
- We wszystkich urządzeniach ustawić tę samą prędkość, parzystość i bity stopu.
Najczęstsze pułapki przy budowie magistrali opisuje artykuł Modbus RTU przez RS-485: pięć najczęstszych pułapek.
Czym jest Modbus RTU?
Modbus to otwarty protokół opracowany przez firmę Modicon w 1979 roku dla sterowników. RTU oznacza Remote Terminal Unit i określa binarny wariant dla linii szeregowych. Master, na przykład PLC, rejestrator danych lub system zarządzania energią, wysyła zapytanie pod adres slave’a i odpowiada tylko to urządzenie. Slave nigdy nie nadaje z własnej inicjatywy.
Telegram składa się z adresu, kodu funkcji, danych i sumy kontrolnej CRC16. Między dwoma telegramami jest przerwa co najmniej 3,5 znaku, po której urządzenia rozpoznają początek i koniec.
| Kod funkcji | Znaczenie | Typowe zastosowanie |
|---|---|---|
| 03 | Odczyt rejestrów holding | Wartości pomiarowe i ustawienia |
| 04 | Odczyt rejestrów input | Wartości pomiarowe |
| 06 | Zapis jednego rejestru | Zmiana ustawienia |
| 16 | Zapis wielu rejestrów | Zapis kilku wartości w jednym bloku |
Jak prawidłowo odczytywać rejestry Modbus?
Modbus zna tylko rejestry 16-bitowe. Stan licznika 32- lub 64-bitowy rozkłada się na dwa lub cztery kolejne rejestry. To, czy słowo starsze jest pierwsze, ustala każdy producent. Jeśli system podaje bezsensowne wartości, zwykle zamieniona jest kolejność bajtów lub słów.
Różni się też numeracja adresów: niektóre instrukcje liczą od 0, inne od 1. Jeśli wartość jest przesunięta dokładnie o jeden rejestr, prawie zawsze to jest przyczyną.
Kiedy Modbus RTU przez RS485 jest właściwy?
Modbus RTU pasuje, gdy sterownik lub rejestrator odpytuje bezpośrednio liczniki w tej samej szafie lub budynku, a do liczników nie prowadzi żadna sieć. Przy wielu licznikach w kilku budynkach lub kilku systemach docelowych opłaca się bramka. Porównanie z wariantem sieciowym znajdą Państwo w artykule Modbus TCP czy Modbus RTU? oraz na stronie Czym jest Modbus TCP?.
RS485 i Modbus RTU z urządzeniami EMU
Licznik energii RS485 EMU Professional II obsługuje Modbus RTU, jako EMU Professional II 3/100 do podłączenia bezpośredniego do 100 A lub jako 3/5 do podłączenia przez przekładniki.
EMU M-Center ma dwa porty RS485, odczytuje do 64 urządzeń Modbus RTU i przekazuje wartości przez BACnet IP lub MQTT.