Witam Szanownych Forumowiczów,
mam problem z którym nie mogę sobie poradzić chodzi o konwersję liczby zmienno przecinkowej zapisanej
szesnastkowo. Napisałem prosty programik który ma na celu odczyt wartości z modułu falownika pewnych danych a dokładniej prędkości obrotowej silnika jakim steruje ten falownik. Komunikacja ze sterownikiem odbywa się poprzez port COM (rs232 na rs485) i oparta jest o protokół ModBus. Z komunikacją nie ma żadnego problemu, falownik odpowiada na wysłane do niego ramki zapytania.
Problem jest właśnie ze zdekodowaniem tych wartości które zwrócił falownik.
Wyjaśnię to na przykładzie:
wysyłam do falownika ramkę: 01 03 00 01 00 02 95 CB
i falownik odpowiada ramką: 01 03 04 E6 9A AB 43 D3 95
gdzie:
01 - adres falownika
03 - funkcja 3 odczytu rejestrow
04 - ilość bajtów danych
E6 9A AB 43 - dane wartość zmiennoprzecinkowa
D3 95 - crc
Problem jest właśnie ze zdekodowaniem tej wartości E6 9A AB 43 jako wartość decimal jest w przedziale 300.000 - 350.000 w tych okolicach pokazuje falownik na wyświetlaczu.
Prosił bym bardzo o podanie algorytmu jak taką liczbę zdekodować no chyba że jest taka funkcja w Delphi
która to realizuje, każde sugestie linki mile widziane.
Pozdrawiam