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



Teraz jest 1 gru 2024, o 23:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 112 ]  Przejdź na stronę 1, 2, 3, 4  Następna strona
Autor Wiadomość
PostNapisane: 10 wrz 2012, o 21:24 

Pomógł: 0

Witam, czy ktoś z szanownych kolegów ma jakieś doświadczenie w uruchamianiu modbus na avr?.

aktualnie jestem na etapie zbierania informacji z stron http://freemodbus.berlios.de/ itp.
Interesują mnie wszelkie materiały, źródła informacji.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2012, o 21:30 
Offline
Moderator
Avatar użytkownika

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

Ja odpalałem i to dokładnie na biblitekach z berlios. A był to Modbus RTU (czyli transmisja binarna).

Ale jakbym miał teraz coś szczegółowo powiedzieć to chyba bym musiał sobie jakieś pranie mózgu zrobić ;) ...

nie mniej jednak jak coś to pytaj a nóż mi się coś odświeży. Dla mnie najgorsze było zaskoczenie o co chodzi w samej idei komunikacji Modbusa ;) te jakieś tam rejestry cyfrowe, analogowe .... jakaś masakra powiedziałbym ;) no ale działało jak już się zrobiło to działało i to w dwie strony.

_________________
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: 10 wrz 2012, o 21:38 

Pomógł: 0

Z jakichś konkretnych materiałów korzystałeś, czy tylko helpy na stronie http://freemodbus.berlios.de/ ??
Przyznaje się, że jak na razie czuję się jak ślepiec w ciemności z zawiązanymi oczami ;).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2012, o 22:03 
Offline
Moderator
Avatar użytkownika

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

Niestety nie miałem żadnych konkretnych materiałów a trzeba było na tzw koci gwałt komuś zrobić coś na szybko, (tak na prawdę chodziło o odbiornik RC5 i Sony w podczerwieni, który miał być podłączony do jakiejś sieci sterowników przemysłowych PLC ;) dla mnie to był totalny hardcore ...

grzebałem po całym necie jak wariat, szukając strzępów informacji to tu to tam o co chodzi w tym modbusie - a ponieważ to był tylko epizod to ślad mi w głowie nie za bardzo pozostał. Żebym tak znalazł jeszcze te kody źródłowe które wtedy pisałem to może byłoby łatwiej ... hmmm poszperam. W domciu nigdzie nie widzę - zobaczę jeszcze jutro w firmie.

_________________
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: 10 wrz 2012, o 22:36 

Pomógł: 0

Dzięki wielkie mistrzu :).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2012, o 23:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

Tutaj jest wszystko rozpisane, a szukając informacji pewnie już tu trafiłeś ;)
Jedynie nie ma tam żadnych bibliotek natomiast jest pełna specyfikacja dla modbus, która może się przydać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2012, o 07:19 

Pomógł: 0

Będę musiał przysiąść jak Mirek do tych z berlios. Mam podobny problem bo marudzi mi strasznie mój kumpel bym mu coś takiego zrobił, a modbus może się przydać, dlatego chcę się zająć tematem.

Chwilowo czekam na zgodę zarządu na kupno 2xATB+dodatki :D:D:D.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2012, o 10:26 
Offline
Moderator
Avatar użytkownika

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

rezasurmar --> hmm szukam dzisiaj w firmie, szukam ale też tych źródeł nie mogę znaleźć ... za to znalazłem program na PC, bez którego bym sobie za choinkę nie poradził. Jest świetny i darmowy do pełnego testowania Modbusa. Więc proszę bardzo. Absolutnie wszystkie testy najpierw na nim robiłem a jak już w nim wszystko było OK to później komunikacja na procku ze sterownikami PLC też śmigała aż miło.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
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: 11 wrz 2012, o 12:41 

Pomógł: 0

Dziękuje pięknie, przeglądałem wczoraj biblioteki pod AVRa, sporo tego, może uda mi się to jakość ugryźć.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2014, o 10:52 
Offline
Użytkownik

Dołączył(a): 12 paź 2012
Posty: 207
Lokalizacja: Rzeszów
Pomógł: 16

Rez i jak udało Ci się uruchomić te lib? Bo ja się do tego przymierzam, właśnie jestem w trakcie analizowania tych bibliotek i przykładu.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2014, o 10:56 

Pomógł: 0

Niestety nie, gdyż temat jako tako umarł, a niestety bez motywacji "finansowej" nie potrafię wytrząść z siebie ostatnio nawet iskierki weny.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2014, o 22:46 
Offline
Użytkownik

Dołączył(a): 12 paź 2012
Posty: 207
Lokalizacja: Rzeszów
Pomógł: 16

Ja właśnie puki co mam takową motywację więc będę walczył i jak coś ogarnę to zdam relację :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2014, o 18:25 
Offline
Użytkownik

Dołączył(a): 12 paź 2012
Posty: 207
Lokalizacja: Rzeszów
Pomógł: 16

