Fatek – praca jako slave w protokole ModBus

Opublikowano

8 stycznia 2020

Domyślnie porty komunikacyjne Fateka ustawione są do pracy w protokole Fatek.

Aby Fatek stał się slave’m w protokole ModBus (RTU lub ASCII) należy zmienić protokół na danym porcie (możliwość zmiany protokołu nie dotyczy portu 0, który może działać tylko w protokole Fatek).

Zmiany tej dokonujemy z poziomu WinProladder’a z menu PLC->Setting-> Port Parameter (gdzie mam dostęp do zmiany zarówno protokołu jak i pozostałych parametrów danego portu) lub z
menu PLC->Setting-> Protocol (gdzie mamy możliwość tylko zmiany protokołu dla portów):

W oknie ustawień portu zmieniamy protokół na ModBus ASCII lub RTU, w zależności od tego, który z tych protokołów wspiera urządzenie master, które będzie po tym porcie odpytywało Fateka o jego zmienne.

Kolejną czynnością jest dopasowanie parametrów portu zgodnie z zasadą komunikacji szeregowej, która mówi, że: prędkość komunikacji, parzystość, liczba bitów danych oraz bitów stopu, musi być taka sama na wszystkich urządzeniach w tej samej sieci (w sieci RS485 urządzeń tych może być więcej niż dwa). Zatem ustalamy/sprawdzamy parametry komunikacji na sterowniku master a na porcie w Fatek’u ustawiamy takie same.

W protokole ModBus RTU musi być 8 bitów danych w ramce komunikacyjnej. Dlatego Winprolader automatycznie ustawi tą ilość po wybraniu tego protokołu, nawet gdy nie zrobimy tego sami.

Od tego momentu PLC Fatek będzie odpowiadał na zapytania modbusowe kierowane na jego port od sterownika master, pod warunkiem, że zapytania te będą kierowane do jego numeru stacji. Ostatnią czynnością jest właśnie ustalenie unikalnego w sieci numeru stacji Fatek’a (każde urządzenie musi mieć inny). Dokonujemy tego z menu PLC->Setting-> Station number:

Mapowanie adresów modbusowych na adresy sterownika:

Aby móc odpytać konkretną zmienną Fatek’a, należy się posłużyć poniższą tabelą mapowania adresów:

Wszystkie zmienne dyskretne w Fatek’u (wyróżnione w powyższej tabeli na biało) są typu Coil – 0x (wyjścia dyskretne). Dlatego należy je odpytywać funkcją modbusową Read Coil Status (01). Natomiast można je ustawiać funkcjami: Force Single Coil (05) lub Force Multiple Coils (15, 0X0F).

Wszystkie zmienne rejestrowe w Fatek’u (wyróżnione w powyższej tabeli na niebiesko) są typu Holding Register – 4x. Dlatego należy je odpytywać funkcją modbusową Read Holding Register (03). Natomiast można je ustawiać funkcją Preset Multiple Registers (16, 0X10).