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

Rozproszony system sterowania o architekturze producent-dystrybutor-konsument

sgt_ding 28 Sty 2016 00:42 6123 7
  • Rozproszony system sterowania o architekturze producent-dystrybutor-konsument
    Witam!
    Przedstawiam Wam wynik mojej kilkumiesięcznej pracy nad projektem inżynierskim pt. "Rozproszony system sterowania o architekturze producent-dystrybutor-konsument", którego celem było stworzenie systemu, w którym "inteligencja" układu automatyki jest rozproszona pomiędzy poszczególne moduły, co jest podejściem znacznie różniącym projektowany system od stosowanych obecnie w przemyśle, w których algorytm wykonywany jest w jednostkach centralnych.

    Dodatkowym celem projektu było stworzenie systemu w oparciu o darmowe oprogramowanie udostępniane na licencjach wolnego oprogramowania, które umożliwi jego wykorzystanie w zastosowaniach amatorskich.


    Trochę teorii

    Architektura producent-dystrybutor-konsument:
    Rozproszony system sterowania o architekturze producent-dystrybutor-konsument
    Najważniejszym urządzeniem komunikacyjnym jest dystrybutor, który odpytuje w ściśle zdefiniowanej kolejności moduły realizujące funkcję producenta, a następnie przesyła zgromadzone dane odpowiednim konsumentom. Pełni on nie tylko zadanie koncentratora danych, ale również ustala kolejność wykonywania działań w systemie rozproszonym. Wyznaczone cele realizowane są poprzez odpowiednio zmodyfikowaną warstwę aplikacji stosu komunikacyjnego, która powinna cechować się determinizmem czasowym realizowanych zadań wymiany danych. Tak postawione wytyczne oraz brak innych funkcjonalności umożliwia implementację tego węzła w układzie mikroprocesorowym wyposażonym jedynie w niewielki zasób peryferiów i dużą ilość pamięci o szybkim dostępie, która przechowuje dane procesowe.

    Z punktu widzenia producentów i konsumentów jednoczesny dostęp do magistrali uniemożliwia zastosowanie architektury master/slave, w której dystrybutor jest jednostką nadrzędną. Atutem takiego rozwiązania jest oparcie komunikacji na otwartym i stosunkowo prostym protokole ModbusRTU.

    Moduł:
    Rozproszony system sterowania o architekturze producent-dystrybutor-konsument

    Rozproszony system sterowania o architekturze producent-dystrybutor-konsument

    Podstawowym węzłem w stworzonym systemie rozproszonym jest moduł, który realizuje postawione przed nim zadanie. Pomysł przyświecający przy definiowaniu założeń projektowych, polega na rozdziale zadań sterowania na poszczególne elementy. Oznacza to, że w układzie mogą jednocześnie pracować moduły wejściowe fitrujące dane procesowe, obliczeniowe, wyliczające wartości sterowania, oraz wyjściowe różnego rodzaju. Przebieg sygnału przez wszystkie bloki można przyrównać do działania programów napisanych w takich pakietach jak LabView lub Simulink, szczególnie gdy ich praca jest wyzwalana zdarzeniowo. W kompletnym rozwiązaniu każdy węzeł sieci powinien posiadać możliwość jego zdalnej inicjalizacji, konfiguracji, zatrzymania i wznowienia pracy, dlatego też zrealizowanymi w ramach projektu modułami można zarządzać z poziomu dystrybutora. Implementacja takiego rozwiązania bazuje na maszynie stanów modułów podrzędnych ptotokołu CANopen.
    Rozproszony system sterowania o architekturze producent-dystrybutor-konsument


    Zarządzanie systemem:
    W trakcie działania Systemu można dołączać do niego nowe moduły, jak również zmieniać konfigurację węzłów już działających. Służą do tego specjalne komendy warstwy aplikacji dystrybutora oraz niewielki wycinek czasu cyklu modułu głównego, w którym uruchamiane są funkcje odpowiedzialne za wprowadzenie zmian istniejącego już harmonogramu. Dodana została również możliwość zmiany ścieżek przepływu danych pomiędzy elementami systemu. Możliwość pełnego zarządzania systemem rozproszonym jest ściśle związana z architekturą modułów podrzędnych, co nie wyklucza stosowania w sieci modułów, które nie mają rozwiniętej warstwy zarządzania z poziomu komunikacji sieciowej, natomiast ich obsługa z poziomu węzła nadrzędnego jest znacznie uproszczona.



    Wykonane moduły!
    Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument Rozproszony system sterowania o architekturze producent-dystrybutor-konsument
    Udało mi się wykonać pięć modułów: trzy moduły rozproszone (wejścia analogowe, moduł sterownika, wyjścia PWM), zasilacz 24/5V DC z noty katalogowej układu oraz, bazujący na platformie Beaglebone Black, moduł zarządcy-dystrybutora wraz z webserwerem służącym do konfiguracji systemu. Szczegóły działania poszczególnych modułów są umieszczone w załączonej pracy inżynierskiej, natomiast chciałbym zwrócić uwagę na kilka ciekawych rozwiązań programistycznych:
    - system wielozadaniowy uruchamiający zadania cyklicznie lub zdarzeniowo,
    - główną maszynę stanu modułu bazującą na podejściu tablicowym wraz z przejściami pomiędzy stanami uruchamiającymi odpowiednie procedury,
    - wyzwalanie z poziomu rejestrów komunikacyjnych funkcji w module,
    - obsłudze ADC w module wejść analogowych (cztery kanały walczą o dostęp do jednego przetwornika -> szeregowanie za pomocą kolejki),
    - realizacja dowolnej ilości kanałów PWM poprzez ich rejestrację w funkcji zarządzającej generowaniem sygnału,
    - statyczna alokacja pamięci zbliżona do tej znanej z systemu operacyjnego czasu rzeczywistego uC/OS-II.
    Dodatkowo wszystkie moduły są kompatybilne z obudową zbiorczą wykonaną w standardzie Rack 19'.
    Rozproszony system sterowania o architekturze producent-dystrybutor-konsument

    Co wymaga poprawy!
    Moduł zarządcy-dystrybutora nie został dokładnie przemyślany i pojawiła się konieczność łatania niektórych braków, dlatego kod nie jest zbyt czysty.
    Stos komunikacyjny w module zarządcy-dystrybutora został napisany naprędce (w jeden dzień) ponieważ biblioteka libmodbus miała problem z obsługą bufora portu szeregowego, dlatego też działa, gdy nie pojawiają się jakieś dziwne błędy...
    Projekty płytek drukowanych, a szczególnie ich części analogowych (prowadzenie masy, tor analogowy pomiaru napięcia, itd.).

    Bardzo chętnie usłyszę od Was słowa konstruktywnej krytyki, ponieważ zdaję sobie sprawę, że moja praca nie jest wolna od błędów, czasami nawet podstawowych. Chciałbym też posłuchać Waszej opinii nt. moich rozwiązań programistycznych, szczególnie tych na zaimplementowanych na atmegach.

    P.S. Tak dla uściślenia, studiuję automatykę w Wieży Magów na Politechnice Śląskiej. ;)

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    sgt_ding
    Poziom 15  
    Offline 
    Specjalizuje się w: automatyka przemysłowa, mechatronika
    sgt_ding napisał 138 postów o ocenie 29, pomógł 13 razy. Mieszka w mieście Rożniątów/Gliwice. Jest z nami od 2010 roku.
  • IGE-XAO
  • #2
    IS
    Poziom 17  
    Trochę się zastanawiam dlaczego zastosowałeś kasetę własnego pomysłu. Nie lepiej było stosować typowe karty Euro 100x160 ze złączami serii DIN41612 lub coś podobnego z mniejszą ilością pinów? Wtedy miałbyś gotowe rozwiązanie mechaniczne kompatybilne z cała masą obudów i akcesoriów do nich np. osłony przednie, wkręty, uchwyty, prowadnice do płytek.
  • IGE-XAO
  • #3
    sgt_ding
    Poziom 15  
    Już spieszę z odpowiedzią :) Powodów, dlaczego nie zastosowałem kart Euro jest kilka.
    Po pierwsze, nie wiedziałem, że taki standard istnieje, a szkoda, bo spędziłem dużo czasu szukając gotowego rozwiązania...
    Po drugie cena takiego rozwiązania pewnie by mnie zniechęciła (same złącza, z tego co widziałem, są dosyć drogie).
    Po trzecie nie potrzebowałem takiej ilości pinów, bo protokołem komunikacyjnym jest Modbus, a do tego dochodzą tylko piny zasilające logikę i układy peryferyjne.
    Oczywiście nie zmienia to faktu, że rozwiązanie zaproponowane przez Ciebie jest ciekawe :)
  • #4
    IS
    Poziom 17  
    Złącza te w kilku konfiguracjach były produkowane w Polsce i stosowane w "naszym" sprzęcie (a potem skupowane na odzysk złota). Są wersje z mniejszą ilością pinów.
    Cena oczywiście jest średnia - tutaj dochodzi kwestia niezawodności i odporności na narażenia mechaniczne.
  • #5
    Zuliczek
    Poziom 17  
    Bardzo ładny projekt (w końcu praca inżynierska), mi się bardzo podoba wykona przez Ciebie obudowa zbiorcza - prosta i czysta ;).

    KSwierzy_Rozproszony system_sterowania.pdf napisał:
    Serwer WWW o niewielkich wymaganiach sprzętowych 12 umożliwiający tworzenie porta-
    lów/stron internetowych w oparciu o jeżyk PHP wykonywany po stronie serwera. W pro-
    jekcie został użyty do udostępnienia interfejsu użytkownika w sieci ethernet.

    Taki mały błąd się wkradł ;)
  • #7
    satanistik
    Poziom 27  
    Trochę jak na sterownik przemysłowy to słabo to wygląda. Magistrala wspólna jest dość uboga, płytki - nie widzę tu zabezpieczeń przepięciowych, zasilanie słabo odkłucone, moduł zasilacza też nie robi wrażenia - przetwornice step down są fajne ale jak zamokną lubią wariować. Warto pomyśleć nad zasilaniem +/-15 dla analogu, +5 i +3,3 dla reszty i układ nadzorujący poziomy napięć + kontrolki, układ nadzorczy powinien zwierać zasilacz powyżej ustalonego napięcia. Procesor można wymienić jednak są czujniki które mogą zaboleć finansowo.

    Moduł wejść analogowych - kwestię filtrowania sygnałów przemilczmy, widać jakieś diody zabezpieczające wejścia, podłączone do cieniutkiej ścieżynki, biegnącej do kondensatorów przy procku. Ciekawe rozwiązanie pomijając indukcyjność takiej ścieżki może ona ulec spaleniu. Nie wyobrażam sobie żeby to pracowało obok np spawarki interferonowej lub falownika. Moduł cyfrowy - pole masy jest nie podłączone lub wisi na masie strony gorącej - o co nam w systemie taka wielka antena sprzężona pojemnościowe ze wszystkim. Jeżeli wisi na stronie gorącej a taka strona może mieć 300V potencjału względem masy to spada nam odporność na przebicie.
    Rady:

    Na każdej płycie wejście zasilania odkłucone min. elektrolit, dławik,elektrolit + jakieś 100n.

    Masa prowadzona od jednego punktu lub pole masy.
    Zasilanie prowadzone od jednego punktu. Unikamy szeregów gdyż powstałe tętnienia nakładają się.
    Jeżeli coś izolujemy optycznie - minimum taka odległość pomiędzy najbliższymi ścieżkami obu stron jak odległość wyprowadzeń transoptora.

    Zasilanie analogowe oddzielnie, najlepiej symetryczne i więcej niż 5V. Wiem ze są wzmacniacze zasilane 5V ale nie zawsze jest to wystarczające, w automatyce mamy sygnały +/-10 i prądowe i wiele czujników wymaga takich napięć.

    Wejścia i wyjścia projektujemy tak aby podanie tam min 24V AC lub DC nie położyło nam systemu. Zdarza się że ktoś pomyli kostki i leżymy.
    Dodaj karty przekaźnikowe.
  • #8
    sgt_ding
    Poziom 15  
    Dzięki za odpowiedź :)
    Tak jak już napisałem w pierwszym poście, projekt płytek od strony analogowej trzeba poprawić i wiem, że na chwilę obecną ten projekt nie będzie odporny na zakłócenia przemysłowe, z drugiej strony założeniem pracy inżynierskiej była sama architektura komunikacyjna.
    Chcąc wypuścić to na rynek (co raczej nie będzie miało miejsca) zleciłbym wykonanie projektu PCB osobom kompetentnym, bo studiując automatykę (będąc automatykiem) zwracam uwagę na inne aspekty systemu, a o części elektronicznej mam tylko niewielkie pojęcie (szczególnie o jej analogowej stronie).

    Co do magistrali głównej to wiem, że jest uboga i nie zapewnia szybkiej wymiany danych, ale umożliwia tworzenie rozległych systemów (tak, wiem, brak w niej rezystorów terminujących :P ). Nie zawsze szybkość transmisji jest jej najważniejszym parametrem, szczególnie, gdy sterujemy "powolnymi" i rozległymi obiektami, ale wydaje mi się, że sam o tym dobrze wiesz :)

    Dziękuję za rady :) bo o ile o odpowiednim prowadzeniu masy co nieco się dowiedziałem od ostatniej zaprojektowanej przeze mnie płytki, to nie wiedziałem o odpowiednim prowadzeniu ścieżek, które wymagają optoizolacji (myślałem, że wystarcza odpowiednia przerwa w zależności od napięć). Zgadzam się z koniecznością zasilania symetrycznego układów wzmacniaczy analogowych i z tym, że zasilacz nie robi wrażenia (na cele projektowe wystarczało mi, że działa).
    Mógłbyś rozszerzyć tę myśl o nakładaniu się tętnień i szeregów? Nie wiem co masz na myśli, ale samo zgadnienie wydaje się ważne i warto byłoby się czegoś na ten temat dowiedzieć :)