s
s
s
s
FAQ: 00000016/PL Data: 19/03/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_PUT/X_GET 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_PUT/X_GET
1. Podstawowe informacje
Funkcje X_PUT/X_GET oznaczone jako SFC67/SFC68 s
ą
cz
ęś
ci
ą
systemu operacyjnego
sterowników serii S7. Funkcje SFC nie s
ą
ładowane jako cz
ęść
programu. SFC s
ą
blokami
‘bez pami
ę
ci’.
Funkcja X_GET pozwala na odczyt danych z jednostek bior
ą
cych udział w komunikacji.
Funkcja X_PUT pozwala na zapis danych w jednostkach bior
ą
cych udział w komunikacji.
Zarówno w przypadku funkcji X_PUT jak i X_GET w jednostkach, z którymi nawi
ą
zywana
jest komunikacja nie umieszcza si
ę
odpowiadaj
ą
cych SFC.
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: 00000016/PL Data: 19/03/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_PUT/X_GET pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
2
3. Wywołanie i parametryzacja funkcji X_PUT/X_GET
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: 00000016/PL Data: 19/03/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_PUT/X_GET 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: 00000016/PL Data: 19/03/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_PUT/X_GET pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
4
3.5 W bloku organizacyjnym OB1 wywołujemy funkcje X_SEND. Z listy elementów programu
wybieramy Libraries
→
Standard Library
→
System Function Blocks (Rys. 5).
Rys. 5
s
s
s
s
FAQ: 00000016/PL Data: 19/03/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_PUT/X_GET 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 i klikaj
ą
c
dwukrotnie w jego symbol umieszczamy go w projekcie (Rys. 6).
Rys. 6
s
s
s
s
FAQ: 00000016/PL Data: 19/03/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_PUT/X_GET pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
6
Poni
ż
ej został umieszczony opis parametrów funkcji X_PUT/X_GET.
X_GET (SFC67)
Parametr
Opis
REQ
Logiczna jedynka zezwalaj
ą
ca na odczytanie danych z okre
ś
lonej stacji
CONT
Przerywa poł
ą
czenie po zako
ń
czeniu transferu danych
DEST_ID
Adres ID urz
ą
dzenia, z którym ma zosta
ć
nawi
ą
zana komunikacja
VAR_ADDR Wska
ź
nik do przestrzeni pami
ę
ci, z której maj
ą
by
ć
odczytane dane.
RET_VAL
W przypadku wyst
ą
pienia bł
ę
du zmienna zawiera jego kod, w przypadku braku
bł
ę
du zmienna zawiera długo
ść
odbieranego bloku danych
BUSY
Gdy BUSY=1: proces czytania nie został zako
ń
czony.
Gdy BUSY=0: proces czytania został zako
ń
czony lub nie jest aktywny.
RD
Wska
ź
nik do przestrzeni pami
ę
ci, która ma zosta
ć
nadpisana przez pobrane
dane.
X_PUT (SFC68)
Parametr
Opis
REQ
Logiczna jedynka zezwalaj
ą
ca na zapis w pami
ę
ci stacji docelowej
CONT
Przerywa poł
ą
czenie po zako
ń
czeniu transferu danych
DEST_ID
Adres ID urz
ą
dzenia, z którym ma zosta
ć
nawi
ą
zana komunikacja
VAR_ADDR
Wska
ź
nik do przestrzeni pami
ę
ci, do której maj
ą
by
ć
przesłane i zapisane
dane.
SD
Wska
ź
nik do przestrzeni pami
ę
ci w S7-300/S7-400, która ma zosta
ć
wysłana.
Dopuszczalne s
ą
nast
ę
puj
ą
ce typy danych: BOOL, BYTE, WORD, DWORD
oraz tablice wymienionych typów z wykluczeniem BOOL. Obszar SD musi mie
ć
tak
ą
sam
ą
długo
ść
jak VAR_ADDR. Równie
ż
typy danych musz
ą
by
ć
ze sob
ą
zgodne.
RET_VAL
W przypadku wyst
ą
pienia bł
ę
du zmienna zawiera jego kod, w przypadku braku
bł
ę
du zmienna zawiera długo
ść
wysyłanego bloku danych.
BUSY
Gdy BUSY=1: proces wysyłania nie został zako
ń
czony.
Gdy BUSY=0: proces wysyłania został zako
ń
czony lub nie jest aktywny.
s
s
s
s
FAQ: 00000016/PL Data: 19/03/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_PUT/X_GET pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
7
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).
Parametry VAR_ADDR, SD, RD nale
ż
y zdefiniowa
ć
jako wska
ź
niki do interesuj
ą
cych nas
obszarów pami
ę
ci w zwi
ą
zku z tym nie mo
ż
na ich zdefiniowa
ć
w bloku danych. Trzeba to
zrobi
ć
bezpo
ś
rednio w głównym bloku programu OB1.
Rys. 7
Rys. 8
s
s
s
s
FAQ: 00000016/PL Data: 19/03/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_PUT/X_GET pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
8
3.9 Wchodzimy do bloku OB1 i przypisujemy zdefiniowane zmienne do odpowiednich
parametrów funkcji X_PUT/X_GET (Rys. 9).
Rys. 9
s
s
s
s
FAQ: 00000016/PL Data: 19/03/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_PUT/X_GET pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
9
3.10 Poni
ż
ej pokazane s
ą
sparametryzowane bloki SFC67 i SFC68 (Rys. 10)
Rys. 10
s
s
s
s
FAQ: 00000016/PL Data: 19/03/2008
Komunikacja w protokole MPI za pomoc
ą
funkcji X_PUT/X_GET pomi
ę
dzy sterownikami S7-300
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
10
3.11 Nast
ę
pnie nale
ż
y załadowa
ć
program do wszystkich CPU, w 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. 11). Identycznie
post
ę
pujemy dla innych jednostek zawartych w projekcie.
Rys. 11