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



Teraz jest 26 lut 2025, o 22:46


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 25 sty 2017, o 18:17 
Offline
Użytkownik

Dołączył(a): 09 mar 2014
Posty: 26
Pomógł: 0

Witam !

Mam do was pytanie odnośnie RS485 i generalnie o separację mikrokontrolera.
Buduję 16 kanałowy sterownik z kontrolą wyjść.
Urządzenie będzie pracowało w bardzo trudnych warunkach (powiem tylko tyle, że obecne sterowniki które mają już kilka lat sprawiają mnóstwo problemów).

Na tym etapie projektowania zakładam, że filtruję co się da razy dwa, odpowiednie ceramiki i kondensatory Low ESR, odpowiednie prowadzenie mas itd…

Następne moje założenie to separacja od procesora wszystkiego co się da, wszystkie wejścia, wyjścia np. do przekaźników separacja na opto w połączeniu z tranzystorami albo scalakiem ULN2803.

Będzie kilka modułów, które będą komunikowały się pomiędzy sobą, oraz główny moduł który będzie zbierał cyklicznie co jakiś czas informacje ze wszystkich sterowników i wysyłał dane przez ATB-ETHERNET na serwer.

W tej sytuacji do komunikacji logiczne wydaje się zastosowanie RS485.
Planuję zastosowanie optoizolatora na 6N137 następnie max485 a potem magistrala, skrętka…

Moje pytanie do was, czy dobrym pomysłem jest zastosowanie dwóch odrębnych zasilaczy o napięciu przykładowo 12V i 24V do wszystkich urządzeń ?
W każdym module z pierwszego zasilacza byłby zasilany przez przetwornicę ATB-PWR procesor i peryferia, z drugiego zasilacza przez inną przetwornicę wszystko co jest za optoizolatorami.
Dodatkowo na MAX485 osobno stabilizator na 5V (chcę aby była możliwość ustawienia na wyjściach napięć 5V, 12V,24V i nie chcę przy tej okazji upalić max485)

Rozważam również zastosowanie takiego scalaka ADM2587EBRWZ-REEL7 zamiast max485, optoizolatora na 6N137 oraz osobnego stabilizatora 5V tylko, że koszt spory (około 40zł).

Co myślicie o takim rozwiązaniu ?

Polecicie jakąś dobrą lekturę odnośnie RS485? Dopiero się uczę…

Może macie też jakieś swoje sprawdzone rozwiązania jeśli chodzi o izolację środowiska zewnętrznego od procka ?
Przyda się również jakaś rada odnośnie rozwiązań programowych do komunikacji w RS485. Ilość danych do przesłania jest niewielka max 150bajtów upakowane w strukturę.

Za wszelkie konstruktywne porady i opinie z góry dziękuję, a smerfy marudy pozdrawiam ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2017, o 20:46 
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

Rozważ użycie przetwornic w stylu AM1S-0505SZ. Można również zmieniać 12V na 5V. Zamiast tego drogiego układu z wbudowaną przetwornicą możesz wtedy użyć ADM2483.

Literatura:
http://www.ti.com/lit/an/slla292a/slla292a.pdf

Czy zamiast ATB-ETHERNET nie lepiej użyć ATNEL-WIFI232-T? W pierwszym przypadku procesor ma dużo do roboty, a w drugim wysyłasz dane na port szeregowy.

Jeśli chodzi o rozwiązania programowe RS-485 to jest MODBUS, ale możesz wymyślić prostszy protokół. Pytać jeden adres o wartość jednego rejestru i czekać na odpowiedź i tak w kółko dopóki nie zbierzesz kompletu danych do wysłania.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sty 2017, o 11:54 
Offline
Użytkownik

Dołączył(a): 09 mar 2014
Posty: 26
Pomógł: 0

Cytuj:
Rozważ użycie przetwornic w stylu AM1S-0505SZ. Można również zmieniać 12V na 5V. Zamiast tego drogiego układu z wbudowaną przetwornicą możesz wtedy użyć ADM2483.

Na początku rozważałem takie rozwiązanie ale stwierdziłem, że przyoszczędzę może 10zł przy tej konfiguracji.
Wydam nieco więcej i mam całkowicie załatwiony temat.
Ma ktoś może jakieś doświadczenia z tymi scalakami ?

Tak po zastanowieniu, stwierdzam również, że przy pierwszej konfiguracji czyli optoizolator plus MAX485 lepiej użyć osobnej przetwornicy DC/DC z izolacją galwaniczną zamiast stabilizatora na drugim zasilaczu.

Kolejne pytanie, sygnał z wyjść A i B będzie puszczony skrętką, zastanawiam się czy warto aby ta skrętka była w oplocie a sam oplot skrętki łączył wszystkie masy ? Czy łącząc w ten sposób masy mogę sobie narobić kłopotów ?

Cytuj:
Czy zamiast ATB-ETHERNET nie lepiej użyć ATNEL-WIFI232-T? W pierwszym przypadku procesor ma dużo do roboty, a w drugim wysyłasz dane na port szeregowy.

Faktycznie, nie zwróciłem na to uwagi.
W domu zapewne zastosowałbym ATNEL-WIFI232-T natomiast moje urządzenia będą musiały pracować w metalowej szafie...
Może będę musiał jeszcze rozważyć Raspberry PI albo podłączenie się do jakiegoś PC.

Cytuj:
Jeśli chodzi o rozwiązania programowe RS-485 to jest MODBUS

Na forach coś tam czytałem ale jeszcze nie wgryzłem się w temat. Jeśli dobrze zrozumiałem, to w tym standardzie może być tylko jeden MASTER.
Mi zależy na tym, aby wszystkie moduły mogły ze sobą gadać na równych zasadach, po prostu będzie jeden moduł który będzie co określony czas zbierał dane z pozostałych i wysyłał na serwer.

Cytuj:
ale możesz wymyślić prostszy protokół

Chyba jeszcze jestem za cienki na wymyślanie własnych protokołów ;).

Jeśli coś źle opisałem albo zrozumiałem to przepraszam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2017, o 08:26 
Offline
Nowy

Dołączył(a): 16 gru 2014
Posty: 8
Pomógł: 0

Witam
Obecnie realizuje projekt odczytu wskazań wodomierzy a w zasadzie rejestracji danych z ich wyjść impulsowy. Całość oparłem o transmisję modbus bibliotekę na razie tylko slave napisałem sam https://github.com/jurekms/uMODBUS. Jako master użyłem gotowy konwerter ethernet - modbus zakupiony na portalu aukcyjnym Państwa Środka ;). Próbowałem użyć raspberry, napisałem prosta aplikacje w c w oparciu o jakąś gotowa bibliotekę modbus ale nie działało to zbyt stabilnie. Teraz mam układ pc - mały komp z pasywnym chłodzeniem coś jak terminal z dyskiem ssd 40G, na pokładzie linux, modul eth - modbus, dwa moduły modbus po max 8 wodomierzy rezultat http://62.121.131.30 faza mocno beta ;). Dane rejestruje bazie, co minutę odczytuję moduły i w przypadku zmiany aktualny stan dopisuje wraz z timestamp'em w tablicy. Koordynację przesyłania danych pomiędzy slavami możesz zrobić używając mastera. Można oczywiście włączyć kilka masterow pozostaje wtedy problem dostępu do łączą i wykrywania kolizji można użyć tokena i przekazywać go kolejno od mastera do mastera taki modbus token ring ;).
Pozdr Jurek

Wysłane z mojego SM-T525 przy użyciu Tapatalka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2017, o 09:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 cze 2012
Posty: 171
Pomógł: 5

Witam, z doświadczenia mogę polecić trochę inne podejście. Osobiście stosuję magistralę CAN, jeśli ma być izolowana to transciever ISO1050. Wtedy każdy slave ma swój unikalny ID i wysyła paczkę danych cyklicznie co ustalony czas. Master natomiast w przerwaniu sprawdza z którego ID nadleciały dane i odpowiednio je przetwarza. Rozwiązanie proste bo nie trzeba jakiegoś protokołu czy odpytywania slave. Dodatkowo można zastosować mechanizm heart bit za pomocą którego master będzie wiedział jakie ma slave podpięte i czy one działają. Odnośnie zasilania to zastosuj na płytkach przetwornicę np nieśmiertelną LM2596 i wtedy w zależności jakie podasz zasilanie 12V czy 24V moduły będą pracowały. Do ISO dajesz przetwornicę scaloną DC/DC i masz pięknie odseparowany układ transmisji.

Pozdrawiam
R.L.



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: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO