
FAUT_MOD to biblioteka programowa dla sterowników PLC WAGO, zapewniająca zaawansowaną obsługę komunikacji Modbus TCP i Modbus RTU. Została zaprojektowana z myślą o automatyce przemysłowej, w której istotne są elastyczna wymiana danych, ograniczenie zbędnego ruchu komunikacyjnego oraz integracja urządzeń różnych producentów.
Biblioteka obsługuje odczyt i zapis rejestrów Modbus oraz dwukierunkową wymianę danych z wykorzystaniem wspólnego obszaru pamięci. Funkcje ReadWrite i OnValueChange upraszczają implementację komunikacji i pozwalają ograniczyć liczbę niepotrzebnych transakcji.
FAUT_MOD obsługuje dwa popularne warianty protokołu Modbus:
Wspólna koncepcja obsługi danych ułatwia stosowanie podobnej logiki aplikacyjnej niezależnie od medium komunikacyjnego.
Tryb ReadWrite łączy cykliczny odczyt rejestrów urządzenia Slave z możliwością zapisu danych Mastera, wykorzystując wspólny obszar pamięci.
Zmiana wartości w obszarze danych sterownika Master może inicjować zapis do urządzenia Slave, natomiast odczyt aktualizuje dane na podstawie odpowiedzi urządzenia. Takie rozwiązanie upraszcza wymianę danych w obu kierunkach i ogranicza potrzebę utrzymywania osobnych buforów aplikacyjnych dla odczytu i zapisu.
Logika obsługi operacji uwzględnia trwające zapytania, aby odpowiedź na odczyt nie nadpisywała danych oczekujących na zapis.
Funkcja OnValueChange wykrywa zmiany wartości w skonfigurowanym obszarze danych i inicjuje zapis do urządzenia Slave dopiero wtedy, gdy zmiana rzeczywiście wystąpi.
Jeżeli dane pozostają niezmienione, biblioteka nie wysyła kolejnych zapisów tych samych wartości wyłącznie w celu ich ponownego przesłania. Może to zmniejszyć obciążenie magistrali RS-485 lub sieci Ethernet, ograniczyć liczbę transakcji i lepiej wykorzystać dostępny czas komunikacyjny.
FAUT_MOD dobiera funkcję Modbus do liczby wykrytych zmian:
Wykorzystanie FC06 do zapisu pojedynczego słowa eliminuje konieczność przesyłania całego bloku danych, gdy zmianie uległa tylko jedna wartość. FC16 umożliwia natomiast przesłanie wielu rejestrów w jednym zapytaniu.
W obecnej logice FC16 obejmuje cały skonfigurowany obszar, a nie wyłącznie ciągłe grupy zmienionych rejestrów.
Biblioteka umożliwia konfigurację parametrów komunikacji i obszarów rejestrów, w tym:
Obszar wymiany danych w FAUT_MOD wskazywany jest za pomocą wskaźnika do pamięci, a nie przez sztywne powiązanie bloku komunikacyjnego z jedną, z góry określoną tablicą. Dzięki temu biblioteka może współpracować zarówno z tablicami rejestrów, jak i ze strukturami danych zdefiniowanymi przez użytkownika.
Przykładowo, sterownik może udostępniać do wysłania strukturę zawierającą parametry pracy, wartości zadane, stany i dane pomiarowe, a drugi sterownik może odbierać dane bezpośrednio do odpowiadającej jej struktury. Przy zgodnych definicjach struktur i mapowaniu danych ułatwia to odwzorowanie interfejsu komunikacyjnego między sterownikami PLC.
Wykorzystanie wskaźników ogranicza konieczność ręcznego przepisywania poszczególnych pól i tworzenia dodatkowych buforów wyłącznie na potrzeby komunikacji. Ułatwia również ponowne wykorzystanie tych samych bloków funkcyjnych dla różnych obszarów pamięci.
FAUT_MOD udostępnia informacje o stanie operacji, pozwalając rozróżnić zapytanie w trakcie realizacji, poprawnie zakończoną operację i błąd komunikacji.
W przypadku Modbus RTU gotowość portu szeregowego należy odróżnić od dostępności urządzenia Slave. Obecność urządzenia potwierdza poprawna odpowiedź na zapytanie, a brak odpowiedzi wykrywana jest na podstawie przekroczenia czasu oczekiwania (timeout).
Biblioteka może być wykorzystywana do komunikacji sterowników PLC z urządzeniami obsługującymi Modbus TCP lub Modbus RTU, takimi jak:
Połączenie obsługi Modbus TCP i RTU, trybu ReadWrite, automatycznego wykrywania zmian OnValueChange oraz doboru funkcji zapisu FC06 i FC16 pozwala budować czytelne i efektywne programy komunikacyjne dla sterowników PLC.
FAUT_MOD upraszcza wymianę danych z urządzeniami Modbus, pomaga ograniczać zbędne transakcje i ułatwia dopasowanie komunikacji do struktury danych aplikacji automatyki przemysłowej.