s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
1
Poni
ż
szy dokument zawiera opis konfiguracji programu STEP7 dla sterowników SIMATIC
S7 – 300/S7 – 400, w celu stworzenia komunikacji mi
ę
dzy dwoma stacjami S7 – 300 za
pomoc
ą
sieci MPI i funkcji X_SEND/X_RCV
1. Podstawowe informacje
Komunikacja z wykorzystaniem funkcji X_SEND/X_RCV jest „dwustronn
ą
” usług
ą
komunikacyjn
ą
. Oznacza to,
ż
e odpowiednie funkcje musz
ą
by
ć
wywołane zarówno w stacji
wysyłaj
ą
cej dane jak i stacji docelowej. Funkcja X_SEND (SFC65) jest wykorzystywana do
wysyłania danych do jednostek bior
ą
cych udział w komunikacji. Jednostka docelowa odbiera
dane za pomoc
ą
funkcji X_RCV (SFC66).
2. Zało
ż
enia projektu
Komunikacja za pomoc
ą
protokołu MPI pozwala utrzymywa
ć
transmisj
ę
danych w granicach
187.5 kbps – 12 Mbps.
Segment sieci mo
ż
e zawiera
ć
maksymalnie 32 w
ę
zły.
Maksymalna rozpi
ę
to
ść
segmentu bez konieczno
ś
ci stosowania repeaterów wynosi 50m.
Maksymalna ilo
ść
urz
ą
dze
ń
, które mo
ż
na podł
ą
czy
ć
do sieci wynosi 126.
Maksymalna liczba CPU bior
ą
cych udział w wymianie danych wynosi 15.
Maksymalna wielko
ść
przesyłanego pakietu wynosi odpowiednio:
- dla S7-300 - 22 bajty
- dla S7-400 – 54 bajty
Maksymalna ilo
ść
przesyłanych pakietów zale
ż
y od rodzaju CPU i mo
ż
e by
ć
ich 4 lub 8.
s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
2
3. WYWOŁANIE I PARAMETRYZACJA FUNKCJI X_SEND/X_RCV
3.1 Po wprowadzeniu konfiguracji sprz
ę
towej do projektu z drzewa struktury projektu
wybieramy stacj
ę
, dla której chcemy wywoła
ć
funkcj
ę
i w zakładce S7 Program(2) klikamy na
symbol Blocks (Rys. 1).
3.2 W oknie projektu powinien by
ć
widoczny główny blok organizacyjny OB1, w którym
b
ę
dzie znajdował si
ę
program główny. Nale
ż
y jeszcze doda
ć
blok danych, w którym b
ę
d
ą
przechowywane dane odbierane i wysyłane przez CPU. W tym celu w pustym polu klikamy
prawym przyciskiem myszy i wybieramy Insert New Object
→
Data Block (Rys. 2).
Rys. 1
Rys. 2
s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
3
3.3 W oknie wła
ś
ciwo
ś
ci tworzonego bloku danych potwierdzamy polecenie utworzenia bloku
klikaj
ą
c OK (Rys. 3).
3.4 Wchodzimy do głównego bloku programu, klikaj
ą
c dwukrotnie symbol OB1 w głównym
oknie projektu (Rys. 4)
Rys. 3
Rys. 4
s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
4
3.5 W bloku organizacyjnym OB1 stacji, która ma wysyła
ć
dane wywołujemy funkcje
X_SEND. W tym celu z listy elementów programu wybieramy Libraries
→
Standard Library
→
System Function Blocks (Rys. 5).
Rys. 5
s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
5
3.6 Z listy System Function Blocks wybieramy interesuj
ą
cy nas blok SFC65, klikaj
ą
c
dwukrotnie w jego symbol umieszczamy go w projekcie (Rys. 6).
Poni
ż
ej został umieszczony opis parametrów funkcji X_SEND.
X_SEND (SFC65)
Parametr
Opis
REQ
Logiczna jedynka zezwalaj
ą
ca na wysłanie danych do okre
ś
lonej stacji
CONT
CONT=0: Poł
ą
czenie jest przerywane po zako
ń
czeniu transferu danych.
Nast
ę
pne poł
ą
czenie mo
ż
e zosta
ć
nawi
ą
zane z innym partnerem.
CONT=1: Poł
ą
czenie zostaje otwarte po zako
ń
czeniu transferu danych. Opcja
jest u
ż
yteczna przy ci
ą
głej wymianie danych mi
ę
dzy dwiema
stacjami.
DEST_ID Adres MPI urz
ą
dzenia, z którym ma zosta
ć
nawi
ą
zana komunikacja.
REQ_ID Wska
ź
nik identyfikuj
ą
cy dane w stacji odbiorczej.
SD
Wska
ź
nik do przestrzeni pami
ę
ci, z której maj
ą
by
ć
pobrane dane do wysłania.
RET_VAL Je
ś
li pojawia si
ę
bł
ą
d podczas wywołania funkcji zmienna zawiera jego kod.
BUSY
BUSY=1: Wysyłanie nie zostało zako
ń
czone.
BUSY=0: Wysyłanie zostało zako
ń
czone.
Rys. 6
s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
6
3.7 Wchodzimy do wcze
ś
niej utworzonego bloku danych DB1 aby zdefiniowa
ć
potrzebne
obszary pami
ę
ci. W tym celu w głównym oknie projektu dwukrotnie klikamy symbol DB1
(Rys. 7).
3.8 Poni
ż
ej przedstawiona jest zawarto
ść
bloku danych DB1 (Rys. 8).
Parametr SD nale
ż
y zdefiniowa
ć
jako wska
ź
niki do interesuj
ą
cego nas obszaru 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.
Rys. 7
Rys. 8
s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
7
3.9 Wchodzimy do bloku OB1 i przypisujemy zdefiniowane zmienne odpowiednim
parametrom funkcji X_SEND (Rys. 9).
Rys. 9
s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
8
3.10 Poni
ż
ej pokazany jest sparametryzowany blok SFC65 (Rys. 10).
3.11 Powtarzamy kroki przedstawione w punktach 3.1 – 3.10 w celu wywołania i
sparametryzowania funkcji X_RCV (SFC66) w stacji docelowej. Podobnie jak dla stacji
wysyłaj
ą
cej tak
ż
e tutaj umieszczamy blok danych, w którym b
ę
d
ą
zdefiniowane parametry
funkcji X_RCV (Rys. 11).
Rys. 10
s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
9
3.12 Wchodzimy do bloku OB1 i wywołujemy w nim funkcj
ę
X_RCV wybieraj
ą
c z listy
elementów programu blok oznaczony jako SFC66 (Rys. 12).
Rys. 12
Rys. 11
s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
10
Poni
ż
ej został umieszczony opis parametrów funkcji X_RCV.
X_RCV (SFC66)
Parametr
Opis
EN_DT
EN_DT=0: Sprawdza czy jakie
ś
dane czekaj
ą
na zapis do przestrzeni
zdefiniowanej przez parametr RD.
EN_DT=1: Kopiuje najstarszy element kolejki danych czekaj
ą
cych na zapis do
przestrzeni zdefiniowanej przez parametr RD
RET_VAL
Przy bezbł
ę
dnej transmisji pokazuje długo
ść
otrzymanego bloku danych. W
przypadku wyst
ą
pienia bł
ę
du pokazuje jego kod.
REQ_ID
Wska
ź
nik roboczy bloku X_SEND, którego dane s
ą
pierwsze w kolejce do
zapisania (najstarsze dane w kolejce). Warto
ść
0 oznacza brak danych do
zapisania.
NDA
NDA=0: Nie ma
ż
adnych danych w kolejce do zapisania
NDA=1: Je
ś
li EN_DT=0 parametr oznacza,
ż
e w kolejce znajduje si
ę
co najmniej
jeden blok danych.
Je
ś
li EN_DT=1 parametr oznacza,
ż
e najstarszy blok danych z kolejki
został skopiowany do programu u
ż
ytkownika
RD
Wska
ź
nik do przestrzeni pami
ę
ci, w której maj
ą
by
ć
zapisane otrzymane dane.
3.13 W bloku DB1 definiujemy parametry funkcji X_RCV. Poni
ż
ej przedstawiona jest
zawarto
ść
wypełnionego bloku DB1 (Rys. 13).
Parametr RD nale
ż
y zdefiniowa
ć
jako wska
ź
niki do interesuj
ą
cego nas obszaru 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.
Rys. 13
s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
11
3.14 Wchodzimy do bloku OB1 i przypisujemy zdefiniowane zmienne odpowiednim
parametrom funkcji X_RCV. Poni
ż
ej pokazana jest sparametryzowana funkcja X_RCV
(Rys. 14).
Rys. 14
s
s
s
s
FAQ: 00000019/PL Data: 14/04/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_SEND/X_RCV pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
12
3.15 Nast
ę
pnie nale
ż
y załadowa
ć
program do wszystkich CPU w systemach, których
wywoływali
ś
my blok SFC67 i/lub SFC68. W tym celu wracamy do głównego okna projektu
SIMATIC Managera i w oknie struktury projektu zaznaczamy jednostk
ę
, do której chcemy
załadowa
ć
program. Nast
ę
pnie naciskamy przycisk Download na pasku narz
ę
dzi
(Rys. 15a, 15b). Identycznie post
ę
pujemy dla innych jednostek zawartych w projekcie.
Rys. 15a
Rys. 15b