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



Teraz jest 22 sie 2017, o 10:31


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 11 maja 2017, o 20:44 
Offline
Nowy

Dołączył(a): 09 gru 2016
Posty: 19
Pomógł: 2

Od jakiegoś czasu próbuję się skomunikować przez rs485 protokołem modbus z moim falownikiem Winner v63. Atmega ma pracować jako master, falownik jako slave. W instrukcji (w załaczniku od str. 182) jest szczegółowo opisany sposób takiej komunikacji, co kiedy wysyłać, format ramki, itp.
Przedstawiam schemat połączenie atmegi przez MAX485 z falownikiem. Pin 6 i 7 podpinam do falownika, tylko pytanie jak podpiąć bo na falowniku od rs-a są oznaczenia + i -. Próbowałem i tak i tak i nie ma komunikacji.
Obrazek
W falowniku dokonałem ustawień w grupie PE: (instrukcja str. 176-177)
PE.00: 22
PE.01: 1
PE.02: 0
PE:03: 500

Używam biblioteki UART z Bluebooka. Zmodyfikowałem tylko prędkość na 4800 i funkcję inicjalizującą, tak żeby ramka była z bitem parzystości zgodnie z ustawieniami w falowniku:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

Najpierw wysyłam dane zgodnie z przykładem w instrukcji, następnie w pętli głównej wyświetlam sobie odbierane dane.

To nie jest jeszcze modbus (brakuje m.in. obliczania Checksum) Ale czy nie powinno to mi na tym etapie działać?
Dane które wysyłam są przykładowymi danymi które mogę wysłać z instrukcji obsługi z obliczoną już checksumą, na którą falownik powinien odpowiedzieć, jest nawet przykładowa ramka odpowiedzi na to zapytanie.

Po wysłaniu danych z atmegi odbieram je z powrotem, tak jak by linie tx i rx były zwarte. Po podpięciu tylko jednego przewodu biegnącego do falownika pojawiają się śmieci w danych odebranych(przez przypadek zauważyłem, ale to chyba normalne bo zrobiła się antenka z jednego przewodu).

Mam wątpliwości co do sposobu wysyłania danych. Czy nie będzie zbyt dużych przerw podczas wysyłania kolejnych porcji danych? Czy przed wysłaniem i po będzie wystarczający czas przerwy miedzy ramkami modbus, jeśli nic nie wysyłam na UART oprócz tego co pokazałem wyżej?

Może jednak popełniłem znacznie poważniejszy błąd i to nie ma kategorycznie prawa działać?
Wiem, że dużo wymagam, ale może komuś się będzie jednak chciało naprowadzić mnie gdzie robię błąd.


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: 12 maja 2017, o 10:21 
Offline
Nowy

Dołączył(a): 09 gru 2016
Posty: 19
Pomógł: 2

Komunikacja z falownikiem nawiązana. Otrzymałem od falownika ramkę. Powodem braku komunikacji było moje niedopatrzenie. Ustawiłem ramkę w falowniku na nieparzysty bit, a wysyłałem bit parzysty(straciłem przez to kilka godzin niestety). Tylko dalej nie wiem dla czego najpierw wraca mi ramka wysłana, a dopiero później otrzymuję ramkę odpowiedzi. Problem na pewno nie leży w falowniku tylko w max485 lub programie w atmedze, ale nie mam pojęcia gdzie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 maja 2017, o 15:52 
Online
Użytkownik

Dołączył(a): 13 sty 2016
Posty: 86
Pomógł: 2

kamilck13 napisał(a):
Tylko dalej nie wiem dla czego najpierw wraca mi ramka wysłana, a dopiero później otrzymuję ramkę odpowiedzi. Problem na pewno nie leży w falowniku tylko w max485 lub programie w atmedze, ale nie mam pojęcia gdzie.

Nie czytałem tej instrukcji wprawdzie, ale czy nie masz włączonej w falowniku jakiejś opcji echo?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 maja 2017, o 21:17 
Offline
Nowy

Dołączył(a): 09 gru 2016
Posty: 19
Pomógł: 2

Nie, to na pewno nie falownik, bo echo jest nawet bez podłączonego falownika na samej atmedze+max485. Poradziłem sobie tak jak gdzieś na naszym forum znalazłem i podłączyłem do pinu 6 Max-a 5V przez rezystor 1k, a do pinu 7 GND też przez rezystor.

Teraz przede mną ostatnie zadanie. Rozebrać ramkę modbus i obsłużyć otrzymane dane, bo na oko to ja widzę co przyszło ale przydało by się programowo zobaczyć kiedy się ramka zaczęła, kiedy skończyła, czy crc się zgadza i co to za dane.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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