Protokół IO-Link z roku na rok zyskuje na popularności w automatyce przemysłowej. Trudno się temu dziwić — to rozwiązanie, które w stosunkowo prosty sposób pozwala rozszerzyć możliwości komunikacyjne maszyn i urządzeń, zapewniając nie tylko przesyłanie sygnałów, ale również dostęp do danych diagnostycznych, parametrów urządzeń oraz wygodnej konfiguracji czujników i elementów wykonawczych. W praktyce oznacza to większą elastyczność, łatwiejszy serwis oraz lepszy wgląd w stan procesu.
Rosnące zainteresowanie IO-Link wynika również z trendu coraz szerszej cyfryzacji przemysłu. Użytkownicy oczekują dziś od systemów sterowania nie tylko niezawodnej pracy, ale także prostego dostępu do informacji procesowych i możliwości szybkiej integracji urządzeń różnych producentów. IO-Link bardzo dobrze wpisuje się w te potrzeby, stając się standardem obecnym już nie tylko w dużych i kosztownych aplikacjach, ale również w mniejszych, bardziej budżetowych realizacjach.
W tym kontekście szczególnie interesująco wypadają sterowniki FATEK, które od lat cieszą się uznaniem dzięki bardzo dobremu stosunkowi jakości do ceny. Oferują one szerokie możliwości komunikacyjne, stabilną pracę oraz funkcjonalność, która w wielu zastosowaniach z powodzeniem konkuruje z rozwiązaniami znacznie droższymi. To właśnie dlatego coraz częściej wykorzystywane są nie tylko w prostych układach sterowania, ale także w bardziej zaawansowanych systemach wymagających integracji z nowoczesnymi urządzeniami obiektowymi.
W niniejszym artykule pokazujemy, jak zrealizować integrację komunikacji pomiędzy sterownikiem Fatek serii M a modułem IO-Link Master Balluff BNI00L1 z wykorzystaniem Modbus TCP. Na praktycznym przykładzie przedstawiamy konfigurację połączenia, mapowanie danych oraz sposób odczytu i przetwarzania informacji z urządzeń IO-Link. To dobry punkt wyjścia, aby zobaczyć, że IO-Link w sterownikach FATEK to rozwiązanie nie tylko możliwe, ale również praktyczne i opłacalne — i to nie tylko w jednej, konkretnej aplikacji.
1. Wprowadzenie
Niniejsza instrukcja opisuje konfigurację oraz wymianę danych z modułem IO-Link Balluff BNI00L1.
Do modułu IO-Link master podłączone są dwa urządzenia:
- do portu X01: przycisk z lampką, przycisk podłączony do wejścia cyfrowego (pin 2 jako wejście cyfrowe), lampka podłączona do wyjścia cyfrowego (pin 4 jako wyjście cyfrowe),
- do portu X02: przetwornik położenia Balluff BTL40CW o zakresie pomiarowym 400 mm, pracujący w trybie IO-Link.
W systemie zastosowano sterownik PLC Fatek MQ2M3-1616J. Komunikacja pomiędzy sterownikiem a modułem IO-Link realizowana jest poprzez sieć Ethernet z wykorzystaniem protokołu Modbus TCP.
Adres IP sterownika PLC wynosi 192.168.100.10, natomiast adres modułu IO-Link master 192.168.100.20.
Konfiguracja sterownika Fatek realizowana jest w środowisku programistycznym UperLogic.
Celem niniejszej instrukcji jest przedstawienie konfiguracji komunikacji Modbus TCP oraz poprawnego odczytu danych procesowych z przetwornika BTL40CW.
Zakłada się podstawową znajomość obsługi sterowników Fatek oraz środowiska UperLogic.
Moduł IO-Link został wcześniej skonfigurowany. Port X01 pracuje w trybie wejścia/wyjścia cyfrowego, natomiast port X02 pracuje w trybie IO-Link i obsługuje przetwornik położenia BTL40CW (Rys.1.1).

Rys. 1.1
2. Przygotowanie projektu
W nowo utworzonym projekcie należy skonfigurować komunikację Modbus TCP.
W drzewie projektu należy kliknąć prawym przyciskiem myszy pozycję Tabele Modbus Master, a następnie wybrać opcję Dodaj Tabelę Modbus Master (Rys. 2.1).

Rys. 2.1
W otwartym oknie edycji tabeli należy ustawić następujące parametry (3):
Typ tabeli: Tabele Modbus TCP [FUN152 MD1],
Nazwa tabeli: BNI00L1,
Adres tabeli: R0,
Następnie należy zatwierdzić ustawienia przyciskiem OK (Rys. 2.2).

Rys. 2.2
Po utworzeniu tabeli Modbus TCP należy zapoznać się z mapą rejestrów modułu IO-Link master (Rys. 2.3), która określa sposób dostępu do danych procesowych z poszczególnych portów urządzenia.


Rys. 2.3
W tabeli komunikacyjnej należy zdefiniować adres IP urządzenia IO-Link Master (Rys. 2.4).
W polu Zdalne IP należy wpisać adres: 192.168.100.20 (5).
Następnie należy dodać komendy komunikacyjne za pomocą przycisku Dodaj (6).
Na podstawie dokumentacji modułu IO-Link należy wprowadzić właściwe adresy rejestrów Modbus oraz przypisać je do odpowiednich rejestrów sterownika PLC, w których będą zapisywane lub odczytywane dane.
Należy skonfigurować następujące operacje (7):
- Odczyt danych procesowych z portu X01
Rejestr PLC: R1100
Adres Modbus: 401101 (1100)
(przesunięcie o +1 wynika z adresowania od 0 w dokumentacji modułu) - Odczyt danych procesowych z portu X02
Rejestr PLC: R1200
Adres Modbus: 401201 (1200) - Odczyt stanu wejść cyfrowych
Rejestr PLC: R2000
Adres Modbus: 402001 (2000) - Zapis stanu wyjścia cyfrowego
Rejestr PLC: R2001
Adres Modbus: 402002 (2001)
Po uzupełnieniu wszystkich komend należy zatwierdzić konfigurację przyciskiem OK (8).

Rys. 2.4
3. Program komunikacji i przetwarzania danych
Następnie należy utworzyć program w sterowniku PLC umożliwiający:
- odczyt pozycji z przetwornika położenia,
- odczyt stanu przycisku,
- sterowanie lampką.
Założenie działania:
po naciśnięciu przycisku załączana jest lampka z częstotliwością 1 Hz.
Przed implementacją programu należy zapoznać się ze strukturą rejestrów danych procesowych dla wejść i wyjść (Rys. 3.1).
- rejestr wejściowy: 2000
- rejestr wyjściowy: 2001
Aby odczytać stan przycisku:
- należy odczytać bit 8 rejestru 2000
Aby załączyć lampkę:
- należy wysterować bit 0 rejestru 2001

Rys. 3.1
Program składa się z dwóch głównych bloków.
Pierwszy blok odpowiada za cykliczną wymianę danych poprzez Modbus TCP (Rys. 3.2).
Blok NCR realizujący komunikację:
- wyzwalany jest sygnałem zegarowym 10 Hz, co zapewnia cykliczny odczyt danych,
- odpowiada za wymianę danych pomiędzy sterownikiem PLC a modułem IO-Link.
Dodatkowo:
- marker M8 wykorzystany jest jako bit stanu przycisku,
- marker M16 wykorzystany jest jako bit sterujący miganiem lampki.

Rys. 3.2
Drugi blok programu odpowiada za odczyt oraz przetwarzanie wartości pozycji (Rys. 3.3).
Mapowanie danych:
- rejestr wejściowy mapowany jest do markerów M0–M15, stan przycisku znajduje się na bicie 8, co odpowiada M8,
- rejestr wyjściowy mapowany jest do markerów M16–M31, sterowanie lampką odbywa się przez bit 0, co odpowiada M16.

Rys. 3.3
Wartość pozycji z przetwornika położenia przesyłana jest jako liczba wielobajtowa, dlatego przed jej użyciem konieczna jest konwersja.
Należy wykonać zamianę kolejności słów oraz bajtów, co wynika z różnic w reprezentacji danych pomiędzy urządzeniem IO-Link a sterownikiem PLC.
Po konwersji uzyskiwana jest wartość surowa.
Dla zastosowanego czujnika wartość 400000 odpowiada pozycji 400 mm. W celu uzyskania wartości w milimetrach, z zachowaniem dokładności pomiaru, należy przekształcić wartość surową na typ zmiennoprzecinkowy, a następnie dokonać jej skalowania poprzez podzielenie przez 1000.
4. Weryfikacja
Po wgraniu programu do sterownika należy przejść do trybu monitoringu online, a następnie utworzyć kartę stanu obejmującą następujące rejestry (Rys. 4.1):
R1200–R1202 – odczyt pozycji z liniału,
R2000 – odczyt wejść cyfrowych,
R2001 – zapis wyjść cyfrowych.
Na podstawie wartości rejestrów można zweryfikować poprawność działania systemu.
Wartość 1 w rejestrze R1200 wskazuje na prawidłowość odczytywanych danych z przetwornika. Rejestry R1201 i R1202 przedstawiają pozycję odczytywaną z przetwornika, po konwersji wynosi ona 285,69501 mm.
W rejestrze R2000 ustawienie bitu 8 na wartość 1 oznacza, że przycisk został wciśnięty.
W rejestrze R2001 ustawienie bitu 0 na wartość 1 oznacza, że wyjście cyfrowe (lampka) zostało załączone.

Rys. 4.1


















