Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 26 kwi 2025, o 19:21


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
    Autor Wiadomość
    PostNapisane: 22 lut 2013, o 01:25 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2011
    Posty: 266
    Lokalizacja: Szczecin
    Pomógł: 9

    Zastanawiam się nad wykonaniem sieci sterowników na ATMega644pa (2 UART). Każdy ze sterowników pracował by jako Master. W pętli głównej programu (oprócz podstawowego programu) były by dwa zdarzenia związanie z UART1 oraz z UART2. UART1-przyjmuje ramki i wysyła poprzez UART2 do kolejnego sterownika itd.
    Obrazek

    Od razu widać, że wymiana informacji nie będzie za szybka, szczególnie pomiędzy odległymi sterownikami.

    Co sądzicie o takim rozwiązaniu?

    _________________
    www.gryfsmart.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lut 2013, o 07:55 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    RS232 nie nadaje się na duże odległości. Dlaczego nie CAN albo RS485 ?

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lut 2013, o 09:43 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2011
    Posty: 266
    Lokalizacja: Szczecin
    Pomógł: 9

    o CAN nie mam pojęcia. Jeżeli chodzi o RS485, to łatwo (tak mi się wydaje) jest zrobić sieć typu 1 Master, kilka Slave. RS485 bym mógł zastosować lokalnie. Czyli lokalnie scalak RS232->RS485, co miało by zadanie tylko zwiększyć zasięg. 90% sterowników umieszczonych było by w rozdzilni moduł obok modułu, dlatego na odległościach specjalnie mi nie zależy.

    _________________
    www.gryfsmart.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lut 2013, o 10:41 
    Offline
    Nowy

    Dołączył(a): 27 sty 2013
    Posty: 6
    Pomógł: 0

    Witam i pozdrawiam Wszystkich.
    Jest to mój pierwszy post ale mam nadzieję, że będzie ich więcej.
    Wydaje mi się, że to rozwiązanie trochę jest do niczego. Jeśli dobrze rozumuję :). " Każdy ze sterowników pracował by jako Master." - właśnie tu jest problem. Zauważ, że jeśli jeden z twoich modułów np. zawiesi się lub zostanie uszkodzone to komunikacja za nim też leży. Poza tym wyobraź sobie co się stanie jeśli wszystkie urządzenia " w jednym czasie" np. w wyniku jakiegoś zdarzenia będą chciały wysłać informację ( jeszcze co gorsza cyklicznie ją powtarzać bo warunki się zmieniają). Wydaje mi się że nie tędy droga. Ja i pewnie większość z kolegów na forum zrobiłbym tak ,że albo niech tablet będzie masterem i zbiera dane ze sterowników na zasadzie odpytywania, albo dodatkowy układ - właśnie master między pierwszym sterownikiem a tabletem działający również na zasadzie odpytywania pozostałych i komunikacji z tabletem. Nie wiem jak CAN, ale jak podpowiadał kolega Krauser - RS485 będzie dobrym rozwiązaniem nie tylko zresztą ze względu na zasięg, ale przede wszystkim na sposób przyłączenia do magistrali- uszkodzenie jednego z modułów nie powoduje problemów z dostępem do kolejnych.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lut 2013, o 17:21 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27377
    Lokalizacja: Szczecin
    Pomógł: 1043

    Nadmienię, że na forum mamy poradniki do CAN autorstwa SunRivera więc tym łatwiej z tym ruszyć .... i też zachęcam do skierowania się w stronę CAN niż bawienie się multimasterem na RS232.

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lut 2013, o 17:50 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2011
    Posty: 266
    Lokalizacja: Szczecin
    Pomógł: 9

    max_p napisał(a):
    ... " Każdy ze sterowników pracował by jako Master." - właśnie tu jest problem. Zauważ, że jeśli jeden z twoich modułów np. zawiesi się lub zostanie uszkodzone to komunikacja za nim też leży.


    Przy takim rozwiązaniu można by sterowniki połączyć w "okrąg". Czyli jeżeli jeden z modułów by się zawiesił, to komunikacja trwała by dalej. Moduł dostaje informację od wcześniejszego wysyła ją dalej. Ramka zanika w sieci gdy dotrze do modułu docelowego.

    max_p napisał(a):
    Poza tym wyobraź sobie co się stanie jeśli wszystkie urządzenia " w jednym czasie" np. w wyniku jakiegoś zdarzenia będą chciały wysłać informację ( jeszcze co gorsza cyklicznie ją powtarzać bo warunki się zmieniają). Wydaje mi się że nie tędy droga.

    Moim zdaniem nic się nie stanie, nie będzie żadnej kolizji!!! W uproszczeniu sprowadza się to do połączenia typu (uP[rs232] <->uP[rs232]). Jeden i drugi uP mogą jednocześnie nadawać i odbierać.

    Jeżeli bym zastosował połączenie sterowników w pętli to zwarcie na magistrali, by nie zablokowało komunikacji. Jeżeli w RS485 lub CAN nastąpi takie zwarcie to cała sieć siada.

    Wiem, że na forum jest kurs Sun na temat CAN - nie przyswoiłem jeszcze tej wiedzy :)

    _________________
    www.gryfsmart.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lut 2013, o 22:58 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2011
    Posty: 266
    Lokalizacja: Szczecin
    Pomógł: 9

    GwynBleidD napisał(a):
    Dobrze myślisz, ale źle myślisz... :D
    Wada 1:
    jeśli chcesz łączyć w pierścień i żeby miało to jakiś sens, musisz obsługiwać przypadek dotarcia każdego pakietu 2x. Dodatkowo nie możesz od tego uzależniać całej transmisji, bo przy przerwie już dochodzi tylko 1 raz...

    Podczas normalnej pracy nigdy nie będą wysyłane dwa takie same pakiety na raz jednego modułu. Wszystkie pakiety będą krążyły np w "prawą" stronę. Moduł po wysłaniu pakietu oczekuje na odpowiedz, że ten pakiet został odebrany. Wszystkie moduły wysyłają swoim "prawym" UART. Każdy moduł ma wprowadzony licznik utraconych pakietów. Czyli jeżeli następuje przerwa to do modułu nie dochodzą potwierdzenia odebrania pakietu. Jeżeli licznik ten np przekroczy wartość np 10 pakietów. To moduł ten wysyła informację, że moduły mają nadawać lewym UART.

    GwynBleidD napisał(a):
    Wada 2:
    Wysłanie omyłkowo pakietu do nieistniejącego urządzenia spowoduje krążenie tego pakietu w nieskończoność. Kilka takich i już magistrala zablokowana.

    Do każdego pakietu danych będzie przyklejony "licznik życia". Jeżeli w sieci będzie 10 modułów to ten licznik będzie równy 9. Po przejściu przez kolejny moduł "licznik życia" ramki jest dekrementowany. Gdy licznik będzie równy zero, ramka umiera.


    Każdy z modułów ma oczywiście wbudowanego WatchDoga. Te modułu które chce spiąć w sieć, dosyć dopracowałem i nie wieszają mi się podczas pracy autonomicznej. Tych sterowników mam trochę zainstalowanych na obiektach i mi się nie wieszają. Nie mówię, że nigdy taki przypadek nie zaistenieje! Ale nawet jak by nastąpiło zawieszenie to od razu zadziała WatchDog i w najgorszym przypadku będzie utraconych kilka ramek.

    Jeżeli chodzi o CAN to nie mam o tej magistrali za dużego pojęcia. Tak na szybko szukając informacji o CAN i AVR to chyba na naszym forum jest jej najwięcej informacji - chodzi mi o kurs Sun. Będę musiał się zmobilizować i posiąść tą tajemną wiedzę na temat CAN, jak to jest takie fajne rozwiązanie :)

    _________________
    www.gryfsmart.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Google [Bot] i 2 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO