Wystarczy do tego np max485 lub inny odpowiednik, jeżeli przewody RS485 nie będą za długie (przypuszczam, że do 2 m spokojnie) nie jest konieczne zabezpieczanie linii. Ponadto sugeruję zastosowanie wstępnej polaryzacji linii. Do tego musisz opisać protokół MODBUS MASTER (linia jest prawdopodobnie typu half duplex), wtedy bez żadnego problemu wyciągniesz...
Miałem na myśli adresację rejestrów a nie urządzenia. No to jeszcze prościej... 16 bitowa przestrzeń adresowa, powinieneś dostać błąd jak zaadresujesz coś z poza obsługiwanego zakresu. Obsługę MODBUS RTU na ATMEGA sam napisałem w zamierzchłych czasach, więc to nie może być trudne :) Działa ten przetwornik temperatury z PC?
Dzięki za podpowiedź niestety bez efektu. Może problem jakiś robi że to jest protokół Modbus RTU? https://obrazki.elektroda.pl/6923720600_... Dodano po 13 Wygląda że jest ok jak wstawisz na samym końcu CRC i liczona będzie łącznie z rejestrami HI, LO, to CRC wychodzi 30 0A https://obrazki.elektroda.pl/9478117400_...
Mam odwrotny problem :( atmega + 75176 do konwertera 485-232. Do kompa dane idą bez problemu, w drugą stronę nie chce. Ktoś ma jakieś pojęcie jak temu zaradzić
Witam Uaktualniam sterownik (na bazie ATMEGA AVR) tak aby można go było programować poprzez RS485 protokół MODBUS ASCII. Mam problem jak powinna wyglądać obsługa rozkazów które wymagają długiego czasu wykonania (max 8 sekund. Jeden z rozkazów powoduje przepisanie parametrów z RAMu do EEPROMU 1kB.) tak aby uniknąć timeout ze strony serwera (zdalne programowanie...
Witam. Myslę, że można by popróbować jakies konwertery z 1 wire na rs485 lub modbus coś w tym stylu : http://cel-mar.pl/addressable_rs485rs422... http://cel-mar.pl/1-wire_rs485_modbus_m4... szukam jakis układów lub podobnych rozwiazań spełniających funkcję konwerterów wspópracujących z atmega.
tak tylko pytanie teraz jaki jest adres urządzenia ? [syntax=c]const UCHAR ucSlaveID[] = { 0xAA, 0xBB, 0xCC }; eMBErrorCode eStatus; eStatus = eMBInit( MB_RTU, 0x0A, 0, 38400, MB_PAR_EVEN ); eStatus = eMBSetSlaveID( 0x34, TRUE, ucSlaveID, 3 ); sei( ); [/syntax] jeżeli dobrze zrozumiałem dokumentacje to adres urządzenia w tym wypadku powinien być 0x34...
Na pewno prostsze w okablowaniu byłoby połączenie czujników poprzez sieć 485. 4-żyłowy kabel umożliwia połączenie i zasilanie do 32 urządzeń. Każde urządzenie/termometr to np. - czujnik LM335 - ATTINY2313 (20 pin posiada UART i ADC) - układ do transmisji MAX485 lub odpowiednik Do tego potrzebny jeszcze układ Master - może być PC - Sterownik na ATMEGA...
Witam. Zabrałem się za projektowanie sterownika rolet opartego na atmedze z komunikacją rs485 modbus ascii . Jako ze od czegoś trzeba zacząć załatwiłem sobie zestaw uruchomieniowy atmega 32 ARE0034 . Do zestawu zostały dołączone przykładowe programy miedzy innymi program obsługujący rs232. Kod przedstawiam poniżej: /**************************************/...
Witam Zobacz na jakikolwiek schemat przemysłowy, wszędzie są oporniki rzędu 4,7K do masy i zasilania. Z tego co wyczytałem w standardzie MODBUS działającym na RS485,to polaryzacja linii nie jest niezbędna. Aczkolwiek spróbuję i tego. Zrobiłem też eksperyment, gdzie w ogóle nie miałem podłączonego kabla (pisałem o tym w poprzedniej wiadomości). Samo...
Kawałek biblioteki UART dotyczący tego uC: Kod: c Chyba moje możliwości są ograniczone żeby zamienić to tak aby to co mi wysłałeś działało tak jak ten fragment: [syntax=c]#if defined (__AVR_ATmega168__) #define UCSRB UCSR0B #define TXEN TXEN0 #define RXEN RXEN0 #define RXCIE RXCIE0 #define TXCIE TXCIE0 #define UDRE UDRE0 #define UBRR UBRR0 #define...
Witam. Robię sobie w domu taką malutką sieć pomiędzy paroma mikrokontrolerami ( ster akwarium, wł. światła, itp.) a komputerem. Jako interfejs wybrałem RS485 ( tani a RS mają wszystkie mikrokontrolery – tu AtMega 8). I utknąłem na protokole wymiany danych. Wiadomo że komputer będzie masterem, ale po szynie chciałem przesyłać krótkie informacje...
Kolego jakbyś zastosował kropki na końcu zdań i dokończył myśl: "program jednak przy próbie skomunikowania się z atmegą (odczytania rejestru o adresie 1000 lub 1001)..." to byś ułatwił nam zadanie. Na ten moment w całej Twojej wypowiedzi nie ma słowa o tym czy masz jakiś problem (jeśli tak to jaki) czy też po prostu chwalisz się tym co zrobiłeś.
Witam Mam mały problem. Muszę stworzyć komunikację pomiędzy uP, na razie tylko 2 później z 4-5, w standardzie 'ala' Modbus na wartwie fizycznej RS485. I teraz mam pytanie jak się do tego zabrać. Planuję na razie połączyć dwa uProcki bezpośrednio bez żadnych układów odpowiedzialnych za przekształcanie sygnałów na wartwę RS485, czyli bez układu SN75176....
Witam, Ostatnio uruchomiłem bibliotekę freemodbus na Atmega16 z wykorzystaniem interfejsu Rs232. Jednakże chciałbym teraz uruchomić komunikację z wykorzystaniem RS485 . w pliku port.h ustawiłem definicję [syntax=c]#define RTS_ENABLE TRUE[/syntax], zmieniłem też nazwę odpowiedniego wektora przerwań. Moje pytanie brzmi co jeszcze należało by w tej bibliotece...
Posiadam pewne urządzenie, do którego można podpiąć konwerter TTL-RS485 i za pomocą komputera odczytać rejestry 30000 oraz 30001. Kolega bez konwertera TTL-RS485 połączył się programem Qmodbus i odczytał te dane. Jak zabrać się do tego z Arduino? Czy transmisja serial dla Arduino będzie odpowiednia?? Serial1.print (v3,0x01)...
Witam Ani twoje pytanie ani odpowiedz kolegi Maly nie jest precyzyjna. OP7 występował w trzech odmianach PP, DP, DP-12 różniących się funkcjonalnością złącza IF1B. Każdy można podpiąć przez TTY nie każdy przez RS422 lub RS485. Druga sprawa to komunikacja. OP7 może współpracować ze sprzętem różnych dostawców, to kwestia drivera który załadujesz do OP7....
Witam Wykorzystałem do odbioru kod podany przez Kolegę Mirka [syntax=basic4gl] $regfile = "m168def.dat" $crystal = 10000000 'taktowanie procesora $hwstack = 32 ' rozmiar stosu sprzętowego $swstack = 10 ' rozmiar stosu $framesize = 40 ' rozmiar ramki $baud = 9600 ' predkość transmisji Config Debounce = 30 '********************* konfiguracja UART Config...
Witam, Szukam kodu programu w bascomie ktory realizowalby transmisje z wykorzystaniem modbusa. Chodzi o cykliczne przesylanie 4 bajtow danych z mikrokontrolera do PCta z wykorzystaniem modbusa. Jezeli Ktos realizowal taka transmisje z powodzeniem bardzo prosze o pomoc. pozdrawiam isiah
Linie komunikacyjne I2C (SCL, SDA) to interfejs, sposób komunikacji między układami to protokół. Jeśli chcesz fullduplex to interfejs RS422, ale raczej zbędny jest tu fullduplex, wystarczy interfejs RS485 (halfduplex), najlepiej izolowany i to tego komunikacja za pomocą protokołu Modbus. Możesz też użyć własny protokół, tylko po co wyważać otwarte...
Witam, Dzuibię sobie aplikację na STM32f103c8T6 ( koln niestety ) w Platformio używając bibliotek libopencm3. Użyłem tymczasowo implementacji modbus pana Paciorka : https://github.com/opcode-eu-org-libs/ST... Docelowo będzie freemodbus Do tego trochę innych modułów programowych. Urządzenie funkcjonuje poprawnie "prawie" raz na jakiś czas,...
Zwiększ wartość rezystorów z 150Ω na 300Ω i 200Ω na 1kΩ. Taka magistralka będzie pięknie hulać. Do takiej konfiguracja aż się prosi zaimplementować MODBUS'a :D
O ile mi wiadomo - Bascom potrafi jedynie zbudować i wysłać ramkę do urządzenia SLAVE. Bascom "potrafi" dużo więcej, tyle że nie w wersji Demo. Do licencjonowanej instalacji dołączony jest plik "RS485-MODBUS-slave"
Zobacz na tą notę aplikacyjną, tam są opisane metody zarządzania linią nadawania i odbioru. [url=www.st.com/resource/en/application_... W sytuacji wykorzystywania przerwania pustego bufora i tak trzeba odliczyć czas do przełączenia. Specyfikacja standardu wymaga, żeby przełączenie nastąpiło w połowie czasu wysyłki jednego bitu po...
Dzięki kolego victoriii, skoro Tobie się udało to ponownie powalczyłem, i miałem błąd w przerwaniu, teraz działa, natomiast czasy można ustawić korzystając ze wzoru , lub programu konfiguracyjnego do ktrego link podał kolega august_a parę postów wyżej. Kolejne pytanie, czy warto męczyć sprzętowe SPI do komunikacji z modułem?. Urządzenie, które wykonuję...
Witam wszytkich, Od kilku dni próbuję się nauczyć obsługi modbus rtu w bascomie i na podstawowym programie z helpa się wyłożyłem. Poradźcie dlaczego wpisując mój procesor w poniższy kod wywala mi błędy? Czy ta biblioteka jest tylko pod dany procesor? Proszę podpowiedzcie. https://obrazki.elektroda.pl/7527367800_... [syntax=vbnet]'-------------------------...
Jeżeli master nasłuchuje a slave'y nadają to jak wysłać do slave'a sygnał, który ma być reakcją na to co on nadał? To nie master nasłuchuje a slave'y. Master odpytuje po kolei wszystkie slave'y. Jeżeli któryś slave ma coś "do zrobienia" master dostaje odpowiedź od niego i odpowiednio reaguje. Jeżeli jeden slave będzie chciał coś "zrobić" w drugim slave...
Witam, biblioteka powinna być w tym programie zawarta (w zip) [url=https://www.elektroda.pl/rtvforum/v... Masz tam przykład odczyt/zapis modbus. Robiłem tam odczyt oraz zapis parametrów z/do sterownika PLC. Powinno zadziałać jak pamięci nie braknie :) Jeśli chodzi o rozgryzanie bibliotek, które podesłałeś to w tym...
Może nakierujemy kolegę na jakieś prostsze rozwiązanie, ramka na stałe, prostszy dużo mechanizm, bo nie wiem czy uciągnie full modbusa? Jak wiesz z własnego doświadczenia, jakoś działający Modbus to nie taki wielki problem, trudno zrobić go tak żeby działał w każdej sytuacji. Robiąc obsługę jednego konkretnego rozkazu, jest stała struktura ramki, więc...
Pojawił się kolejny etap i niestety wiele problemów. Próbuję komunikować się z licznikiem właśnie w Modbus RTU, ale licznik milczy. Używałam terminala do sprawdzenia komunikacji i okazuje się, że ramka wysyła się dobrze, ale tylko raz na x razy. A nawet po wysłaniu dobrej ramki jest cisza. Oto moja funkcja wywołująca wysłanie (send to funkcja z USARTa...
Dwa przekaźniki ze stykami przełącznymi do wolnych wyjść plc. Styki łączysz tak by tworzyły most H i po temacie. Jeśli brakuje wyjść można dołożyć moduł lub płytkę sygnałową. Jeśli już uparłeś sie na mikrokontroler to użyj modbusa RTU lub ASCII. Możesz też stworzyć własny protokół oparty na rs485 - płytka CB 1241 dopuszcza używanie własnego protokołu....
Witam Ja też mam zamiar zrobić sobie taką namiastkę "inteligentnego domu" na razie jestem w fazie budowy prototypu ( prosta komunikacja działa na dwóch modułach i komputerem) Sieć postawiłem właśnie na RS485, ale jako protokół chciałbym wykorzystać Modbus-a ( chyba najprostszy z arbitrażem) w związku z czym mam pytanie: Czy mogę gdzieś zdobić biblioteki...
Albo sobie implementujemy modbusa...
właśnie o to chodzi, że dla wygody chciałbym uniknąć PC-ta w ogóle. Wysyłać to po prostu na serwer http. Tam odpowiedni skrypt w php zapisywał by to do bazy i tyle. Ten moduł co podesłałeś - cena fajna, tylko pytanie czy on nie działa tylko z Modbusem? Dodano po 2 Grrrr, za dużo. Ja doświadczam z tymi: Ja myślałem o czymś takim [url=http://botland.com.pl/moduly-siecio...
Sorry, nie było tematu. ramka jest ok. Dodano po 1 Gdyby ktoś kiedyś potrzebował wykonać podgląd ramki UART, przykładowo między atmegą a płytką rs485 polecam użyć, konwerter USB TTL i program RealTerm. Konwerter kupiony na Allegro za 6 zł z układem PL2303. RealTerm darmowy i równie skuteczny co inne płatne programy. Jest tam zakładka Capture, ramki...
Proponuję nie wnikać aż tak bardzo w modbusa bo musiałbyś zrobić wtedy 2 rzeczy:zaimplementować w Twoim AVR protokuł np.Modbus RTU master a w sterowniku to slave lub kupić gotową bibliotekę.Obecnie kończę pisać na owy protokuł właśnie na ATMEGA1280 lecz zdecydowanie odradzam Ci walkę z tym tematem tylko zrób tak:na liście komend S7 są 2 komendy do odbioru...
(at)Markosik20 Dziękuję za zainteresowanie! :-D Nie zrozumieliśmy się. Nie chcę transmitować znaków w czasie rzeczywistym. Druga sprawa - w RS485 masz wiele nadajników, jeden master reszta slave - nie można sobie tak śmiecić na linii (po znaku), to nie buforowany RS232! Inna sprawa, że docelowo przesył będzie w trybie ASCII (później rozszerzę soft o...
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...
Problem nie jest z falownikiem. Właściwie w projekcie nie biorę go pod uwagę. Tu raczej nie chodzi o konkretny falownik, tylko o to jak rozwiązać problem jego sterownia PWMem ... Witam. Napisz z czym masz wreszcie problem? Jeśli nie z falownikiem to znaczy że znasz kilka możliwości ich sterowania!! Jednym z nim jest sterowanie napięciowe w standardzie...
Polecam specyfikacje Modbus do poczytania i książkę Pana Witkowskiego "Mikrokontrolery AVR programowanie w języku C - przykłady zastosowań", gdzie bardzo przystępnie pokazuje w C komunikację po RS485 z crc16 i detekcją błędów. Zakładasz w programie środowisko idealne, pomyśl co się zacznie dziać, gdy pojawią się zakłócenia... Tak jak mówił albertb nawet...
Właściwie to tak. Reszta to tylko odpowiedni konwerter ale port wyjściowy się nie zmienia. Ale czy mas jakąś propozycję sesnownego protokołu. Do tej pory korzystałem z modbusa RTU ale przy tej ilości danych to się nie sprawdzi.
Witam forumowiczów ... Piszę dość zaawansowany program na Atmege64, większość rzeczy wykonywane jest w przerwaniach programowych i jest wszystko OK. Komunikację zrobiłem na RS485 i działa dobrze (protokół MODBUS RTU) ale mam problem z wysłaniem danych: - jak wiadomo RS485 - więc na czas wysyłania muszę uruchomić nadajnik - wysyłam dane - po ostatnim...
Tak, ale MQTT zakłada obecność centralnego brokera. Jak broker umiera to wszystko przestaje działać. Ale w przypadku RS485 też można odpuścić sobie tworzenie własnych protokołów, jest przecież ModBUS i pewnie ze trzy inne się znajdą, co to już są zaimplementowane i dobrze działają. (Akurat RS-485 się średnio nadaje do budowania systemów rozproszonych...
Na sourceforge widziałem gotowe biblioteki modbus dla atmegi. [url=http://sourceforge.net/projects/avr... Sterowniki plc zazwyczaj mają rs485.RS485 mają zazwyczaj urządzenia mające komunikację modbus rtu lub ascii.Implementacja jest prostsza niż rs232 używasz sn75176(lub zamiennika) zamiast...
Slave już mam - otóż mój "sterownik" jest odpytywany przez scada - na 20 rejestrach wysyłam dane, które później są wizualizowane. Teraz czas na mastera - mój "sterownik" musi odpytać inny sterownik na konkretnych rejestrach po RS485 Mówisz, że gdybym miał jakiś problemik to mogę do Ciebie napisać? :)
[syntax=c]/* * FreeModbus Libary: AVR Port * Copyright (C) 2006 Christian Walter <wolti(at)sil.at> * - Initial version + ATmega168 support * Modfications Copyright (C) 2006 Tran Minh Hoang: * - ATmega8, ATmega16, ATmega32 support * - RS485 support for DS75176 * * This library is free software; you can redistribute it and/or * modify it under the...
Jeżeli chodzi o pierwszy warning w tej bibliotece dotyczy SIG_USART_TRANS w sekcji __AVR_ATmega169__ [syntax=c] /* * FreeModbus Libary: AVR Port * Copyright (C) 2006 Christian Walter <wolti(at)sil.at> * - Initial version + ATmega168 support * Modfications Copyright (C) 2006 Tran Minh Hoang: * - ATmega8, ATmega16, ATmega32 support * - RS485 support...
Procek to Atmega32. Tylko ja nie potrzebuję całej obszernej biblioteki - potrzebuję tylko informacji co mam wysłać do falownika, aby otrzymać prędkość silnika i to wszystko. Myślę że to będzie coś takiego - wysyłam "aabbccdd crlf" i otrzymuję "xxxx crlf" gdzie xxxx to prędkość obrotowa lub chociaż coś podobnego. Może ktoś już ten temat przerabiał i...
Format wysyłanych rozkazów: prefix - # nr urządzenia - dwie cyfry z zakresu 01~99 zadany stan - 0 (wyłącz) lub 1 (włącz) Dlaczego nie stosujesz sumy kontrolnej? I dlaczego nie potwierdzasz odebrania/wykonania rozkazu? Sporo działam z RS485 i wiem, że zdarzają się uszkodzone ramki. Kombinowałem z ekranowaniem, wstępną polaryzacją linii itp. ale nigdy...
bolek: Nie do końca rozumie, jeżeli dane mają przychodzic od tych samycj uC do ktorych wysyłasz to zastosuj któryś z protokołów Master/Slave (np. ModBus), tylko że wtedy RS232 raczej odpada (wskazane RS485 lub 422).
Dziś dostałem odpowiedź z firmy wraz z załączoną dokumentacją. Niestety nie jest to Modbus RTU. Sterownik korzysta z własnego protokołu o nazwie Compit C3. Ramka z zapytaniem lub odpowiedzią składa się z 11bajtów. Mam znaczenie poszczególnych bajtów w ramce więc postaram się napisać własny program na atmega32. Doradzono mi program do wizualizacji procesów...
Ale wszystko razem może pracować na jednej magistrali RS485. Dla ułatwienia trzebaby tylko ustalić który moduł w sieci jest masterem i kieruje ruchem na magistrali. Takie rozwiązanie pozwala w przyszłości dopinać następnych uzytkowników sieci (np: jakieś czujniki). Nie pamiętam dokładnie ale na jednej magistrali może pracować kilkadziesiąt urządzeń....
Przy RS485 masy układów zawsze muszą być połączone, ze względu na dozwolone napięcie wspólne dla transceivera TMF - wszystko zależy tutaj od konstrukcji zasilaczy naszych urządzeń. Jeżeli układy zasilane są z zasilaczy transformatorowych to połączenie może być ale nie musi. W przypadku zasilania urządzeń z wbudowanego zasilacza impulsowego wielokrotnie...
rs485 modbus modbus rs485 atmega modbus
czujnik wilgotno cewka wyjściu głośnika budowa urządzenie automat
bateria niteo switch zarządzalny
Jak uszczelnić okno plastikowe przy parapecie? Najlepsza nawigacja: Google Maps, Waze, TomTom?