Dobry den.
Ak rozpravame o standardnom Modbus protokole, v ktorom ma register 2 bajty, tak naozaj Uu je podla dokumentacie “jeden register neznamienkovo, pričom sa z neho berie do úvahy iba vyšší bajt (1. v poradí)”, tj. horny bajt; hodnota 0-255. Rovnako ako B (“Byte neznamienkovo, iba horných 8 bitov hodnoty registra”).
A podobne Ul = “jeden register neznamienkovo, pričom sa z neho berie do úvahy iba nižší bajt (2. v poradí)”, cize to iste ako X (“Byte neznamienkovo, iba dolných 8 bitov hodnoty registra.”). V tom mate uplnu pravdu. Uu=B a Ul=X.
Ale: este mame parameter protokolu “Variable mode”, ktory umoznuje nastavit variabilny mod, kde register moze mat ROZNU dlzku. V tomto mode ak sa pouzije B alebo X, tak to hovori o 1-bajtovom registri. Ak sa pouzije U, tak sa hovori o 2-bajtovom registri (Uu o jeho hornom, Ul o jeho dolnom bajte).
A je tu este “Byte Mode”, ktory hovori o tom, ze register ma 1 bajt. V tom pripade U znamena 16-bitova premenna, ktora pokryva 2 registre (a napr. F a f su 32-bitove premenne zaberajuce 4 registre).
Teda v tychto modoch je rozdiel medzi Uu a B a medzi Ul a X a to taky, ze jednotlive zapisy specifikuju roznu velkost registra (variabilny mod) alebo rozny pocet registrov (bytovy mod).
Ako doplnkove citanie na hlbsie pochopenie zakernosti, s ktorymi sa mozete stretnut pri Modbus protokole, odporucam blog o Modbuse:
https://www.ipesoft.com/sk/blog/komunikácia-modbus-protokol
https://www.ipesoft.com/sk/blog/komunikácia-modbus-protokol-2
Pripadne tohtorocny anglicky preklad (ktory bol este rozsireny o sekciu problemov little-endianity)