Dziś w pracy posiedziałem trochę nad tematem i udało się uruchomić tryb slave na M32 zaś jako master działa laptop z odpalonym ModScan'em. Przy okazji wszytko było podsłuchiwane analizatorem. Śmiga pięknie. Teraz będę walczył z masterem (by atmega była master). Jak to uruchomię to przedstawię poradnik jak to ogarnąć :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2014, o 09:08 
Offline
Użytkownik

Dołączył(a): 12 paź 2012
Posty: 207
Lokalizacja: Rzeszów
Pomógł: 16

Przekopałem lib i albo ja czegoś nie rozumiem albo jej nie da się uruchomić w trybie Master. Zna ktoś inną bibliotekę MODBUS'ową którą można uruchomić w trybie master?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 mar 2014, o 16:15 
Offline
Użytkownik

Dołączył(a): 25 lis 2013
Posty: 28
Pomógł: 0

A może tutaj coś znajdziesz http://www.mikroe.com/download/eng/docu ... aster_init :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 mar 2014, o 19:30 
Offline
Użytkownik

Dołączył(a): 12 paź 2012
Posty: 207
Lokalizacja: Rzeszów
Pomógł: 16

Dzięki za informację, jednak to jedynie czysty RS-485 z obsługą dwukierunkowej komunikacji i z CRC, do ModBusa jeszcze kawałek :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 mar 2014, o 10:23 
Offline
Użytkownik

Dołączył(a): 25 lis 2013
Posty: 28
Pomógł: 0

Lukasz89 i jak tam testy ? Nie mogę się doczekać poradnika modbus :) Chciałbym popełnić sobie układzik na mega8 sterowany RC5, który byłby odpytywany przez PLC... Taki PLC na pilota :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2014, o 13:12 
Offline
Nowy

Dołączył(a): 26 mar 2012
Posty: 7
Pomógł: 0

Witam! Od kilku dni bezskutecznie próbuję uruchomić demo FreeModbus i zastanawiam się, czy któryś z kolegów mógłby mi pomóc. Program się kompiluje, wrzucam na mikrokontroler i do tego momentu jest wszystko dobrze. Problem pojawia się przy próbie odpytania układu - albo Timeout albo błąd CRC. Wiem, że trzeba odpytywać rejestry wejściowe (04 -Read Input Registers). Konwerter RS485 jest na pewno dobry, bo sprawdzałem na innych urządzeniach i odpytuje poprawnie. Próbowałem na Atmedze 8 i 32 z wewnętrznym taktowaniem, z kwarcem 8MHz, 11.059MHz i 16MHz - efekt ten sam. Wymieniałem scalak MAX485 (próbowałem też ST485), ale efekt wciąż ten sam. Rezystor 120Ohm pomiędzy zaciskami A i B też nic nie zmienia :( W standardowym programie zmieniłem tylko prędkość transmisji na 9600 i parzystość na "NONE".

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Poniżej zamieszczam schemat połączeń

Obrazek

Oraz screen z programu:

Obrazek

Cały temat już naprawdę mocno mnie zdemotywował, ale niestety będę musiał to ruszyć dlatego za jakąkolwiek sugestię/pomoc będę bardzo wdzięczny.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2014, o 18:27 
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

Kod jest dobry. Konfiguracja programu też dobra. Błąd jest w schemacie. Masz zamienione RxD i TxD. W pliku port.h upewnij się, że masz #define RTS_ENABLE. Możesz testować na RS232/USART a nawet na module bluetooth np. ATB-BTM222-2.0. Właściwie to powinieneś zacząć od uruchomienia jakiejkolwiek komunikacji na tym sprzęcie, a potem brać się za FreeModbus.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 maja 2014, o 14:40 
Offline
Nowy

Dołączył(a): 26 mar 2012
Posty: 7
Pomógł: 0

Krauser - Wielkie dzięki za pomoc!!! Działa :D Brakowało #define RTS_ENABLE. Druga sprawa to uruchamianie układu na płytce stykowej. Układ zaczął działać dobrze dopiero jak zlutowałem wszystko na PCB. Styki nie wszędzie chyba miały dobre przejście. W każdym razie teraz jest OK :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lip 2014, o 14:25 
Offline
Nowy

Dołączył(a): 26 mar 2012
Posty: 7
Pomógł: 0

Witam ponownie! Podczas dalszych testów z modbusem pojawił się nowy problem - może któryś z Kolegów się z czymś takim spotkał. Z każdym odpytaniem urządzenia poprzez modbus mikrokontroler się resetuje. Odpowiedź mikrokontrolera jest prawidłowa (prawidłowo przesyła dane do mastera), jednak po każdym odpytaniu następuje reset Atmegi. Jeżeli macie jakieś pomysły to będę wdzięczny za każdą podpowiedź.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lip 2014, o 15:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 maja 2013
Posty: 174
Lokalizacja: Kraków
Pomógł: 8

Jazz napisał(a):
Witam ponownie! Podczas dalszych testów z modbusem pojawił się nowy problem - może któryś z Kolegów się z czymś takim spotkał. Z każdym odpytaniem urządzenia poprzez modbus mikrokontroler się resetuje. Odpowiedź mikrokontrolera jest prawidłowa (prawidłowo przesyła dane do mastera), jednak po każdym odpytaniu następuje reset Atmegi. Jeżeli macie jakieś pomysły to będę wdzięczny za każdą podpowiedź.


Kiedyś testowałem freemodbus-a, z panelem dotykowym Weintek-a i bez żadnych przeróbek programowych działał mi ze sterownikiem SU 1.2 zarówno na RS-232 jak i RS-485.
Jedyna uwaga to taka że ten freemodbus jest dla urządzenia typu slave.
Sterownik SU 1.2 jest wyposażony w RS-485, w którym nie trzeba przełączać się pomiędzy trybami nadawania i odbierania. Wykonywane jest to automatycznie.

_________________
Rozwój i utrzymywanie Oprogramowania



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lip 2014, o 16:02 
Offline
Nowy

Dołączył(a): 26 mar 2012
Posty: 7
Pomógł: 0

Tutaj urządzenie działa jako slave. Właściwie sam Modbus działa bez zastrzeżeń, ale odpytanie skutkuje resetem. Dorzucam fragment kodu, który stworzyłem do testów. Sygnał pojawia się na ustawianym pinie po każdym odpytaniu więc wnioskuje, że atmega się resetuje.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lip 2014, o 21:01 
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

Błąd mógł się pojawić przy portowaniu kodu. Zajrzyj do plików port.h i portserial.c. Zwykle to błędna nazwa przerwania powoduje reset.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 11:02 
Offline
Nowy

Dołączył(a): 26 mar 2012
Posty: 7
Pomógł: 0

Krauser... jeszcze raz wielkie, wielkie dzięki! Błąd tkwił w pliku portserial.c i rzeczywiście była to błędna nazwa przerwania. Standardowo przerwanie wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Dla atmegi 644P przerwanie wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2014, o 08:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 820
Lokalizacja: Tam gdzie PYRY są
Pomógł: 64

Witam, odkopię troche wyczerpany temat, ale ten mi najbardziej pasuje.
Piszecie o implementacji FreeModbus, z powodzeniem zresztą. Skąd macie biblioteki do tego?? Przeszukałem sporo stron, nigdzie nie ma. Ani Na freemodbus.org, nie ma też na berlios.de gdzie przenosi link. Może macie i się podzielicie?? Nie chcę żadnego gotowca typu działający projekt? Chciałbym się sprobować sam zmierzyć z tematem

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2014, o 16:28 
Offline
Nowy

Dołączył(a): 26 mar 2012
Posty: 7
Pomógł: 0

Rzeczywiście widzę, że jest problem z pobraniem biblioteki. Wrzucam ostatnią wersję z jakiej korzystałem.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sie 2014, o 08:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 820
Lokalizacja: Tam gdzie PYRY są
Pomógł: 64

jesteś wielki, dziękuję - będę w domu to ją pobiorę i zobaczę co tam mamy ;]

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2014, o 18:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 820
Lokalizacja: Tam gdzie PYRY są
Pomógł: 64

