background image

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.  

 

 

 
 
 

background image

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).   

 

background image

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.  
 

background image

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

ą

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.  

 

 
 
 
 
 

background image

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 

Bez bł

ę

du 

ą

d zakresu pami

ę

ci 

ę

dna pr

ę

dko

ść

 transmisji lub parzysto

ść

 

ą

d adres Slave 

ą

d warto

ś

ci parametrów Modbus 

Rejestry pokrywaj

ą

 si

ę

 z symbolami Modbus Slave 

Odbiór bł

ą

d parzysto

ś

ci 

Odbiór bł

ą

d CRC 

ę

dna funkcja/funkcja nie obsługiwana 

ę

dny adres w zapytaniu 

10 

Funkcja nie dost

ę

pna w Slave 

 
 
 
 
 
 
 
 
 

background image

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

ą

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). 

background image

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:  
 

background image

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.  

 
 

background image

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 

Bez bł

ę

du 

ą

d parzysto

ś

ci 

ą

d wyboru pr

ę

dko

ś

ci komunikacji 

ą

d czasu odpowiedzi Timeout 

ą

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.  

 
 

background image

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

ą

 

ę

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  

 
 
 

background image

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. 

ę

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). 

ę

dy od 101 s

ą

 bł

ę

dami przychodz

ą

cymi od urz

ą

dzenia Slave. Oznaczaj

ą

 one, 

Ŝ

urz

ą

dzenie Slave nie obsługuje wymaganej funkcji lub, 

Ŝ

e wymagany adres nie jest 

osi

ą

galny w urz

ą

dzeniu Slave.  

 

Kod bł

ę

du 

Opis 

Brak bł

ę

dów 

ą

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. 

Nieu

Ŝ

ywane 

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. 

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. 

background image

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

   

Modbus Master nie jest zał

ą

czony do pracy. Nale

Ŝ

y uruchomi

ć

 instrukcje 

MBUS_CTRL i przetwarza

ć

 j

ą

 w ka

Ŝ

dym cyklu pracy sterownika. 

Zaj

ę

ty kanał komunikacyjny. Tylko jedna instrukcja MBUS_MSG mo

Ŝ

e by

ć

 

aktywna w ustalonym czasie. 

ą

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. 

ą

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 

ą

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): 

background image

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.  

background image

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.  

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

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.  

ę

dy s

ą

 zapisywane do pami

ę

ci MB3, a prawidłowa inicjalizacja protokołu jest 

sygnalizowana stanem wysokim bitu M0.1.  
 

 

 
 
 
 
 
 
 
 
 
 
 
 

background image

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.  

 

background image

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)  

 

background image

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.  
 
 
 
 
 
 
 

background image

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.