LinkedIn YouTube Facebook
Szukaj

Wstecz
Artykuły

[PRZYKŁAD] Połączenie Siemens LOGO! 8 z chmurą Amazon Web Services

Połączenie przemysłowych sterowników PLC z chmurą daje systemom olbrzymie nowe możliwości. Pozwala m.in. wysyłać i gromadzić dane ze sterowników, automatyzować pracę urządzeń poprzez zdalne sterowanie, a także łączyć i analizować dane z wielu źródeł – nie tylko sterowników. Dodatkowo, prosty edytor LOGO! Web Editor pozwala w bardzo prosty sposób generować strony internetowe z wizualizacjami danych. Aktualnie LOGO! współpracuje tylko z chmurą Amazon, ale Siemens zapowiada, że w przyszłości dostępne będą także inne opcje, np. Azure i Alibaba IoT Cloud.

W niniejszym artykule przedstawimy przykład aplikacji na sterownik LOGO! 8, który będzie łączył się z chmurą Amazon Web Services. Przykład będzie wysyłać dane z sensora temperatury MCP9700 i fotorezystora, które podłączono do sterownika za pomocą płytki KA-LOGO!-IO-Simulator. Aby połączyć się z siecią, skorzystamy z przemysłowego modułu komunikacyjnego LTE ze switchem Ethernet – Siemens LOGO! CIM.

Elementy projektu

Głównym elementem projektu jest prosty sterownik przemysłowy Siemens LOGO! 8 BM. Sterownik dysponuje dużymi możliwościami, które można wykorzystać zarówno w projektach domowych jak i poważniejszych zastosowaniach przemysłowych. Będzie miał za zadanie odbierać i przetwarzać dane z czujnika, a następnie wysyłać do chmury AWS.

Transmisja danych będzie odbywała się poprzez ruter przemysłowy LOGO! CIM. Jest to moduł zawierający modem LTE, układ lokalizacji GPS/GNSS, a przemysłowy czteroportowy switch Ethernet, a także wbudowany serwer Web służący do konfiguracji urządzenia. Może więc służyć jako przemysłowa bramka sieciowa, np. w sytuacjach, gdy nie można do systemu doprowadzić sieci kablowej.

Podstawowe informacje dotyczące modułu oraz sposób konfiguracji znajdziesz w artykule Przemysłowy moduł komunikacyjny Siemens LOGO! CIM

Za zasilanie układu odpowiada zasilacz LOGO! Power na napięcie 24 V i prąd 2,5 A. Dzięki standardowemu przemysłowemu napięciu zasilania, można wykorzystać go zarówno do sterownika BM, jak i do rutera CIM.

Jako płytkę z sensorami wykorzystano zestaw KA-LOGO!-IO-Simulator. Zawiera ona wiele elementów umożliwiających stosowanie jej jako symulację otoczenia sterownika, ale nas interesuje przede wszystkim sensor temperatury MCP9700 oraz fotorezystor. To one bowiem będą źródłem danych, które przekażemy do chmury.

Cały zestaw projektowy umieszczony na szynie DIN – od lewej zasilacz LOGO! Power, moduł główny LOGO! BM oraz router LOGO! CIM. Sterownik wyposażono w zestaw KA-LOGO!-IO-Simulator (dolna część niepodłączona do zasilania)

Całość można wygodnie zamontować na szynie DIN, co widać na powyższym zdjęciu.

Sieć uzupełniamy o podłączony komputer PC, który służy do programowania sterownika. Jeśli nie mamy specjalnego portu Ethernet (np. dla laptopa) można skorzystać z konwertera USB-Ethernet

Jeśli posiadasz oprogramowanie LOGO! Soft Comfort w starszej wersji (np. 8.1), możesz bezpłatnie zaktualizować środowisko do najnowszej wersji. Aby to zrobić wejdź na stronę https://support.industry.siemens.com/cs/document/109826553/download-and-installation-instructions-for-logo!-soft-comfort-upgrade-v8-4?dti=0&lc=en-PL, zarejestruj się i pobierz aktualizację. (Link może nie działać dla przeglądarki Firefox).

Przykładowy program na sterownik LOGO!

Na samym początku w środowisku LOGO! Soft Comfort wykonamy prosty program, który będzie miał zadanie odczytywać dane z czujników. Program może wyglądać tak:

Działa on w bardzo prosty sposób: Sygnały analogowe są sczytywane do odpowiednich flag analogowych. Flagi AM1 i AM2 wykorzystamy do przesyłania sygnału do chmury i są tam wartości od 0 do 1000. Z kolei flagi AM3 i AM4 przydadzą się do wyświetlacza, który zawiera paski emitujące zgrubną wartość sygnału. Flagi cyfrowe M1 i M2 przechowują wartość przełączników I1 i I3. Mamy też inicjalizację i projekt wyświetlacza na module LOGO! BM.

