Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Dom Inteligentny, rs485 + ?

fafal23 16 Feb 2008 01:50 53251 74
Optex
  • #31
    jarekgol
    Level 33  
    Panowie, a może coś w stylu token ring? na rs'ie? Przykładowo każde urządzenie ma adres i przesyła pakiet + znacznik do następnego aż dojdzie na docelowe, tamto zwalnia znacznik itd... Problem jak któreś padnie ale i to można spróbować rozwiązać, albo założyć że wszystkie będą pod prądem.
  • Optex
  • #32
    shadoweyes
    Level 20  
    Może jednak Profibus - to sieć gdzie możne być wiele masterów i można podłączyć wiele urządzeń np. serwomotory, sterowniki, panele itp.
    Poniżej opis protokołu sieci po polsku.
    Może ktoś się pokusi i napisze bibliotekę do komunikacji z wykorzystaniem konwertera RS232->RS485 i ją udostępni, bo na razie takowej nie znalazłem.
  • #33
    eros81
    Level 14  
    wd40 wrote:
    kedzi1 wrote:
    Ta stacja z ethernetem to na dzień dzisiejszy mikrokontroler z np RTL8019AS lub podobnym scalakiem. Koszt chyba nie jest za wysoki jak na kilka takich stacji (3-5 na średni domek).


    A masz jakieś gotowe rozwiązanie takiej stacji ze stosem TCP/IP
    i jaki jest jego koszt?


    W TME ENC28J60 kosztuje 24 zł + zł z transformatorem 14 zł, plus uC (nie za mały) i mamy dosyć silną "stację" co do której nie musimy się martwić że za parę lat nie da się tego już rozbudować,
    Na kilku forach parę osób pisało że mają np 1wire lub RS486 i teraz jest problem z komunikacją, czy z rozbudową albo z konfliktami,

    Zaprezentowane rozwiązanie tanie nie jest ale na pewno ma DUŻY potencjał
  • #34
    bartul_x
    Level 11  
    Witam
    Najlepiej użyć kosci TP-UART i problem rozwiązany ale cena 150zl netto powala!!!

    Wlasnie jestem na etapie testowania rs485 MultiMaster i tak:
    Kosc sn75176 docelowo sn75lbc184 obsługa do 128 nadajnikow.

    Kanal A poprzez rezystor podciągniety do VCC Kanal B poprzez rezystor do GND. Tylko w jednym sterowniku calej sieci i terminatory 120 na koncach, bez rezystorow podciągających układ był podatny na zakłócenia.

    Wejście RE/ kosci sn75176 podłączone do masy, to co sterownik nadaje jest przez niego odbierane.

    Układ testowany na 6-sciu sterownikach niestety oddalone od siebie tylko co ok. 15cm,
    każdy sterownk co 0,5s wysyla telegram składający się z 11 Bajtow ,jeden ze sterownik wyposażony jest w wyświetlacz na którym pokazuje odebrane ramki od pozostałych sterownikow , również pokazuje bledy od sumy kontrolnej CRC16 i zlicza kolizje na lini.
    W ciągu 24 godzin występowało srednio 200 kolizji na lini, ilość jak dla mnie do przyjęcia.

    Żeby wprowadzic większy chaos na lini po naciśnięciu przycisku sterownik wysyłał telegram do sterownika-RGB co 10ms o zwiekszenie lub zmniejszenie o 1 rejestru PWM co powodowalo rozjaśnienie lub przygaszenie diody-LED.

    JEST TO SPRAWDZONE W PRAKTYCE DZIALA!!!

    Czy na lini o długości 300m tez będzie działało???

    Magistrala. .
    Przewod magistralny EIB ,(w razie jak mój system się nie sprawdzi a będą pieniadze to magistrala gotowa pod EIB)

    Zasilanie sterowników 30V osobny przewod 2x1mm2 co pozwoli przy długości przewodu 200metrow zasilac 40 sterownikow moc pobierana przez sterowniki srednio 1,2 WATA
    (gdzie to do systemu EIB tylko 0,24 WATA!!!! Jak oni to zrobili???)

    Wykrywanie kolizji na lini.
    Na razie jest to bardzo prymitywna wersja wrecz epoka kamienia łupanego!!! ALE DZIALA

    Realizuje to w następujący sposób
    Sprawdzam czy w buforze odbiorczym znajduje się odebrany bajt jeśli jest pusty:

    Sterownik wysyla jeden bajt poczym sprawdza czy to co wysłał zgadza się z tym co znajduje się w buforze nadawczym jeśli tak to wysyla nastepny bajt aż wysle wszystkie.
    Jeśli nastąpiła kolizja to odczekuje losowo czas z przedzialu 50ms i znów próbuje wysłać od początku caly telegram.

    Odbiór Telegramu:
    Wykorzystuje w pelni możliwości sprzętowego USART : 2 bity stopu ,bit parzystości ,nadpisanie bufora odbiorczego Itp.
    Samo wyslanie telegramu nie stanowi problemu a odebranie ramki tak.
    I tu trzeba się zabezpieczyć
    Pierwsza linia obrony sprawdzanie flag błędów USARTA
    2. po odebraniu pierwszego znaku uruchamiany jest TIMER który odmierza określony czas jeżeli kolejny znak nie przyjdzie w danym czasie to telegram jest pomijany a jak znak zmiesci się w czasie to TIMER jest resetowany i odlicza od początku, tak jak w protokole MODBUS

    3.Sprawdzenie sumy kontrolnej CRC16

    Poszedłem na łatwiznę i telegram ma stala długość 11 bajtow , tak naprawde to najważniejszy jest TIMER po wygenerowaniu przerwania należy zresetowac licznik odebranych bajtow to dzieki niemu sterownik się nie zawiesi , bo skad ma wiedziec ze pierwszy bajt nie jest czwartym .
    Wiec czy to bład zgłosi USARTA czy wystapi przerwanie TIMERA należy zresetowac licznik odebranych bajtow i czekac na kolejny telegram.
    Próbowałem zawiesic sterowniki na wszelki znany mi sposób odłączałem i podłączałem sterownik z wlaczonym zasilaniem i bez zasilania, aż przyszedł czas na test zwarcia lini A i B i co i nic tylko licznik bledow na wyświetlaczu krecil się jak oszalały myślałem ze SN75176
    uszkodzi się ale nie , mam nadzieje ze przy SN75lbc184 będzie podobnie a może za mala liczba sterowników na lini? Czas pokarze.

    Do tej pory mam zrobiony prototypy:

    Sterownika zaworów grzejnikowych z petla PI i wyjsciem dla zaworu termicznego 24v sterowanie PWM i wyjsciem 0-10V dla zaworu proporcjonalnego.
    Sterownik nie przetestowany brak w posiadaniu zaworów. Petla PI dziala

    Sterownik temperatury pomieszczenia z nastawa temp i wyświetlaczem 2x8znakow. sprzężenie zwrotne dla sterownika zaworów grzejnikowych dziala

    Sterownik tasmy LED-RGB dziala

    Finalna wersja sterownika żaluzji:
    ustawiany czas zamkniecia otwarcia
    możliwość podłączenia enkodera miał być impulsator taki mechaniczny enkoder ale nie udało się zmusic do prawidłowej współpracy podlaczenie kondensator 100nF pomoglo ale drżenie stykow i tak występuje a to wprowadza bład w pozycjonowaniu wiec zostal tylko enkoder optyczny ale cena!!!
    Podlaczenie czujki otwarcia okna sprzężenie zwrotne dla sterownika zaworów grzejnikowych, co by przy otwarciu okna nie rozkręcił grzania na full tylko przyblokował.
    I oczywiście alarm.

    I to tyle
    Pozdrawiam


    Dom Inteligentny, rs485 + ?

    Dom Inteligentny, rs485 + ?

    Dom Inteligentny, rs485 + ?
  • Optex
  • #35
    eros81
    Level 14  
    bartul_x -> są jakieś postępy w pracy nad tą instalacją ??

    Problemy albo uwagi??
  • #36
    bartul_x
    Level 11  
    Witam
    Na razie prace wstrzymane, wiosna czas powrócić na budowę i złapać za przysłowiowa łopatę jak się niema konta z odpowiednia liczba zer. Co mogłem przetestować na biurku to przetestowałem teraz musze wykonac wszystkie sterowniki w x-sztukach a to zajmuje trochę czasu wiec projekt przeczeka znowu do zimy.
    Pozdrawiam.
  • #37
    mcy
    Level 15  
    Pozdrawiam bartul_x ja również w lecie macham łopatą ale staram się prowadzić prace koncepcyjne nad protokołem transmisji. Standard RS485 jako warstwa fizyczna nie ulega wątpliwościom. Problemy rodzi warstwa komunikacji. Przy analizie oparłem się o standard EIB. Każde urządzenie posiada swój adres logiczny XX.XXX.XXX. Należy dokonać podziału urządzeń w sieci domowej: czujniki, włączniki, itp. To już wykonałem. Wyszło mi ok 30 różnych urządzeń. Każde z urządzeń posiada adres logiczny, do którego można przesyłać komunikaty. Problem mam w zdefiniowaniu kilku urządzeń logicznych (np. włącznik i czujnik) w jednym urządzeniu fizycznym. Co z przesyłąniem komunikatów w ramach jednego urządzenia fizycznego? Można to ominąć i nie wysyłać komunikatów na magistralę tylko w przypadku gdy adresowanie odbywa się w ramach jednego urządzenia fizycznego. A co w przypadku adresowania do grupy (adres 0)? Jeżeli masz gotowe rozwiązanie to odpisz.
    Dodatkowe pytania:
    1. Zasilasz układy 30V napięcie zmienne czy stałe
    2. Jaką przetwornicę napięcia stosujesz do zasilania uC
    3. Jakie stosujesz zapezpieczenie przeciwzwarciowe? Czy po zwarciu całą sieć "pada"?
    4. Stosujesz watchdog dla ATMEGI?
  • #38
    bartul_x
    Level 11  
    Witam
    Napiecie stale mostek prostowniczy jako zabezpieczenie przed odwrotną polaryzacja zasilania.
    Przetwornica LM2574M-5
    Przy zwarciu SN-y 75176 nie uszkadzają się transmisja lezy.
    Na razie bez watchdog

    Co do wysylania telegramów do grupy jeszcze nie testowałem ale nie powinno być z tym większego problemu może się zdążyć ze któryś sterownik z grupy nie odbierze telegramu i nie wykona polecenia bo będzie zajety czymś innym , można się zabezpieczyc przed taką sytuacja.


    „Problem mam w zdefiniowaniu kilku urządzeń logicznych (np. włącznik i czujnik) w jednym urządzeniu fizycznym.”

    Nie wiem w czym problem?

    Dom Inteligentny, rs485 + ?
    przekazniki to s202s11
    pozdrawiam
  • #39
    mcy
    Level 15  
    Witam
    W najbliższych dniach jadę na urlop ale postaram się po urlopie pokazać dokumentację i opis projektu.

    Traktuję każde urządzenie jako posiadające swój własny adres i właściwości.
    Dlatego na jednej płytce możesz mieć kilka urządzeń - np. czujników DS , włączników elementów wykonawczych, itp. Ww. urządzenia obsługuje jeden procesor i mają one wspólny interfejs RS485.
    Przykładowo na jednym uc:
    przełącznik o adresie 12.123.125
    element wykonawczy o adresie 12.122.99
    czujnik temperatury o adresie 12.123.33

    naciśnięcie (zmiana stanu) przełącznika 12.123.125 spowoduje wysłanie telegramu do elementu wykonawczego 12.122.99. Ponieważ procedura odbywa się w ramach jednego uc, można nie wysyłać? komunikatów poprzez interfejs 485.
    Powinno działać to podobnie jak loopback w TCP/IP. Ale nie mam jeszcze rozpracowanej koncepcji.
    Każdy uc będzie posiadał przestrzeń do programowania procedury wykonania czynności w wyniku akcji użytkownika z urządzeniem np. zmiana stanu przełącznika uruchomi procedurę. Programowanie będzie odbywało się z poziomu aplikacji na PC.

    Pozdrawiam
  • #40
    poczitamagoczi
    Level 14  
    mcy bardzo interesująco opisałeś to zastosowanie EiB ... można wiedzieć z jakich źródeł o EiB korzystałeś? Nie mogę znaleźć konkretnych informacji na internecie o tym standardzie tzn. np:
    - czy jest konkretny protokół EiB a jeśli jest to co zawiera,
    - przykładowe implementacje na uC,
    - czy występuje to podział na Mastera i Slava - a jeśli tak to czy niektóre urządzenia o danym adresie logicznym mogą pełnić tylko role slave? Np. Czujnik temperatury ma być tylko odpytywany?

    Bo rozumie ze twoje urządzenia emulują taki system, a przynajmniej sposób adresowania...? A jak by miały być z nim w pełni zintegrowane mógł byś użyć wyżej wymienionej kości TP-UART? Czy dobrze to rozumie ?
  • #42
    shadoweyes
    Level 20  
    U różnych producentów możemy spotkać różne rozwiązania protokołów transmisji. Często jednak wykorzystywane są protokoły po RS485 takie jak Modbus, Profibus czy ostatnio CAN. Nawet często firmy oferujące standard EIB dają możliwość wyboru protokołu komunikacyjnego.
  • #43
    poczitamagoczi
    Level 14  
    Dzięki za info na temat EiB. Z przesłanej dokumentacji wynika że protokołem komunikacyjnym w systemach KNX jest Instabus EiB - i jest to standard określający zarówno budowę sieci (stosowanie modułów komunikacyjnych w wyjściami na 24 i 5 V które jednocześnie zasilają urządzenie - takich jak na 11 str. powyższej dokumentacji) jak i formaty telegramów. Poza tym istnieje jeszcze RadioBus EiB.... Poza tym znalazłem bardzo ciekawą stronkę na temat wprowadzania do produkcji urządzeń KNX.
    http://www.knx.org/pl/knx-standard/how-to-start/

    Ogólnie rzecz biorąc to tak średnio się opłaca stosować EiB, szczególnie przy małej serii urządzeń. Stosowanie drogich scalaków jak (TP-UART), ograniczenia (np. Imax = 10mA) , certyfikacja - to wszystko nie zachwyca.

    Ja też pracuje teraz nad stertownik domu, i zdecyduje się chyba na RS485. W przeszłości zrobiłem parę projektów z wykorzystaniem Modbusa więc i tutaj chciałbym go użyć, jego wadą jest jednak brak możliwości pracy w trybie multimaster. Więc wykombinowałem sobie tak że do przesyłanych wiadomości za adresem odbiorcy przesyłać będę specjalny rejestr który określał będzie jakie urządzenie ma za chwile zostać masterem, - i w ten sposób wprowadził bym zasadę token ringu. Każe urządzenie w sieci miał by określony czas "Masterowania" (np. 100ms). Co myślicie o takim rozwiązaniu?
  • #44
    bartul_x
    Level 11  
    Witam
    Niestety wszystkie rozwiązania oprócz multimaster są rozwiązaniami pośrednimi i do końca nie dadzą zadowalających efektów.
    Zastanawiałem się długo jaki system wybrać i tylko pozostał multimaster.
    Na przykład przyjmijmy ze w sieci mamy 40 sterowników jeden ma wysłać telegram do sterownika oświetlenia zapal światło jak zle trafisz to światło zapali się dopiero po 4 sekundach nie mówiąc już o płynnym sterowaniu oświetlenia.
    Lepiej chyba uzyc jeden Master x slave i tak większości przypadków automatyki domowej będzie znajdował się sterownik z panelem LCD który to może pelnic funkcje mastera.
    Mój wstępny projekt opieral się na zasadzie Master Slave ale po przeliczeniu czasów przeglądania sterowników był ten sam problem opoznienia ,wiec dodalem dodatkowa linie informacyjna od sterowników które mialy być odczytane natychmiast , trochę to pomoglo ale komplikowalo układ dodatkowe elementy i dodatkowa linia a efekt mizerny.

    Pozdrawiam
  • #45
    wd40
    Level 21  
    poczitamagoczi wrote:
    Więc wykombinowałem sobie tak że do przesyłanych wiadomości za adresem odbiorcy przesyłać będę specjalny rejestr który określał będzie jakie urządzenie ma za chwile zostać masterem, - i w ten sposób wprowadził bym zasadę token ringu. Każe urządzenie w sieci miał by określony czas "Masterowania" (np. 100ms). Co myślicie o takim rozwiązaniu?

    Uszkodzenie dowolnego urządzenia zablokuje cały system.
  • #46
    eros81
    Level 14  
    Ja również troszkę nad tym myślałem.

    Wydaje się mi że Modbus jest spoko ALE co jeśli trzeba będzie w przyszłości np za 10 lat
    tą siecią puścić więcej ilości danych. Np zdjęcie osoby przy drzwiach, albo inną melodię dzwonka ??
  • #47
    shadoweyes
    Level 20  
    Modbus jest "spoko" ale lepszy jest Profibus np. ze względu na możliwość posiadania więcej niż jednego Mastera w sieci. Przydaje się to przy rozbudowie systemu o nowe elementy i budowę układów rezerwowych gdy wystąpi awaria Mastera.
  • #48
    eros81
    Level 14  
    shadoweyes wrote:
    Modbus jest "spoko" ale lepszy jest Profibus np. ze względu na możliwość posiadania więcej niż jednego Mastera w sieci. Przydaje się to przy rozbudowie systemu o nowe elementy i budowę układów rezerwowych gdy wystąpi awaria Mastera.


    no tak ale nie spotkałem się z jakąś ogólno dostępną i niezbyt trudną
    implementacją tego protokołu na któryś z współczesnych mikrokontrolerów ;-(
  • #50
    shadoweyes
    Level 20  
    Implementacji Profibus-a niestety nie znalazłem jeszcze:(
  • #51
    eros81
    Level 14  
    shadoweyes wrote:
    Implementacji Profibus-a niestety nie znalazłem jeszcze:(


    No właśnie, Modbus jest jako tako dostępny(czyt są aplikacje) i możliwy do
    implementacji na mikrokontrolerach, natomiast z Profibusem jest znacznie gorzej :-(
  • #52
    mcy
    Level 15  
    Witam po przewie wakacyjnej.
    Załączam materiały dotyczące EIB, Co prawda część po francusku ale jest taka ilość obrazków z opisem że bez problemu rozgryziecie zawartość.
    Również jestem takiego samego zdania jak bartul_x, ani modbus ani profibus, rozwiązanie multimaster. Zastanawiam się nad protokołem TokenBus z kodowaniem Manchester na warstwie fizycznej RS485. Prace ida powoli bo jest ciepło i prace budowlane mają priorytet.
  • #53
    kwiatek6324
    Level 11  
    Witajcie,

    Kiedys drazylem temat, odsawilem bo mialem inne priorytety, teraz znowu wracam do projektowania
    instalacji do domu..

    Czytajac o wielu roznych mozliwosciach i protokolach i problemach z multimaster na RS485,
    zaczynam rozwazac CAN.

    Zamiast martwic sie o kolizje, zajetosc linii itp, moze lepiej zostawic to ukladom sprzetowym
    zaprojektowanym do tego, a skupic sie na logice wykonawczej ?

    Wiadomo koszt dodatkowy, ale z drugiej strony ile kosztuje czas spedzony na rozwiazywaniu
    problemow z kolizjami...

    Co Wy o takim podejsciu sadzicie ?
  • #55
    poczitamagoczi
    Level 14  
    Może rozruszamy ten ciekawy wątek?

    Ostatnio zainteresowałem się darmowym protokołem BacNet - jest stosowany przez wielu producentów w stanach i zaczyna być popularny w europie. Jeszcze się nie wgryzłem w szczegóły ale może działać na RS 485 w trybie MS(master-slave)TP(Token Passing). Najlepsze jest to że wiele sterowników ma obsługę tego protokołu więc moje urządzenie może być częścią systemu. Przymierzam się właśnie do implementacji tego protokołu na mój sterownik ;).
    Podaje źródło z kodem na różne mikrokontrolery (między innymi atmega168, atmega8,pic18f6720):
    http://bacnet.svn.sourceforge.net/viewvc/bacnet/trunk/bacnet-stack/ports

    Poza tym znalazłem firmę która oferuje sterowniki automatyki domowej z zaimplementowanym ModBus'em - http://www.esea.pl . Rozmawiałem z ich przedstawicielem na targach HAPexpo 2009, sprawiał wrażenie jak by nie zdawał sobie nawet sprawy że na rs485 możne działać tylko do 31 urządzeń. Ale przykład tej firmy dowodzi tego że na modbusie też się da, nawet w profesjonalnych instalacjach.
  • #56
    eros81
    Level 14  
    poczitamagoczi wrote:
    Może rozruszamy ten ciekawy wątek?

    Ostatnio zainteresowałem się darmowym protokołem BacNet - jest stosowany przez wielu producentów w stanach i zaczyna być popularny w europie. Jeszcze się nie wgryzłem w szczegóły ale może działać na RS 485 w trybie MS(master-slave)TP(Token Passing). Najlepsze jest to że wiele sterowników ma obsługę tego protokołu więc moje urządzenie może być częścią systemu. Przymierzam się właśnie do implementacji tego protokołu na mój sterownik ;).
    Podaje źródło z kodem na różne mikrokontrolery (między innymi atmega168, atmega8,pic18f6720):
    http://bacnet.svn.sourceforge.net/viewvc/bacnet/trunk/bacnet-stack/ports

    Poza tym znalazłem firmę która oferuje sterowniki automatyki domowej z zaimplementowanym ModBus'em - http://www.esea.pl . Rozmawiałem z ich przedstawicielem na targach HAPexpo 2009, sprawiał wrażenie jak by nie zdawał sobie nawet sprawy że na rs485 możne działać tylko do 31 urządzeń. Ale przykład tej firmy dowodzi tego że na modbusie też się da, nawet w profesjonalnych instalacjach.


    Czy autorowi udało się pociągnąć temat BacNet na AtMega8 ??
  • #57
    Knopka
    Level 10  
    A propos rozruszania wątku... Autor tematu zaczynał od inteligentnego budynku, a mnie ten temat bardzo w tej chwili interesuje. Czy są systemy które korzystają z kilku magistral? Jeśli tak, to czy jest to efektywne, jeśli nie, to jaka jest najpewniejsza? Nie jestem dobry w tym temacie ;)

    Od razu zaznaczam, że nie pytam o żadne drogie systemy (oparte np. na standardzie KNX). Chodzi mi o coś na polską kieszeń - czytaj moją. RS485 i CAN wydają się sensownym rozwiązaniem (Profibus chyba bardziej do przemysłu).
  • #58
    shadoweyes
    Level 20  
    Można zrobić własne urządzenia do sterowania urządzeń domowych ale powinne one być kompatybilne z już istniejącymi systemami a na rynku najbardziej popularne są te które wykorzystują protokoły Profibus, Modbus i CAN na magistrali RS485. Problem polega na dostępności tych protokołów dla zastosowań "domowych"(gotowych bibliotek na mikro-kontrolery avr czy pic nie odpłatnie np. do eksperymentów).
  • #59
    poczitamagoczi
    Level 14  
    Quote:
    Czy autorowi udało się pociągnąć temat BacNet na AtMega8 ?

    Nie próbowałem nawet... Ale moim zdaniem jest to możliwe ogólnie na AVRach jak tylko starczy flesha.
  • #60
    niky
    Level 1  
    Witam,

    Ponieważ w wypowiedziach przewija się głównie temat RS485 i transmisji CSMA/CD, czy udało się komuś zbudować działającą sieć? A jeśli tak, to czy ma ktoś doświadczenia i jakie z budową sieci w topologii gwiazdy (wiem, że RS485 zgodnie ze specyfikacją ma być magistralą) przy odległości pomiędzy środkiem gwiazdy a węzłem do 25m.