1. Zmienio Biosa na nowszy. Stanowczo za stary. Najnowszy jest 6.4 - na ksa masz wszystkie. Jeśli nie masz dostepu do Biosu na ksa tzn masz niski poziom uprawnien. 2. ". W "drzewie programu" mamy coś takiego jak "Modbus Line". Czy to musi być konfigurowane? " --> Nie musi. To jest taki łatwiejszy konfigurator dla portów. Wybierasz port np BMS1 i konfigurujesz...
Czyli adres procesora w trybie i2c-slave wpisuję do rejestru TWAR? Adres i2C - procesor nie ma adresu. Działając jako slave staje się urzadzeniem i2c.
W bloku COM Rung 17 jest wypełnianie struktury do użycia COMM_REQ. Odczytuje ze slave 69 rejestrów %R od adresu 7000 i w master przepisuje od adresu 101 (instrukcja GFK-0582 funkcja Read System Memory: 07202 (16#1C22)).
Jesli chcesz wykorzystac sprzetowe I2C (TWI) w ATmega8 to wszystko ustawiasz za pomoca odpowiednich rejestrow. Jesli ATmega bedzie pracowala w jako SLAVE to za pomoca odpowiedniego rejestru ustawiasz jej adres. Poczytaj w doumentacji od uC.
Jeżeli SAIA jest tylko SLAVE to nie używasz bloczków RCV. W SAI wstawiasz tylko MBus-Slv i nic więcej. Za pomocą InTouch nadpisujesz rejestry w SAIA. Nie znam InTouch i nie wiem jak się tam robi zapis do urządzeń Slave. Bloczki RCV wykorzystywane są dopiero jak SAIA jest Masterem sieci i to saia ciągnie dane z urządzeń SLAVE i wpisuje np do swoich rejestrów.
To dlaczego rozmiar bufora 512 bajtów miałby nie wystarczyć? Po zarezerwowaniu wypełnił bufor jakąś wartością, później w czasie pracy podejrzyj co się w nim dzieje.
W zasadzie freemodbus to implementacja dla urządzeń slave. Ale master może wpisywać dane do Slava .. po prostu ustawia rejestry w urządzeniu Slave. Poszukaj rozpiski - dotyczącej Modbusa - poczytaj zrozumiesz o co chodzi.
nigdy nie pisz dziesietnie wartosci w takich przypadkach bo to jest nieczytelne 0x48 oznacza ze slave odmówił transmisji - albo zle ustawiłeś rejestry w nim albo masz bład adresu slave. Ile masz na raz podłaczonych urzadzeń?
CSEL = 0 master CSEL = 1 slave Na kablu jest to tak zrobione, że masa dochodzi tylko do 1 złącza. To się tyczy tylko konfiguracji master/slave Potem musisz do rejestrze Device Select ustawić bit w zalezności od tego które urządzenie ma reagować na komendy
Pamiętaj, że rejestry SPI, w zależności czy to jest M/S, czy realizujesz przez USART, mają bufory. Jeśli więc coś nadajesz, a nie odczytasz SPDR, to ta wartość i tak tam jest, zostanie odczytana przy kolejnej okazji. Stąd możesz mieć opisane problemy z odczytem jakiś wcześniej przesłanych bajtów. Stąd też najlepiej albo jednocześnie zapisywać i odpisywać...
Opis na PW. Zakładka: Konfiguracja->Połączenia A,B i C -> Tryb Modbus Master -odczyt urządzeń. Modbus Slave -rejestry wew.
W rozkaznie 0x10 podajesz adres poczatkowego zapisu rejstru (hi ,lo) potem ilosc zapisanych rejstrow (hi,lo) a nastepnie leca juz dane do "zapisu" rejestrow. Slave inkrementuje adres dla kazdej kolejnej danej. Wyglada to tak : Adres slave , adres rejestru hi , adres rejestru lo , lisoc rejestrow ustawianych hi , ilosc ustawianych rejestrow lo , dana...
A samo Buf też jest volatile? W TWDR mastera masz adres slave, bo po prostu master nic nie odebrał. Jesteś pewien, że slawe wchodzi w tryb slave transmit (ST) wielobajtowy? Masz sprzętowy debugger? Jakie są stany rejestru stanu na masterze i slave po kolejnych bajtach? Czysty kod przykładu, bez żadnych modyfikacji działa?
Zapewne Master (HMI) musi wziąć tutaj udział, bo slave raczej nie odezwie się niepytany. Jedyne sposoby jakie przychodzą mi do głowy to: a) sterownik PLC musi być masterem (ale to raczej odpada, bo panel wtedy będzie miał ograniczone pole działania) b) na panelu musi wykonać się skrypt/kod który zrealizuje zmiany. Chyba jedyną możliwością jest zaangażowanie...
W module RCC masz rejestry odpowiedzialne za reset peryferiów (RCC_APBxRSTR)
Witam Piszę z zapytaniem czy Fatek potrafi odczytać i zapisywać wartości rejestrów urządzenia slave poprzez protokół modbus tcp? Z góry dzięki za odpowiedź pozdrawiam
Witam, Chciałbym pobierać dane po protokole Modbus RTU z wybranych rejestrów urządzenia slave do bramki TRB 245(master). Na urządzeniu slave z rejestru 16bit(integer) chcę śledzić stan np. 7 bitu i wysyłać powiadomienie SMS w przypadku zmiany wartości z 0 na 1. Utknąłem w konfiguracji alarmu dla sms, ponieważ nie wiem co wpisać w pozycji „value”, tak...
Wpisz w googlach tiny rtc i2c znajdziesz schemat modułu :) Krótko o I2C: ramki są 8 bitowe, chcąc zapisać cokolwiek do slavea trzeba w pierwszej ramce wysłać jego adres i następnie adres pamięci / rejestru do którego bedzie zapis, po czym wysyła się daną lub dane. Jeśli chodzi o odczyt ze slavea trzeba wysłać w pierwszej ramce jego adres i nastepnie...
bj86 czy Ty chcesz odczytywać zawartość rejestrów sterownika XLe z wykorzystaniem protokołu Modbus? Jeśli tak to z poziomu komputera potrzebujesz Modbus MASTER a SLAVE jest urządzenie, z którego chcesz czytać dane (w tym wypadku XLe). W programie do XLe z poziomu CScape definiujesz komunikację przy pomocy odpowiedniego wywołania bloku (Modbus Slave...
Tak musisz kupić moduł em277 (dla s7-200 jest tylko slave)
Wpisać musisz do rejestru w Slave PRZED wykonaniem instrukcji przez Mastera. Po prostu Master wykonujac instrukcje na przykład SPIOUT wysyła osiem taktów zegara na magistrale i jednoczesnie wysyła osiem bitów ze swojego rejestru SPDR. Te osiem bitów z jego rejestru trafia do rejestru SPDR w Slave a w tym samym czasie osiem bitów z rejestru SPDR ze Slave...
Zapis do rejestru: MASTER. - ustaw linię NSS(SS) w stan niski - (1-bajt) Wyślij adres rejestru. z najstarszy bitem=1. - (2-bajt) wartość rejestru. - moduł zapisuje wartość w rejestrze. SLAVE.(moduł) - Moduł wysyła wartość rejestru MASTER - Master kończy transmisję ustawiając NSS(SS) w stan wysoki. Odczyt. MASTER - ustaw linię NSS(SS) w stan niski -...
Standardowo to urządzenie obsługujące protokół MODBUS może być MASTERem lub SLAVEm. Ten, który pyta inne urządzenie o wartości w zasobach jest MASTEREM, ten który odpowiada to SLAVE. Z punktu widzenia wizualizacji (programu nadrzędnego dla systemu sterowania ze sterownikiem PLC obsługującym MODBUS) to sterownik jest SLAVE natomiast program do komunikacji/wizualizacja...
Wpisz na allegro "siłownik zamka centralnego" wystarczy typu slave - z dwoma przewodami Jak widzisz cena śmieszna, podłączasz napięcie w jednej polaryzacji siłownik wsuwa ramie, które opuszcza tablice na zasadzie prostej dźwigni, podłączasz zasilanie odwrotnie - wysuwa ramie i unosi tablice - żadnej większej elektroniki nawet nie ma tylko zwykły przełącznik...
Może faktycznie z przyzwyczajenia tego jak go ustawiam napisałem "MUSI", ale nie widzę tu w ogóle sensu w sformułowaniu (at)dodndu, że pozostawienie go jako wejście z wewnętrznym podciąganiem to wersja preferowana. Jeśli nie planujesz tego że raz będziesz Masterem a raz Slave i sam będziesz musiał pilnować na rejestrach czy nadal jesteś Master przed...
Witam, Czy może mi ktoś wytłumaczyć w jaki sposób ustawić komunikację Modbus-RTU Easy Master na sterowniku Omron CP1L? Przykładowo chcę zapisać coś pod adresem 0 w slave 1, czyli funkcja 0x06 w modbus. W dokumentacji sterownika są opisane adresy parametrów dla tej komunikacji. I tak dla portu nr 2 mamy: - D32300 - adres slave czyli wpisuję 1 - D32301...
Witam Zapytaj w http://www.elmark.com.pl/ ci goście robią u nas we firmie szkolenia z Control logix 5000
Z reguły sekwencja jest taka: ->START, ->ADRES (wyzerowany bit 0), <-ACK, REJESTR, <-ACK, -> RSTART, -> ADRES (ustawiony bit 0), <-ACK, <- DANE, -> ACK, <- DANE, -> ACK, ...... <- DANE, -> NACK, STOP -> MASTER do SLAVE <- SLAVE do MASTER Zamiast STOP moze być oczywiście kolejny RSTART i sekwencja od początku...
Ściągnąłem sobie dwa programy. Jeden Modbus Poll (czyli master) i Modbus slave. Jest bardzo dziwna sytuacja. Uruchamiam Modbus Poll, wpisuje do niego te same rejestry na które jest skonfigurowana tablica, podłączam do PLC i program czyta bez problemów te rejestry które powinien. Następnie uruchamiam Modbus slave , podłączam się do tablicy. Udostępniam...
80C8 Slave timeout. Check the baud rate, parity and the connectors on the slave. Czyli brak odpowiedzi. Teraz musisz sprawdzić prędkość, parzystość, okablowanie (może zamieniony + z -?). Adresu rejestru modbus jesteś pewny? Funkcja na pewno 3?
Skoro program ma udostępniać dane to od strony modbus będzie slave-m Musi czekać na zapytanie od mastera modbus. Musi mieć przygotowaną listę rejestrów o które zapyta master a w których będą twoje dane.
Gapię się w modbusa jakiś czas żeby zrozumieć te rejestry. Mam wrażenie, że poczyniłem pewien progres, ale muszę się upewnić czy to aby nie są bzdury. No i sprawa wygląda tak: urządzenia slave składają się / są widziane jako rejestry z poziomu mastera. Wysyłam z mastera polecenie do slave’a: „odczytaj rejestr R1”. Polecenie leci do...
Naprawdę wiesz co piszesz? Napisałem co jest masterem, a kolega wpisał uruchamianie z PC. Ta bramka ma dwa wyjście BO które wysterują pompy dlatego jest slave, ID>funkcja>rejestr. Może ja mam słabszy dzień. W końcu piątek, nie ma mastera będącego przyciskiem. Jest za slave który wysteruje pompę z wyjscie BO i potwierdzenie BI https://obrazki.elektroda.pl/4170398500_...
Na linię danych wysuwa się zawartość rejestru przesuwnego, do którego dane są ładowane z FIFO co DS[3:0] taktów zegara. Jeżeli nie zapisujesz nic nowego do rejestru danych SPIx->DR, to zawartość FIFO również się nie zmienia. Myślę, że rysunek 358 w RM0316 dość dobrze oddaje działanie układu. Zwróć uwagę, że Slave musi wystawić dane już przy pierwszym...
Witam. Poszukuję biblioteki Modbus master dla AVR. W sieci jest dużo przykładów ale dla slave. Chciałbym mikrokontrolerem czytać rejestry z falownika Sofar po RS485. Załączam kilka znalezionych bibliotek. Szukałem w tych bibliotekach funkcji odczytującej rejestry typu holding - ale moja znajomość języka C jest zbyt słaba. Mikrokontroler to Atmega32.
Sprawdź najpierw czym jest ACK/NACK. Weż jeszcze zobacz w datasheet EEPROMA jakiegoś np. 24c01. Dodano po 3 SLA_W to adres slave do zapisu
(at)maxelectric Takie ramki najlepiej dekodować, ale za pomocą programu wireshark w trakcie transmisji.
Gdzie ten przykład obsługi przerwania który generuje na stos 20 rejestrów?
Do slave wysyłam same zera I to jest oczywiście źle. Adres rejestru ma 6 bitów a pierwsze 2 bity transmitowane to R/W i MB. O nich zapomniałeś. Przy jednym bajcie - R musi być ustawiony MB wyzetowany. Tak więc musisz wysłać 0x80 a nie zero. DS-y trzeba czytać całe a nie tylko jedną tabelkę.
(at)kubamiszkiewicz Do takich rzeczy potrzeba jakiś program do debugowanie ramki i symulacji mastera/slave modbus. Potrzebujesz konwertera RS485/USB i np. programu ModbusViewTCP. Tutaj może być masa nakładających się błędów np. niewłaściwe parametry komunikacyjne, błędnie zarobiony przewód komunikacyjny, zapis/odczyt nieprawidłowych rejestrów ( trzeba...
Ale potrzebujesz wyniki wszystkich pomiarów, czy tylko ostaniego przed przerwaniem? Jeżeli tylko ostatniego, to np. w SPI odbiór jest podwojnie buforowany. To znaczy np. ten mierzący pracuje jako master i wynik każdego, ukończonego pomiaru (o ile to 8 bitów) wysyła po SPI. W tym drugim (slave) w każdym momencie ostatni, kompletnie przesłany baj jest...
Chyba nie złapałeś tego, że w SPI transmisja jest zawsze dwukierunkowa i zawsze inicjowana przez mastera. Aby odebrać dane od slave-a master musi też coś wysłać. Jeżeli slave wpisze coś do rejestru wyjściowego, to i tak dotrze to do mastera dopiero po tym, jak master zainicjuje kolejną transmisję i wyśle coś do slave-a.
Temat zamykam, znalazłem rozwiązanie po sporych problemach doszedłem do tego, że z jakichś dziwnych przyczyn wysyłając żądanie do rejestru 01 w urządzeniu slave był offset -1, więc tak naprawdę odwoływałem się do rejestru 0, przez co otrzymywałem błąd komunikacji.
Transmisja I2C nie zmienia wartości żadnych komórek pamięci poza rejestrami.
Zdecydowanie nie polecam tego typu sterowania magistralą I2C. Jest to magistrala typu "wired-and" i każdy nadajnik i odbiornik powinien mieć I/O typu "open collector". W przypadku zewnętrznego podciągnięcia pinów magistrali do Vcc sterowanie magistralą I2C lepiej jest rozwiązać w ten sposób, że bity SDA i SCL w rejestrze PORTx (w Twoim przypadku PORTB)...
Witam. Czy ktoś próbował rozeznać się w komunikacji MODBUS ze sterownikiem MINI-STER PID? Na własną rękę zrobiłem jakiś czas temu podsłuch na linii RS485 sterownika i udało mi się ustalić, że sterownik jest masterem, który ciągle nadpisuje rejestry dla urządzeń slave o numerach 4, 5 i 6. W załączniku wrzucam zrzut z programu Modbus Slave wraz z opisami...
74164 nie ma zatrzasku ale to nie szkodzi - przy szybkim taktowaniu danych - zmiana jest niewidoczna przecież na czas wpisywania danych można wygasić sygnał wyboru linii (żadna linia nieświeci).. hm.. pomysł bardzo dobry.. można powiedzieć że przewyrzsza mój pomysł prostotą i końcową ceną.. ostatecznie można zrobić tak jak ja to pokazałem ale zamiast...
Witam, Jak w temacie - czy ktoś już tym zajmował albo tworzył coś podobnego? Potrzebuję wykorzystać do tego celu Mega32. Modbus RTU Master po RS485. Odczytać kilka rejestrów ze slave i przedstawić wartości na wyświetlaczu.
to glupi pomysl z tym zatrzaskiem i rejestrem przesuwnym - lepiej wykorzystac to co jest w procku zamiast dostawiac uklady dodatkowe. dorob z PWMa zegar dla SPI i skonfiguruj je jako SLAVE i bedzie 10x lepiej <: 4\/3!!
Po co mieszać hal z rejestrami?
Hmmm... No to faktycznie nieco dziwaczne - właśnie sprawdziłem w manualu czy mi się nie pomieszało coś i wychodzi, że powinno działać tak jak napisałem wcześniej (np. "Figure 240. TXE/RXNE/BSY behavior in Master / full-duplex mode (BIDIMODE=0 and RXONLY=0) in the case of continuous transfers" albo "24.3.3 Configuring the SPI in master mode") Co do rejestrów...
Witam, mam pytanie dotyczące protokołu Modbus RTU, zaznaczam, że dopiero zaczynam przygodę z PLC i sterowaniem przy użyciu Modbusa. Próbuję ogarnąć komunikację pomiędzy sterownikiem Fatek FBs-20MC jako master i wyświetlaczem DWIN jako slave. Ogólnie to działa ale próbuję zrozumieć sam mechanizm komunikacji. Problem w tym, że jak próbuję zapisać jeden...
a może ktoś mi jeszcze wyjaśni w jaki sposób zaadresować wewnętrzne rejestry slave'a ? w helpach zawsze kończy się na zmiennej " _a1" , która jest aliasem rejestru R16. to powinno działać, ale ja potrzebuję 3 bajty.
Jak rozumiem w 3 bajcie master ma odebrać od slave jakies dane. A czy ty przestawiasz PORTC w master na wejście i PORTC w slave na wyjście? (rejestr DDRC). Bez tego na pewno nie pójdzie komunikacja w drugą stronę. Oczywiście po przekazaniu komunikatu musisz ponownie ustawić porty master-wyjście, slave-wejście Inna sprawa jest taka, że master po wystawieniu...
Używałem własnie program Mtester ale nie zawsze mi sie sprawdzał przy odczycie rejestrów z urządzeń Modbus Slave.
Witam DS3231 Slave address to 0xD0 Adres rejestru to 0x0E chcę w ten rejestr wpisać zera mam taki kod: [syntax=c] i2c_cmd_handle_t cmd = i2c_cmd_link_create(); i2c_master_start(cmd); i2c_master_write_byte(cmd, (0xD0 << 1) | I2C_MASTER_WRITE, 1 /* expect ack */); i2c_master_write_byte(cmd, 0, 1); i2c_master_stop(cmd); i2c_master_cmd_begin(I2C_NUM_0,...
Witam, Proponuję przesłać zapytanie o rejestry typu Input Register od rejestru 1000 maksymalnie 4 rejestry. W przykładzie demo.c został właśnie taki obszar do odczytu ustawiony. Z tego co zauważyłem jednostka Slave odpowiada kodem błędu, który informuje, że zapytanie jest o obszar pamięci nie obsługiwany przez niego. Standardowo w projekcie demo.c obsługa...
slave odbiera (i2c_anything) niestety nie jest ona obsługiwana przez Due. Zrób obsługę używając rejestrów i przerwań.
Nawet musisz, sprzętowy SPI nie steruje linią SS. Co najwyżej jeśli w trybie master coś zmieni jej stan na 0 to przełączy się w tryb slave.
Slave nie nadąża z updatowaniem rejestru SPDR - zauważ, że po pierwszej wysyłce zawiera on AB - adres slave, teraz, zanim master zacznie wysyłać kolejny bajt musisz mu ponownie nadać A1 - jeśli nie zdążysz to ci odeśle AB - to 1ms opóżnienie pomiędzy nadawaniem i odbiorem kolejnych bajtów daje slave czas na update SPDR.
Witam, mam problem ze sprzętową obsługą I2C. uC to MSP430F2619. Napisałem swój program, na podstawie datasheeta, ale wysyła tylko sekwencje START. Poszukałem na stronie TI programu i znalazłem coś takiego: [url=http://focus.ti.com/apps/docs/litab... Skompilowałem, wgrałem i uruchomiłem....
To nie tak działa. Program modbus slave którego używasz może udawać dowolne urządzenie modbus. Domyślnie udaje urządzenie o adresie 1 i zestawie rejestrów 0-9 https://obrazki.elektroda.pl/5169835100_... konfigurację wykonujesz wybierając z menu "slave definition" lub F8 W #64 pokazałem jak ma wyglądać okno programu by odpowiadał na...
Na SS dajesz stan niski tuż przed wpisem danej do rejestru danych SPI, po zakończeniu transmisji ustawiasz ją na 1. Od strony mastera to nie musi być pin oznaczony jako SS, ale od strony slave tak. Tu masz linka do przykładów: ftp://ftp.helion.pl/przyklady/jcmikr.zip
Cena jednak niebagatelna;) Taniej wyjdzie jak zawsze, dodatkowe ATmegi jako układy slave po SPI.
Pin SS pełni rolę ChipSelect dla atmegi(str.140). Jeżeli pin ten będzie zdefiniowany jako input to w momencie pojawienia się stanu L na nim zmieni się bit MSTR w rejestrze SPCR (który wcześniej ustawiałeś) w rezultacie procesor będzie w trybie slave oczekiwać na dane. Jeśli podczas konfiguracji SPDR na pinie tym będzie 0 SPCR = _BV(MSTR); to...
Ale skorzystaj z symulatora modbus czy zwraca jakieś wartości np Modbus View na danych rejestrach.
Trigger jak najbardziej może być od SPI, tyle, że od SPI realizowanego na USART w trybie SPI. SPI w XMEGA jest używane głównie do realizacji trybu slave-SPI i wtedy trigger wyzwala kolejne transfery DMA dla bajtów odebranych. Do master SPI używa się najczęściej USART. Różnica tylko w wykorzystywanych rejestrach, bo pinologicznie są to te same piny dzięki...
Też szukam takiego rozwiązania, i nie bardzo wiem czy Bluetooth się tutaj nada. Bo Bluetooth pozwala stworzyć połączenie prawie przezroczyste dla UARTa. Ale w trybie połączenia bezpośredniego. 1:1 pomiędzy dwoma konkretnymi modułami. A mi chodziłoby o połączenie jednego mastera z np. pięcioma slaveami. Czy takie coś jest możliwe przy UARCie? Tzn. żeby...
Czy do obsługi I2C w trybie master używa się rejestrów Own Address Register? To chyba rejestry do ustawienia adresu sprzętowego urządzenia w trybie slave. W trybie master do wysyłania pierwszego bajtu - adresu - używa się normalnie rejestru DR (Data Register), tak jak do wysyłania pozostałych, czy tak?
Czy rejestr 0x00 w wyświetlaczu jest dostępny do czytania? Samo skanowanie busa polega na wyłapaniu czy po bajcie z adresem i kierunkiem slave zrobi ACK. Ale może się zdarzyć, że rejestr nie jest przeznaczony do czytania zatem po podaniu adresu urządzenia 0x27 z bitem kierunku i adresu rejestru 0x00 nie będzie ACK co oznacza, żę taki rejestr nie nadaje...
To ma być układ 1-wire Slave a nie 1-wire Master...ale nic. Po prostu będę operował wyłącznie rejestrem DDR a szynę (piny INT0 różnych Slave) podciągnę zewnętrznym pull-upem...robiw
Witam Jestem zielony w kwestii PLC a mam pewien projekt do zrobienia. Mam gotowy układzik z wyświetlaczem,mikrokontrolerem i interfece-em rs485, chce zaimplementować na nim protokół MODBUS RTU, zadaniem układu ma być odczytanie pewnych wartości z rejestrów PLC (VersaMax). I teraz pytanko czy jak na PLC jest gotowy program który steruje procesem to mogę...
PumbaZ napisał: Może PLC innego producenta? Automat skanujący taką sieć ma np. PAC M340 - mechanizm I/O Scanner - ( operacje R/W na slave 'ach ). Komunikacja w tym trybie jest natywna - bez potrzeby stosowania bloków komunikacyjnych . Rejestry slave'ów mapuje się w sterowniku w formularzu I/O Scanner - w obu kierunkach.
Witaj, Ja też walczę z SPI od pewnego czasu, ale używam SPI w Atmega8515 jako Slave. Jeśli dobrze zrozumiałem, to masz problem z USI w Attiny26. Z tego co wyczytałem w pdf'ie i z tego co pamiętam jak się bawiłem tym prockiem, to USI można skonfigurować jako normalny SPI. Musisz tylko odpowiednio ustawić bity rejestru USICR. Nie wiem po co liczysz impulsy...
... Nie wiem gdzie błąd :( Bo i skąd możesz wiedzieć , skoro nie sprawdzasz co Ci mówi TWSR :( Np. i2c_send(0b10100000);//<- adres fizyczy 00, 1 bit adresu słowa 0 + Write A skąd wiadomo , że SLAVE odpowiedział ACK :?: Nie przypadkowo , wszystkie funkcje i2c (prócz i2c_init i i2c_stop) zwracają nam zawartość rejestru TWSR. Pozdrawiam Piotrek
Co dokładnie chcesz odczytać ?. Odczyt pojedynczych rejestrów to funkcje 3 (holding register - zapis i odczyt) - 4 (input register - tylko odczyt). Funkcje 15 i 16 to odczyt i zapis "multiple register - wiele rejestrów". Spróbuj funkcją 3 od adresu "x" do adresu "y" , "z" rejestrów.
Kompletnie nie rozumiem tego programu (języka też). Zrób może najpierw prostą wymianę bajtów, żeby slave caly wysyłał bajt 0xAB. Jeśli nie będzie działać, to zrób to bezpośrednio odwołując się do rejestrów spcr i spdr.
(at)sebus504 W tabeli modbusa ustawiasz adres startowy jakoś 30073(Slave data start Address), rozmiar(Data Size) 2 i wpisujesz do rejestru 32 bitowego(Master data start Address).
Cześć :) Pozwolę sobie trochę odkopać temat. Posiadam licznik ORNO OR-WE-517. Dzięki Waszej pomocy, udało mi się naklepać kod w Go, (jak go trochę ogarnę, to bardzo chętnie udostępnie na Githubie) który wyciąga dane i wrzuca na broker MQTT. Rozwiązanie działało mi super, aż do czasu, gdy zachciałem się zabawić w zmianę ID slave, przy użyciu zapisu do...
Freddy masz lepszy rysunek. Ale jest na nim mylące SHIFT ENABLE. Wydaje mi się że CLK powinien być podłączony do SHIFT rejestru, natomiast ENABLE do /SS czyli SLAVE SELECT. Naprawiłeś już to radio? N.
Witam, Miał ktoś styczność z takim panelem ? Nie rozumie za bardzo idei działania takiego panelu . Ten panel działa jako master i on odpytuje sterownik PLC o rejestry ? Mi by zależało żeby taki panel dopiąc do linii modbus ale żeby pracował wtedy jako slave. I żebym to ja z PLC zapisywał i odczytywał poszczególne rejestry z danymi ... Tylko nie mogę...
kurcze tylko co tam trzeba zmienic w tym rejestrze to by mnie interesowalo :)
Piszę ostatnio sporo, i zrobiłem obsługę i2c na Aduc ale programowo na zwykłym porcie, procesor ten ma sprzętową wersję tego interfejsu i chcem go użyć w moim projekcie. Z aplikacji wynika żeby mikrokontroler był układem master to rejestr I2CCON =np. 11111000 czyli MDO=1, MDE =0,1(rx,tx) i MCO,MDI=1 i OK, dalej mam rejestry I2CADD - które według mojego...
Witam To zależy jak dużo chcesz przesyłać danych, myślę że spokojnie wystarczy skonfigurować port w tryb Serial I/O i wysyłać odpowiednie dane lub ustawić w tryb ModBus Slave i odczytywać dane co będzie jeszcze łatwiejsze. Pozdrawiam
S-Bus to protokół master-slave, binarny, nieco podobny do Modbus ale ciut efektywniej wykorzystujący łącze szeregowe; integralność danych kontrolowana CRC-16; rejestry są 32-bitowe. Zobacz ten archiwalny dokument: https://sbc-support.com/uploads/tx_srcpr... Opis protokołu to pierwszy rozdział; reszta jest mniej istotna....
Nie mogę nawiązać komunikacji Modbus RTU między Easy E4 a rejestratorem ND10 Lumela. Połączenia fizyczne: A do A, B do B, Ekran GND do COM, Przewód o długości 30cm Terminancja włączona w EasyE4. Po wstępnej konfiguracji modułu Easy Modbus RTU jako master i podłączenia slave dwie diody na module master świecą na zielono (POW/RUN oraz Config ), Dioda...
Adres slave to 5, pisząc w poście o adresie miałem na myśli adres rejestru danych ;) Próbowałem na samym początku również na MODE:1 i nadal cisza
A SPI_CR1_DFF za co odpowiada? Bo ja nie mam takiego bitu w rejestrze.
Mam Modbusa RTU po rs485, po stronie slave atmega328, po stronie master 2560, ramka 16 rejestrów uint16_t, przy predkosci 115200 udało mi się osiągnąć 20 odpowiedzi na sekundę, powyżej już są timeouty. Pozdr
Witam Holding Registers - 0x03, Czyli np. w trybie RTU: 0x01 - adres slave 0x03 - Holding Registers 0xXX - rejestr początkowy Hi 0xXX - rejestr początkowy Lo 0xXX - Ilość rejestrów Hi 0xXX - Ilość rejestrów Lo Dodatkowy jeśli używamy ModBus TCP należy dodać nagłówek na początek ramki. Proponuje zapoznać się z OPC toolbox w Matlab'e. Pozdrawiam
Kol. (at)BlueDraco ma zapewne na myśli to, że po aktywacji SS i rozpoczęciu przesyłania danych slave wysyła aktualną zawartość rejestru SPDR na magistralę. Przy max. szybkości SPI masz zaledwie 16 taktów na wpisanie nowej wartości do tego rejestru, a to istotnie nie jest dużo. Jeśli pierwszy wysyłany bajt nie ma być poprzednią wartością rejestru danych,...
Jeśli na 19200 otrzymujesz odpowiedź po ok 1 min. to masz coś źle. Jeśli masz jakiś sterownik z MODBUS i RS485/RS232 to użyj go do testów jako slave. W poszczególne rejestry, które chcesz odczytywać wpisz konkretne wartości (np. rej 100 -> 100, rej 101 -> 101 itd.). Odczytaj te wartości na komputerze z poziomu programu np. Modbus Tester - będziesz mieć...
Cześć !!! Pomysł bardzo dobry i ciekawy. Ale propnuje przesiąść się na jakiś procesorek ze sprzętowym I2C np. Atmega8 lub któryś z grupy nowych procków Philipsa. Dlaczego. Komunikację Mikroprocesorów z i2C w trybie Slave najłatwiej jest zbudować, gdy masz możliwość obsługi protokołu w przerwaniu. Tzn. procek dalej się kręci , coś czyta czym się zajmuje...
...Innymi słowy czy w każdym przypadku jest mi potrzebna biblioteka do I2C slave. Tak , w każdym przypadku biblioteka jest nieodzowna i obie są komercyjne :( I2cslave.lbx - dla I2c programowe I2c_twi-slave.lbx - dla I2c sprzętowe Jesli nie to jak obudzic uP ze sprzetowym TWI do pracy w trybie slave? Można napisać samemu obsługę TWI , ale rejestry za...
chodzi mi o to że jak Master da CS->Low to czy w slave zdąży się wykonać instrukcja wpisu słowa 16bitowego do rejestru DR zanim rozpocznie się przesyłanie danych??
Zaobac zplik nagłówkowy TWI.h - tam masz opisane wszystkie błędy z podziałem na mastera i slave. Skąd wiesz, że program się nie wiesza? Nie dostajesz ACK? Ustawiłeś autoACK w rejestrze kontrolnym TWI? Co w tym czasie robi procesor? Jest w trybie uśpienia, czy w pętli czyta status?
To "pogrzeb" jeszcze w notach aplikacyjnych . Co prawda większość użytecznych przykładów jest w C (master i slave), ale widać po kolei, jakie rejestry są użyte, więc z adaptacją do asm nie powinno być problemu.... ;)
Z tego co patrzyłem do data sheet to niema takiej możliwości. Są to porty I/O z dodatkowymi funkcjami takimi jak np ustawianie slave adresu. Ale w rejestrze statusowym jest flaga FL czyli flaga zaskoczenia pętli. Można by ja odczytać przez uC i wysłać na port TSA5511. Nie jestem jednak w 100% pewny czy nie da się prościej. Może ktoś się jeszcze wypowie...
kolego usuń kropkę na końcu bo nie działa link zrobione Jak wysyłasz coś takiego od mastera to oznacza zapytanie do slave nr [03], funkcja [01] odczyt wyjść bitowych z watrość od [0F][B2](offset) = 4018 do [00][64](segment) = 100, ostatnie bity to suma kontrolna ;) Wniosek - do odczytu wartości 4019 skorzystaj z funkcji [04] - odczyt n rejestrów wejściowych...
a czy jest możliwość odzyskania keya z systemu, którego nie da się uruchomić? Jest oryginalny windows, orygin. CD jednak znajomy zagubił cdkeya, ponieważ system jest na tyle zepsuty, że nie da się go uruchomić oczywiste, że te wszystkie programy odpadają. Czy jest może jakiś program za pomocą móżnaby dowiedzieć się jaki był cdkey na tym systemie, jeśli...
rejestr slave slave output atmega slave
presostat wentylatora nawiewu miernik kosztów energii klimatyzacja samochód usterka
pralka electrolux mikrokomputer cobra1
Lokalizacja anteny GPS w Volvo XC70 II (2007-2016) Lokalizacja czujników poduszek powietrznych Honda Civic 2009