Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 PoniŜzy dokument zawiera opi konfiguracji programu STEP7 dla terowników SIMATIC S7 300/S7 400, w celu tworzenia komunikacji między dwoma tacjami S7 300 za pomocą ieci MPI i funkcji X_SEND/X_RCV 1. Podtawowe informacje Komunikacja z wykorzytaniem funkcji X_SEND/X_RCV jet dwutronną uługą komunikacyjną. Oznacza to, Ŝe odpowiednie funkcje muzą być wywołane zarówno w tacji wyyłającej dane jak i tacji docelowej. Funkcja X_SEND (SFC65) jet wykorzytywana do wyyłania danych do jednotek biorących udział w komunikacji. Jednotka docelowa odbiera dane za pomocą funkcji X_RCV (SFC66). 2. ZałoŜenia projektu Komunikacja za pomocą protokołu MPI pozwala utrzymywać tranmiję danych w granicach 187.5 kbp 12 Mbp. Segment ieci moŝe zawierać makymalnie 32 węzły. Makymalna rozpiętość egmentu bez konieczności toowania repeaterów wynoi 50m. Makymalna ilość urządzeń, które moŝna podłączyć do ieci wynoi 126. Makymalna liczba CPU biorących udział w wymianie danych wynoi 15. Makymalna wielkość przeyłanego pakietu wynoi odpowiednio: - dla S7-300 - 22 bajty - dla S7-400 54 bajty Makymalna ilość przeyłanych pakietów zaleŝy od rodzaju CPU i moŝe być ich 4 lub 8. www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 1
Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 3. WYWOŁANIE I PARAMETRYZACJA FUNKCJI X_SEND/X_RCV 3.1 Po wprowadzeniu konfiguracji przętowej do projektu z drzewa truktury projektu wybieramy tację, dla której chcemy wywołać funkcję i w zakładce S7 Program(2) klikamy na ymbol Block (Ry. 1). Ry. 1 3.2 W oknie projektu powinien być widoczny główny blok organizacyjny OB1, w którym będzie znajdował ię program główny. NaleŜy jezcze dodać blok danych, w którym będą przechowywane dane odbierane i wyyłane przez CPU. W tym celu w putym polu klikamy prawym przycikiem myzy i wybieramy Inert New Object Data Block (Ry. 2). Ry. 2 www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 2
Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 3.3 W oknie właściwości tworzonego bloku danych potwierdzamy polecenie utworzenia bloku klikając OK (Ry. 3). Ry. 3 3.4 Wchodzimy do głównego bloku programu, klikając dwukrotnie ymbol OB1 w głównym oknie projektu (Ry. 4) Ry. 4 www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 3
Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 3.5 W bloku organizacyjnym OB1 tacji, która ma wyyłać dane wywołujemy funkcje X_SEND. W tym celu z lity elementów programu wybieramy Librarie Standard Library Sytem Function Block (Ry. 5). Ry. 5 www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 4
Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 3.6 Z lity Sytem Function Block wybieramy intereujący na blok SFC65, klikając dwukrotnie w jego ymbol umiezczamy go w projekcie (Ry. 6). Ry. 6 PoniŜej zotał umiezczony opi parametrów funkcji X_SEND. X_SEND (SFC65) Parametr Opi REQ CONT Logiczna jedynka zezwalająca na wyłanie danych do określonej tacji CONT=0: Połączenie jet przerywane po zakończeniu tranferu danych. Natępne połączenie moŝe zotać nawiązane z innym partnerem. CONT=1: Połączenie zotaje otwarte po zakończeniu tranferu danych. Opcja jet uŝyteczna przy ciągłej wymianie danych między dwiema tacjami. DEST_ID Adre MPI urządzenia, z którym ma zotać nawiązana komunikacja. REQ_ID Wkaźnik identyfikujący dane w tacji odbiorczej. SD Wkaźnik do przetrzeni pamięci, z której mają być pobrane dane do wyłania. RET_VAL Jeśli pojawia ię błąd podcza wywołania funkcji zmienna zawiera jego kod. BUSY BUSY=1: Wyyłanie nie zotało zakończone. BUSY=0: Wyyłanie zotało zakończone. www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 5
Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 3.7 Wchodzimy do wcześniej utworzonego bloku danych DB1 aby zdefiniować potrzebne obzary pamięci. W tym celu w głównym oknie projektu dwukrotnie klikamy ymbol DB1 (Ry. 7). Ry. 7 3.8 PoniŜej przedtawiona jet zawartość bloku danych DB1 (Ry. 8). Ry. 8 Parametr SD naleŝy zdefiniować jako wkaźniki do intereującego na obzaru pamięci w związku z tym nie moŝna go zdefiniować w bloku danych. Trzeba to zrobić bezpośrednio w głównym bloku programu OB1. www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 6
Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 3.9 Wchodzimy do bloku OB1 i przypiujemy zdefiniowane zmienne odpowiednim parametrom funkcji X_SEND (Ry. 9). Ry. 9 www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 7
Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 3.10 PoniŜej pokazany jet parametryzowany blok SFC65 (Ry. 10). Ry. 10 3.11 Powtarzamy kroki przedtawione w punktach 3.1 3.10 w celu wywołania i parametryzowania funkcji X_RCV (SFC66) w tacji docelowej. Podobnie jak dla tacji wyyłającej takŝe tutaj umiezczamy blok danych, w którym będą zdefiniowane parametry funkcji X_RCV (Ry. 11). www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 8
Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 Ry. 11 3.12 Wchodzimy do bloku OB1 i wywołujemy w nim funkcję X_RCV wybierając z lity elementów programu blok oznaczony jako SFC66 (Ry. 12). Ry. 12 www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 9
Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 PoniŜej zotał umiezczony opi parametrów funkcji X_RCV. X_RCV (SFC66) Parametr EN_DT RET_VAL REQ_ID NDA RD Opi EN_DT=0: Sprawdza czy jakieś dane czekają na zapi do przetrzeni zdefiniowanej przez parametr RD. EN_DT=1: Kopiuje najtarzy element kolejki danych czekających na zapi do przetrzeni zdefiniowanej przez parametr RD Przy bezbłędnej tranmiji pokazuje długość otrzymanego bloku danych. W przypadku wytąpienia błędu pokazuje jego kod. Wkaźnik roboczy bloku X_SEND, którego dane ą pierwze w kolejce do zapiania (najtarze dane w kolejce). Wartość 0 oznacza brak danych do zapiania. NDA=0: Nie ma Ŝadnych danych w kolejce do zapiania NDA=1: Jeśli EN_DT=0 parametr oznacza, Ŝe w kolejce znajduje ię co najmniej jeden blok danych. Jeśli EN_DT=1 parametr oznacza, Ŝe najtarzy blok danych z kolejki zotał kopiowany do programu uŝytkownika Wkaźnik do przetrzeni pamięci, w której mają być zapiane otrzymane dane. 3.13 W bloku DB1 definiujemy parametry funkcji X_RCV. PoniŜej przedtawiona jet zawartość wypełnionego bloku DB1 (Ry. 13). Ry. 13 Parametr RD naleŝy zdefiniować jako wkaźniki do intereującego na obzaru pamięci w związku z tym nie moŝna go zdefiniować w bloku danych. Trzeba to zrobić bezpośrednio w głównym bloku programu OB1. www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 10
Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 3.14 Wchodzimy do bloku OB1 i przypiujemy zdefiniowane zmienne odpowiednim parametrom funkcji X_RCV. PoniŜej pokazana jet parametryzowana funkcja X_RCV (Ry. 14). Ry. 14 www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 11
Komunikacja w protokole MPI za pomocą funkcji X_SEND/X_RCV pomiędzy terownikami S7-300 3.15 Natępnie naleŝy załadować program do wzytkich CPU w ytemach, których wywoływaliśmy blok SFC67 i/lub SFC68. W tym celu wracamy do głównego okna projektu SIMATIC Managera i w oknie truktury projektu zaznaczamy jednotkę, do której chcemy załadować program. Natępnie nacikamy przycik Download na paku narzędzi (Ry. 15a, 15b). Identycznie potępujemy dla innych jednotek zawartych w projekcie. Ry. 15a Ry. 15b www.iemen.pl/imatic Doradztwo techniczne: imatic.pl@iemen.com 12