Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Komunikacja raspberry Pi - PLC

09 Sie 2016 08:34 2574 10
  • Poziom 7  
    Czy ktoś wie jak połączyć PLC do raspberry pi? Głównie chodzi mi o wyciągnięcie stanu wejść wyjść i wartości zmiennych z PLC. Tak jak można to zrobić podczas programowania go, czyli podgląd na żywo.
  • Specjalista Automatyk
    Z jakim konkretnym typem PLC chcesz to połączyć?
  • Poziom 7  
    Alan Bradley oraz Siemens S7. Jak największą ich ilość. W tej chwili do testów mam S7 - 300.
  • Specjalista Automatyk
    Czyli chcesz zrobić coś w rodzaju HMI/SCADA na RPi?
    Rozwiązania które przychodzą mi na myśl w przypadku S7-300:
    - komunikacja przez OPC, tzn. RPi wysyła zapytania do serwera OPC, serwer OPC komunikuje się ze PLC. Wada jest taka, że potrzebujesz jeszcze maszyny na której OPC serwer będzie pracował.
    - transmisja po TCP/IP, z wykorzystaniem siemensowskich bloków do wysyłania/odbierania danych.
    - jak do przesłania jest stan tylko kilku sygnałów, to może bezpośrednie połączenie I/O, oczywiście przez układ konwertujący poziom sygnałów.
    Ewentualnie ambitnie spróbować z własną implementacją protokołów S7, zobacz http://snap7.sourceforge.net/
  • Poziom 11  
    aktualnie cos takiego mam odpalonego.

    co do rozwiazania z serwerem OPC - nie jest konieczna dodatkowa maszyna - zalezy od sterownika PLC. Pracuje na B&R i tam serwer OPC moze stac na samym PLC.

    Ja sobie do RPI podsylam przez UDP dane produkcyjne w postaci XML lub jakiejkolwiek innej.
  • Poziom 7  
    lukpep możesz rozwinąć swój sposób?
  • Poziom 11  
    BuildEver napisał:
    lukpep możesz rozwinąć swój sposób?


    Interesujace mnie dane opakowuje w XML, ale rownie dobrze mozesz je sobie podsylac w jakims formacie ktory nie zawiera informacji o ich strukturze - np. jako tablice 1000 bajtow w ktora po kolei wpakujesz te zmienne ktore chcesz a po stronie odbierajacej (rpi) zrobisz sobie deskryptor ktory powyciaga np. pomiar temperatury z bajtow 33 i 34 a pomiar napiecia z bajtow 124 i 156 itd.

    Kazdy sterownik udostepnia funkcje (czy tam bloki funkcyjne) do transferu danych. Uzywam akurat UDP jako ze jest bezstanowy i najwygodniejszy. Pcham sobie tym dane na adres RPI.

    Na rpi (korzystam z wersji 3) poczatkowo mialem postawiony windows 10 core IoT wraz z serwerem w C# ale dzialalo to bardzo mizernie. Przekonalem sie wiec do linuxa i postawilem raspbiana. W pare h mialem dzialajacy na rpi serwer nasluchujacy komunikacji na UDP (napisany w pythonie). Z danymi robie juz tam potem co chce (wrzucam przez http do baz danych w chmurze)
  • Poziom 7  
    Ja właśnie zacząłem robić z Windowsem. Wcześniej na raspbianie starałem się użyć biblioteki snap7. Mam z tego jakieś efekty, właśnie uzyskane też przez Pythona. Tylko że ja tych rzeczy zbytnio nie ogarniam. Znam podstawy C, C++ i C#.
    Mógłbyś zrobić coś w rodzaju tutoriala / poradnika?
  • Poziom 11  
    BuildEver napisał:
    Ja właśnie zacząłem robić z Windowsem. Wcześniej na raspbianie starałem się użyć biblioteki snap7. Mam z tego jakieś efekty, właśnie uzyskane też przez Pythona. Tylko że ja tych rzeczy zbytnio nie ogarniam. Znam podstawy C, C++ i C#.
    Mógłbyś zrobić coś w rodzaju tutoriala / poradnika?


    Nie mam czasu na stworzenie poradnika niestety / stety.
    Ale tam nie ma nic specyficznego. Siemens ma bloczki do wysylania po UDP? Ma ...
    Uzyc ich potrafisz pewnie? Zadna filozofia.
    Postaw sobie na rpi rasbpiana - na dzien dobry masz srodowisko do pythona 2 i 3.
    Napisz prosty serwer nasluchujacy na UDP:

    Kod: python
    Zaloguj się, aby zobaczyć kod



    i tyle.
    Co wazne nie jest to platform-specyfic - nie trzeba zadnych bibliotek do sjebensa itp.
  • Poziom 7  
    Ok, dzięki za odpowiedź. Coś porobię :)
  • Poziom 7  
    Znalazłem płatną bibliotekę inGear. Jest świetna! Bardzo łatwo się programuje własnej roboty "HMI" czy też inne programy, które muszą się komunikować z PLC zarówno Alana Bradleya jak i Siemensa.

    Strona producenta: Link