s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
1
Sterowniki SIMATIC S7-200 s
ą
dedykowane dla producentów maszyn oraz do budowy
zdecentralizowanych struktur sterowania, budowanych w oparciu o przemysłowe sieci
Ethernet, PROFIBUS, AS-Interface, Modbus RTU. W niniejszym dokumencie zostały
omówione biblioteki Modbus RTU Master i Modbus RTU Slave. Nast
ę
pnie opisano
przykładowe zastosowania powy
ż
szych bibliotek: komunikacja z przepływomierzem
SITRANS F M MAGFLO MAG 6000 firmy Siemens, gdzie sterownik SIMATIC S7-200 pełni
rol
ę
Mastera sieci Modbus RTU oraz komunikacja pomi
ę
dzy dwoma sterownikami S7-200,
gdzie jeden jest Masterem, a drugi Slave’em sieci Modbus RTU.
Modbus RTU Slave
Biblioteka Modbus RTU Slave zawiera niezb
ę
dne komponenty pozwalaj
ą
ce sterownikowi
SIMATIC S7-200, poprzez zintegrowane ł
ą
cze komunikacyjne, komunikowa
ć
si
ę
w protokole
Modbus RTU w trybie Slave. Biblioteka Modbus RTU Slave sprzedawana jest oddzielnie i
dostarczana na CD jako STEP 7-Micro/Win Add (numer katalogowy: 6ES7 830-2BC00-
0YX0).
Wymagania protokołu Modbus Slave:
•
Protokół Modbus Slave domy
ś
lnie współpracuje z portem „0” sterownika SIMATIC S7-
200
•
Je
ż
eli Port 0 wykorzystywany jest do komunikacji z protokołem Modbus Slave wtedy nie
mo
ż
na u
ż
y
ć
go do innych celów, dotyczy to równie
ż
programowania STEP7-Micro/Win.
Instrukcja MBUS_INIT pozwala na sterowanie parametrami Portu 0 pozwalaj
ą
c na
programow
ą
zmian
ę
trybu pracy Portu 0 z protokołu Modbus Slave na PPI. Innym
sposobem przeł
ą
czenia Portu 0 do trybu PPI, jest przeł
ą
czenie przeł
ą
cznika RUN/STOP
w poło
ż
enie STOP. Wtedy automatycznie Port 0, przeł
ą
czany jest na protokół PPI.
•
Instrukcje protokołu Modbus Slave wykorzystuj
ą
rejestry systemowe SM zwi
ą
zane z
obsług
ą
komunikacji w trybie swobodnym (Freeport) dla Portu 0. Do protokołu Modbus
Slave u
ż
ywa 3 podprogramy i 2 przerwania.
•
Instrukcje Modbus Slave zajmuj
ą
1857 bajtów w przestrzeni programu.
•
Zmienne obsługi protokołu Modbus Slave, rezerwuj
ą
dodatkowe 779 bajtów pami
ę
ci V.
Adres pocz
ą
tkowy tego obszaru definiowany jest przez u
ż
ytkownika i jest on
zarezerwowany dla zmiennych protokołu Modbus.
Inicjalizacja oraz obsługa protokołu Modbus.
Komunikacja Modbus wykorzystuje sum
ę
kontroln
ą
(CRC - Cyclic Redundancy Check) w
celu zapewnienia spójno
ś
ci przesyłanych danych. Protokół Modbus Slave wykorzystuje
metod
ę
gotowej tabeli z wyliczonymi wst
ę
pnie warto
ś
ciami sumy, co pozwala na znaczne
obni
ż
enie czasu obsługi protokołu. Inicjalizacja tabeli CRC wymaga 425 milisekund i odbywa
si
ę
w procedurze MBUS_INIT. Generalnie wykonywana jest ona przy pierwszym cyklu
programowym po zał
ą
czeniu sterownika w tryb pracy RUN. Musimy zadba
ć
jednak o to, aby
wykasowa
ć
czas kontroli cyklu programu tzw. Watchdog. Czas cyklu programu wydłu
ż
a si
ę
,
gdy instrukcja MBUS_SLAVE obsługuje zapytania. Powoduje to,
ż
e du
ż
o czasu po
ś
wi
ę
cane
jest na obliczanie sumy CRC, co wydłu
ż
a cykl o około 650
µ
s dla ka
ż
dego bajtu (dla
zapytania i odpowiedzi). Maksymalnie, akcja zapytanie-odpowied
ź
(czytanie i zapis 120
słów) wydłu
ż
a cykl programu o około 165 milisekund.
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
2
Adresacja w protokole Modus RTU Slave
Adresy w protokole Modbus s
ą
zapisywane jako 5-cio lub 6-cio znakowe warto
ś
ci,
zawieraj
ą
ce typ danych i offset. Pierwszy lub dwa kolejne znaki okre
ś
laj
ą
typ danych,
natomiast cztery ostatnie wybieraj
ą
odpowiedni
ą
warto
ść
danego typu. Urz
ą
dzenie Modbus
Master mapuje adresy dla odpowiedniej funkcji.
Nast
ę
puj
ą
ce adresy s
ą
obsługiwane przez instrukcje Modbus RTU Slave:
•
000001 do 000128 obsługuj
ą
wyj
ś
cia dyskretne dla Q0.0 – Q15.7
•
010001 do 010128 obsługuj
ą
wej
ś
cia dyskretne dla I0.0 – I15.7
•
030001 do 030032 obsługuj
ą
rejestry wej
ść
analogowych od AIW0 do AIW62
•
040001 do 04xxxx obsługuj
ą
rejestry z przestrzeni pami
ę
ci V.
Mapa adresów Modbus dla S7-200:
Adres Modbus
Adres S7-200
000001
Q0.0
000002
Q0.1
000003
Q0.2
…
…
000127
Q15.6
000128
Q15.7
010001
I0.0
010002
I0.1
010003
I0.2
…
…
010127
I15.6
010128
I15.7
030001
AIW0
030002
AIW2
030003
AIW4
…
…
030032
AIW62
040001
HoldStart
040002
HoldStart+2
040003
HoldStart+4
…
…
04xxxx
HoldStart+2 x (xxxx-1)
Instrukcja MBUS_INIT
Instrukcja MBUS_INIT wykorzystywana jest do ustawiania i inicjalizacji lub blokowania
komunikacji Modbus. Przed wywołaniem instrukcji MBUS_SLAVE nale
ż
y wykona
ć
instrukcj
ę
MBUS_INIT oraz funkcja ta musi zako
ń
czy
ć
si
ę
bez bł
ę
dów. Po poprawnym zako
ń
czeniu
instrukcji MBUS_INIT ustawiane jest wyj
ś
cie Done i program przechodzi do kolejnej
instrukcji.
Instrukcja wykonywana jest w ka
ż
dym cyklu w momencie, gdy wej
ś
cie EN jest aktywne.
Instrukcja MBUS_INIT powinna zosta
ć
wykonana tylko raz po zał
ą
czeniu zasilania
sterownika (np. za pomoc
ą
bitu SM0.1).
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
3
Biblioteka Modbus Slave wymaga ustalenia obszaru pami
ę
ci danych „V”, z którego b
ę
dzie
korzystała przy komunikacji w protokole Modbus. U
ż
ytkownik musi ustali
ć
adres startowy
obszaru pami
ę
ci „V” tak, aby nie był on w konflikcie z innymi danymi korzystaj
ą
cymi z
pami
ę
ci „V”. Aby przydzieli
ć
obszar pami
ę
ci „V” nale
ż
y prawym klawiszem myszy klikn
ąć
Program Block i z menu kontekstowego wybra
ć
polecenie Library Memory:
W okienku, które si
ę
otworzy nale
ż
y wskaza
ć
pocz
ą
tkowy adres pami
ę
ci lub skorzysta
ć
z
przycisku Suggest Address (rysunek poni
ż
ej), dzi
ę
ki czemu obszar pami
ę
ci zostanie
automatycznie przydzielony. Po naci
ś
ni
ę
ciu przycisku OK wrócimy do okna programu.
Powy
ż
sze przydzielenie pami
ę
ci V mo
ż
na wykona
ć
zaraz po wstawieniu do programu bloku
inicjuj
ą
cego MBUS_INIT. Jednak ze wzgl
ę
du na mo
ż
liwo
ść
wyst
ą
pienia konfliktów z u
ż
ytymi
w programie adresami pami
ę
ci V zaleca si
ę
przydzielanie tej pami
ę
ci po napisaniu całego
programu.
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
4
W programie, w którym chcemy skonfigurowa
ć
komunikacj
ę
w protokole Modbus RTU Slave
nale
ż
y wstawi
ć
blok inicjuj
ą
cy MBUS_INIT oraz blok MBS_SLAVE.
•
Wej
ś
cie Mode okre
ś
la protokół komunikacyjny: warto
ść
1 ustawia Port 0 na obsług
ę
protokołu Modbus, natomiast warto
ść
0 ustawia ponownie Port 0 na protokół PPI i
blokuje protokół Modbus.
•
Parametr Baud ustawia pr
ę
dko
ść
transmisji na 1200, 2400, 4800, 9600, 38400, 57600
lub 115200. Pr
ę
dko
ś
ci 57600 oraz 115200 obsługiwane s
ą
tylko przez CPU z wersj
ą
firmware’u V1.2 i pó
ź
niejszymi
•
Parametr Addr ustawia adres z zakresu 1 do 247 stacji Slave Modbus.
•
Parametr Parity okre
ś
la parzysto
ść
protokołu Modbus. Wszystkie ustawienia u
ż
ywaj
ą
jeden bit stopu. Dopuszczalne warto
ś
ci tego parametru to:
- 0 – bez parzysto
ś
ci
- 1 – parzysto
ść
odd
- 2 – parzysto
ść
even
•
Parametr Delay rozszerza standardowy czas przerwy po zako
ń
czeniu nadawania przez
dodanie okre
ś
lonej liczby milisekund do standardowego czasu timeout. Typowo warto
ść
ta ustawiana jest na 0 dla poł
ą
cze
ń
kablowych. Jednak przy poł
ą
czeniu przez modemy z
korekcj
ą
bł
ę
dów nale
ż
y ustawi
ć
warto
ść
opó
ź
nienia od 50 do 100 milisekund. Stosuj
ą
c
poł
ą
czenia radiowe nale
ż
y ustawi
ć
czas ten w zakresie od 10 do 100 milisekund.
Dopuszczalne warto
ś
ci tego parametru mieszcz
ą
si
ę
w zakresie 0 - 32767 milisekund.
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
5
Protokół Modbus Slave pozwala na ograniczenie ilo
ś
ci wej
ść
i wyj
ść
binarnych, wej
ść
analogowych i rejestrów V dost
ę
pnych dla Mastera Modbus.
•
Parametr MaxIQ ustawia ilo
ść
dost
ę
pnych wej
ść
(I) i wyj
ść
(Q) dla adresów Modbus
00xxxx oraz 01xxxx przez podanie warto
ś
ci liczbowej z zakresu 0 do 128. Warto
ść
0
blokuje odczyt i zapis z wej
ść
i na wyj
ś
cia. Sugerowana warto
ść
to 128, która obejmuje
zakres wszystkich wej
ść
(I) i wyj
ść
(Q) w sterownikach S7-200.
•
Parametr MaxAI ustawia ilo
ść
dost
ę
pnych słów wej
ść
analogowych (AI) dla adresów
Modbus 03xxxx przez podanie warto
ś
ci liczbowej z zakresu 0 do 32. Warto
ść
0 blokuje
odczyt wej
ść
analogowych. Sugerowana warto
ść
MaxAI, pozwalaj
ą
ca na odczyt
wszystkich wej
ść
analogowych w sterownikach S7-200, wynosi:
- 0 dla CPU 221
- 16 dla CPU 222
- 32 dla CPU 224, CPU 224XP oraz CPU 226
•
Parametr MaxHold ustawia ilo
ść
rejestrów (słów) w obszarze pami
ę
ci V dost
ę
pnych dla
adresów 04xxxx. Np., aby udost
ę
pni
ć
Masterowi 2000 bajtów pami
ę
ci V nale
ż
y ustawi
ć
MaxHold na warto
ść
1000 słów (rejestrów buforuj
ą
cych).
•
Parametr HoldStart ustawia adres pocz
ą
tkowy rejestrów (słów) w obszarze pami
ę
ci V.
Warto
ść
ta zasadniczo ustawiana jest na VB0, tak wi
ę
c parametr HoldStart ustawiany
jest na &VB0 (adres VB0). Równie
ż
inne adresy obszaru V mo
ż
na wyspecyfikowa
ć
jako
adres pocz
ą
tkowy. Master ma dost
ę
p do ilo
ś
ci rejestrów (słów) podanej w MaxHold od
adresu pocz
ą
tkowego HoldStart.
Po zako
ń
czeniu instrukcji MBUS_INIT ustawiane jest wyj
ś
cie Done. Wyj
ś
cie bajtowe Error
zawiera rezultat wykonania instrukcji. Tabela poni
ż
ej definiuje warunki wygenerowania bł
ę
du
przy wykonywaniu instrukcji.
Kod bł
ę
du
Opis
0
Bez bł
ę
du
1
Bł
ą
d zakresu pami
ę
ci
2
Bł
ę
dna pr
ę
dko
ść
transmisji lub parzysto
ść
3
Bł
ą
d adres Slave
4
Bł
ą
d warto
ś
ci parametrów Modbus
5
Rejestry pokrywaj
ą
si
ę
z symbolami Modbus Slave
6
Odbiór bł
ą
d parzysto
ś
ci
7
Odbiór bł
ą
d CRC
8
Bł
ę
dna funkcja/funkcja nie obsługiwana
9
Bł
ę
dny adres w zapytaniu
10
Funkcja nie dost
ę
pna w Slave
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
6
Instrukcja MBUS_SLAVE
Instrukcja MBUS_SLAVE u
ż
ywana jest do obsługi zapyta
ń
od Mastera Modbus i musi by
ć
wykonywana w ka
ż
dym cyklu, aby zapewni
ć
poprawno
ść
odpowiedzi.
Instrukcja wykonywana jest w ka
ż
dym cyklu, gdy aktywne jest wej
ś
cie EN i nie ma
parametrów wej
ś
ciowych.
Wyj
ś
cie Done ustawiane jest w momencie wykonania odpowiedzi na zapytanie stacji Master.
Natomiast wyj
ś
cie to ma stan niski, je
ż
eli nie było obsługiwane
ż
adne zapytanie.
Wyj
ś
cie bajtowe Error zawiera rezultat wykonania instrukcji. Wyj
ś
cie to jest wa
ż
ne tylko w
momencie, gdy wyj
ś
cie Done jest ustawione. W przeciwnym wypadku parametr ten nie jest
zmieniany. Mo
ż
liwe warto
ś
ci parametru Error s
ą
identyczne jak dla instrukcji MBUS_INIT.
Modbus RTU Master
Firma Siemens przygotowała bibliotek
ę
, która pozwala poprzez zintegrowane zł
ą
cze
komunikacyjne sterownika SIMATIC S7-200 komunikowa
ć
si
ę
w protokole Modbus RTU
Master z jednym lub wieloma urz
ą
dzeniami pracuj
ą
cymi jako Modbus RTU Slave.
Wymagania biblioteki Modbus Master
•
Protokół Modbus Master odwołuje si
ę
do Portu 0 lub Portu 1 sterownika S7-200. W
przypadku, gdy Port 0 jest wykorzystany do komunikacji w Modbus Master, port ten nie
mo
ż
e by
ć
u
ż
yty do innych celów wł
ą
cznie z obsług
ą
programu narz
ę
dziowego STEP7-
Micro/Win. Funkcja MBUS_CTRL przyporz
ą
dkowuje Port 0 do protokołu Modbus Master
lub PPI
•
Biblioteka Modbus Master odwołuje si
ę
do bajtów systemowych SM przyporz
ą
dkowuj
ą
c
tryb Free Port do Portu 0 sterownika SIMATIC S7-200
•
Biblioteka Modbus Master wykorzystuje 3 podprogramy oraz 1 program przerwania
•
Biblioteka Modbus Master zajmuje ok. 1620 bajtów pami
ę
ci programu sterownika
SIMATIC S7-200
•
Biblioteka Modbus Master zajmuje 284 bajtów pami
ę
ci danych V. Istnieje mo
ż
liwo
ść
wyboru adresu pocz
ą
tkowego dla zmiennych
•
SIMATIC S7-200 CPU musi posiada
ć
wersj
ę
firmware 2.00 lub wy
ż
sz
ą
w celu obsługi
protokołu Modbus Master (CPU o numerach katalogowych: 6ES7 21x-2xx23-0XB0).
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
7
•
Przerwania, które s
ą
wykorzystywane w bibliotece Modbus Master, nie mog
ą
by
ć
wył
ą
czone przez program u
ż
ytkownika
Czasy wykonywania instrukcji w protokole Modbus Master
Protokół Modbus Master wymaga krótkich czasów wykonywania instrukcji. Czas wykonania
instrukcji protokołu Modbus Master wynosi około 1.11 ms w przypadku gdy instrukcja
MBUS_CTRL inicjalizuje komunikacj
ę
(pierwszy cykl pracy) oraz 0.41 ms w kolejnych
cyklach pracy sterownika SIMATIC S7-200. Czas wydłu
ż
a si
ę
w przypadku gdy wykonywana
jest instrukcja MBUS_MSG. Wi
ę
kszo
ść
tego czasu jest u
ż
ywana na obsług
ę
korekcji bł
ę
dów
CRC (Cyclic Redundancy Check) zwi
ą
zan
ą
z zapytaniem i odpowiedzi
ą
sterownika. Czas
cyklu jest wydłu
ż
any do 1.85 ms dla ka
ż
dego słowa w zapytaniu i odpowiedzi. Maksymalny
czas zapytania i odpowiedzi (odczyt/zapis 120 słów) wydłu
ż
a czas cyklu do 222 ms.
Adresowanie w protokole Modbus
Adresy w protokole Modbus s
ą
zapisywane jako 5 znakowe warto
ś
ci zawieraj
ą
ce typ danych
oraz przesuniecie – offset. Pierwszy znak definiuje typ danych za
ś
kolejne cztery warto
ść
z
uwzgl
ę
dnieniem typu danej. Instrukcje protokołu Modbus Master w zale
ż
no
ś
ci od zakresu
adresu odwołuj
ą
si
ę
do odpowiednich rejestrów sterownika pracuj
ą
cego w trybie Slave.
Protokół Modbus Master obsługuje nast
ę
puj
ą
ce zakresy adresów:
•
00001 do 09999 wyj
ś
cia binarne (cewki)
•
10001 do 19999 wej
ś
cia binarne (styki)
•
30001 do 39999 wej
ś
ciowe rejestry (generalnie wej
ś
cia analogowe)
•
40001 do 49999 rejestry pami
ę
ci.
Zakres dost
ę
pnych adresów jest uzale
ż
niony od typu konkretnego urz
ą
dzenia Slave. Ró
ż
ne
urz
ą
dzenia Slave obsługuj
ą
ró
ż
ne typy danych oraz ró
ż
ne zakresy adresów.
Instrukcja MBUS_CTRL
Instrukcja MBUS_CTRL (MBUS_CTRL_P1) słu
ż
y do inicjalizacji, monitorowania lub
wył
ą
czenia komunikacji Modbus i powinna by
ć
wywoływana w ka
ż
dym cyklu pracy
sterownika. Zanim instrukcja MBUS_MSG zostanie u
ż
yta, instrukcja MBUS_CTRL musi
zosta
ć
wykonana bezbł
ę
dnie, tzn. po jej wykonaniu powinien by
ć
ustawiony bit Done.
Instrukcja jest przetwarzana za ka
ż
dym cyklem o ile jest aktywny bit EN.
Biblioteka Modbus Master wymaga ustalenia obszaru pami
ę
ci danych „V”, z którego b
ę
dzie
korzystała przy komunikacji w protokole Modbus. U
ż
ytkownik musi ustali
ć
adres startowy
obszaru pami
ę
ci „V” tak, aby nie był on w konflikcie z innymi danymi korzystaj
ą
cymi z
pami
ę
ci „V”. Aby przydzieli
ć
obszar pami
ę
ci „V” nale
ż
y po napisaniu programu prawym
klawiszem myszy klikn
ąć
Program Block i z menu kontekstowego wybra
ć
polecenie Library
Memory:
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
8
W okienku, które si
ę
otworzy nale
ż
y wskaza
ć
pocz
ą
tkowy adres pami
ę
ci lub skorzysta
ć
z
przycisku Suggest Address (rysunek poni
ż
ej), dzi
ę
ki czemu obszar pami
ę
ci zostanie
automatycznie przydzielony. Po naci
ś
ni
ę
ciu przycisku OK wrócimy do okna programu.
Powy
ż
sze przydzielenie pami
ę
ci V mo
ż
na wykona
ć
zaraz po wstawieniu do programu bloku
inicjuj
ą
cego MBUS_CTRL (dla portu 0) lub MBUS_CTRL_P1 (dla portu 1). Jednak ze
wzgl
ę
du na mo
ż
liwo
ść
wyst
ą
pienia konfliktów z u
ż
ytymi w programie adresami pami
ę
ci V
zaleca si
ę
przydzielanie tej pami
ę
ci po napisaniu całego programu.
W programie, w którym chcemy skonfigurowa
ć
komunikacj
ę
w protokole Modbus RTU
Master nale
ż
y wstawi
ć
blok inicjuj
ą
cy MBUS_CTRL lub MBUS_CTRL_P1 (w zale
ż
no
ś
ci od
portu, na którym chcemy u
ż
ywa
ć
protokołu Modbus RTU Master) oraz blok MBUS_MSG
(MBUS_MSG_P1 dla portu 1) słu
żą
cy do odpytywania urz
ą
dzenia Slave.
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
9
•
Warto
ść
na wej
ś
ciu Mode dokonuje wyboru protokołu komunikacyjnego. Warto
ść
„1”
przyporz
ą
dkowuje dla portu 0 protokół Modbus. Warto
ść
0 ustala na porcie 0 protokół
PPI, tym samym wył
ą
cza Modbus.
•
Parametr Baud ustala pr
ę
dko
ść
komunikacji: 1200, 2400, 4800, 9600, 19200, 38400,
57600 lub 115200 bitów/s.
•
Parametr Parity ustala kontrol
ę
parzysto
ś
ci dla urz
ą
dzenia Slave. Sztywno jest ustalony
jeden bit startu oraz jeden bit stopu. Dla parametru Parity dost
ę
pne s
ą
nast
ę
puj
ą
ce
warto
ś
ci:
- 0 – bez kontroli parzysto
ś
ci
- 1 – parzysto
ść
- 2 – nieparzysto
ść
•
Parametr Timeout jest odpowiedzialny za ustawienie czasu odpowiedzi
(w milisekundach) od urz
ą
dzenia typu Slave. Parametr mo
ż
e by
ć
ustawiany w zakresie
od 1 do 32767 milisekund. Warto
ść
standardowa to 1000 milisekund (1 sekunda).
Parametr Timeout nale
ż
y ustali
ć
tak, aby urz
ą
dzenie typu Slave zd
ąż
yło odpowiedzie
ć
na
zapytanie, przy ustalonej pr
ę
dko
ś
ci komunikacyjnej.
•
Wyj
ś
cie Error zawiera informacj
ę
o wyst
ą
pieniu bł
ę
du w przetwarzaniu instrukcji
MBUS_CTRL. Mo
ż
liwe s
ą
nast
ę
puj
ą
ce warto
ś
ci parametru Error:
Kod bł
ę
du
Opis
0
Bez bł
ę
du
1
Bł
ą
d parzysto
ś
ci
2
Bł
ą
d wyboru pr
ę
dko
ś
ci komunikacji
3
Bł
ą
d czasu odpowiedzi Timeout
4
Bł
ą
d wyboru trybu pracy
Uwaga! Parametry Baud, Parity i Timeout powinny mie
ć
tak
ą
sam
ą
warto
ść
w ustawieniach
urz
ą
dzenia Slave i w powy
ż
szej instrukcji.
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
10
Instrukcja MBUS_MSG
Instrukcja MBUS_MSG inicjuje zapytanie oraz odpowied
ź
z urz
ą
dzenia Slave. Instrukcja
MBUS_MSG wykonuje proces zapytania do urz
ą
dzenia Slave, je
ż
eli na obu wej
ś
ciach EN
oraz First podana jest jedynka logiczna. Proces wysłania i oczekiwania na odpowied
ź
wymaga wykonania kilku cykli programu. Wej
ś
cie EN musi by
ć
aktywne a
ż
do momentu, gdy
wyj
ś
cie Done zostanie ustawione.
W danym momencie mo
ż
e by
ć
aktywna tylko jedna instrukcja MBUS_MSG. Je
ż
eli b
ę
d
ą
uruchomione inne instrukcje to tylko pierwsza z nich zostanie wykonana, pozostałe zwróc
ą
bł
ę
dy wykonania (kod bł
ę
du 6 – zaj
ę
ty kanał komunikacyjny).
Parametr First powinien by
ć
aktywny tylko przez jeden cykl pracy, najlepiej do tego celu
wykorzysta
ć
instrukcje wykrywania zbocza narastaj
ą
cego.
•
Parametr Slave okre
ś
la adres urz
ą
dzenia Slave. Dost
ę
pne s
ą
adresy od 0 do 247. Adres
0 jest adresem rozgłoszeniowym i mo
ż
e by
ć
u
ż
yty do celów zapisu. Nie wszystkie
urz
ą
dzenia typu Slave obsługuj
ą
adresy rozgłoszeniowe. Biblioteka Modbus Slave dla
SIMATIC S7-200 nie obsługuje adresów rozgłoszeniowych.
Uwaga! W ustawieniach urz
ą
dzenia Slave nale
ż
y ustawi
ć
taki sam adres urz
ą
dzenia jak
w powy
ż
szej instrukcji.
•
Parametr RW ustala czy zapytanie ma słu
ż
y
ć
do odczytu (warto
ść
0) czy te
ż
do zapisu
(warto
ść
1). Wyj
ś
cia binarne (cewki) oraz rejestry obsługuj
ą
oba zapytania - zapis i
odczyt. Wej
ś
cia binarne (styki) oraz wej
ś
ciowe rejestry obsługuj
ą
tylko odczyt.
•
Parametr Addr jest adresem startowym. Dost
ę
pne s
ą
nast
ę
puj
ą
ce zakresy adresów:
- 00001 do 09999 dla wyj
ść
(cewki)
- 10001 do 19999 dla wej
ść
(styki)
- 30001 do 39999 dla rejestrów wej
ś
ciowych
- 40001 do 49999 dla rejestrów pami
ę
ci
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
11
•
Parametr Count okre
ś
la liczb
ę
danych do odczytu lub zapisu. Parametr Count b
ę
dzie
ilo
ś
ci
ą
bitów dla danych typu bitowego oraz ilo
ś
ci
ą
słów dla danych typu Word:
- Adres 0xxxx – Count jest liczb
ą
bitów do odczytu lub zapisu
- Adres 1xxxx – Count jest liczb
ą
bitów do odczytu
- Adres 3xxxx – Count jest liczb
ą
rejestrów wej
ś
ciowych do odczytu
- Adres 4xxxx – Count jest liczb
ą
rejestrów pami
ę
ci do odczytu lub zapisu.
Instrukcja MBUS_MSG mo
ż
e odczyta
ć
lub zapisa
ć
max. 120 słów lub 1920 bitów (240
bajty danych). Ograniczeniem na liczb
ę
podawan
ą
w parametrze Count s
ą
ograniczenia
wnoszone przez samo urz
ą
dzenie typu Slave.
•
Parametr DataPtr jest wska
ź
nikiem do adresu obszaru danych „V” sterownika SIMATIC
S7-200 zwi
ą
zanego z obsług
ą
zapisu lub odczytu. Dla odczytu DataPtr wskazuje
pocz
ą
tek obszaru pami
ę
ci w sterowniku SIMATIC S7-200, gdzie dane odczytane z
urz
ą
dzenia Slave, b
ę
d
ą
zapisane w pami
ę
ci sterownika. Dla zapisu DataPtr wskazuje
pocz
ą
tek obszaru pami
ę
ci w SIMATIC S7-200, sk
ą
d dane b
ę
d
ą
pobierane do wysłania
do urz
ą
dzenia Slave. Parametr DataPtr jest wska
ź
nikiem, wi
ę
c przykładowo, je
ż
eli dane
do przesłania do urz
ą
dzenia Slave s
ą
umiejscowione od adresu VW200, warto
ść
wska
ź
nika nale
ż
y poda
ć
jako &VB200. Wska
ź
nik musi by
ć
formatu VB nawet, je
ś
li
wskazuje na dan
ą
typu Word. Rejestry pami
ę
ci (adres 4xxxx) oraz rejestry wej
ś
ciowe
(adres 3xxxx) s
ą
warto
ś
ciami typu Word (2 bajty lub 16 bitów). Format zmiennej word
zdefiniowany w sterowniku SIMATIC S7-200 jest taki sam jak rejestrów Modbus.
•
Parametr Done instrukcji MBUS_MSG przyjmuje warto
ść
zero, gdy zostało wysłane
zapytanie lub oczekiwany jest odbiór danych z urz
ą
dzenia Slave. Jest on ustawiany na
jeden, gdy dane zostały poprawnie odebrane lub gdy instrukcja MBUS_MSG
wygenerowała bł
ą
d komunikacji.
•
Parametr Error jest ustawiany tylko, gdy bit Done jest jedynk
ą
. Tabela poni
ż
ej opisuje
mo
ż
liwe do wyst
ą
pienia warto
ś
ci oznaczaj
ą
ce odpowiednie bł
ę
dy komunikacji.
Numery bł
ę
dów od 1 do 8 opisuj
ą
bł
ę
dy, które s
ą
wykryte przez instrukcj
ę
MBUS_MSG.
Bł
ę
dy te informuj
ą
o problemie z parametrami wej
ś
ciowymi na wej
ś
ciu instrukcji
MBUS_MSG lub opisuj
ą
problemy z odbiorem danych od urz
ą
dzenia Slave. Bł
ę
dy
parzysto
ś
ci oraz CRC informuj
ą
,
ż
e nast
ą
pił odbiór danych, jednak
ż
e dane nie s
ą
odebrane wła
ś
ciwie - przewa
ż
nie jest to problem elektryczny (np. złe poł
ą
czenie
przewodowe).
Bł
ę
dy od 101 s
ą
bł
ę
dami przychodz
ą
cymi od urz
ą
dzenia Slave. Oznaczaj
ą
one,
ż
e
urz
ą
dzenie Slave nie obsługuje wymaganej funkcji lub,
ż
e wymagany adres nie jest
osi
ą
galny w urz
ą
dzeniu Slave.
Kod bł
ę
du
Opis
0
Brak bł
ę
dów
1
Bł
ą
d parzysto
ś
ci w zapytaniu. Jest to mo
ż
liwe tylko wtedy, gdy został
ustawiony parametr kontroli parzysto
ś
ci even lub odd. Jest to przewa
ż
nie
problem z poł
ą
czeniami kablowymi lub zakłóceniami w transmisji danych.
2
Nieu
ż
ywane
3
Przekroczony czas odpowiedzi Timeout. Brak odpowiedzi z urz
ą
dzenia Slave.
Mo
ż
liwe przyczyny wyst
ą
pienia bł
ę
du to bł
ę
dy ł
ą
czeniowe kabli, ró
ż
ne
nastawione pr
ę
dko
ś
ci w Masterze oraz Slave, inne nastawy korekcji bł
ę
dów
parzysto
ś
ci lub niewła
ś
ciwy adres urz
ą
dzenia Slave.
4
Jeden lub wi
ę
cej parametrów (Slave, RW, Addr, Count) jest ustawiony na
niewła
ś
ciw
ą
warto
ść
. Nale
ż
y sprawdzi
ć
w dokumentacji wymagane nastawy
dla tych parametrów.
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
12
5
Modbus Master nie jest zał
ą
czony do pracy. Nale
ż
y uruchomi
ć
instrukcje
MBUS_CTRL i przetwarza
ć
j
ą
w ka
ż
dym cyklu pracy sterownika.
6
Zaj
ę
ty kanał komunikacyjny. Tylko jedna instrukcja MBUS_MSG mo
ż
e by
ć
aktywna w ustalonym czasie.
7
Bł
ą
d dost
ę
pu. Odbiornik nie odpowiada na zapytania. Mo
ż
liwe przyczyna to
uszkodzenie urz
ą
dzenia Slave lub odpowied
ź
przyszła od niewła
ś
ciwego
urz
ą
dzenia Slave.
8
Bł
ą
d sumy kontrolnej CRC w zapytaniu. Nast
ą
piło zakłócenie transmisji i
odebrano niewła
ś
ciwe dane. Przyczyn
ą
mog
ą
by
ć
poł
ą
czenia kablowe lub
zakłócenia elektryczne.
101
Urz
ą
dzenie Slave nie obsługuje wymaganej funkcji.
102
Urz
ą
dzenie Slave nie obsługuje zadeklarowanego adresu danych.
Zdefiniowany zakres adresu Addr oraz liczba danych Count znajduj
ą
si
ę
poza
dost
ę
pnym zakresem dla urz
ą
dzenia Slave.
103
Urz
ą
dzenie Slave nie obsługuje tego typu danych. Typ adresu zadeklarowany
w Addr nie jest obsługiwany przez wybrane urz
ą
dzenie Slave.
104
Uszkodzone urz
ą
dzenie Slave.
105
Urz
ą
dzenie Slave akceptuje meldunek, ale opó
ź
niona jest odpowied
ź
.
Powoduje to generacj
ę
bł
ę
du w instrukcji MBUS_MSG. Program u
ż
ytkownika
powinien ponownie wysła
ć
zapytanie w czasie pó
ź
niejszym.
106
Urz
ą
dzenie Slave jest zaj
ę
te i zapytanie zostało odrzucone. Nale
ż
y ponowi
ć
to
zapytanie w pó
ź
niejszym czasie.
107
Urz
ą
dzenie odrzuca zapytanie z nieznanej przyczyny
108
Bł
ą
d parzysto
ś
ci pami
ę
ci urz
ą
dzenia Slave. Wykryto wad
ę
w urz
ą
dzeniu
Slave.
Komunikacja w protokole Modbus RTU Master na przykładzie komunikacji sterownika
S7-200 z przepływomierzem SITRANS F M MAGFLO MAG 6000
Wymagane komponenty:
•
Sterownik SIMATIC S7-200 z dwoma portami RS485 (CPU 224XP lub CPU 226)
•
Do komunikacji pomi
ę
dzy komputerem a sterownikiem (jedna z poni
ż
szych opcji):
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
13
- PC/PPI MultiMaster (nr kat. 6ES7 901-3DB30-0XA0)
- PC Adapter USB (nr kat. 6ES7 972-0CB20-0XA0)
- CP5512 - karta PCMCIA (nr kat. 6GK1 551-2AA00) i kabel MPI - 6ES7 901-0BF00-
0AA0
- CP5611 - karta PCI (nr kat. 6GK1 561-1AA01) i kabel MPI - 6ES7 901-0BF00-0AA0
•
Komputer PC z zainstalowanym oprogramowaniem STEP 7-Micro/Win od wersji 4.0 +
SP5 (z bibliotekami Modbus Master)
•
Przepływomierz SITRANS F M MAGFLO MAG 6000 (nr kat. 7ME6920-1AA10-1AA0)
wraz z modułem MODBUS RTU RS 485 (nr kat. FDK-085U0234) i symulatorem
•
Do komunikacji pomi
ę
dzy przepływomierzem a sterownikiem S7-200: kabel PROFIBUS
(nr kat. 6XV1 830-0EH10) wraz z wtyczk
ą
(np. nr kat. 6ES7 972-0BB50-0XA0)
W przykładowym zastosowaniu przepływomierz (z zainstalowan
ą
kart
ą
Modbus) wraz z
symulatorem został podł
ą
czony za pomoc
ą
kabla PROFIBUS do sterownika S7-200 (CPU
224XP) do portu 0. Do portu 1 za pomoc
ą
kabla PC/PPI (USB) został podł
ą
czony komputer
PC (programator). Po
żą
danym działaniem programu był odczyt dwóch warto
ś
ci z
przepływomierza: aktualnego poziomu przepływu oraz warto
ś
ci licznika całkowitego
przepływu.
W ustawieniach karty Modbus przepływomierza zostały wprowadzone nast
ę
puj
ą
ce
parametry:
- Adres Slave’a w sieci Modbus: 4
- Pr
ę
dko
ść
transmisji: 9600 baud
- Parzysto
ść
: brak parzysto
ś
ci, 1 bit stopu
- Maksymalny czas odpowiedzi: 0,5 s
- Czas opó
ź
nienia: 0,1 s
Powy
ż
sze ustawienia nale
ż
y uwzgl
ę
dni
ć
podczas parametryzowania instrukcji MBUS_CTRL
i MBUS_MSG.
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
14
W programie umieszczono 3 instrukcje zwi
ą
zane z protokołem Modbus Master. Pierwsza z
nich – MBUS_CTRL inicjuje protokół i jest wywoływana w ka
ż
dym cyklu programu (rysunek
poni
ż
ej).
Parametry Baud, Parity i Timeout (w milisekundach) zostały ustawione zgodnie z
wcze
ś
niejszymi nastawami przepływomierza. Bł
ę
dy s
ą
zapisywane do pami
ę
ci MB1, a
prawidłowa inicjalizacja protokołu jest sygnalizowana stanem wysokim bitu M0.0.
Nale
ż
y uwzgl
ę
dni
ć
odpowiednie opó
ź
nienie czasowe pomi
ę
dzy wysyłanymi wiadomo
ś
ciami,
dzi
ę
ki któremu sterownik b
ę
dzie miał czas na odebranie odpowiedzi na wysłane zapytanie.
W przykładowym programie warto
ść
opó
ź
nienia została zaprogramowana na 6 sekund za
pomoc
ą
dwóch liczników (T37 i T38), dzi
ę
ki czemu mo
ż
liwy był wystarczaj
ą
co płynny odczyt
po
żą
danych warto
ś
ci i brak bł
ę
dów transmisji.
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
15
Pierwsza wysyłana wiadomo
ść
MBUS_MSG ma za zadanie odczyta
ć
warto
ść
aktualnego
przepływu (rysunek poni
ż
ej). Parametr Slave ustawiony na 4 okre
ś
la adres Slave’a –
przepływomierza w sieci Modbus, który wcze
ś
niej został ustawiony w przepływomierzu.
Parametr RW ustawiony na 0 oznacza odczyt warto
ś
ci. Parametr Addr jest ustawiony
zgodnie z adresem rejestru „Modbus register”, do którego zapisywana jest warto
ść
aktualnego przepływu. W parametrze Count wpisano warto
ść
4, poniewa
ż
zgodnie z danymi
technicznymi karty Modbus przepływomierza wła
ś
nie w tylu bajtach zapisywane s
ą
informacje o przepływie. W parametrze DataPtr wpisano wska
ź
nik do pami
ę
ci w sterowniku
S7-200, który wskazuje pocz
ą
tek obszaru pami
ę
ci sterownika, do którego maj
ą
by
ć
zapisywane warto
ś
ci przepływu przesłane z przepływomierza.
Bł
ę
dy s
ą
zapisywane do pami
ę
ci MB3, a prawidłowa inicjalizacja protokołu jest
sygnalizowana stanem wysokim bitu M0.1.
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
16
Kolejna przesyłana wiadomo
ść
(rysunek poni
ż
ej) ma za zadanie odczyta
ć
warto
ść
licznika
całkowitego przepływu. Jedyne ró
ż
nice w porównaniu do wcze
ś
niej przesyłanej wiadomo
ś
ci
to adres rejestru Modbus (parametr Addr), z którego odczytywane b
ę
d
ą
aktualne warto
ś
ci
całkowitego przepływu na liczniku oraz wska
ź
nik do pami
ę
ci sterownika S7-200 (parametr
DataPtr), w której b
ę
d
ą
zapisywane odczytane warto
ś
ci.
Po wprowadzeniu programu do sterownika uzyskano mo
ż
liwo
ść
podgl
ą
du aktualnego
poziomu przepływu (pami
ęć
VD200) oraz warto
ś
ci licznika całkowitego przepływu (pami
ęć
VD204). Warto
ś
ci te mo
ż
liwe były do odczytania w oknie Status Chart (patrz: rysunek
poni
ż
ej) w programie STEP 7-Micro/Win po wprowadzeniu w kolumnie Address powy
ż
szych
adresów pami
ę
ci oraz zmianie formatu wy
ś
wietlanych warto
ś
ci na Floating Point.
Dodatkowo, aby warto
ś
ci wy
ś
wietlane były w identycznych jednostkach jak na wy
ś
wietlaczu
przepływomierza, przemno
ż
ono je przez 1000 za pomoc
ą
instrukcji MUL_R i przepisano do
pami
ę
ci odpowiednio VD300 i VD304.
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
17
Komunikacja w protokole Modbus RTU Slave na przykładzie komunikacji pomi
ę
dzy
dwoma sterownikami S7-200
Wymagane komponenty:
•
2 sterowniki SIMATIC S7-200 z dwoma portami RS485 (CPU 224XP lub CPU 226)
•
Do komunikacji pomi
ę
dzy komputerem a sterownikiem (jedna z poni
ż
szych opcji):
- PC/PPI MultiMaster (nr kat. 6ES7 901-3DB30-0XA0)
- PC Adapter USB (nr kat. 6ES7 972-0CB20-0XA0)
- CP5512 - karta PCMCIA (nr kat. 6GK1 551-2AA00) i kabel MPI - 6ES7 901-0BF00-
0AA0
- CP5611 - karta PCI (nr kat. 6GK1 561-1AA01) i kabel MPI - 6ES7 901-0BF00-0AA0
•
Komputer PC z zainstalowanym oprogramowaniem STEP 7-Micro/Win od wersji 4.0 +
SP5 (z bibliotekami Modbus Master)
•
Do komunikacji pomi
ę
dzy sterownikami S7-200: kabel PROFIBUS (nr kat. 6XV1 830-
0EH10) wraz z wtyczkami (np. nr kat. 6ES7 972-0BB50-0XA0)
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
18
W poni
ż
szym przykładzie jeden sterownik S7-200 pełnił rol
ę
Mastera, a drugi Slave’a w sieci
Modbus RTU. Sterownik S7-200 w trybie Slave działa tylko na porcie 0, tak wi
ę
c kabel
PROFIBUS został podł
ą
czony wła
ś
nie do tego portu. W przypadku sterownika działaj
ą
cego
jako Master numer portu jest dowolny, jednak w zale
ż
no
ś
ci od tego, do którego portu
podł
ą
czymy kabel PROFIBUS nale
ż
y u
ż
ywa
ć
odpowiednich funkcji: MBUS_CTRL i
MBUS_MSG dla portu 0 lub MBUS_CTRL_P1 i MBUS_MSG_P1 dla portu 1.
Program Slave’a
W programie sterownika działaj
ą
cego jako Slave sieci parametr Mode ustawiono na 1 –
przypisanie portu 0 do protokołu Modbus. Slave’owi przydzielono adres 4 w sieci – parametr
Addr równy 4, a pr
ę
dko
ść
transmisji ustawiono na 9600. Parametr Parity ustawiony na 0
oznacza brak parzysto
ś
ci. Program sterownika działaj
ą
cego jako Slave dopuszczał odczyt
wszystkich wej
ść
/wyj
ść
binarnych i wej
ść
analogowych, dlatego te
ż
w instrukcji MBUS_INIT
parametry MaxIQ i MaxAI zostały ustawione na maksymaln
ą
dopuszczaln
ą
warto
ść
, a
parametr MaxHold ustawiono na 1000, dzi
ę
ki czemu Master miał dost
ę
p do 1000 słów w
pami
ę
ci V. Dost
ę
p pocz
ą
tkowy od adresu VD0 uzyskano poprzez wpisanie wska
ź
nika &VB0
w parametrze HoldStart.
Prawidłowe zainicjowanie protokołu jest sygnalizowane w bicie M0.0, a bł
ę
dy w pami
ę
ci
MB1. Instrukcja ta jest inicjowana przy pierwszym uruchomieniu programu za pomoc
ą
bitu
specjalnego SM0.1.
Instrukcja MBUS_SLAVE jest inicjowana w ka
ż
dym cyklu programu, a prawidłowy jej
przebieg jest sygnalizowany bitem M0.1. Ewentualne bł
ę
dy sygnalizowane s
ą
w pami
ę
ci
MB3.
s
s
s
s
FAQ: 00000008/PL Data: 16/08/2007
Komunikacja sterownika SIMATIC S7-200 w protokole Modbus RTU
www.siemens.pl/simatic
Doradztwo techniczne: simatic.pl@siemens.com
19
Program Master’a
W programie działaj
ą
cym jako Master w instrukcji MBUS_CTRL parametr Mode w ka
ż
dym
cyklu programu jest ustawiany na 1 za pomoc
ą
bitu SM0.0, co przypisuje port 0 do protokołu
Modbus. Pr
ę
dko
ść
ustawiono na 9600 (parametr Baud), przy braku parzysto
ś
ci (Parity
ustawione na 0) i opó
ź
nieniu 5 sekund (Timeout równe 5000).
Prawidłowe zainicjowanie instrukcji MBUS_CTRL jest sygnalizowane w bicie M0.0, a bł
ę
dy w
pami
ę
ci MB1.
Instrukcja MBUS_MSG jest inicjowana równie
ż
w ka
ż
dym cyklu programu, jednak zapytanie
jest wysyłane w co drugim przej
ś
ciu programu – parametr First inicjowany jest bitem SM0.5.
Parametr Slave ustawiony na 4 oznacza odpytywanie Slave, który ma przypisany 4-ty adres
w sieci. RW ustawione na 0 umo
ż
liwia odczytywanie danych ze Slave’a. Parametr Addr
oznaczaj
ą
cy adres w rejestrze Slave’a był ustawiony na 10003, co umo
ż
liwiło odczyt stanu
wej
ś
cia I0.2 – zmienianego w Slave’ie za pomoc
ą
przeł
ą
cznika symulacyjnego wej
ść
. Count
ustawiony na 4 oznacza ilo
ść
odczytywanych bajtów. Odczytywane dane były zapisywane do
pami
ę
ci o adresie VD200 – w parametrze DataPtr ustawiono wska
ź
nik na ten adres &VB200.
Prawidłowe wysłanie i odebranie wiadomo
ś
ci jest sygnalizowane ustawieniem bitu M0.2, a
ewentualne bł
ę
dy s
ą
raportowane w pami
ę
ci MB3.