UT60A pod LabView

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
Jate
Posty: 14
Rejestracja: 06 sty 2012 17:23
Wersja środowiska: LabVIEW 2010

UT60A pod LabView

Post autor: Jate »

Witam,poszukuję informacji:
jak wysłać dane z multimetru UT60A pod LabView wykorzystując RS 232
dla tego modelu nie ma sterowników w LabView
Pozdrawiam
AGF
Posty: 109
Rejestracja: 26 lut 2010 13:41
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: UT60A pod LabView

Post autor: AGF »

Google pomogło, ktoś wałkował temat na elektrodzie, wystarczy zaimplementować protokół miernika http://www.elektroda.pl/rtvforum/topic404247.html
Jate
Posty: 14
Rejestracja: 06 sty 2012 17:23
Wersja środowiska: LabVIEW 2010

Re: UT60A pod LabView

Post autor: Jate »

Witam przeglądałem temat na elektrodzie ale dla mnie to czarna magia. Jestem laikiem w tych sprawach
Awatar użytkownika
Pitol
Moderator
Posty: 983
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: UT60A pod LabView

Post autor: Pitol »

Jate pisze:Witam przeglądałem temat na elektrodzie ale dla mnie to czarna magia. Jestem laikiem w tych sprawach
W jakich sprawach? Temat podesłany przez AGF bardzo precyzyjnie wyjaśnia jak to zrobić. I nie mówię tu o LabVIEW, tylko o ogólnym zrozumieniu sposobu komunikacji. W temacie tym jest dokładnie wypisane jak skonfigurować połączenie (baud rate, parity, itp.) oraz jaką ramkę wysyła urządzenie.
Ramka ma 14 bajtów, każdy coś znaczy. Przeczytaj to raz jeszcze, rozpisz sobie na kartce rozkład bajtów i ich znaczenie a następnie przemyśl (w dowolnym języku) jak to zaimplementować. A potem weź się do pracy (już w LabVIEW). Jak napotkasz problem, np. z ustawieniem komunikacji, to pisz na forum (ale najpierw użyj funkcji szukaj bo na pewno gdzieś to było już). Proponuję najpierw podłączyć urządzenie i odczytać parę ramek. Potem możesz powoli brać się za wyciąganie danych z kolejnych ramek. W razie problemów - pisz... Po to tu jesteśmy. Forum nie jest od tego, żeby dostarczać gotowe rozwiązania, ale po to, by pomagać w ich przygotowywaniu.A przynajmniej tak mi się wydaje...
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Jate
Posty: 14
Rejestracja: 06 sty 2012 17:23
Wersja środowiska: LabVIEW 2010

UT60A pod LabView

Post autor: Jate »

Witam, jest postęp
miernik komunikuje się z programem. Ramka ma 14 bajtów.
Odbieram strumień, ale nie wiem jak go zamienić tak aby otrzymać to co na wyświetlaczu miernika.
Potrzebuje dane z zakresu 4V AC
dołączam opis ramki UT60A
i moje pierwsze próby z LabView.
Załączniki
UT60A_opis ramki.pdf
(17.03 KiB) Pobrany 386 razy
UT60A.vi
(13 KiB) Pobrany 371 razy
UT60A_panel.jpg
UT60A.jpg
Awatar użytkownika
fajfi
Posty: 185
Rejestracja: 28 sty 2004 00:00
Wersja środowiska: LabVIEW 2010
Lokalizacja: Wrocław

Re: UT60A pod LabView

Post autor: fajfi »

Cześć,
jak już ktoś napisał, na elektrodzie: http://www.elektroda.pl/rtvforum/topic404247.html
jest dobrze opisana ramka miernika UT60E.
Nie wiem czym różnią się oba mierniki, ale wygląda na to, że ramka jest bardzo podobna, różnice mogą wystąpić w odczycie jednostek czy mnożników.
Jeśli chodzi o same dane to idea jest prosta (autor z elektrody już to napisał, ale postaram się wyłożyć to jak najprościej):
cała ramka składa się z 14 bajtów. Zatem musisz te bajty odczytać. Każdy taki bajt składa się z dwóch połówek - starszej i młodszej.
Starsza, to po prostu zapisany szesnastkowo numer bajtu, zaś użyteczna informacja leży w młodszej połówce.
Aby odczytać same cyfry wystarczy wziąć bajty od drugiego do dziewiątego. Następnie usuwamy starsze połówki, a potem sklejamy ze sobą młodsze połówki w ten sposób:
2 z 3, 4 z 5, 6 z 7, 8 z 9.
*Dostajemy wtedy 4 bajty danych.
W bajtach 10 - 14 zawarta jest informacja o trybie pomiarowym, mnożnikach i jednostkach, ale tego już nie będę powtarzał, na elektrodzie wyjaśniono to bardzo jasno.

Liczby na wyświetlaczu są zapisane w kodzie "siedmiosegmentowym".
Odpowiedni rysunek znajduje się w przytoczonym linku.
Każdy segment ma swój numer od 1 do 7, zaś 8 oznacza przecinek w przypadku cyfr od 2 do 4, bądź minus w przypadku pierwszej cyfry.
Taki numer stanowi jakby adres segmentu. Segment może przybierać dwie wartości: 1 gdy jest zapalony i 0 gdy jest zgaszony.

Wróćmy teraz do wspomnianych 4 bajtów danych, o których pisałem w linijce oznaczonej *.
Każdy taki bajt składa się z 8 bitów.
Zapewne dostaniesz liczbę w zapisie szesnastkowym, dobrze ją przerobić do zapisu dwójkowego.
Pozycja bitu (licząc od prawej czyli od najmłodszego) jest właśnie adresem - numerem segmentu.
Wartość bitu oznacza czy segment jest zapalony czy zgaszony.
Cyfry otrzymuje się przez zapalanie odpowiednich segmentów (patrz rysunek na elektrodzie). Podam tu dwa przykłady:
cyfrę 1 dostaniemy, gdy świecą się segmenty 1. i 3., a zatem będzie to liczba 00000101 czyli 5.
cyfrę 2 otrzymamy, gdy świecą się segmenty 5, 1, 2, 7 i 4, daje to liczbę 01011011 czyli 91 a w zapisie 16-owym będzie to 5B.
Teraz musisz zrobić sobie tablicę 10 elementową, która przetłumaczy odpowiednią wartość szesnastkową na cyfrę pokazaną na wyświetlaczu.

Załączam kod, który użyłem do miernika UT60E, może się przyda?
Brakuje tam części związanej z jednostkami, gdyż używam go tylko do pomiaru napięcia stałego.
Program nie jest zbyt elegancki, ale pisałem go, gdy stawiałem dopiero pierwsze kroki w LV, teraz tylko tak na szybko go poprawiłem.
Co do jednostek i innych takich musisz już sam pokombinować.
Pozdrawiam
Fajfi
Załączniki
ut60e-prostsze.vi
(66.63 KiB) Pobrany 381 razy
Jate
Posty: 14
Rejestracja: 06 sty 2012 17:23
Wersja środowiska: LabVIEW 2010

UT60A pod LabView

Post autor: Jate »

Witam, dzięki za pomoc. Ruszyłem z miejsca.
Na razie uzyskałem powtarzalność odczytu stringa z miernika.
Odebrana ramka jest zgodna z opisem podanym w załączniku.
Obrałem kierunek wydzielenia ze strumienia poszczególnych bajtów.
Pozdrawiam
ODPOWIEDZ