Mega to pokręcone wszystko.
Po trzech dniach siedzenia przed komputerem od rana do wieczora w końcu ATmega moja odpowiedziała na zapytanie wysłane przez mastera. Mam takie pytanie może zaoszczędzicie mi kilku kolejnych dni na dochodzenie.
ModBus operuje na rejestrach (register) i cewkach (coil). Domyślam się, że AVR operuje na normalnych zmiennych, które odpowiednio podstawia jako rejestry. Niestety przeglądając te biblioteki FreeModbus nie doszukałem się gdzie one są definiowane. Chciałbym ich użyć aby wpływać na odpowiedzi slave'a ale nie bardzo widze gdzie.
Druga sprawa to to, że slave odpowiada na zapytanie tylko o input registers [funkcja 4] rejestr 1000 - 1004 i nic więcej.
Pozatym wartość tego rejestru podawana jest za każdym razem inna.

Sorry za pewnie banalne pytania ale zaczynam dopiero z C i do jeszcze niedawna składnia C była dla mnie zrozumiała jak chiński alfabet.

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2014, o 20:33 
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

skalarro napisał(a):
Chciałbym ich użyć aby wpływać na odpowiedzi slave'a ale nie bardzo widze gdzie.
Druga sprawa to to, że slave odpowiada na zapytanie tylko o input registers [funkcja 4] rejestr 1000 - 1004 i nic więcej.
Pozatym wartość tego rejestru podawana jest za każdym razem inna.

Wszytko jest w pliku demo.c. Zaimplementowana jest tylko obsługa input registers (funkcja eMBRegInputCB), a odpowiedź jest podawana w tej linijce:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

dlatego jest losowa.
Ustaw to sobie tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Oczywiście możesz tam podstawić wartość innej zmiennej uint16_t lub mniejszej.

Jeśli chcesz wysłać coś do mikrokontrolera to należy rozwinąć funkcję eMBRegHoldingCB jak podano w innym przykładzie na stronie http://www.freemodbus.org. Jest to rejestr do odczytu i zapisu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Na początku oczywiście należy utworzyć tablicę podobnie jak dla input registers. W przykładzie poniżej są obie tablice:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



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: 112 ]  Przejdź na stronę 1, 2, 3, 4  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO