logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

modbus, write registers [0x10], pola ilość rejestrów i bajtó

elektryk 25 Kwi 2005 19:00 2448 4
  • #1 1436417
    elektryk
    Poziom 42  
    Czy może mi ktoś wyjaśnić po co są pola ilość rejestrów i ilość bajtów skoro jeden rejestr ma dwa bajty, to chyba jest oczywiste ze ilosć bajtów będzie zawsze 2x ilość rejestrów. Czy są możliwe inne przypadki?
  • Pomocny post
    #2 1436788
    Witgol
    Poziom 20  
    Zaglądnij na post dotyczący "RS485 --> 256 urządzeń"
    https://www.elektroda.pl/rtvforum/topic285461.html
    Na samym końcu zamieściłem tam całość opisu standardu ModBus, ze wszystkimi funkcjami itd.
    Trzeba tylko się w niego wczytać........
    Pozdrawiam
  • Pomocny post
    #3 1441315
    juntom
    Poziom 19  
    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 hi dla adresu rejestru hi , dana lo dla adresu rejestru lo, dana hi dla adresu rejstru hi +1 , dana dla adresu rejestru lo + 1 itd.

    pozdrawiam.
    Elektryk -> faktycznie , nie spojrzalem w dokumentacje modicona tylko na wlasne zapisy. Przepraszam za blad. Faktycznie trudno powiedziec do czego sluzy to pole, skoro rejestry sa traktowane jako 16 bitowe.
  • #4 1441539
    elektryk
    Poziom 42  
    :arrow: Witgol: Twój dokument nie wymienia rozkazu 0x10
    :arrow: juntom: niestety budowa jest taka:
    adres 8bit
    rozkaz (10h) 8 bit
    pierwszy rejestr 16bit
    ilość rejestrów 16bit
    lość bajtów 8bit <------------
    dane
    crc 16bit
    A mnie interesuje jaka jest funkcja pola "ilość bajtów" poniewaz wg mnie wnosi ono nadmiar informacji i jest zbędne.
  • Pomocny post
    #5 1441863
    Witgol
    Poziom 20  
    Hmmmmm... zdaje się, że nastąpiło przekłamanie w fazie interpretacji formatu dziesiętnego i hexadecymalnego...
    rozkaz 0x10h to - wdaje mi się - to samo co 16 dziesiętnie... ale może się mylę...
    A ten rozkaz (10 hex = 16 dziesiętnie) jest w dokumentacji.....
    Ta dokumentacja to opis standardu Modicona. Jak biblia. Nawet jest informacja (ale niestety krótka) o zarezerwowanych rozkazach, nie wchodzących w skład standardu.

    Ale fakt niezaprzeczalny, że informacja dodatkowa o ilości bajtów jest w tym rozkazie nieco nadmiarowa. Być może wynika to w jakiś sposób ze stosowania nie tylko rejestrów dwubajtowych (ale też stosowania np. informacji bitowych - coils - w standardzie ModBus). Ale tych nigdy nie używaliśmy, i nie chciałbym tu nic namieszać. Tym nie mniej, jak zostanie wpisana liczba bajtów równa 2xliczba rejestrów, to urządzenia działają bez żadnych problemów.
    Pozdrawiam
REKLAMA