Kod znajduje się w sekcji „Do Pobrania”.

Łączenie się z chmurą AWS

Na początku należy pamiętać, że bardzo ważne jest, aby ustawić dokładnie czas – zarówno na LOGO! BM, jak i w LOGO! CIM. W LOGO! BM robimy to z poziomu Soft Comfort: w menu Properties > Online Settings > Set Clock klikamy Read from PC i Apply to LOGO!.

Z kolei w LOGO! CIM, w menu System Settings > Time Settings można wpisać czas ręcznie lub skorzystać z serwera NTP. Polski adres NTP to pl.pool.ntp.org.

Konto w chmurze AWS

Teraz należy założyć konto w chmurze AWS. Aktualnie jest to jedyna chmura obsługiwana przez LOGO!, aczkolwiek planowane są chmury Azure i Alibaba IoT Cloud. AWS oferuje dla nowych użytkowników 12-miesięczny Free Tier, który pozwala korzystać z usług w ograniczonym zakresie za darmo. Konto można zarejestrować na stronie https://aws.amazon.com/. Niestety konieczne jest podanie danych karty bankowej.

Aby połączyć chmurę z LOGO! należy utworzyć klucz bezpieczeństwa usłudze IAM. To usługa służąca do autoryzacji i zarządzania autoryzowanymi użytkownikami. Bardzo ważne jest abyś ustawił identyczny region zarówno podczas całej konfiguracji usług, jak i w LOGO! Soft Comfort. Bez tego nie będziesz widział urządzeń w wielu usługach. Ja dla ustalenia uwagi ustawię region eu-west-2 (Londyn). Zmiany regionu można dokonać w prawym górnym rogu strony głównej.

Aby utworzyć użytkownika i nadać mu uprawnienia należy nacisnąć przycisk Create User. Potem należy wpisać imię i nadać odpowiednie uprawnienia. W dalszej części przykładu skorzystamy z usług IoT Core oraz Elastic Beanstalk. Nadajemy więc pełne uprawnienia do tych usług.

Wybieramy opcję Attach policies directly i wybieramy następujące polityki AWSIoTFullAccess, AdministratorAccess, AWSElasticBeanstalkMulticontainerDocker, AWSElasticBeanstalkWebTier, AWSElasticBeanstalkWorkerTier i AdministratorAccess-AWSElasticBeanstalk. Teraz można już utworzyć użytkownika.

Po wejściu w użytkownika możemy wygenerować klucz bezpieczeństwa. W zakładce Security Credentials włączamy Create Access Key. Wybieramy Other, ustawiamy ewentualny tag i już mamy dostęp do danych Access Key oraz Secret Access Key. Można je skopiować, ale polecam zapisać dane w postaci pliku csv.

Teraz wróć do Soft Comfort. W oknie Properties wejdź w zakładkę Online settings. W tej zakładce ponownie wpisz adres IP sterownika LOGO! i połącz się z urządzeniem. Następnie wejdź w zakładkę Cloud Connection Settings i zaznacz opcję Enable Cloud Access. Ważne jest, że LOGO! nie przewiduje jednoczesnego dostępu do chmury i obsługi serwera Web (ta druga opcja dostępna w Access Control settings).

Następnie zarejestruj LOGO! w chmurze. Przyciśnij Register Thing, wybierz rodzaj chmury i w następnym oknie wpisz region oraz parametry dostępu.

Po udanym zalogowaniu możemy utworzyć nowe urządzenie („Thing”) i nadać mu nazwę. Następnie tworzymy certyfikat podając kraj, region kraju, organizację i jednostkę. Po czym ostatecznie rejestrujemy LOGO! w chmurze AWS.

Przyciskiem Test Connection warto sprawdzić stan połączenia.

IoT Core – wysyłanie danych z urządzenia do chmury

IoT Core to usługa chmury AWS, która umożliwia łatwe i bezpieczne łączenie urządzeń IoT z aplikacjami chmurowymi, a także transfer danych pomiędzy nimi. Dodatkowo, przesłane dane można dalej wykorzystać w innych usługach, takich jak Timestream, który pozwala na analizę danych w czasie, Grafana do wizualizacji danych, czy IoT SiteWise do syntezy danych z wielu urządzeń.

Na początku, jeszcze w Soft Comfort, wchodzimy w Properties > Online settings > Cloud data transfer settings. W tym miejscu można wybrać jakie dane łączone są z chmurą. My wybierzemy zmienne AM1, AM2, M1 i M2 – czyli oba sygnały analogowe i oba cyfrowe.

Aby listę załadować na sterownik, klikamy Write to LOGO!.

Teraz możemy zobaczyć aktualną wartość zmiennej w usłudze IoT Core. Wchodzimy w główną stronę usługi i w menu All devices > Things widzimy nasze urządzenie. Dane możemy znaleźć w zakładce Device Shadow, jako Classic Shadow. Warto tutaj sprawdzić czy dane są przesyłane poprawnie.

AWS Elastic Beanstalk – obsługa zewnętrznych aplikacji sieciowych oraz LOGO! Web Editor – kreator paneli sieciowych dla systemów LOGO!

LOGO! Web editor to edytor umożliwiający kreowanie prostych paneli operatorskich www dla sterowników LOGO! Umożliwia projektowanie na potrzeby systemów przemysłowych i pozwala umieszczać strony zarówno na wbudowanym serwerze, jak i w chmurze AWS. To ostatnie umożliwia usługa Elastic Beanstalk. Daje ona możliwość umieszczenia na serwerach Amazona aplikacji webowych oraz korzystania przez nią z zasobów chmury AWS.

Aby w LWE operować na zmiennych poprzez AWS, należy dodać w IoT Thing Table nazwę urządzenia, na którym ma ona operować.

W LOGO! Web Editor projektujemy prosty panel operatorski. Zawiera on dwie skale pokazujące odpowiednie wartości analogowe oraz dwie diody pokazujące stan wejść cyfrowych. Wygląda on w ten sposób.

Pliki są dostępne w sekcji „Do Pobrania”.

Łatwo można też przypisać poszczególny element do konkretnej zmiennej. Po kliknięciu elementu pojawia się menu z prawej strony ekranu, w którym można ustawić zarówno zmienną, jak i wygląd elementu. W opcji IoT Thing Name wybieramy które urządzenie ma obsługiwać dany element.

Utworzenie roli aws-elasticbeanstalk-ec2-role

Zanim utworzymy pierwsze środowisko należy utworzyć rolę aws-elasticbeanstalk-ec2-role, którą z powodów bezpieczeństwa Elastic Beanstalk już nie tworzy. W tym celu wracamy do usługi IAM, do Access Management > Roles. Klikamy Create Role. Entity type to AWS Service, natomiast Use case to EC2.

W następnym oknie ustawiamy następujące pozwolenia: AdministratorAccess, AWSElasticBeanstalkMulticontainerDocker, AWSElasticBeanstalkWebTier, AWSElasticBeanstalkWorkerTier. W kolejnym oknie wprowadzamy nazwę roli: aws-elasticbeanstalk-ec2-role.

Klikamy rolę, wchodzimy do zakładki Trust relationships. Klikamy Edit trust policy, potem Add a principal i w pojawiającym się oknie wybieramy IAM Roles i wpisujemy arn:aws:iam::767398122183:role/aws-elasticbeanstalk-ec2-role.

Wgrywanie aplikacji do chmury

Teraz wgrywamy aplikację do chmury. Z menu File wybieramy Deploy to AWS i w pojawiającym się oknie zmieniamy region i wpisujemy kody bezpieczeństwa.

Teraz wybieramy czy utworzyć nową aplikację, czy też zaktualizować istniejącą. W następnym oknie można wybrać nazwę aplikacji i środowiska. Koniecznie naciskamy plusik otwierając ustawienia zaawansowane, w których należy zamienić platformę na Tomcat 9 with Corretto 11 running on 64bit Amazon Linux 2023.

W następnym oknie wybieramy hasło do strony i uruchamiamy pakowanie i wysyłanie aplikacji na serwer. Jeśli tworzymy nową aplikację, to proces ten może potrwać kilka minut.

Po zakończeniu procesu otrzymamy link i kod QR do aplikacji. Po otwarciu i zalogowaniu się otrzymujemy następujący widok panelu w chmurze

I już możemy odczytywać i sterować zachowaniem sterownika LOGO! z dowolnego miejsca na świecie za pośrednictwem chmury Amazon Web Services.

Podsumowanie

Małe sterowniki LOGO! to proste, ale potężne urządzenia, które doskonale sprawdzą się we wszelkich małych urządzeniach przemysłowych. Oferuje prosty interfejs, szeroki zakres modułów peryferyjnych i od jakiegoś czasu także możliwość obsługi z poziomu chmury. Daje to o wiele większe możliwości w zakresie analizy i syntezy danych, ale też odczytu i sterowania zdalnego. Pozwoli to rozwiązać kilka problemów i rozwinąć możliwości sterownika LOGO! 8.