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...
Nie potrafię dojść o co chodzi - rozumiem gdyby program zatrzymywał się na while(), ale na return()? Samo przerwanie TWINT nie oznacza, że operacja zakończyła się powodzeniem. Nie podałeś zawartości innych funkcji obsługi magistrali, ale sądząc po funkcji twi_read() nie sprawdzasz poprawności transmisji poprzez sprawdzenie jej statusu w rejestrze TWSR....
Dzień dobry, przekopałem forum ale nic nie umiałem znaleźć. Mój problem dotyczy zmiany jakiegoś rejestru w urządzeniu slave przez inne urządzenie slave. Konkretniej: Falownik LS odczytuje z panelu dotykowego (który jest masterem) wartość np zadanej częstotliwości. Obok jako drugi slave jest sterownik PLC, który kontroluje wejścia/wyjścia. Powiedzmy...
http://obrazki.elektroda.pl/3546939500_1... Konstrukcja będąca tematem wątku powstała jako projekt na zaliczenie przedmiotu na uczelni, którego celem było napisanie sterownika dla systemu Linux do jakiegoś urządzenia. Ponieważ miałem swobodę wyboru tematu sterownika, postanowiłem stworzyć jakieś urządzenie w postaci karty ISA. Złącze...
jeśli wysyłałem pod adres 1 niepodłączonego przetwornika, zgłasza błąd (rozumiem, że niepodłączony przetwornik = błąd), To nie tak. Na adresie 1 program słucha - skonfigurowany jest by odpowiedzieć na funkcję 03 (odczyt rejestrów) i rejestry 0 - 9 Ty wysyłasz mu funkcję 05 (ustaw jedno wyjście) i rejestr 4000 więc odpowiada Ci kodem 85 (błąd dla funkcji...
Spróbuj ustawić transmisję: 1 bit stopu Even (parzysty) 1 bit startu 8 bitów danych. Trzeba jeszcze przesunąć rejestr danych o 1. np z 21 na 20 lub nie, oczywiście zależy to od slave A także spróbuj zamiast FC3 - FC4. Ja mam PLC od wersji oprogramowania 1.4 Wygląda, że liczby w tym liczniku są całkowite. Jeżeli zawartości rejestrów były by zmiennoprzecinkowe,...
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...
Dziękuję. Rejestr już jest odczytywany przed zapisem. Każde przerwanie w slave zapisuje coś do SPDR, więc jeśli slave ZDĄŻY obsłużyć przerwanie i wpisać to zawsze jeden bajt jest wpisany. Przed transmisją przy inicjacji nic nie wpisuję do spdr, pierwszy wpis jest w przerwaniu. Wygląda na to, że oba wyrabiają się z wpisywaniem danych do rejestrów bo...
http://obrazki.elektroda.pl/3207877000_1... http://obrazki.elektroda.pl/9634776400_1... http://obrazki.elektroda.pl/8673988800_1... http://obrazki.elektroda.pl/3005768300_1... Termometr z funkcją pamiętania maksimum i minimum (zapisane w rejestrach, tracone przy braku zasilania). Program...
Hej, Adresy są ustawione w channel configuration. Podaje się tam adres początkowy dla poszczególnych rejestrów. Pozostałe rejestry są przypisane do zmiennych sterownika po prostu z przesunięciem względem adresu początkowego. Wydaje mi się (jutro sprawdzę), że to może być tylko jeden data block dla jednego rejestru modbus, więc jeśli np.początkowy rejestr...
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...
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...
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,...
Pod kątem szyny Modbus można to opisać w prosty sposób: Master - Cobra lub Puma Slave - Spider (adres 5) baudrate 9600 1. Nawiązanie komunikacji M - Zapytanie slave'ów od numeru 1 do 32 o 1 rejestr wejściowy z adresu 0 (funkcja 4) S - Odpowiedź zwracająca wartość 054 147 2. Zapytanie o status GSM i zmiany parametrów pieca M - Zapytanie o 8 rejestrów...
Nie sprawdzałem ale tu masz 01- adres urządzenia 03- rejestr 01 03 00 00 00 01 CRC
https://obrazki.elektroda.pl/4089247800_... Pytanie: Czy mogę uzyskać dostęp do niestandardowego interfejsu SPI za pomocą mojego mikrokontrolera? Odpowiedź: Tak, ale może to wymagać trochę dodatkowego wysiłku podczas tworzenia oprogramowania układowego. Wiele współcześnie wykorzystywanych, precyzyjnych przetworników analogowo-cyfrowych...
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.
Diody podpięte są do czegoś co się zwie "rejestr przesuwny 74HC595". Jeżeli tam masz rejestr 595, to zamiast kombinować podepnij się pod wejście szeregowe tego rejestru - masz tam SCK, MOSI, SS - podpinasz to pod SPI w trybie slave i masz odczyt tego co wysyła procesor do zatrzasku. Nawet jeśli zajdzie konieczność konwersji poziomów, to masz tylko...
Cześć Adres może i dobry, ale jest to adres 7 bitowy - bez uwzględnienia najmłodszego bitu zapisu. Trzeba tą wartość przesunąć w lewo o 1 bit i do tego ustawić lub nie bit zapisu: #define i2c_rw_bit 1 // transmit slave addres I2C1->DR = ( saddr << 1) | i2c_rw_bit ; No i przydałoby się dodać jakieś timeouty w tych pustych pętlach czekających...
Rejestry numerowane są od 1 (0 jest nieprawidłowe). 1 oznacza pierwszy możliwy rejestr w urządzeniu (w slave'ie). Zobacz GFK-2220 i opis komendy 8002. Word 10 – RTU Data Address/Start Address: The one-based offset into the target reference data type on the slave that specifies: The data location for the Force Single Output and Preset...
Cena jednak niebagatelna;) Taniej wyjdzie jak zawsze, dodatkowe ATmegi jako układy slave po SPI.
https://obrazki.elektroda.pl/5794565700_... Jeżeli chodzi o komunikację pomiędzy sterownikami VersaMax Micro, to można ją zrealizować np. w protokole SNP (SNP-X). Wtedy w jednym ze sterowników należy uruchomić pracę jako Master w tym protokole. Następnie przy pomocy poleceń COMMREQ trzeba oprogramować komunikację – przesyłanie...
Witam, Chce połączyć HMI unitronics (środowisko unilogic) z wzmacniaczem/konewerterem belki tensometrycznej Scaime Enod4T. Komunikacja po modbus RTU - RS485. Scaime po RS z komputerem i natywną aplikacją producenta komunikuje się bez problemu. Po raz pierwszy mam do czynienie z Modbus RTU. Przejrzałem specyfikację scaime i nie specjalnie mogę zrozumieć...
Nie za bardzo rozumiem o jakich przerwaniach piszesz. Slave SPI (abstrahując od przerwan błędów itd) ma przerwanie wtedy kiedy rejestr wysyłki jest pusty albo kiedy coś otrzymał (pominę kwestię fifo). Jeżeli jest to przerwanie od pustego rejestru TX to może tam wpisać dane, która zostanie wysłana przy następnej transmisji mastera. Jeżeli jest to od...
register unsigned char counter asm("r3"); Ale jak wskazać kompilatorowi aby używał zarezerwowanych rejestrów w konkretnej funkcji? Zresztą metoda bardzo zła bo ogranicza kompilatorowi ilość dostępnych rejestrów, a problemem jest fatalnej jakości kod. Żadne mikro optymalizaje tu nie pomogą. Należy napisać, albo znaleźć porządny kod. Proszę o cudowny...
Witaj Zgoodie Dzięki za szybką odpowiedź. Tą ramkę znam 01 03 00 00 00 01 84 0A i wiem że to jest zapytanie o 1 rejestr Holding Register, 01 - to id slave'a a 03 to kod funkcji czyli odczyt holding rejestru a 00 00 00 01 to adres 0 i długość 1, później jest kod crc. Ramka 01 03 00 00 00 01 84 0A działa jak również inne typu FF A0 40 38 odpowiadające...
MISO to Master IN SLave OUT, a MOSI to Master OUT Slave IN. Jak same nazwy wskazują nie ma tu mowy, które urządzenie jest masterem, a które slavem. Linia MOSI zawsze jest wyjściem w Masterze a wejściem w Slavie. Zlinią MISO jest podobnie tylko że na odwrót. Nic nie musisz przełączać, ponieważ jest to robione wewnętrznie. W nocie jest taki rysunek gdzię...
Master decyduje o scenariuszu wymian. Może wysłać 400 zapytań o każdy rejestr osobno. Albo czytać 50 rejestrów od offsetu 100, a później 20 od offsetu 237. Slave ma odpowiedzieć.
Witam Bardziej profesjonalnie jest wszystkie układy potraktować jako slave . Każdy słucha i czeka na przerwanie z uarta , jak je otrzymuje odbiera zawartość z udr porównuje i albo odbiera dalej albo ignoruje i czeka na kolejny adres . Atmel wyposażył układy w tryb multimaster ,który się do tego świetnie nadaje i warto o nim przeczytać w dokumentacji...
"//dla pewnosci zeruje cale AFR by miec pewnosc ze alternatywa zerowa jest" Dla pewności zresetowałeś więc w obydwóch przypadkach nie tą połówkę co trzeba. Odczytaj w programie rejestry statusowe SPI2 i SPI1 - pewnie wyskakuje jakiś błąd. Konfiguruj najpierw slave'a, potem mastera. Użyj debuggera żeby zobaczyć gdzie się wiesza. Racja, mój błąd. Nie...
Witam serdecznie Potrzebuje pomocy w komunikacji s7 1200 Posiadam s7 1212 i CM 1241, próbuję pobrać dane z urządzenia podłączonego do procesora komunikacyjnego, adres slave 2, prędkość 9600, bez parzystości, długość 8 bitów stop 1, użyte piny w CM 1241 pin 8 -A pin 3 -B brak terminacji w chwili obecnej długość przewodu ok 1 m, rejestr z którego chcę...
https://code.google.com/p/robotcontrol/s... Diagnoza jest taka: w slave'ie w ogóle nie wykonują się polecenia pętli ciała głównego programu. W ogóle nie jest wykonywane drive_state[0] = 16; gdyż na ekranie LCD wciąż widzę wartość '49'. Transfer SPI działa gdyż po odpięciu jednego z kabli...
Czy istnieje jakiś sposób do zaprojektowania np Master Slave'a JK na bramkach???? Mi z grafu wychodzą nadmiarowe bramki... :/ A niestety profesorek sam nie wiem jak to zrobić.. każe zapamiętać kilkanaście bramek :/ Macie jakieś pomysły??? Zasada jest dosyć prosta. Tego typu przerzutnik składa się z dwóch zatrzasków. Ponieważ z grafu przejść wynika...
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...
(at)chudybyk - niekoniecznie, tzn nie wiem jak z Arduino, ale robiłem projekt na tiny48 i tam jest rejestr maskujący adres przez co jeśli bardzo byśmy się uparli urządzenie skonfigurowane jako slave odpowiadałoby na KAŻDY adres. Niemniej w przypadku arduino jest zapewne jak piszesz. Dodam, że lista adresów dostępnych jest mniejsza niż 127 w przypadku...
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
Witam. Połączyłem sobie dwa rejestry 74HC595 w kaskadzie i uzyskałem rejestr 16 bitowy. Chciałbym uzyskać na tym rejestrze efekt operatora |= tzn. ustawiać każdy pin z osobna bez zmieniania wartości logicznej pozostałych pinów. Napisałem funkcję aktywujPIN(PINx) gdzie argumentem jest wartość decymalna odpowiadająca za zapalenie kolejno każdej diody...
Witam Ja pisałem programu do komunikacji po ModBus'e z miernikiem LUMEL NA6 i moim zdaniem łatwiej by było wykonać komunikacje w trybie RTU. Suma kontrolna CRC16 jest dostępna w dokumentacji do ModBus'a w języku C. Ja przerobiłem ją na C#. Ramka zapytania jest prosta i nie potrzeba nic dodawać dodatkowego np: public byte[] getRamkaStatusNr1(byte...
SSI i SSM ustawione na 1 nic nie zmieniają. kriss, według Ciebie jak powinna wyglądać ta definicja? Jeszcze jedno nie wiem czy ma to znaczenie ale na SPI1 w rejestrze I2SPR ustawione jest 0, a wartość początkowa powinna być 0x2 i tak jest na SPI2. Niestety nie mogę ustawić w SPI1 wartość 0x2. Da się natomiast wyzerować ten rejestr w SPI2 ale to nic...
Nad przekaźnikami też się zastanawiam, ale raczej będzie to ostateczność. Bezpieczeństwo jest tu najważniejsze a przekaźniki mają tendencje do sklejania się styków lub innych, nawet opisywanych przez ciebie uszkodzeń. Zwróć uwagę że, opisywane problemy tyczą się raczej dużych prądów. Przy małych prądach, schodzimy do strat dużo mniejszych niż zasilanie...
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...
1. Jeśli ta informacja jest tylko w eds slave to teraz, żeby Master był "uniwersalny" to muszę zarezerwować (lub dynamicznie) przydzielić pamieć dla tych wszystkich transmisji, 2. Może te Informacje są gdzieś w słowniku urządzenia ale nie wiem gdzie. Nie ma czegoś takiego w rodzaju informacji o dostępnych PDO. Jak chcesz to możesz np. za pomocą SDO...
Mam sterownik fatek FBs-24maj. Falownik LS sv040ig5a-4 Mam tabelę modbus w winproladder z parametrami: Zapis na MasterData rejestr "R10" i "R11"(w domyśle jako druga wartość data size) Slave data to 441217 i data size: 2 Nie wiem dlaczego data size dla tej funkcji ma wartość 2 Odniesienie do falownika dla zarządzanego parametru to: Czas przyspieszania...
a iic nie chce Niestety to trochę zbyt mało powiedziane. Adresy rejestrów TWI są inne, przerwanie jest gdzie indziej. Wypadałoby prześledzić krok po kroku obie wersje programów w miejscach gdzie następuje inicjalizacja i jakieś operacje związane z TWI. Błąd może być też "czeski" związany z wpisami w plikach nagłówkowych (adresy, sposób dostępu). Czy...
Dzięki CervantesJ. Bardzo pomocne materiały mimo że mam starszą wersje. Siadam zaraz i kombinuje dalej. Możesz mnie jeszcze tylko nakierować czy dobrze rozumuje. Chcę połączyć sterownik SAIA z InTouch-em. Z tego co się orientuje to InTouch jest Masterem. Mam już w InTouchu skonfigurowany DAServer Manager. Wysyłam z niego informacje pod rejestrem 40010....
I tu się mylisz kolego, bo w ten sposób nie zmienię trzeba wysłać całą ramkę w HEX. Tak to już próbowałem i nie przyjmuje. 40021 ID HEX 00 14 Length : 4 byte MODBUS Protocol code 10 (16 decimal) writes the contents of the 4X registers. Example The following query will set the Network Node to 60: Field Name Example (Hex) Slave Address 01 Function 10...
Z tego co wiem przerwanie w Slave zostaje włączone po zakończeniu nadawania/obioru. Dlatego wpisując w przezwaniu w rejestr SPDR wartość zakładam że będzie ona wysłana jako następna, przy następnym nadawaniu/odbiorze (przed wywołaniem kolejnego przerwania). Mogę wstawić w while(1) coś takiego: [syntax=c]while(1) { if(!(PINB & (1 << SS))) {...
Albo wręcz zrobić naked i wykorzystać jakiś rejestr sprzętowy. Co prawda jest to 16 bitów. Ale można to zrobić albo w dwóch 8 bitowych- żeby było atomowo albo jako Atomic Block.
[syntax=c] void ds1307_init() { i2c_start_hard(); i2c_write_hard(0xD0); // adres slave i RW = 0 do RTC i2c_write_hard(0x00); // adres rejestru 0 i2c_write_hard(0x00);// zerowanie sec i CH i2c_stop_hard(); i2c_start_hard(); i2c_write_hard(0xD0); // adres slave i RW = 0 do RTC i2c_write_hard(0x07); // rejestr control i2c_write_hard(0x80);// wylaczenie...
Witam! Mam za zadanie stworzyć symulację automatyzacji magazynu w C#. Polegać to ma na tym, iż stany czujników odczytywane są z aplikacji i wystawiane na modbus oraz dodatkowo za pomocą wartości z coli-ów można uruchamiać elementy sterujące (np. taśmociąg) Wykonałem całą aplikację, a jej wynik przedstawia obrazek niżej http://obrazki.elektroda.pl/4094706800_1...
slave rejestr atmega slave slave output
gasnie rozgrzaniu stabilizator oznaczenia przyłącze bezpiecznik
thomson 26hu5253 mikrokomputer cobra1
Myjka ciśnieniowa wyłącza się po uruchomieniu dopływu wody Pulsujące palniki w płycie gazowej - przyczyny i rozwiązania