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



Teraz jest 29 mar 2024, o 14:15


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
 Tytuł: PLC modbus AVR
PostNapisane: 25 wrz 2019, o 16:43 
Offline
Nowy

Dołączył(a): 23 lip 2019
Posty: 19
Pomógł: 0

Witam.
Czytając wątek na forum o freemodbus mam kilka pytań.
1. usRegInputBuf -> to rejestr wejściowy czyli możemy wpisywać stany wejść czy też wyjsc ?
2. A jakby miało wyglądać jak bym chciał wysłać z PLC żeby dane wyjscie załączyło?
3. I jak by wyglądało z ADC? Wpisujemy do usRegInputBuf czy do innego rejestru?

Przepraszam że tak pytam. Może ktoś wyjaśni mi to.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2019, o 14:39 
Offline
Użytkownik
Avatar użytkownika

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

witam,
Zacząć należy, że modbus używa dwóch grup rejestrów, tzw input register i holding register.
Z założenia input register używane są przez samo urzędzenie a my możemy z nich odczytać dane - np. temperatura z czyjnika, zapisana tam przez samo urządzenie, Pomiar ADC, nr wersju oprogramowania itp.
Na holding regs użytkownik może sam operować odczytując je i zapisując praktycznie dowolnie. wszystkie rejestry są 16-to bitowe.

ad1.
z usRegInputBuf możemy odczytywać stan wejść przy pomocy mastera, pod warunkiem, że zapiszemy je tam gdzieś w programie.
Zapis nowego stanu wejść należy już wykonać zmieniając wartość holding registers. I tu jóż twoja sprawa zczy użyjesz jednego rejestru dla wszystkich wejść/wyjść (np każdy bit to jedno wyjście) czy każde wejście to kolejny rejestr. Wszystko zależy od Ciebie.

ad2.
Wszystko zależy od Ciebie. Ja zrobiłbym tak: Wybieram sobie np rejestr 1 kjako stan wyjścia 1. Z mastera przypisuję do adresu 41001 wartość 1, co oznacza wyjście ustawione. W programie slave w pollingu odczytuję wartość zmiennej w usRegHoldingBuf[1] i odpowiednio ustawiam wyjście procka.. That's it!

ad3.
Co chcesz z tym ADC zrobić? nic nie woisujesz do rejestru. Z założenia ADC tylko się odczytuje. W kodzie programu slave'a obsługujesz ADC i wpisujesz wartość do np usRegInputBuf[1]=ADC a masterem odczytujesz dane spod rejestru 31001 (oczywiście zależnie od zadeklarowanego input start address)

Jak coś jeszcze niejasne to pisz


Autor postu otrzymał pochwałę

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2019, o 10:45 
Offline
Nowy

Dołączył(a): 23 lip 2019
Posty: 19
Pomógł: 0

Dziękuje za odpowiedz.
Czyli ustawiam w TIA blok który wpisuje do np 4002 rejestru i ten rejest w AVR zapisuje jako usRegHoldingBuf[2] = wyjscie1;??
Jako ADC wpisuje np wartosć do rejestru input register?
Ten skrypt sam liczy CRC ?

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2019, o 20:04 
Offline
Użytkownik
Avatar użytkownika

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

Wiesz co?
Nie wiem o co pytasz tym razem. Na prawdę. Co to TIA?

Zakładam, że używasz jakiegoś PLC jako mastera a slave to avr jakiś.

Zapisujesz w tabeli obsługi modbusa w PLC(czy jak to się tam robi w Twoim PLC) jakąś wartość konkretną pod wybrany adres wybierając odpiwiednią funkcję. Dane trafiają do tablicy usRegHoldingBuf[x].

W avr odczytujesz dane z tej tablicy lub zapisujesz zależnie co chcesz robić.

ForestP napisał(a):
Ten skrypt sam liczy CRC ?

Skrypt?? Jeżeli masz na myśli bibliotekę freemodbus na avr to tak. Liczy sama CRC i ma obsługę błędów.

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2019, o 20:16 
Offline
Nowy

Dołączył(a): 06 lip 2019
Posty: 8
Lokalizacja: Szczecin
Pomógł: 0

TIA portal to pewnie chodzi o Siemens gdzie występuje Profibus.



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