Siemens PLC - sposoby komunikacji sterownika z nietypowymi urządzeniami, aplikacjami

Cześć,

Z racji tego, że postanowiłem zbudować domową automatykę na bazie sterownika Siemens S-1200 wpadam co chwilę na pomysł co by tu nowego dodać. Nic w tym projekcie mnie nie ogranicza, pomijając oczywiście samego siemensa :slight_smile:

Jak wiadomo, przy takich projektach często tworzymy coś samemu. Mam tu na myśli urządzenia oparte na różnych mikro kontrolerach jak atmegi, esp, gotowce w stylu arduino, RPi, dochodzą do tego autorskie aplikacje na telefony, tablety, komputery.

Obecnie jestem na etapie połączenia S7-1200 z asystentem google.

I właśnie zacząłem się zastanawiać nad możliwościami komunikacji takiego sterownika PLC z czymkolwiek. Może prowadzicie podobne szalone projekty, pomysły i możecie się pochwalić sposobami komunikacji?

Ja przykładowo, do komunikacji aplikacji na tablecie i telefonie do obsługi domu, wykorzystuję wbudowany web serwer w S-1200. Uruchomiony z wgraną stroną w html-u. W pliku index.html zawarte tylko znaczniki AWP z odpowiednimi zmiennymi które chcę wykorzystywać. Po stronie aplikacji proste zapytania GET zawarte w adresie URL i wszystko ładnie pięknie śmiga. Bez opóźnień, bez błędów od strony serwera. Informacje zwrotne w najprostszej formie można odesłać jako zawartość strony i mamy prosty sposób na komunikację w dwie strony.

Chciałbym wiedzieć czy może ktoś inaczej to rozwiązał? Spotkałem się np w sieci z biblioteką do arduino na bazie LIBNODAVE,

Przemysłowe jak i amatorskie pomysły mile widziane. Najlepiej rozwiązania bazujące na Ethernecie :slight_smile:

Tutaj chyba zbyt wiele sie nie zmieni w stosunku do laczenia arduino, google, homekit apple i innych rozwiazan miedzy soba, gdzies bedzie most jakis i tyle, pewnie na RPi, zazwyczaj do komunikacji ludzie RS uzywaja, chodz fakt, sa i dla Arduino rozwiazania profinetowe.

Ale dlaczego s7-1200 ? panele straszliwie drogie w porownaniu do innych rozwiazan, cena jednego I/O tez dosyc wysoka, brak wsparcia dla wielu fajnych rozwiazan, jak Ci sie zamarzy stacja pogodowa to taka z eth itd. bedzie kosztowal miliony, a taka zwykla moze miec problem z komunikacja. Taka sztuka dla sztuki to rozumiem na stanowisku testowym, ale nie wiem czy pchal bym to do domu który jednak tani nie jest.

Nie upieram się przy 1200, leżał z czasów domowego stanowiska testowego. Stwierdziłem, że zamiast testować na biurku to wpakuje do rozdzielni i się pobawię. Ogólnie mam plany na projekt SUPLA opartego właśnie na arduino, esp lub RPi, jest darmowa chmura, aplikacje itp itd. Siemens to tak w ramach kolejnej zabawy. Panel wykonałem z taniego tabletu z racji tego, że można go komunikować z czymś nie siemensowym :slight_smile:

Przez 1200 wysterowałem sobie centrale wentylacyjną ponieważ robiłem ją sam pod swój dom. I/O nie wymaga za wiele taka centrala więc akurat 1215 którą posiadałem mi starczyła. Do tego dodałem kilka czujników temp zbudowanych na bazie esp z racji możliwości komunikacji po wifi.

Zastanawiałem się tylko czy może ktoś ma jakieś inne prostsze, ciekawsze rozwiązanie komunikacji zamiast web serwera tak jak ja to rozwiązałem. Może nie trzeba tyle zachodu tylko można np jak PUT/GET pomiędzy dwoma sterownikami przez s7 communication.

Gdybym mial sie zabierac za cos takiego pewnie oparlbym wszystko o MQTT, jesli sie nie myle to jest mozliwosc spiecia google assistant -> ifttt -> mqtt ale musialbys pogrzebac.
Jesli o bloki do komunikacji MQTT chodzi to nie ma chyba gotowych na S7-1200 dostępnych, ale widziałem gdzieś na forum Siemensa chyba. A jesli nie to google albo przepisac te z S7-1500.

1 polubienie

Libnodave jak najbardziej - lub snap7 i odpowiedniki pod różne języki takie jak C#, Pascal, C++ etc.
Ale taka biblioteka bardziej się przydaje jak chcesz szybko się komunikować nawet szybciej niż jakieś średnie OPC - bo to ostatnie to też opcja i są gotowe mostki z OPC do MQTT - ale nie korzystałem bo nie było mi potrzebne.

Libnodave jest bardzo niskopoziomowy i na RPi pójdzie i na S7-1200 choć sprawdzałem to dawno i niezależnie od siebie. Snap7 pewne rzeczy zrobi za Ciebie np. podzieli zapytanie o duży blok danych na mniejsze. Zaletą snap7 jest jeszcze to, że można zrobić “serwer”, który będzie zachowywał się jak sterownik - wówczas można podłączyć panel do takiego programu.

Należy pamiętać, że dla Libnodave oraz snap7 i podobne projekty - należy odpowiednio skonfigurować. Bloki w sterowniku muszą być zgodne ze starym S7-300 by móc przeprowadzić komunikację. Na stronie snap7 jest to dość dobrze opisane.

Osobiście mam napisaną libkę pod Qt do obsługi komunikacji przez libnodave, która działa w kilku projektach i działa to nienajgorzej. Obsługuje dostęp po definiowanych tagach z pliku XML oraz mapuje wszystkie typy na typy w Qt, takie jak: data,czas, typy proste, tablice, stringi etc. Plik XML można wstępnie wygenerować na podstawie eksportu definicji bloku w S7 STEP - w TIA portal nie próbowałem robić eksportu. Plik przypomina składnią pascala.

3 polubienia