Do Projektu iAutomatyka dołączyli:

https://iautomatyka.pl/wp-content/uploads/2018/10/IMG_20180911_164820.jpg

Praktyczne zastosowanie IO-Link na przykładzie dalmierza ifm O5D150

autor: Przemek Czech.

W związku z rosnąca popularnością IO-Link oraz nie tak dawno wydanym artykułem przez zespół iAutomatyka (link tutaj), który jest dobrym wstępem teoretycznym do tego protokołu. Postanowiłem, że i ja napiszę coś w tej sprawie. W tym artykule podłączymy dalmierz laserowy ifm O5D150 (https://www.ifm.com/pl/pl/product/O5D150) do mastera IO-Link AL1100 oraz przeprowadzimy konfigurację sprzętową w środowisku TIA Portal. Następnie stworzymy prosty program, który pozwoli nam na odczytanie odległości z tego czujnika.

Polecam przed przystąpieniem do analizy artykuły o zapoznanie się z wyżej wymienioną publikacją, gdyż nie będę się bardzo rozwodził nad teorią, a raczej zajmiemy się praktycznym podejściem do tematu.

Obiekt naszych badań czyli czujnik ifm OD150 może pracować jako czujnik binarny. Jednak przy pomocy IO-Link możemy zrobić z niego dalmierz. Producent podaje, że czujnik ten pracuje w zakresie od 0 do 2 m. My jednak, przy pomocy IO-Link, zwiększymy ten zakres aż do 3 m. Więcej czujników optycznych ifm znajdziesz na TEJ stronie.

Warto wspomnieć, że czujnik OD150 posiada wyświetlacz, na którym wyświetlana może być aktualna mierzona odległość. Jeżeli chcielibyśmy wyświetlać inne wartości procesowe wykorzystać można wyświetlacze IO-Link.

Jest to bardzo ciekawe rozwiązanie. Umożliwia podgląd aktualnych wartości ludziom pracującym przy maszynach i jednocześnie eliminuje konieczność wykorzystywania wielokrotnie droższych paneli HMI. Dodatkowo jest to rozwiązanie pracujące w technologii IO-Link, więc jego konfiguracja jest bardzo prosta.


Jeżeli IO-Link Master nie posiada wystarczającej liczby wejść/wyjść to możesz zaopatrzyć się w moduły rozproszone wejść lub wyjść. Produkty ifm występują w dwóch wersjach: z klasą ochrony IP68 lub IP69K i mogą być stosowane do tradycyjnego przemysłu (ochrona przed cieczami, smarami, pyłem) lub do specjalistycznych zastosowań w przemyśle spożywczym.

Okablowanie

Do podłączenia czujnika do Mastera IO-Link potrzebujemy standardowego przewodu 4 x 0,34 mm2. Przewód ten nie musi być ekranowany, co rzadko się zdarza przy wykorzystaniu jakiejkolwiek komunikacji. Dzieję się tak, ponieważ IO Link pracuje w standardzie 24 V. Przez to jest bardzo mało podatny na zakłócenia i może śmiało pracować w towarzystwie obwodów wysoko-prądowych. Jednak trzeba pamiętać, że długość naszego przewodu od Mastera do czujnika nie powinna przekraczać 20 m (z autopsji mogę dodać, że całkiem nieźle pracuje nawet przy odległościach do 30 m, ale żaden producent nie zapewni wam wtedy stabilności połączenia).

Schemat podłączenia przedstawia ilustracja.

IO – Link wykorzystuje do komunikacji tylko 3 przewody (1: brązowy – 24 VDC, 3: niebieski – 0 VDC, 4: czarny – wykorzystywany do komunikacji).

Przyjrzyjmy się teraz budowie Mastera AL1100.

Z racji tego, że pracować będziemy ze sterownikiem Siemensa S7 1200 1211C (jest to najuboższa wersja z rodziny S7 1200) nie mamy zbyt szerokiego spektrum protokołów komunikacyjnych, więc jesteśmy nie jako skazani na Profinet.

Skoro korzystamy z Profinetu, to nie obejdzie się bez skrętki  (im lepiej ekranowana tym lepiej). Nasz master wyposażony jest w dwa porty sieciowe, które pracują jako switch. W wielu przypadkach zmniejsza to ilość przewodu, ponieważ możemy z naszego modułu połączyć się z następnym. Wyklucza to konieczność wciągania kolejnej skrętki do switcha w szafie (na ilustracji zaznaczone „1”).

Nie obejdziemy się również bez zasilania. Tutaj bez żadnych fajerwerków po prostu podajemy 24 VDC (numer „2” na ilustracji).

Ostatnim elementem, w który wyposażony jest nasz Master, są porty IO-Link. W tej wersji modułu mamy do dyspozycji tylko 4 porty, ale trzeba zaznaczyć, że jest to najprostszy Master z całej serii ifm.

Gotowe stanowisko do testów prezentuję na poniższym zdjęciu:

Jeżeli mamy tak okablowane stanowisko, możemy zająć się częścią programową.

Programowanie

Z racji tego, że pracujemy z Siemensem korzystać będziemy z Tia Portal w wersji 14. Do dalszej pracy potrzebować będziemy dwóch rzeczy. Pierwszą jest jest plik GSDML (plik konfiguracyjny o rozszerzeniu *.XML) Mastera IO-Link, który zaimportujemy do Tia Portal. Druga rzecz to dokumentacja techniczna od producenta czujnika, w której znajdziemy kluczowe informacje do skonfigurowania oraz odczytania danych z czujnika.

Plik GSDML znajdziemy tutaj, a PDF z dokumentacją tutaj.

Uruchamiamy Tia Portal, dodajemy sterownik do konfiguracji oraz ustawiamy IP na 192.168.0.1 (jest to IP, które Siemens ustawia domyślnie dla każdego nowo dodanego sterownika).

Kolejnym krokiem jest dodanie wcześniej wspomnianego już pliku GSDML. Na górnej belce znajdujemy:

Options -> Menage general station description file (GSD)

Pojawia nam się okno jak na ilustracji. Aby dodać do konfiguracji sprzętowej nasz Master IO-Link klikamy (1), odnajdujemy nasz plik oraz klikamy OK. Następnie zaznaczamy go (2) i klikamy Install  (3).

Nie pozostaje nam teraz nic, poza dodaniem go do konfiguracji sprzętowej. W Project tree klikamy Devices and networks (1). Program przenosi nas do konfiguracji sieci. Teraz musimy wyszukać nasz sprzęt. Przechodzimy do Hardware Catalog (2) i w polu <Search> (3) wpisujemy AL1100. Chwytamy nasz moduł i przeciągamy na pole Devices and Network (4).

Przyszła kolej na ustawienie adresu IP modułu IO-Link oraz zestawienie komunikacji ze sterownikiem.

Zaznaczamy nasz moduł (1) i klikamy Properties(2). Przechodzimy do Profinet interface [X1] ->Ethernet addresses. W tym miejscu ustawiamy nasz adres IP – 192.168.0.2 (3). Po tej konfiguracji musimy zestawić połączenie pomiędzy urządzeniami. Tutaj od razu przestrzegam, aby przeciągnąć połączenie od sterownika do modułu, nigdy w drugą stronę (4).

A teraz trochę teorii. Zasada działania każdego urządzenia IO-Link polega na udostępnianiu danych procesowych do sterownik PLC.

Dane te mogą być wysyłane w sposób dwojaki:

  • przy pomocy komunikacji synchronicznej – sterownik wysyła i odbiera dane z urządzenia w sposób ciągły (ze stałym interwałem czasowym, jak w przypadku Profinetu),
  • przy pomocy komunikacji asynchronicznej – dane wysyłane i odbierane są na żądanie. Ten sposób daje dużo większe możliwości niż komunikacja synchroniczna (chociażby zmiana parametrów czujników/aktuatorów), jednak jest to sposób trudniejszy. Zwłaszcza dla osób nieobytych ze sterownikami PLC.

Komunikacja synchroniczna polega na dodaniu do obrazu wejść/wyjść sterownika swoich danych, dzięki czemu nie interesuje nas jak przebiega proces komunikacji, a pracujemy jak na fizycznych wejściach/wyjściach (Q10.1  I7.0, IB10, IW20). Skąd mamy jednak wiedzieć ile bajtów/bitów udostępnia dany czujnik/aktuator ?

Z pomocą przychodzi nam dokumentacja od producenta. Dlatego tak ważna jest w przypadku IO-Link praca z dokumentacją. Zajrzyjmy więc do niej.

Informację na temat ilości wymienianych danych znajdziemy na stronie 3 naszego manuala (1). Jest to 16 bitów, czyli dwa bajty, czyli jedno słowo (Word).

Co można od razu zauważyć, na zerowym bicie mamy Switch Point, czyli stan niski dopóki nasz dalmierz mierzy odległość mniejszą od wielkości zadanej (styk NO) lub stan wysoki poniżej stanu zadanego (styk NC) w zależności od konfiguracji. Następnie kolejne 3 bity są bitami pustymi, a pozostałe bity słowa to odległość. Aby się do niej dostać będziemy musieli przesunąć całe słowo o 4 bity w prawo. Do tego jeszcze wrócimy.

Wracamy do konfiguracji sprzętowej. Klikamy dwukrotnie na nasz Master IO-Link. Otwiera nam się moduł konfiguracji. Jak widzimy po prawej stronie na razie nasz moduł nie udostępnia żadnych I/O.

Pierwsze co musimy zrobić, to dodać nasze porty IO-Link. Po prawej stronie w kategorii Hardware Catalog (1) rozwijamy po kolei Module -> IO-Link Master StandardLine i klikamy dwukrotnie 4 Ports (2). Dodaliśmy własnie do konfiguracji 4 porty IO-Link i przy okazji pojawiła się w kategoria Submodules w Hardware Catalog. Rozwińmy ją. Widzimy różne kategorie. Omówmy je pokrótce:

  • Digital + PQI – port pracuje jako zwykłe wejście/wyjście,
  • Disabled – port wyłączony,
  • IO-Link Input + Output + PQI – urządzenie udostępnia dane wejściowe oraz wyjściowe, czyli prostszym językiem wysyłamy i odbieramy dane z urządzenia,
  • IO-Link Input + PQI – tylko odbieramy dane z urządzenia,
  • IO-Link Output +PQI -tylko wysyłamy dane do urządzenia.

Jak już wcześniej ustaliliśmy nasz czujnik tylko udostępnia dane. Wiec rozwijamy kategorie IO-Link Input + PQI (3). Teraz bardzo ważny moment, wybór ile danych potrzebujemy czytać. Od razu zaznaczam, że nie zawsze jest identyczna ilość do wyboru. Wtedy lepiej wybrać większą ilość bajtów, gdyż wybór mniejszej ilości bajtów od razu uruchamia diagnostykę. My potrzebujemy 2 bajty wiec klikamy dwukrotnie IO-Link In 2 Byte + PQI(4).

To koniec konfiguracji sprzętowej. Warto zapamiętać adres obrazu wejść, które udostępnia urządzenie (u nas I 68 – I 70). Najgorsze już za nami 🙂

Wgrywamy konfigurację do sterownika (Hardware and Software).

Po wgraniu na naszym sterowniku może pojawić się migająca dioda, może to oznaczać, że albo źle okablowaliśmy układ, źle przeprowadziliśmy konfigurację sprzętową lub nazwa naszego urządzenia w sieci Profinet jest inna, niż w naszym projekcie.

Aby nadać nazwę urządzeniu przechodzimy w tryb Online (1), następnie Devices and Networks (2), klikamy prawym przyciskiem na naszym urządzeniu i wybieramy Assign Device Name (3). Dalej mamy identyczną sytuację jak podczas wgrywania programu do sterownika. Skanujemy sieć, wybieramy urządzenie i klikamy Assign Name.

Przejdźmy do części programowej. Stwórzmy sobie blok danych, który będzie przechowywał nasze informacje wyciągnięte ze sterownika.

Klikamy na Add new block (1) znajdujący się w Project tree (2) -> Sterownik_PLC, (3) CPU 1211c -> Program Blocks(4)

Pojawia nam się okno tworzenia bloków oraz funkcji. Nadajemy naszemu blokowi danych nazwę DB_Dalmierz05D150 (1). Zaznaczamy, że chcemy stworzyć blok danych (2) i klikamy OK.

Otwieramy nowo stworzony obiekt i dodajemy dwie zmienne:

  • SwitchPoint – typu bool – przechowującą informacje o cyfrowym wyjściu czujnika,
  • Distance – typu int – mającą informacje na temat aktualnie mierzonej odległości.

Powtarzamy taką samą procedurę i tworzymy funkcję FC, która przekształci nasze dane procesowe.

Otwieramy ją i dodajemy jako parametr wejściowy zmienną typu WORD (1), która reprezentować będzie stan naszego obrazu wejścia urządzenia IO-Link oraz parametry wyjściowe typu WORD oraz BOOL (2) – od odległości oraz punktu przełączania czujnika.

Pierwszą rzeczą jaką zajmiemy się podczas programowania jest wyciągniecie stanu naszego punktu przełączania. Jak zauważyliśmy wyżej w dokumentacji informacja ta zawarta jest w pierwszym bicie słowa wejściowego. W naszej funkcji FC_DalmierzO5D150 obraz danych wejściowych reprezentuje lokalna zmienna wejściowa Dane_procesowe. Proces wyciągnięcia tej informacji przedstawia Netowork pierwszy, który chyba nie wymaga żadnego komentarza (warto zwrócić uwagę, że Tia Portal pozwala na wyciągniecie bezpośrednio informacji z każdego bitu bez potrzeby maskowania, a potem rzutowania WORDA na zmienną typu BIT).

Bardziej nas jednak interesuje wyciągnięcie informacji dotyczących mierzonej aktualnie odległości. Wracając do manuala widzimy, że jest ona zamieszczona w typie zmiennej INT, zapisanej na 12 bitach. Cała zagwozdka polega na tym, że nie są to pierwsze bity naszych danych procesowych. Aby uzyskać naszą odległość musimy przesunąć całego WORD’a o 4 bity w prawo (ponieważ pierwszy bit to SP, a kolejne 3 bity nie zawierają żadnych informacji).

Do wykonania takiej operacji wykorzystamy blok SHR (Shift Right).

Blok ten ma następujące parametry wejściowe:

  • IN – dane, które będą przesuwane (nasz obraz danych wejściowych dalmierza),
  • N – ilość bitów o które chcemy przesunąć (w naszym przypadku 4),  

oraz wyjściowe:

  • OUT –  wynik operacji po przesunięciu.

Blok SHR znajdziemy Instructions (1) -> Basic Instructions (2) -> Shift and Rotate(3) ->SHR

Nie pozostaje nam już nic innego, jak wywołać naszą funkcję w OB1 (Main) oraz wgrać program.

Otwierając przygotowany wcześniej przez nas blok danych możemy obserwować jak zachowuję się czujnik.

Jak widzimy, wszystko pracuję zgodnie z założeniami. Co ciekawe producent w nocie katalogowej zapewnia, że czujnik działa do 2m, a podczas komunikacji IO-Link śmiało pracuje nawet do 3,5 m (potwierdzona informacja).

Podsumowanie

Jak widzimy IO-Link pozwala znacząco rozszerzyć działanie czujników i aktuatorów, a to tylko jedno z możliwości wykorzystania tego protokołu. Dużo większe możliwości daje komunikacja asynchroniczna, która wykonuje się przy użyciu specjalnej biblioteki od Siemensa. Jest to już temat o wiele trudniejszy i chcąc go poruszyć w tym artykule wyszła by z niego niezła telenowela. Dużym plusem, który zauważyłem przeglądając rożne oferty jest to, że wdrożenie IO-Link do projektu nie jest tak wcale drogie, jak mogło by się wydawać. Więcej produktów, pracujących w technologii IO-Link, znajdziesz na stronie ifm.com.pl.

Podziękowania od ifm

Przed publikacją tego artykułu redakcja iAutomatyka.pl postanowiła wysłać informację do zespołu ifm. Firma ifm docenia kreatywność autora i chęć dzielenia się wiedzą. Tym samym dołączają do idei Projektu iAutomatyka.

Od ifm:

Autor w bardzo czytelny sposób pokazał, jak łatwo można rozpocząć przygodę z interfejsem IO-Link. Użyty do tego celu dalmierz laserowy był świetnym wyborem, gdyż nie jest skomplikowanym urządzeniem i pozwala szybko poznać zasadę działania systemu. Obecnie rynek automatyki przemysłowej bardzo szybko nasyca się rozwiązaniami wyposażonymi w IO-Link, co pozwala inżynierom na budowanie aplikacji opartych o IO-Link na coraz większą skalę. Z oferty ifm blisko 90% czujników jest już wyposażonych w IO-Link, a liczba ta stale rośnie.

Podczas wyboru i przypisania konkretnej struktury danych do portu Mastera IO-Link (w przypadku dalmierza opisanego w artykule było to „IO-Link In 2 Byte + PQI”), natykamy się na tajemnicze „PQI”. Rozwinięciem tego skrótu jest Port Qualifier Information. Jest to niepozorny, lecz bardzo ważny bajt danych, przypisany do każdej z możliwych konfiguracji. Informacji o PQI możemy doszukać się w instrukcji Mastera IO-Link (Link: https://www.ifm.com/mounting/7391215UK.pdf s.56). Monitorując stan poszczególnych bitów PQI otrzymujemy istotne informacje diagnostyczne, takie jak „Device Available”, „Device Error”, oraz „Port Qualifier”. Dzięki nim jesteśmy w stanie stwierdzić, czy dane urządzenie IO-Link jest podłączone do Mastera i czy komunikacja przebiega prawidłowo, a urządzenie nie zgłasza żadnego błędu. Dodatkowo trafiają tam też informacje z klasycznych wejść binarnych Mastera.

IO-Link jest najprostszą drogą do inteligentnej komunikacji z czujnikami oraz urządzeniami wykonawczymi. Wykorzystując tą technologię jesteśmy w stanie ze standardowych czujników z wbudowanym IO-Linkiem uzyskać nie tylko wartości pomiarowe niedostępne przez standardowe wyjścia czujnika, ale także więcej niż tylko jedną wartość pomiarową. IO-Link to także rozbudowane dane diagnostyczne, możliwość automatycznej re-parametryzacji czujnika po wymianie, wartość procesowa nie wymagająca dodatkowego skalowania w PLC i sygnał odporny na zakłócenia.

Serdecznie gratulujemy Panu Przemkowi bardzo dobrego artykułu i udanego pierwszego kroku w IO-Link. W związku z tym postanowiliśmy dołączyć od siebie zestaw gadżetów ifm.

Bartosz Dudziński, inżynier projektu ifm electronic

 

Artykuł został nagrodzony w Konkursie iAutomatyka w edycji Październik 2018
Nagrodę  7BIT SYNAPSE – MODUŁ IO MODBUS TCP 8DI/8DO/1 WIRE dostarcza firma ZESTAPROWięcej o konkursie: https://iautomatyka.pl/konkurs-iautomatyka/

 



Utworzono: / Kategoria: , , , ,
  • Autor: Przemek Czech
  • Automatyk, absolwent mechatroniki interesujący się sterownikami PLC oraz systemami nadrzędnymi a zwłaszcza tymi które przenoszą klasyczna automatykę w świat IT
  • Profil Autora

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!



PRZECZYTAJ RÓWNIEŻ



NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

Reklama



POLECANE FIRMY I PRODUKTY
  • #PILZ wraca na rynek komponentów dla aplikacji zdecentralizowanych z nową wyspą z grupy #PDP67 powiększając tym samym istniejące portfolio o nowe rozwiązanie.Moduł PDP67 jak każda wyspa I/O to urządzenie ułatwiające koncentrację sygnałów w ...
  • Poniższy poradnik jest zbiorem schematów połączeń elektrycznych. W poradniku zapoznamy się z podstawami wprowadzenia do systemów przekaźnikowych, sekwencji przełączeń przekaźników, porównania systemów przekaźnikowych z systemami tradycyjnym...
  • Sterowniki kompaktowe, modułowe i zintegrowane, CODESYS V3 (programowanie, wizualizacja, komunikacja), Krótkie cykle czasowe, EtherCAT, BACnet (opcjonalnie), Modbus, CANopen, Porty szeregowe: RS232, RS485, 2 konfigurowalne karty Ethernet, W...
  • ÖLFLEX® CLASSIC 110 – elastyczny przewód sterowniczy do różnych zastosowań, w płaszczu z PVC, aprobata VDE, odporność na oleje, 300/500 V, również do YSLY lub YY CPR: informacje pod adresem www.lapppolska.pl Certyfikat zgodności VDE z...
  • 1,000 PLN
    Zdobądź wiedzę i bądź pewny, że nic Cię nie zaskoczy. Nie musisz przekopywać się przez tony katalogów i instrukcji. Oferujemy Ci kompleksowy system szkoleń, który sprawi, że najpierw zbudujesz fundamenty swojej wiedzy, a później pod okiem n...
    Czas trwania: 7h - 14 h
    Link: Terminy
  • Sterowniki  z serii SIMATIC S7-1200 oferują szeroki zakres funkcjonalności i zintegrowane wejścia/wyjścia zamknięte w kompaktowej obudowie. Są doskonałym narzędziem do realizacji standardowych projektów i zadań automatyki, a jednostki S7-12...