Informator Techniczny nr 27 08-11-2000 INFORMATOR TECHNICZNY WONDERWARE Diagnostyka komunikacji w protokole SuiteLink Nowoczesne systemy komunikacji w automatyce przemysłowej wymagają duŝej wydajności, niezawodności, ale równieŝ moŝliwości diagnostyki. Firma Wonderware opracowując nowoczesny protokół komunikacyjny SuiteLink zapewniła zarówno bardzo dobrą wydajność (większą nawet niŝ przepustowość kabla Ethernet 10 Mbit), stabilność pracy jak i zaawansowane moŝliwości diagnostyki komunikacji. Protokół SuiteLink stanowi podstawowy protokół wszystkich komponentów zestawu FactorySuite. Według protokołu SuiteLink komunikują się np. programy komunikacyjne z oprogramowaniem wizualizacyjnym InTouch, przemysłowa baza danych IndustrialSQL Server rejestruje dane procesu. Bardzo łatwo jest równieŝ przejść z protokołu SuiteLink na protokół OPC (OLE for Process Automation) i na odwrót. Ekran Monitora wydajności pokazujący kilka przykładowych przebiegów: ilość otwartych połączeń, skumulowaną ilość bajtów wysłanych i otrzymanych oraz chwilową wartość wydajności komunikacji (ilość bajtów wysłanych i otrzymanych na sekundę). Wykres aktualizowany jest na bieŝąco pozwalając śledzić stan komunikacji SuiteLink. System diagnostyki komunikacji SuiteLink jest ściśle zintegrowany z obecną w Windows NT aplikacji Monitor wydajności (Performance Monitor). Standardowo Monitor wydajności pozwala na diagnostykę wielu parametrów pracy komputera takich jak zajętość procesora komputera, zuŝycie pamięci RAM i wiele innych. Konfiguracja pracy Monitora wydajności polega na wybraniu odpowiedniego licznika (np. zajętość pamięci przez dany program) oraz odpowiedniego wystąpienia tego licznika (w przypadku zajętości pamięci przez program, wystąpieniem będzie jeden z programów uruchomionych w pamięci, np. MS Word, InTouch, Outlook itd.). Po zainstalowaniu któregokolwiek z komponentów FactorySuite (np. InTouch, programy komunikacyjne dla sterowników PLC, IndustrialSQL Server) i zainicjowaniu jakiegokolwiek połączenia po protokole SuiteLink, w Monitorze wydajności zobaczymy szereg dodatkowych liczników mających w nazwie skrót SL (SuiteLink) lub SLS (SuiteLink Service). ASTOR Sp. z o.o. Dział Oprogramowania Przemysłowego ul. Smoleńsk 29, 31-112 Kraków tel.: 012 428-63-30 fax: 012 428-63-09 e-mail: wonderware1@astor.com.pl http://www.astor.com.pl
Za ich pomocą moŝna w formie wykresów lub zestawień sprawdzać wiele aspektów komunikacji SuiteLink, przykładowo: Za pomocą licznika SLS Users/Open Connections (otwarte połączenia SuiteLink) moŝna monitorować ilość uŝytkowników podłączonych do naszego serwera komunikacyjnego SuiteLink (moŝe to być np. program komunikacyjny do sieci sterownikowej albo nadrzędna stacja wizualizacyjna InTouch). Przykładowy ekran konfiguracji Monitora wydajności przedstawiający licznik pokazujący ilość uŝytkowników przyłączonych do serwera danych SuiteLink. JeŜeli w trakcie uruchamiania nowego systemu mamy do czynienia z przeciąŝeniem sieci wymiany danych to za pomocą liczników Rx Bytes (liczba bajtów otrzymanych) i Tx Bytes (liczba bajtów wysłanych) moŝna sprawdzić gdzie dokładnie te problemy mają swoje źródło. Liczniki te bowiem mogą wyświetlać: dane sumaryczne (dotyczące całej komunikacji SuiteLink na danym ), w rozdzieleniu na poszczególne aplikacje (np. osobno InTouch i program komunikacyjny), wreszcie w rozdzieleniu na poszczególne kanały komunikacji (topic), których w ramach aplikacji moŝe być kilka lub kilkanaście (np. osobno połączenia programu komunikacyjnego ze sterownikiem 1 i sterownikiem 2). Dodatkowo diagnostyka komunikacji moŝe być prowadzona z punktu widzenia serwera danych (udostępniającego dane, np. nadrzędnej stacji operatorskiej) lub z klientów danych (np. przeglądarek korzystających z danych). Następnym parametrem, który moŝna badać kolejka komunikatów wychodzących z danego serwera, który moŝna analizować całościowo dla komputera, w odniesieniu do konkretnej aplikacji udostępniającej dane lub w odniesieniu do konkretnego kanału komunikacyjnego aplikacja-aplikacja (np. aplikacja wizualizacyjna komunikująca się z wybranych programem komunikacyjnym). Dodatkowo jest moŝliwość wykrywania sytuacji kiedy bufory transmisji zostają przepełnione (liczniki High Water mark tzw. efekt głębokiej wody w transmisji danych). Następny waŝny parametr który moŝna kontrolować to ilość ponowień transmisji danych (licznik Resumes Sent), którą moŝna analizować w odniesieniu do aplikacji klienta lub serwera danych. Analiza tego parametru ten moŝe wiele powiedzieć na temat jakość łącza transmisyjnego duŝa ilość ponowień transmisji moŝe oznaczać słabą jakość kabla albo duŝą ilość zakłóceń. Czasami moŝe się zdarzyć Ŝe aplikacja serwera dostaje zbyt wiele zapytań o dane ze strony klientów i nie jest w stanie ich prawidłowo obsłuŝyć. Aby się o tym przekonać moŝna sprawdzić liczniki wskazujące na przeładowanie (ang. Overload), które moŝna analizować w odniesieniu do całej aplikacji serwera albo w odniesieniu do konkretnego kanału komunikacyjnego (np. stacja operatorska komunikująca się z siecią Profibus-DP). To tylko część moŝliwości jakie dają mechanizmy diagnostyki wbudowane w protokół komunikacyjny SuiteLink firmy Wonderware. 2
PoniŜej zamieszczamy pełne zestawienie liczników jakie mogą być uŝywane. Obiekt: SL local applications (Podgląd lokalnych aplikacji korzystających z protokołu SuiteLink), moŝliwe instancje: KaŜda aplikacja na danym wymieniająca dane przez SuiteLink (np. view, spcpro). per second in Queue Całkowita liczba bajtów otrzymanych poprzez protokół SuiteLink na danym Liczba bajtów na sekundę otrzymanych przez protokół SuiteLink na danym Liczba elementów komunikacji (punktów) uaktualnionych na sekundę Całkowita liczba bajtów wysłanych na poprzez protokół SuiteLink Liczba bajtów na sekundę wysłanych przez protokół SuiteLink na danym Całkowita liczba bajtów czekających do wysłania w kolejce na lokalnym Obiekt: SL local applications by connected application (Podgląd konkretnej lokalnej aplikacji korzystającej z protokołu SuiteLink lub inaczej podgląd konwersacji aplikacji z aplikacją), moŝliwe instancje: KaŜda aplikacja na danym połączona z aplikacją na innym i udostępniająca dane przez SuiteLink (np. view from Marcin view). per second in Queue Całkowita liczba bajtów otrzymanych poprzez protokół SuiteLink w ramach danej konwersacji dwóch aplikacji Liczba bajtów na sekundę otrzymanych przez protokół SuiteLink w ramach danej konwersacji Liczba elementów komunikacji (punktów) uaktualnionych na sekundę w ramach danej konwersacji Całkowita liczba bajtów wysłanych na poprzez protokół SuiteLink w ramach danej konwersacji Liczba bajtów na sekundę wysłanych przez protokół SuiteLink w ramach danej konwersacji Całkowita liczba bajtów czekających do wysłania w kolejce w ramach konwersacji Obiekt: SL local applications by connected machine (Podgląd konkretnej lokalnej aplikacji korzystającej z protokołu SuiteLink połączonej ze zdalnym komputerem), moŝliwe instancje: KaŜda aplikacja na danym połączona z innym komputerem i udostępniająca dane przez SuiteLink (np. view from Marcin). per second Całkowita liczba bajtów otrzymanych poprzez protokół SuiteLink przez daną aplikację lokalną ze zdalnego komputera Liczba bajtów na sekundę otrzymanych przez protokół SuiteLink przez daną aplikację lokalną ze zdalnego komputera Liczba elementów komunikacji (punktów) uaktualnionych na sekundę w ramach danej aplikacji lokalnej przez aplikacje ze zdalnego komputera Całkowita liczba bajtów wysłanych na poprzez protokół SuiteLink z danej aplikacji lokalnej do zdalnego komputera Liczba bajtów na sekundę wysłanych przez protokół SuiteLink z danej aplikacji lokalnej do zdalnego komputera 3
in Queue Całkowita liczba bajtów czekających do wysłania w kolejce w ramach danej aplikacji lokalnej do zdalnego komputera Obiekt: SL local clients by topic (Podgląd lokalnej aplikacji komunikującej się z określonym kanałem komunikacyjnym na innym ), moŝliwe instancje: KaŜdy topik, który jest wykorzystywany przez lokalną aplikację (np. view to Marcin\view\tagname). Liczniki są identyczne z tymi z punktu 3. Obiekt SL local servers by topic (Podgląd topików udostępnianych przez lokalne aplikacje, moŝliwe instancje: KaŜdy topik, który jest udostępniany przez lokalną aplikację (np. view tagname from Marcin\view tagname by Astor\Marcin). High Water mark triggered now Items received Overload detected now Overload forced now Overloads are being ignored Remote node required suspend now Resumes sent per second RX Packets Suspends sent TX Packets in Queue TX High Water marks Waiting for write callbacks Informacja o tym Ŝe kolejka transmisji jest wypełniona całkowicie (efekt głębokiej wody ) Całkowita liczba punktów (elementów komunikacji) otrzymanych w ramach danego kanału komunikacyjnego Informacja Ŝe lokalna aplikacja nie odpowiada na komunikaty do niej przychodzące (efekt overload ) Informacja o tym Ŝe lokalna aplikacja przeszła samoczynnie w tryb nieodczytywania swojej kolejki komunikatów Informacja Ŝe lokalna aplikacja wyłączyła automatyczne reagowanie na efekt overload Informacja ze zdalny węzeł komunikacyjny zaŝądał przerwania transmisji danych Całkowita liczba ponowień transmisji danych Całkowita liczba bajtów otrzymanych poprzez protokół SuiteLink w ramach danego topiku Liczba bajtów na sekundę otrzymanych przez protokół SuiteLink w ramach danego topiku Liczba elementów komunikacji (punktów) uaktualnionych na sekundę w ramach danego topiku Całkowita liczba pakietów protokołu SuiteLink otrzymanych w ramach danego topiku Całkowita liczba wysłanych Ŝądań przerwania transmisji wysłanych w ramach topiku Całkowita liczba bajtów wysłanych na poprzez protokół SuiteLink w ramach danego topiku Liczba bajtów na sekundę wysłanych przez protokół SuiteLink w ramach danego topiku Całkowita liczba pakietów protokołu SuiteLink w ramach bieŝącego protokołu Liczba bajtów w kolejce transmisji w ramach danego topiku Całkowita liczba sygnałów o przepełnieniu bufora transmisji (wystąpienie efektu głębokiej wody ) Informacja o tym Ŝe transmisja jest aktualnie zatrzymana aŝ do czasu otrzymania zwrotnej informacji ze zdalnego węzła 4
Obiekt: SL total for this machine (Zbiorczy podgląd komunikacji SuiteLink na danym ), moŝliwe instancje: Wybrany komputer. per second in Queue Całkowita liczba bajtów otrzymanych poprzez protokół SuiteLink na danym Liczba bajtów na sekundę otrzymanych przez protokół SuiteLink na danym Liczba elementów komunikacji (punktów) uaktualnianych na sekundę na danym Całkowita liczba bajtów wysłanych na poprzez protokół SuiteLink Liczba bajtów na sekundę wysłanych przez protokół SuiteLink na danym Liczba bajtów w kolejce transmisji na danym Obiekt: SLS Connections (Podgląd połączeń SuiteLink), moŝliwe instancje: KaŜde połączenie z i do aplikacji pracującej na danym (np. for VIEW from 1.1.1.159 lub to view on Marcin). Connections to Server Connections to SLSSVC FD_CLOSE Events FD_CONNECT Events FD_READ Events FD_WRITE Events Message Queue Responsive Oveload detected per second RX Waits TX Not All Sent TX Waits Całkowita liczba zdarzeń kiedy klient pomyślnie połączył się z serwerem i zainicjował kanał komunikacyjny Całkowita liczba zdarzeń kiedy klient pomyślnie połączył się z usługa SuiteLink aby zainicjować komunikację z serwerem Całkowita liczba zdarzeń WSAAsyncSelect FD_CLOSE Całkowita liczba zdarzeń WSAAsyncSelect FD_CONNECT (zakończonych pomyślnie lub niepomyślnie) Całkowita liczba zdarzeń WSAAsyncSelect FD_READ Całkowita liczba zdarzeń WSAAsyncSelect FD_WRITE Całkowita liczba razy kiedy system pomyślnie przetestował czy dany proces prawidłowo odpowiada na przesłane zapytanie Całkowita liczba zdarzeń przepełnienia bufora transmisji aplikacji (zbyt późna odpowiedź aplikacji) Całkowita liczba bajtów otrzymanych poprzez protokół SuiteLink przez daną aplikację Liczba bajtów na sekundę otrzymanych przez protokół SuiteLink przez daną aplikację Całkowita liczba zdarzeń kiedy protokół TCP/IP poinformował iŝ naleŝy poczekać na więcej danych Całkowita liczba bajtów wysłanych na poprzez protokół SuiteLink przez daną aplikację Liczba bajtów na sekundę wysłanych przez protokół SuiteLink przez daną aplikację Całkowita liczba zdarzeń kiedy protokół TCP/IP nie był w stanie wysłać wszystkich danych w jednej wysyłce Całkowita liczba zdarzeń kiedy protokół TCP/IP poinformował iŝ naleŝy poczekać przed wysłaniem następnych danych 5
Obiekt: SLS Services (podgląd usług SuiteLink), moŝliwe instancje: KaŜdy serwer komunikacyjny SuiteLink na danym (np. view, spcpro, program komunikacyjny). Accepted Connections Failed Connections Attempts per second Całkowita liczba połączeń zaakceptowanych przez serwer komunikacyjny od jego startu (łącznie z topikami o błędnych nazwach) Całkowita liczba nieudanych prób połączeń serwera z usługami SuiteLink od jego startu (liczba nie zawiera odrzuconych prób połączeń) Całkowita liczba bajtów otrzymanych poprzez protokół SuiteLink przez dany serwer Liczba bajtów na sekundę otrzymanych przez protokół SuiteLink przez dany serwer Całkowita liczba bajtów wysłanych na poprzez protokół SuiteLink przez dany serwer Liczba bajtów na sekundę wysłanych przez protokół SuiteLink przez dany serwer Obiekt: SLS Users (podgląd uŝytkowników protokołu SuiteLink), moŝliwe instancje: KaŜdy plik programu komunikacyjnego który korzysta z komunikacji SuiteLink. Open Connections per second WndProc Latency BieŜąca liczba połączeń SuiteLink Całkowita liczba bajtów otrzymanych poprzez protokół SuiteLink Liczba bajtów na sekundę otrzymanych przez protokół SuiteLink Całkowita liczba bajtów wysłanych przez protokół SuiteLink Liczba bajtów na sekundę wysłanych przez protokół SuiteLink Czas w milisekundach przez który komunikat oczekuje w kolejce na odebranie 6