Witam
Mam dość prozaiczny problem, odczytuję dane z rejestratora po RS485, wysyłając ramkę otrzymuję odpowiedź jedynasto bajtową: 0103 0629 EF00 0000 03B3 5A. I wszystko ładnie wygląda 29 EF oznacza wartość a trzeci od końca bajt "03" oznacza miejsce po przecinku czyli 10,735. Problem mam z tym żeby wydzielić z tego ciągu bajtów ten wyniki i zapisać go z przecinkiem. Cały czas próbuję to wykonać, będę wdzięczny za podpowiedź jak tego dokonać.
Pozdrawiam
Krzysiek
Wydzielenie bajtów i zapisanie ich w dec z przecinkiem
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Wydzielenie bajtów i zapisanie ich w dec z przecinkiem
Pracujesz na stringach więc: Match Pattern bloczek aby podzielić liczbę na wartość przed i po przecinku. Następnie złącz oba elementy z przecinkiem między i wrzuć to w bloczek Fractional String to Number (lub o podobnej nazwie).
EDIT: zapomniałem, że to w hexie jest. To musisz jeszcze zamienić stringi w hex na dec. Nie chce mi się kombinować, więc najprościej: hex(string) -> dec(num) -> dec(string) -> połączyć obie liczby -> frac(string) -> frac(num).
EDIT: zapomniałem, że to w hexie jest. To musisz jeszcze zamienić stringi w hex na dec. Nie chce mi się kombinować, więc najprościej: hex(string) -> dec(num) -> dec(string) -> połączyć obie liczby -> frac(string) -> frac(num).
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Re: Wydzielenie bajtów i zapisanie ich w dec z przecinkiem
hehehe, Chyba miales na mysli, ze pracuje "w stringach"Pitol pisze:Pracujesz na stringach więc: Match Pattern bloczek aby podzielić liczbę na wartość przed i po przecinku. Następnie złącz oba elementy z przecinkiem między i wrzuć to w bloczek Fractional String to Number (lub o podobnej nazwie).
- Załączniki
-
- moze cos takiego ci pomoze...
- aaa.png (11.01 KiB) Przejrzano 8663 razy
Wydzielenie bajtów i zapisanie ich w dec z przecinkiem
Dzięki za szybką odpowiedź. Wykonałem to bardzo prosto, String To Byte Array - Index Array - Join Numbers i na koniec żeby uzyskać przecinek to podzieliłem wartość przez 1000 bo 3 zera mam i zawsze tak będzie nie inaczej. Widzę tylko że jak jest np 6,230 to pokazuje 6,23.
Pozdrawiam
Krzysiek
Pozdrawiam
Krzysiek
Wydzielenie bajtów i zapisanie ich w dec z przecinkiem
Witam,
mam podobny problem
odczytuję ramkę danych w postaci string po RS, która składa się z 14 bajtów
19 25 3B 4F 5D 60 75 83 9E A0 B0 C0 D4 E8
wydzielam bajt 25 i 3B
Moje pytanie jak usunąć numery bajtów a następnie skleić dane 5 i B tak aby powstał bajt o wartości 5B
Próbowałem różnych kombinacji ale nic nie wychodzi.
mam podobny problem
odczytuję ramkę danych w postaci string po RS, która składa się z 14 bajtów
19 25 3B 4F 5D 60 75 83 9E A0 B0 C0 D4 E8
wydzielam bajt 25 i 3B
Moje pytanie jak usunąć numery bajtów a następnie skleić dane 5 i B tak aby powstał bajt o wartości 5B
Próbowałem różnych kombinacji ale nic nie wychodzi.
- Załączniki
-
- UT60A v3.vi
- (16.99 KiB) Pobrany 479 razy
Re: Wydzielenie bajtów i zapisanie ich w dec z przecinkiem
Rozwiązanie jest proste korzystając z operatorów logicznych z palety Boolean, które oprócz pracy z wartościami logicznymi 0,1 pracują też z liczbami całkowitymi. W załączniku rozwiązanie problemu.
- Załączniki
-
- Kod programu
- składanie.png (19.96 KiB) Przejrzano 8567 razy
-
- sklejenie dwóch bajtów.vi
- Wersja 2010
- (9.03 KiB) Pobrany 457 razy
-
- sklejenie dwóch bajtów.vi
- (10.99 KiB) Pobrany 466 razy
Certified LabVIEW Associate Developer