Skip to main content

Ten wpis poświęcony jest sieci PROFINET. Poruszę 2 zagadnienia związane z tą siecią tzn. standard PROFIdrive i tryby komunikacji czasu rzeczywistego – RT, IRT.

W pierwszej części opiszę Standard PROFIdrive, skupimy się na sterownikach i napędach od firmy Siemens. W drugiej części dowiesz się jakie są rodzaje komunikacji w trybie czasu rzeczywistego.

1.1. Standard PROFIdrive

Zapewne przedrostek PROFI kojarzy Wam się z protokołami PROFINET lub PROFIBUS. Z tych właśnie protokołów korzysta standard PROFIdrive do komunikacji. Z tą różnicą, że jest to standard dedykowany dla napędów i enkoderów.

Załóżmy, że mamy prosty układ sterownika, przekształtnika, silnika i modułów wejść/wyjść. Komunikują się one poprzez protokół PROFINET. Elementy zaznaczone czerwoną przerywaną linią na obrazku poniżej to część, za którą odpowiada PROFIdrive.

Rys. 1 Prosty układ połączony protokołem PROFINET

Komunikacja polega na wysyłaniu tzw. ramek PROFIdrive, w których skład wchodzą telegramy (opiszę je szerzej w następnym punkcie).
Komunikacja pomiędzy sterownikiem, a przekształtnikiem jest obustronna. Oznacza to, że sterownik wysyła polecenia w postaci ramek, ale również odbiera informacje statusowe dotyczące silnika oraz wartości aktualnego położenia.

Rys. 2 Zobrazowanie komunikacji w protokole PROFIdrive

1.2. Telegramy – informacje ogólne

Jak już wcześniej wspomniałem, ramki PROFIdrive składają się między innymi z telegramów.
Telegram natomiast to informacja wysyłana do przekształtnika w postaci „Słowa danych procesowych” – w rzeczywistości jest to ciąg bitów. Pojedyncze „Słowo danych procesowych” składa się z 16 bitów lub 2 bajtów. Poniżej zamieszczona jest tabela obrazująca czym jest Telegram:

Rys. 3 Przykładowe Telegramy

Pod skrótem „PZD” kryje się wcześniej wspomniane „Słowo danych procesowych”, jak widzimy jeden Telegram może się składać z wielu takich słów.
Po lewej stronie tabeli na szarym polu pokazane są podstawowe Telegramy 1-5 występujące w standardzie PROFIdrive. Każdy z tych Telegramów odznacza się innymi funkcjami.
Aby móc lepiej to zrozumieć poniżej znajdują się rozwinięte skróty występujące w tabeli:

  • STW – Słowo sterujące
  • ZSW – Słowo statusowe
  • NSOLL – Prędkość zadana
  • NIST – Prędkość aktualna
  • G1_STW: Słowo sterujące Enkodera 1
  • G1_ZSW: Słowo statusowe Enkoder 1
  • G1_XIST: Pozycja aktualna Enkoder 1
  • XERR: Odchylenie pozycji
  • KPC: Wzmocnienie regulatora pozycji

Informacje wysyłane ze sterownika do przekształtnika to sygnał sterujący.
Informacje odbierane z przekształtnika to np. prędkość i aktualna pozycja wału silnika.

1.3. Podstawowe Telegramy

Może się pojawić pytanie, od czego zależy jaki Telegram wybrać? Oczywiście wybieramy Telegram w zależności od funkcji jaką chcemy, aby spełniał. Czy ma tylko zadawać i odczytywać prędkość wału, czy może chcemy aby dodatkowo przekazywał pozycję wału poprzez enkoder.

Wybranie odpowiedniego Telegramu to jedno, natomiast ważna jest również konfiguracja sprzętowa układu. Poniżej umieszczam układy dla podstawowych Telegramów 1-5.

Telegram 1 może być użyty dla konfiguracji na rys. 4 . Tego typu układ ma funkcje tj. :
– sterowanie prędkością osi,
– oś pozycjonująca, jeśli enkoder podłączony jest przez zewnętrzny moduł technologiczny (TM) lub przez PROFIdrive,
– napęd bez synchronizacji do zegara czasu rzeczywistego

Rys. 4 Układ dla Telegramu 1

Układ dla Telegramu 2, jego funkcje są podobne jak Telegramu 1 natomiast ma on dodatkową synchronizację napędu do zegara czasu rzeczywistego

Rys. 5 Układ dla Telegramu 2

Telegramy 3 i 5 stosowane są dla konfiguracji sprzętowej jak na rys. 6, mają jednak pewne różnice.
Funkcje Telegramu 3:
– oś pozycjonująca, jeśli enkoder podłączony jest do napędu,
– możliwa synchronizacja napędu w czasie rzeczywistym
Funkcje Telegramu 5:
– oś pozycjonująca, jeśli serwonapęd w trybie Dynamic Servo Control,
– wymagana synchronizacja napędu w czasie rzeczywistym

Rys. 6 Układ dla Telegramów 3 i 5

1.4. Słowa statusowe i sterujące

W pkt. 2 wspomniane zostały słowa sterujące STW i statusowe ZSW. Są to elementy każdego Telegramu. Aby lepiej zrozumieć z czego składają się przykładowe słowa zamieszczam poniżej grafiki:

Rys. 7 Budowa słowa statusowego ZSW
Rys. 8 Budowa słowa sterującego STW

Jak widać powyżej są to tak naprawdę ciągi bitów, gdzie każdy bit odpowiada za inną wartość.

2.1. Komunikacja PROFINET IO

Komunikacja sieci PROFINET IO zawsze odbywa się w trybie czasu rzeczywistego. Tego typu tryb posiada odrębną warstwę komunikacyjną co sprawia, że działa niezależnie od innych procesów. Ponadto tryb RT (czasu rzeczywistego) ma priorytet względem innych informacji.

Jak już wcześniej wspomniałem mamy 2 tryby czasu rzeczywistego: zwykły RT i izochroniczny IRT. Oba działają w 2 różnych kanałach: cykliczny i acykliczny. Dokładniej o tych kanałach powiemy sobie zaraz. Mówiąc o różnych kanałach, w zasadzie powiedzieliśmy sobie o różnicach pomiędzy trybem RT i IRT bowiem tym się właśnie one różnią. Poniżej znajduje się grafika z porównania trybów RT i IRT.

Rys. 1 Różnice pomiędzy trybem RT i IRT

Jak widać różnica jest niewielka, ale znaczna. Dlaczego znaczna? Aby odpowiedzieć sobie na to pytanie musimy wiedzieć dokładnie jakie funkcjonalności posiadają kanały cykliczny i acykliczny.

Warto również dodać, że czas odczytu i zapisu informacji w tych trybach jest ściśle określony w czasie i odbywa się w cyklach kilku milisekundowych.

2.2. Kanał cykliczny i acykliczny

Cykliczna wymiana danych polega na wysyłaniu słów sterujących i wartości zadanych przez sterownik oraz odebraniu słów statusowych i wartości aktualnych z napędu w jednym cyklu programowym.

Acykliczna wymiana danych zapewnia dostęp do parametrów napędu (odczyt/zapis) przez środowisko inżynierskie lub przez funkcje z biblioteki systemowej. Możliwa jest dzięki temu wymiana dużej ilości informacji, ale w kilku cyklach programowych.

W skrócie kanał cykliczny to jeden cykl i mała ilość informacji, kanał acykliczny to kilka cykli i duża ilość informacji.
Poniższa grafika obrazuje działanie kanału cyklicznego i acyklicznego:

Rys. 2 Kanał cykliczny i acykliczny – zasada działania

2.3. Tryb izochroniczny czasu rzeczywistego IRT

Wiemy już na czym polega tryb IRT, ale do czego możemy go użyć? W jakich aplikacjach mógłby on znaleźć zastosowanie?

Tryb IRT zastosujemy w aplikacjach krytycznych czasowo, czyli takich gdzie program musi coś przeliczyć, ale zbiera dane z różnych modułów. Wówczas kluczowe jest aby dane zostały dostarczone w jednym czasie, tak aby program posiadał aktualne dane do przeliczenia w danym cyklu.

Przykładami aplikacji, gdzie zalecany jest tryb IRT są:

•System mierzenia wartości pozycji na wałku krzywkowym,

•Wtryskarki do tworzyw sztucznych,

•Maszyny pakujące,

•Prasy drukarskie,

•Maszyny do obróbki drewna

2.4. Kroki w trybie izochronicznym IRT

Przedstawiłem poniżej kroki z których składa się komunikacja w trybie IRT

Rys. 3 Przebieg informacji w cyklu synchronicznym dla trybu IRT

Opis poszczególnych kroków:

  1. Odczytanie wartości pomiaru z procesu
  2. Przetworzenie pomiaru na formę cyfrową w module wejściowym
  3. Transfer pomiaru cyfrowego z modułu wejść do modułu interfejsu
  4. Przesłanie pomiaru do jednostki CPU
  5. Przetworzenie pomiaru w synchronicznym bloku OB.
  6. Przesłanie do modułów rozproszonych wyniku przetworzonego pomiaru
  7. Przesłanie sygnału wyjściowego z modułu interfejsu do modułu wyjść
  8. Wartość wyjściowa zostaje przetworzona
  9. Wartość sygnału zostaje przekazana do procesu

3. Podsumowanie

W tym wpisie poruszyliśmy 2 zagadnienia dotyczące sieci PROFINET IO. Teraz już wiesz, czym różni się tryb RT i IRT i kiedy je stosować oraz co to takiego standard PROFIdrive.

Myślę, że nie jest to trudny temat, ale dosyć obszerny. W naszym kursie napędów możesz dowiedzieć się nieco więcej o tego typu zagadnieniach od strony praktycznej, czyli programowania napędów.
Tutaj znajduje się link do kursu gdybyś był/a zainteresowany/a.

O autorze

Kamil Biedulski

Author Kamil Biedulski

Automatyk i programista, CTO w ControlByte

Więcej postów tego autora Kamil Biedulski

Komentarz

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.

<iframe src=”https://player.vimeo.com/video/757198505?h=0e10f23dac” width=”640″ height=”564″ frameborder=”0″ allow=”autoplay; fullscreen” allowfullscreen></iframe>

Mailing kursu programowania

Inteligentny DOM

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=62 css=1]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania MINIKURS

Siemens Simatic S7-1200/S7-1500
w języku LAD/FBD

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=56 ]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

MINI KURS MAILOWY

PROGRAMOWANIA

CODESYS w języku ST

 

Zapisując się na mini kurs mailowy otrzymasz:
-codziennie jedną wiadomość e-mail przez okres tygodnia
-materiały dzięki którym rozpoczniesz programować
w Codesys i języku ST

 

[activecampaign form=22]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing dla programistów

ControlByte

Zapisując się na listę mailową otrzymasz:
– merytoryczne materiały z naszych kursów
– informacje o otwarciu zapisów na szkolenia programowania
– informacje o naszych webinarch na żywo [activecampaign form=3]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania

Codesys w języku ST

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=20]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania

Siemens Simatic S7-1200/S7-1500
w języku LAD/FBD + HMI

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=14 css=1]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.

Mailing kursu programowania

Siemens S7-1200, S7-1500

w języku SCL

Zapisując się na listę kursu otrzymasz:
– merytoryczne materiały z kursu, dzięki którym sprawdzisz, czy ten kurs jest dla Ciebie
– informacje o otwarciu zapisów [activecampaign form=18 css=1]

Zapisując się na listę zgadzasz się z naszą polityką prywatności
https://kursy.controlbyte.pl/polityka-prywatnosci/
a my zapewniamy, że Twoje dane są bezpieczne.