S7-1200_cz.3.pdf

(952 KB) Pobierz
Elektronika Praktyczna
Komunikacja PtP w sterownikach S7-1200
Dodatkowe materiały
na CD i FTP
w sterownikach S7-1200
Miesiąc temu przedstawiliśmy możliwości interfejsu Ethernet, który jest
standardowym wyposażeniem wszystkich sterowników z  serii S7-1200.
Teraz zajmiemy się komunikacją PtP (point-to-point) przeznaczoną do
prowadzenia znakowej transmisji szeregowej, podczas której aplikacja
użytkownika całkowicie deiniuje i  implementuje wybrany protokół.
PtP zapewnia maksymalną swobodę i  elastyczność, ale wymaga
implementacji w  programie użytkownika.
należy zawsze instalować z lewej strony CPU
lub innego CM. Moduły komunikacyjne mają
separowane galwanicznie porty, są zasilane
z CPU, do ich koniguracji służy specjalny
zestaw instrukcji oraz wcześniej wspomnia-
ne funkcje biblioteczne.
Przed rozpoczęciem pracy z modułami
CM należy je skonigurować, tzn. ustalić
prędkość transmisji, włączyć/wyłączyć bit
parzystości, ustalić liczbę bitów stopu, okre-
ślić sposób kontroli transmsji (RS232) oraz
czas timeoutu . Modyikację parametrów moż-
na przeprowadzić programu projektowego
lub za pomocą instrukcji PORT_CFG (z po-
ziomu programu użytkownika). Wartości
parametrów ustalone instrukcją PORT_CFG
nadpisują war-
tości konigu-
racyjne usta-
lone z portalu
TIA. W  przy-
padku wyłącze-
nia zasilania lub
innej jego utraty,
sterownik S7-1200 nie
Zaimplementowane w  CPU procedury
obsługi protokołu PtP zapewniają programi-
stom duże możliwości, na przykład: przesy-
łanie informacji bezpośrednio do standardo-
wych urządzeń zewnętrznych (jak drukarka
lub terminal alfanumeryczny) oraz odbiernie
danych z innych urządzeń, jak czytniki kodu
paskowego, odbiorniki GPS, modemy GSM/
GPRS lub Bluetooth.
Do komunikacji PtP jest wykorzystywa-
ny interfejs szeregowy UART, umożliwiają-
cy obsługę wielu prędkości transmisji oraz
kontroli parzystości, chroniącej w  pew-
nym stopniu przesyłane dane. Dostępne
w systemie S7-1200 moduły komunikacyj-
ne (CM1221/1241) z interfejsami RS232/
RS485 spełniają rolę warstwy izycznej
interfejsu.
Pakiet narzędziowy służący do projekto-
wania aplikacji dla sterowników PLC irmy
Siemens (portal TIA – Totally Integrated Au-
tomation ) zawiera biblioteki z instrukcjami,
które użytkownik może wykorzystywać pod-
czas tworzenia własnych aplikacji komuni-
kacyjnych. Oferują one funkcje komunikacji
PtP dla następujących protokołów:
– USS do sterowania napędami,
– modbus RTU master ,
– modbus RTU slave .
Do jednego CPU w  systemie S7-1200
można podłączyć do trzech modułów komu-
nikacyjnych (dowolnego typu). Moduły CM
ELEKTRONIKA PRAKTYCZNA 3/2010
117
AutomAtykA i mechAtronikA
Komunikacja PtP
677321888.001.png
AutomAtykA i mechAtronikA
Programowe sterowanie przepływem
W programowym sterowaniu przepływem są
stosowane specjalne znaki sterujące. Są to
znaki ASCII reprezentujące XON i XOFF.
XOFF sygnalizuje, że transmisja musi być
zatrzymana. XON oznacza, że transmisja może
zostać wznowiona.
Kiedy urządzenia nadawcze otrzyma znak
XOFF z urządzenia odbiorczego, wtedy
zatrzymuje nadawanie. Nadawanie zostaje
wznowione po otrzymaniu przez urządzenie
nadawcze znaku XON. Jeżeli znak XON nie
nadejdzie w ciągu zdeiniowanego podczas
koniguracji portu czasu oczekiwania, to CM
przerywa nadawanie i zwraca do programu
użytkownika błąd.
Programowe sterowanie przepływem wymaga
dupleksowej komunikacji, ponieważ odbiornik
musi mieć możliwość wysłania do nadajnika
znaku XOFF w trakcie trwania transmisji.
Skrócony opis instrukcji do obsługi PtP
zachowuje w pamięci parametrów ustawio-
nych za pomocą instrukcji PORT_CFG.
Kontrola transmisji zastosowana w mo-
dułach CM jest mechanizmem zapobiegają-
cym utracie przesyłanych danych. Zapobie-
ga ona wysyłaniu przez nadajnik większej
liczby danych niż współpracujący odbiornik
będzie w stanie odebrać. Kontrola transmisji
(sterowanie przepływem) może być realizo-
wana sprzętowo lub programowo. Moduł
komunikacyjny CM1221 (RS232) obsługuje
instrukcja Port_cFG
Instrukcja PORT_CFG ( Port Coniguration ) umożliwia zmianę parametrów portu, takich jak szyb-
kość transmisji, z programu użytkownika. Początkowa, statyczna koniguracja portu jest ustalana
w trakcie koniguracji własności sprzętu. Tę konigurację można zmienić za pomocą instrukcji
PORT_CFG uruchomionej z programu użytkownika. Dynamiczne zmiany koniguracji poczynione
za pomocą PORT_CFG nie są trwale pamiętane w PLC.
instrukcja SenD_cFG
Instrukcja SEND_CFG ( Send Coniguration ) pozwala dynamicznie konigurować parametry trans-
misji szeregowej portu komunikacyjnego Point-to-Point . Wszystkie wiadomości oczekujące na
transmisję poprzez moduł komunikacyjny (CM) będą po wykonaniu instrukcji SEND_CFG odrzu-
cone.
Sprzętowe sterowanie przepływem
Sprzętowe sterowanie przepływem odbywa się
za pomocą sygnałów RTS ( Request-
-to-send ) i CTS ( Clear-to-send ). W module
komunikacyjnym CM1221 RTS jest sygnałem
wyjściowym występującym na styku 7 złącza
DB9, a CTS sygnałem odbieranym na styku 8
tego złącza.
Jeżeli w module komunikacyjnym zostanie
uaktywnione sterowanie przepływem
z przełączanym sygnałem RTS, to w celu
wysłania danych moduł ustawia aktywny
poziom sygnału RTS. Następnie monitoruje
sygnał CTS w celu określenia, czy odbiornik
jest gotowy zaakceptować dane. Kiedy poziom
sygnału CTS jest aktywny, moduł może
nadawać dane tak długo, jak długo CTS
pozostaje aktywny. Kiedy poziom CTS zmieni
się na nieaktywny, wtedy nadawanie musi
zostać wstrzymane.
Nadawanie jest wznawiane po tym, jak
CTS przyjmie poziom aktywny. Jeżeli CTS
nie przyjmie poziomu aktywnego w ciągu
zdeiniowanego czasu oczekiwania, to moduł
przerywa nadawanie i zwraca do programu
użytkownika błąd. Czas oczekiwania jest
deiniowany podczas koniguracji portu.
Inną metodą jest domyślne ustawienie
aktywnego poziomu sygnału RTS. Urządzenie
takie jak modem monitoruje stan linii RTS
w CM1221 i wykorzystuje go jako sygnalizację
gotowości do nadawania. W tej realizacji
sterowania przepływem modem nadaje dane
do CM tylko wtedy, kiedy RTS jest aktywny.
Jeśli RTS nie jest aktywny, to moduł nie nadaje
danych do CM.
W celu umożliwienia modemowi przesłania
danych do CM w dowolnej chwili, należy
ustawić sprzętowe sterowanie przepływem
z opcją RTS zawsze aktywny. W tym przypadku
CM utrzymuje przez cały czas aktywny
poziom RTS. CM nie zmieni poziomu RTS
na nieaktywny, nawet jeśli nie jest w stanie
odebrać znaków. Urządzenie nadawcze musi
się upewnić, że nie spowoduje przepełnienia
bufora odbiorczego CM. Modem może w takiej
sytuacji nadawać dane w dowolnej chwili i nie
musi monitorować sygnału CTS z odbiornika.
Urządzenie nadawcze musi monitorować
własne transmisje, ograniczając liczbę ramek
wiadomości lub znaków, które wysyła, by
uniknąć przepełnienia bufora odbiorczego
odbiornika. Jeżeli bufor odbiorczy zostanie
jednak przepełniony, to nadajnik musi odrzucić
odebraną wiadomość i zwrócić do programu
użytkownika błąd.
instrukcja rcV_cFG
Instrukcja RCV_CFG ( Receive Coniguration ) wykonuje dynamiczną konigurację parametrów sze-
regowego odbiornika portu komunikacyjnego Point-to-Point . Instrukcja koniguruje warunki, któ-
re sygnalizują początek i koniec odbieranej wiadomości. Wiadomości, które spełniają te warunki,
będą odbierane za pomocą instrukcji RCV_PTP.
Wszystkie wiadomości oczekujące na transmisję poprzez moduł komunikacyjny (CM) będą po
wykonaniu instrukcji RCV_CFG odrzucone.
Początkowa, statyczna koniguracja portu jest ustalana w trakcie koniguracji urządzenia. Tę kon-
igurację można zmienić za pomocą instrukcji RCV_CFG uruchomionej z programu użytkownika.
Dynamiczne zmiany koniguracji poczynione za pomocą RCV_CFG nie są trwale pamiętane w PLC;
tak więc po wykonaniu cyklu wyłączenia/włączenia zasilania będzie wykorzystana początkowa,
statyczna koniguracja pochodząca z koniguracji urządzenia.
instrukcja SenD_PtP
Instrukcja SEND_PTP ( Send Point-to-Point data ) inicjalizuje transmisję danych. SEND_PTP przesyła
określony bufor do modułu RS232 lub RS485. Wykonanie programu jest kontynuowane przez
CPU, podczas gdy moduł wysyła dane z określoną szybkością.
instrukcja rcV_PtP
Instrukcja RCV_PTP ( Receive Point-to-Point ) sprawdza, czy moduł komunikacyjny (CM) Point-to-
Point odebrał jakieś wiadomości. Jeżeli wiadomość jest dostępna, to zostanie przesłana z modułu
do CPU. Jeżeli wystąpił błąd, to zostanie zwrócona odpowiednia wartość STATUS. Zawiera on
ważną wartość wtedy, kiedy albo NDR, albo ERROR ma wartość TRUE. Wartość STATUS określa
przyczynę zakończenia operacji odbierania przez CM. Zwykle jest to wartość dodatnia sygna-
lizująca, że operacja odbierania odbyła się pomyślnie i proces odbierania danych zakończył się
normalnie. Jeżeli wartość STATUS jest ujemna (ustawiony jest najbardziej znaczący bit wartości
heksadecymalnej), to oznacza, że operacja odbierania zakończyła się z błędem, takim jak błąd
parzystości, ramkowania lub przepełnienia. Każdy moduł CM obsługujący komunikację Point-to-
Point może buforować maksymalnie 1 kB danych. Ten bufor może być zorganizowany tak, by
przechowywać wiele odebranych wiadomości.
instrukcja rcV_rSt
Instrukcja RCV_RST ( Receiver Reset ) kasuje zawartość bufora odbiorczego.
instrukcja SGn_Get
Instrukcja SGN_GET ( Get RS232 Signals ) odczytuje stan sygnałów komunikacyjnych na złączu
RS232. Ta funkcja dotyczy tylko modułu komunikacyjnego (CM) RS232.
instrukcja SGn_Set
Instrukcja SGN_SET ( Set RS232 Signals ) ustawia stan sygnałów komunikacyjnych RS232. Ta funk-
cja dotyczy tylko modułu komunikacyjnego (CM) RS232.
118
ELEKTRONIKA PRAKTYCZNA 3/2010
677321888.002.png
Komunikacja PtP w sterownikach S7-1200
zarówno sprzętowe, jak i programowe stero-
wanie przepływem. Moduł komunikacyjny
CM1241 (RS485) nie obsługuje sterowania
przepływem.
Programista może określić, w jaki spo-
sób interfejs komunikacyjny będzie rozpo-
znawał początek wiadomości. Znak począt-
ku wiadomości i  kolejne znaki tworzące
wiadomość traiają do bufora odbiorczego,
do chwili aż zostanie spełniony warunek
określający koniec wiadomości. Można
zdeiniować wiele warunków określających
start wiadomości. Jeżeli dowolny z tych wa-
runków jest spełniony, to wiadomość jest
wysyłana.
Jeśli zostanie wybrany specjalny waru-
nek wymagający włączenia do wiadomości
informacji o długości wiadomości, to należy
określić trzy parametry określające długość
wiadomości. Faktyczna struktura wiadomo-
ści zmienia się w zależności od zastosowane-
go protokołu. Wymienione trzy parametry to:
– pozycja znaku w wiadomości zawierają-
cego informację o długości,
– liczba bajtów niosąca informację o dłu-
gości,
– liczba znaków następujących po infor-
macji o długości, które nie są wliczone
do długości.
Portal TIA udostępnia rozszerzone in-
strukcje, które pozwalają w programie użyt-
kownika obsługiwać komunikację Point-to-
-Point za pomocą protokółów dostarczonych
przez irmę Siemens oraz protokołu Freeport.
Są one podzielone na dwie kategorie:
– instrukcje koniguracyjne (PORT_CFG,
SEND_CFG, RCV_CFG),
– instrukcje komunikacyjne (SEND_PTP,
RCV_PTP).
Wszystkie funkcje obsługujące PtP
działają asynchronicznie. W  celu okre-
ślenia stanu nadawania i odbioru w pro-
gramie użytkownika można zastosować
architekturę z  odpytywaniem ( polling ).
W  celu zaimplementowania architektury
odpytywania, w  programie użytkownika
należy sprawdzać stan każdej wysyłanej
i odbieranej wiadomości. Odpytywanie jest
zwykle wykonywane jako wątek programu
głównego.
Instrukcje SEND_PTP i RCV_PTP można
wykonywać jednocześnie. Moduły komu-
nikacyjne buforują wiadomości nadawane
i  odbierane zgodnie z  potrzebami, aż do
maksymalnej pojemności bufora wynoszącej
1024 bajty.
Dodatkowe instrukcje pozwalają kaso-
wać bufor odbiorczy oraz pobierać i usta-
wiać określone sygnały na złączu RS232:
RCV_RST, SGN_GET oraz SGN_SET.
Wiele instrukcji Point-to-Point (PtP) wy-
korzystuje wejście REQ, które inicjalizuje
operację w chwili zmiany stanu z niskiego
na wysoki. Wejście REQ musi być w stanie
wysokim (TRUE) przez jedno wykonanie in-
strukcji i może trwać w stanie TRUE tak dłu-
go, jak jest to potrzebne. Ta instrukcja nie za-
inicjuje żadnej innej operacji dopóty, dopóki
nie zostanie wywołana podczas gdy wejście
REQ jest w stanie FALSE, tak że instrukcja
może skasować stan historii wejścia REQ.
tomasz Starak
R
E
K
L
A
M
A
ELEKTRONIKA PRAKTYCZNA 3/2010
119
677321888.003.png
Zgłoś jeśli naruszono regulamin