Do Projektu iAutomatyka dołączyli:

https://iautomatyka.pl/wp-content/uploads/2019/05/main1.jpg

WebHMI – dodatkowe możliwości komunikacyjne

autor: WojTech.

Pilnie śledząc portal iAutomatyka kilkukrotnie natknąłem się na informacje o WebHMI. Po nagromadzeniu się kilku tematów w moim zakładzie pracy oraz chęci szybszego wdrażania przemysłu 4.0 udało mi się przekonać kierownictwo do zakupu jednego z tych urządzeń. Nie ukrywam, że podstawowym zamysłem było wykorzystanie urządzenia do komunikacji ze sterownikami firmy Siemens wyposażonymi w karty komunikacyjne Ethernet. Jednak nie będę się tu rozwodził nad znanymi funkcjami urządzenia. Chciałbym przedstawić moje krótkie jak dotąd zmagania z WebHMI oraz komunikacją z urządzeniami, które nie zostały wymienione na liście producenta.


Komunikacja ze sterownikami S7-300/400

Zacznę od wspomnianych już sterowników Siemens. W moim przypadku były to S7-300/400. Posiadają one tylko i wyłącznie porty MPI/DP. W moim zakładzie pracuje kilka urządzeń tego typu i wymagane było umożliwienie ich diagnostyki poprzez Ethernet. Do tego celu wykorzystaliśmy adaptery, czy raczej bramy MPI/DP na Ethernet.

Przykładowy adapter IBHLink S7++, jest urządzeniem współpracującym z oprogramowaniem Siemens Step7. Jeżeli chcemy taką komunikację nawiązać poprzez oprogramowanie Step7, wymagana jest instalacja oprogramowania producenta oraz wybór odpowiedniego kanału komunikacyjnego poprzez PG/PC Interface. Proponuję w pierwszej kolejność skonfigurować urządzenie i nawiązać połączenie poprzez oprogramowanie Siemensa. Ze względu na istnienie dokumentacji producenta na ten temat pominę opis procesu i zamieszczę jedynie zrzut ekranu konfiguracyjnego PG/PC:

Po uzyskaniu połączenia PLC – Step7 postanowiłem skomunikować WebHMI ze sterownikiem i okazało się, że jest to bardzo proste, a konfiguracja nie przysparza większych trudności. W zakładce Ustawienia – Zmienne dodajemy Nowe połączenie, w którym wybieramy protokół S7 Comm (TCP) podając adres IP skonfigurowanego adaptera oraz TSAP (przykład 03 02, co odpowiada S7 CPU znajdującemu się na rack 0, slot 2 – teoretycznie, ale o tym później).

Reklama

Kolejny etap, to dodanie zmiennych i za ich pomocą sprawdzenie komunikacji w zakładce Diagnostyka u dołu ekranu (informacja na czerwono oznacza problemy z odczytem zmiennej). Proponuję dodać zmienną, której stan jesteśmy w stanie fizycznie sprawdzić. Poniżej przykład błędu komunikacji dla innego sterownika.

Komunikacja z adapterem Profibus

Aby uniknąć podejrzeń o stronniczość lub promocję konkretnych producentów, to podobną komunikację nawiązałem również z urządzeniem NETLink PRO Compact. W tym przypadku wykorzystałem jednak Profibus. Napotkałem jednak jeden problem związany z adresacją. Niestety nie wiem czemu, ale TSAP musiałem ustawić na 030A, co odpowiada adresowi Profibus CPU, który wynosi 10, a nie szynie RACK oraz Slotowi, w który jest wpięty sterownik.

Gdyby ktoś miał potrzebę skomunikowania się ze sterownikiem bez zmiany jego Hardware Config i dodawania kart komunikacyjnych, to polecam zakup wspomnianego adaptera. Należy jednak pamiętać, że nie jest to rozwiązanie tanie. Biorąc jednak pod uwagę cenę WebHMI i adaptera w porównaniu z innymi systemami SCADA, to raczej warto się nad tym zastanowić.

ZestaPRO.pl – dystrybutor WebHMI

Komunikacja z web serwerem

Kolejny przykład komunikacji, jaki chciałbym przedstawić, to uzyskanie zmiennych z web serwera zaimplementowanego w drukarce Zebra. Taki prosty web serwer został przedstawiony poniżej. Mi zależało na odczycie stanu samego urządzenia, ale w przedstawiony sposób można odczytać inne interesujące nas dane: liczniki, błędy itp.

Aby uzyskać tego typu zmienne nieodzowne okazuje się użycie skryptów LUA (wspomnę tylko, że zasiadając do pisania pierwszego programu w WebHMI język ten był dla mnie językiem nieznanym). Nie będę się tutaj zagłębiał w sam algorytm, ponieważ został on zapożyczony z wiki.webhmi.com.ua.  Ze swojej strony dodałem tylko przetworzenie otrzymanych danych i zapisanie ich do zmiennych wewnętrznych WebHMI.

Jako odpowiedź na nasze zapytanie GET uzyskałem źródło strony, w którym wystarczy wyszukać interesujące nas dane. W mojej sytuacji była to prosta informacja stanu maszyny.

Metoda może się okazać przydatna jedynie w komunikacji z prostymi web serwerami, gdy interesujące nas dane można odczytać ze źródła strony. Powyższe rozwiązanie nic nie da, jeżeli dane przetwarzane są poprzez skrypty strony. Dowiedziałem się o tym próbując odczytać ciśnienie znajdujące się na web serwerze sterownika kompresorów. Wszelkie próby kończyły się niepowodzeniem, zastosowana metoda okazała się być błędna. Po wielu frustrujących próbach postanowiłem dokładniej przebadać stronę internetową sterownika. Zaznaczę tutaj tylko, że nigdy nie zdarzyło mi się napisać strony internetowej, czy pisać skryptów na stronach. Wymiana danych była więc dla mnie totalną zagadką.

Po kliknięciu prawym klawiszem w stronę i wybraniu opcji: ‘Zbadaj element’ udało mi się dotrzeć do danych, jakie są wymieniane pomiędzy przeglądarką, a sterownikiem. Cyklicznie wysyłane było pewne zapytanie widoczne na zdjęciu poniżej, a w odpowiedzi uzyskiwany był ciągle zmieniający się ciąg znaków.

Postanowiłem poddać analizie pierwszą część odpowiedzi. Jak się szczęśliwie okazało, liczba 1954 w HEX odpowiada liczbie 6484, co po przeskalowaniu daje 6.484, czyli rzeczywistą wartość ciśnienia na kompresorze. Zapytanie wysyłane przez przeglądarkę postanowiłem wykorzystać w swoim skrypcie. W efekcie uzyskałem identyczną odpowiedź, jak w przeglądarce. W następnym kroku spróbowałem skrócić zapytanie tylko do pierwszego członu. Poniżej zamieszczam skrypt, który pyta tylko o wartość ciśnienia. Jednak żeby zapytanie nie było wysyłane zbyt często, ograniczyłem jego częstotliwość do jednego na sekundę.

Może ktoś zapyta po co wysyłać zapytanie do drukarki, czy sterownika kompresora. Otóż z samej tylko drukarki można uzyskać dane np. o mijającym czasookresie przeglądu lub poziomie obciążenia urządzenia i wysłać je do odpowiedniego adresata. Dane z kompresora z kolei mogą pozwolić na oszacowanie nieszczelności instalacji oraz jaki wpływ na całość systemu mają naprawy w tym zakresie. Oznacza to, że danych do analizy dostarczyć mogą nam więc posiadane już urządzenia, bez konieczności montażu dodatkowych czujników.

Powyżej opisane urządzenia są przykładem, który miał za zadanie prezentację dowolności w sposobie uzyskiwania interesujących nas danych poza protokołami komunikacyjnymi, standardowo stosowanymi w automatyce.

Należy jednak podkreślić, że komunikacja z wykorzystaniem skryptów potrafi znacznie obciążyć urządzenie, a czas cyklu urządzenia może wzrosnąć do 1 sekundy. Dlatego też podczas testowania skryptów warto zwrócić na to uwagę.

Podsumowanie

Powyższy wpis proponuję potraktować jako opis możliwości komunikacyjnych urządzenia WebHMI i mocy jaka w nim drzemie, z uwzględnieniem skryptów LUA. Nie jest to poradnik mający na celu poprowadzenie użytkownika przez cały proces uzyskania danych, bo przecież każdy przypadek należy rozpatrywać indywidualnie. Natomiast praca automatyka bardzo często polega na rozwiązywaniu problemów z pozoru nierozwiązywalnych i tylko nasza zawziętość często pozwala na znalezienie właściwej drogi.

Artykuł został nagrodzony w Konkursie iAutomatyka – edycja Maj 2019

Nagrodę Kubek termiczny + zestaw gadżetów dostarcza ambasador konkursu, firma LAPP.

 



Utworzono: / Kategoria: , , , ,
  • Autor: WojTech
  • Jestem automatykiem z zamiłowania i zawodu. Na co dzień pracuję w Utrzymaniu Ruchu w zautomatyzowanym magazynie rozwiązując problemy dnia powszedniego lub starając się usprawnić pracę innych poprzez wdrażanie koncepcji przemysłu 4.0.
  • Profil Autora

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!



PRZECZYTAJ RÓWNIEŻ



NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

Reklama



POLECANE FIRMY I PRODUKTY
  • 1,000 PLN
    Zdobądź wiedzę i bądź pewny, że nic Cię nie zaskoczy. Nie musisz przekopywać się przez tony katalogów i instrukcji. Oferujemy Ci kompleksowy system szkoleń, który sprawi, że najpierw zbudujesz fundamenty swojej wiedzy, a później pod okiem n...
    Czas trwania: 7h - 14 h
    Link: Terminy
  • Nowe modułowe sterowniki programowalne PLC firmy Eaton umożliwiają producentom maszyn i systemów opracowywanie nowoczesnych koncepcji automatyki, zwłaszcza w połączeniu z systemem XN300 I/O i panelem dotykowym XV300. Modułowy sterownik zape...
  • #PILZ wraca na rynek komponentów dla aplikacji zdecentralizowanych z nową wyspą z grupy #PDP67 powiększając tym samym istniejące portfolio o nowe rozwiązanie.Moduł PDP67 jak każda wyspa I/O to urządzenie ułatwiające koncentrację sygnałów w ...
  • Systemy RFID są ekonomiczne, uniwersalne i zapewniają niezawodność procesów, np. w intralogistyce. Zadania związane z identyfikacją stały się teraz łatwiejsze, szczególnie gdy potrzebna jest duża liczba punktów identyfikacji, dzięki  głowic...
  • Seria EX-Z Czujniki z serii EX-Z to jedne z najmniejszych urządzeń tego typu na świecie. Najcieńszy model posiada grubość jedynie 3 mm co zostało osiągnięte przez zastosowanie nowych półprzewodników i dzięki temu wyeliminowanie przewodów. B...
  • Seria FX-100 Czujniki z serii FX-100 to najlepsze rozwiązanie pod względem stosunku jakości do ceny. Wyposażone są w funkcje szybkiego uczenia, co pozwala użytkownikom w szybki i prosty sposób przystosować czujnik do pracy z nieskomplikowan...