fbpx

Profinet i Profibus - przemysłowe protokoły komunikacji

Dawid Pawlak , 25 stycznia 2024


Profinet i Profibus z wtyczkami

Profinet Profibus to protokoły komunikacji przemysłowej powszechnie stosowane w europejskich fabrykach za sprawą systemów sterowania firmy Siemens. Protokoły te zostały stworzone w celu ustabilizowania i poprawienia jakości komunikacji. Zastosowanie przewodów i wtyczek dedykowanych dla tych standardów pozwalają uodpornić wymianę danych na czynniki zewnętrzne typu temperatura, szumy i zakłócenia elektromagnetyczne. 

Sieć Profibus została zaprezentowana w 1989 roku przez Niemieckie Federalne Ministerstwo Oświaty i Badań Naukowych, natomiast jego aktualna i najbardziej rozpowszechniona wersja Profibus DP została wydana w 1993 roku i jest ona oparta na standardzie Fieldbus.

W roku 2000 organizacja odpowiedzialna za rozwój standardu Profibus rozpoczęła prace nad adaptacją standardu do środowiska Ethernet. Już rok później zaprezentowano pierwszą funkcjonującą wersję tego rozwiązania. Natomiast sam standard Profinet IO został opublikowany w 2003 roku, wprowadzając mechanizmy znane z Profibus DP.

Urządzenia komunikacyjne firmy Siemens posiadają w standardzie możliwość obsługi minimum jednej z tych dwóch protokołów. W związku na dużą popularność tych protokołów (szczególnie w Europie) istnieją urządzenia innych producentów, które mogą obsługiwać te protokoły komunikacyjne.

Protokół Profibus DP

Profibus DP bazuje na standardzie RS485 wykorzystując DB9 oraz złącze M12 (o zwiększonym IP). Dedykowany przewód składa się z dwóch żył skręconych razem o średnicy 0.64 mm2 i otoczonych ekranem. Całość jest we fioletowej izolacji, pozwalając na szybkie rozpoznanie przewodów.

Wtyczka Profibus i jej schemat.

Wtyczki do Profibusa posiadają wbudowane terminatory, które podobnie jak w przypadku Modbus RTU należy załączyć na końcach linii za pomocą specjalnego przełącznika. Standard Profibus obsługuje również przesyłanie danych przy użyciu światłowodu za pomocą specjalnych konwerterów. Należy jednak pamiętać, że zarówno konwertery jak i repetery stanowią koniec linii i w przypiętych do nich wtyczkach należy załączyć terminatory.

Struktura sieci Profibus DP

Poniżej przedstawiono w sposób wizualny w jaki sposób wygląda zbudowanie sieci Profibus i prowadzenie przewodu komunikacyjnego z jednego urządzenia do drugiego. Warto zwrócić uwagę na pokazane przełączniki na wtyczkach załączających terminatory na początku i na końcu linii.

Struktura sieci Profibus DP została oparta na modelu OSI i posiada poziomy usług:

  • DP-V0 dla cyklicznej wymiany danych i diagnostyki sieci
  • DP-V1 dla acyklicznej wymiany danych np. przesyłanie alarmów
  • DP-V2 dla izochronicznej wymiany danych  (synchronizacja zegara, broadcast)

Schemat sieci Profibus z zaznaczonymi załączonymi terminatorami.

Konwerter Probus na światłowód firmy Moxa
Konwerter Profibus na światłowód firmy Moxa

Specyfikacja sieci Profibus DP

Protokół ten pracuje w architekturze typu Master-Slave gdzie Master, którym najczęściej jest sterownik PLC inicjuje komunikację z kolejnymi Slave’ami. Przesył danych działa w trybie Half-Duplex. Każda urządzenie w sieci Profibus posiada swój unikalny adres od 1 do 127 co definiuje ich maksymalną ilość w sieci. Urządzenia w danym segmencie są połączone w topologii liniowej, a dedykowane wtyczki są przystosowane do tego aby była możliwość połączenia przewodu przychodzącego i wychodzącego do kolejnej jednostki.

Specjalne repeatery pozwalają na zbudowanie sieci w topologie drzewa i jednocześnie zwiększają siłę sygnału, ponieważ bez nich może być maksymalnie 32 urządzenia w jednym segmencie. Konfiguracja sieci polega na wybraniu we wszystkich już zaadresowanych urządzeniach takiej samej prędkości od 9,6 kbit/s do 12 Mbit/s ale należy pamiętać, że wraz ze wzrostem prędkości obniża się maksymalna długość przewodu jaką można zastosować (od 1200 m do 100 m).

Maksymalna długość linii dla Profibus w zależności od prędkości transmisji

Protokół Profinet

Profinet bazuje na Ethernecie co za tym idzie wykorzystuje 4 żyły ze skrętki we wtyczce RJ45. Jest on zdecydowanie bardziej elastyczny szybszy od Profibusa. Przewód dedykowany do sieci Profinet jest koloru zielonego co umożliwia na odróżnienie go od innych przewodów sieciowych ale w przeciwieństwie do klasycznej skrętki posiada 4 żyły. Istnieje możliwość wykorzystania skrętki ale zaleca się aby posiadała ona ekran z wykorzystaniem wtyczki RJ45 z metalową obudową (kat. 6A). Dedykowane wtyczki do Profinet bazują na RJ45 ale mają tylko 4 piny podłączeniowe. Wiele producentów pozwala na komunikacje z użyciem protokołu Profinet ze swoimi urządzeniami np. PLC, napędy, roboty, wyspy IO.

Specyfikacja sieci Profinet

Protokół umożliwia aby w jednej infrastrukturze sieciowej istniały również inne protokoły oparte na Ethernecie np. OPC UA, MQTT, SNMP lub HTTP. Urządzenia w sieci są rozpoznawane po ich adresie MAC, adresie IP oraz nazwie, gdzie przypisanie nazwy oraz adresu IP odbywa się podczas inicjacji sieci. Przesył danych odbywa się w trybie Full-Duplex z prędkością 100Mbit/s, a maksymalna długość przewodu między urządzeniami może wynosić 100 m. W tym protokole komunikacyjnym istnieje możliwość posiadania kilku kontrolerów dla jednego urządzenia co zapewnia redundancję systemu.  Dzięki swoim zaletom jest często spotykany w nowych rozwiązaniach automatyki, które wymagają szybkiej transmisji danych.

Struktura sieci Profinet

Sieć można budować w oparciu o różne topologie: pierścienia, gwiazdy, drzewa. Dedykowane kable dla Profinetu są w kolorze zielonym ułatwiając ich identyfikację. W topologii pierścienia Profinet obsługuje redundancje sieci. Profinet jest siecią czasu rzeczywistego. Można wyróżnić trzy typy urządzeń: Profinet IO-Controller (PLC), Profinet IO-Device (wyspa IO), Profinet IO-Supervisor (programator). Czas odpowiedzi między urządzeniami może wynosić nawet poniżej 1ms w zależności od ustawień.

Przykładowy schemat sieci Profinet. Na górze widzimy pod sieć w topologii gwiazdy, po prawej stronie w topologii liniowej, zaś na samym dole topologię pierścienia.

Dane mogą być wysyłane na różnych kanałach sieci:

  • Kanał TCP - służy do nawiązania połączenia, parametryzacji stacji i danych diagnostycznych
  • Kanał RT - cykliczna wymiana danych w czasie rzeczywistym i również przesyłanie alarmów i monitorowanie komunikacji.
  • Kanał IRT - izochroniczna wymiana danych w czasie rzeczywistym wykorzystując mikrocykle. Informacje mogą przychodzić nawet co 31,25 µs

Komunikacja z urządzeniami firmy Siemens

W celu konfiguracji sieci w środowisku programistycznym Siemens typu TIA Portal lub Simatic Manager producent danego urządzenia musi udostępnić pliki konfiguracji sieciowej o typu GSD, które w zależności od protokołu są zapisane w różnych formatach: ASCII (Profibus), XML (Profinet). Można również znaleźć rozwiązania, które umożliwiają wykorzystanie do tego np. Arduino wraz z przygotowanym plikiem GSD.

Dane w sterownikach firmy Siemens

W sterownikach PLC firmy Siemens dane adresowane są za pomocą bajtów w zależności od ich przeznaczenia są przechowywane w różnej lokalizacji. Najczęściej dla przejrzystości przechowuje się zmienne w blokach danych, dzięki czemu w jednym miejscu można mieć dane tylko danego urządzenia i mieć podobny format do kolejnych.

LokalizacjaFormat
WejścieInn
WyjścieQnn
FlagiMnn
Bloki danychDBbb.DBnn
nn oznacza typ i adres zmiennej
bb nr bloku danych

W zależności od typu danej zmiennej zajmuje on odpowiednią ilość bajtów co również jest uwzględniane w adresie zmiennej:

  • Podanie adresu bitu w danym bajcie po kropce (DB 0.0) typ Bool
  • B - zawiera 8 bitów (DBB 0) np. typ Byte, Sint
  • W - zawiera 2 bajty (DBW 0) np. typ Word, Int
  • D - zawiera 4 bajty (DBD 0) np. typ Dint, Real
Adresowanie zmiennych w sterownikach Siemens
Adresacja zmiennych w sterownikach Siemens

Biblioteki

Do komunikacji poprzez sieć Profibus można użyć biblioteki pyprofibus dedykowanej do języka Python. Innym rozwiązaniem jest zastosowanie pluginu S7Comm, który można uruchomić poprzez Node.js i Node-RED, jednak jest to plugin obsługujący tylko starsze wersje sterowników PLC. Dla komunikacji ze sterownikami Siemens również można wykorzystać bibliotekę .NET S7.Net Plus. Następnym rozwiązaniem jest wykorzystanie takich protokołów jak OPC UA lub MQTT jeśli sterownik obsługuje dane rozwiązanie. Nowszą biblioteką napisaną w języku python jest python-snap7 umożliwiająca zapis i odczyt bloków danych ze sterownika PLC wykorzystując Ethernet.

Snap7 - biblioteka do komunikacji ze sterownikami Siemens w języku Python

Snap7 to wieloplatformowy pakiet komunikacyjny Ethernet typu open source, 32/64-bitowy, umożliwiający natywną komunikację ze sterownikami PLC Siemens S7. Ważne aby wcześniej w programie TIA Portal ustawić: pozwolenie na łączność wykorzystując PUT/GET, wyłączyć optymalizacje bloku danych aby posiadał adresacje zmiennych.

Do zainstalowania biblioteki można wykorzystać pip:

pip install python-snap7

Zaimportowanie biblioteki i zadeklarowanie klienta Snap7 wprowadzając adres IP sterownika

import snap7

plc = snap7.client.Client()
plc.connect('192.168.0.2', 0, 1)  # IP address, rack, slot (from hardware settings)

Status połączenie można sprawdzić funkcją

plc.get_connected()

Po konfiguracji i zaimplementowaniu połączenia można odnieść się do adresu danej zmiennej w funkcjach typu db_read do odczytu gdzie argumentami są:

  • db_number - numer bloku danych
  • start - numer bajtu od którego będzie odczytywana zmienna
  • size - długość danych wyrażona w bajtach

db_write do zapisywania danych z argumentami:

  • db_number - numer bloku danych
  • start - numer bajtu od którego będzie zapisywana zmienna
  • data - bufor danych do wysłania
data_read = plc.db_read(12, 5, 2)    # reading two bytes from data block number 12, starting from address 5 (DB12.DBW5)
plc.db_write(1,2,data) # writing value "data" in data block number 1 starting from address 2

Podsumowanie

W Europie najpopularniejszymi sterownikami są te wydawane przez Siemens, ponieważ firma posiada kompleksowe rozwiązania dedykowane nie tylko do maszyna ale również dla procesów. Dlatego też wymienione protokoły komunikacyjne są tak popularne i jest możliwość kupienia urządzeń innych producentów obsługujące ten protokół.

W systemach procesowych jeszcze chętnie wykorzystywany jest protokół Profibus, ponieważ w tych instalacjach nie jest wymagana szybkość transmisji i urządzenia mogą być od siebie znacznie oddalone. Jednak już coraz więcej gałęzi przemysłu rozszerza swoje rozwiązania bazując na Ethernet co umożliwia zastosowanie protokołu Profinet lub EtherNet/IP który również cieszy się dużą popularnością. Dzięki takiemu rozwiązaniu łatwo można zaimplementować system nadzoru SCADA oraz wyświetlanie ich w usłudze webowej.

1