Kit AVT2787 i LabVIEW

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
horu
Posty: 6
Rejestracja: 13 maja 2014 11:28
Wersja środowiska: LabVIEW 2016

Kit AVT2787 i LabVIEW

Post autor: horu »

Witam wszystkich.
Dopiero zaczynam programowanie w LV i potrzebuję Waszej pomocy. Mam poskładany zestaw według instrukcji z avt: http://serwis.avt.pl/manuals/AVT2787.pdf. Jedyna różnica to zastosowanie czujników DS18B20, ale to w zasadzie nie robi żadnej różnicy (chociaż co do tego mogę się mylić). Po podłączeniu do komputera i odpaleniu programu ze strony avt wszystko działa jak powinno, nawet dla większej ilości czujników.
Jednak moim zadaniem jest zrobienie programu w LV, który będzie mógł obsłużyć ten zestaw, tak by dało się przedstawić dane z pomiarów w formie wykresu i ostrzegać przy przekroczeniu zadanej temperatury. Niestety, jako że jestem w tym temacie zielony nie mam pojęcia jak się za to zabrać. Próbuję coś działać z VISA serial, ale póki co bez skutku.
Bardzo proszę o pomoc, bo sam chyba nie dam sobie z tym rady.
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Kit AVT2787 i LabVIEW

Post autor: Pitol »

Witaj,

Skoro jesteś zielony to polecam zacząć od: Help -> Find Examples

Tam znajdziesz przykłady komunikacji (VISA) i wiele innych pomocnych kawałków kodu.
W razie problemów pisz, wskazując konkretnie gdzie utknąłeś.
Na ogólne "błagania" typu "NIE DZIAŁA/NIE UMIEM" nie uzyskasz odpowiedzi ;)
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
horu
Posty: 6
Rejestracja: 13 maja 2014 11:28
Wersja środowiska: LabVIEW 2016

Kit AVT2787 i LabVIEW

Post autor: horu »

Od oglądania przykładów zacząłem, więc jestem w stanie nawiązać zwykłą komunikację przez rs232. Mój problem wynika raczej z tego, że DS18B20 to układy 1-wire i nie wiem, czy możliwe jest używanie ich spod czystego LV.
Póki co moje poszukiwania doprowadziły mnie do rozwiązania opartego na TMEX API, tylko tutaj nie jestem pewien, czy zadziała to z tego typu adapterem, czy trzeba mieć taki specjalny.

To jeszcze jedna rzecz. Property node pozwala na ustawianie stanu konkretnego pinu portu rs232 na taki jak chcę, prawda? Z opisu w helpie tak wywnioskowałem, ale wolę się upewnić :)
darekc
Posty: 77
Rejestracja: 29 mar 2007 00:00
Lokalizacja: Gliwice

Re: Kit AVT2787 i LabVIEW

Post autor: darekc »

horu
Posty: 6
Rejestracja: 13 maja 2014 11:28
Wersja środowiska: LabVIEW 2016

Kit AVT2787 i LabVIEW

Post autor: horu »

Dzięki za linka, przeczytałem co tam napisali i trochę mi to pomogło. Niestety dalej nie jestem w stanie napisać programu do odczytu temperatury. Z tego co do tej pory wyczytałem w teorii jest to proste. To co po kolei muszę zrobić to:
1. Wysłać sygnał resetu [0F]
2. Odebrać sygnał od czujnika, żeby sprawdzić czy tam jest
3. Wysłać sygnał do odczytu numeru ROM czujnika [33]
4. Odczytać i najlepiej zapisać ten numer
5. Wysłać sygnał "skip ROM" [CC], bo na razie i tak jest jeden czujnik
6. Wysłać sygnał konwersji temperatury [44]
7. Powtórzyć 1., 2. i 5.
8. Wysłać sygnał odczytu pamięci czujnika [BE]
9. Przeczytać odpowiedź i gdzieś zapisać

To co jest w nawiasach kwadratowych to komendy w formie szesnastkowej, które służą do komunikacji z układem. Wyciągnąłem je z datasheeta, więc raczej są ok.
Teraz tylko takie pytanie. Czy za pomocą VISA Write mogę tak po prostu wysyłać te komendy, czy najpierw muszę je jakoś przekonwertować do innej postaci?
I jeszcze jak mogę odebrać sygnał z pktu 2. Z tego co wiem czujnik wstawia wtedy po prostu stan wysoki na linię danych i tyle. Można użyć do tego VISA Read, czy w jakiś inny sposób to zrobić?

PS w poprzednich postach się pomyliłem. Chodzi o układy DS18S20, różnią się nieco od 18B20, ale ogólna zasada działania jest ta sama.
darekc
Posty: 77
Rejestracja: 29 mar 2007 00:00
Lokalizacja: Gliwice

Re: Kit AVT2787 i LabVIEW

Post autor: darekc »

Aby przesłać do czujnika bajt o wartości np. 44h musisz za pomocą obiektu VISA Write nadać ciąg bajtów: 00h, 00h, FFh, 00h, 00h, 00h, FFh, 00h z prędkością 115200 b/s. Wysłanie bajtu 00h odpowiada wysłaniu bitu o wartości 0, bajtu FFh bitu o wartości 1.

Zerowanie jest prowadzone w ten sposób, że z prędkością 9600 b/s wysyła się bajt F0h, jeśli odbierze się bajt o wartościach od 10h do 90h to oznacza to, że do magistrali podłączony jest co najmniej 1 czujnik.

Bajty wysyłane przez łącze RS232C muszą mieć format: 8 bitów danych, bez bitu kontrolnego, 1 bit stopu.

Jeśli czujnik jest tylko jeden to czynności z punktów 3-4 nie są potrzebne.
horu
Posty: 6
Rejestracja: 13 maja 2014 11:28
Wersja środowiska: LabVIEW 2016

Kit AVT2787 i LabVIEW

Post autor: horu »

Dzięki za wyjaśnienie jak rozmawiać z tym czujnikiem. Oczywiście od razu spróbowałem wykorzystać te informacje, ale z marnym skutkiem. W załączniku dodałem vi, które stworzyłem na szybko tylko w celu sprawdzenia, czy tak się uda.
To co chciałem osiągnąć to wysłanie sygnału resetu i zobaczenie jak (i czy w ogóle) czujnik zareaguje. Niestety na wyjściu nie mam żadnej odpowiedzi.

Czy dobrze użyłem visa write do wysłania bajtu F0h i odebrania odpowiedzi, czy jednak coś pomieszałem?
Załączniki
Bez nazwy.png
darekc
Posty: 77
Rejestracja: 29 mar 2007 00:00
Lokalizacja: Gliwice

Re: Kit AVT2787 i LabVIEW

Post autor: darekc »

No tak, trzeba popatrzeć na schemat układu... Nie ma możliwości odbioru tego, co wyślesz przez UART-a. Spróbuj tak:

1. za pomocą VISA Property Node wymuś napięcie dodatnie na linii DTR portu RS232 - układ termometru jest zasilany z tej linii;
2. w menu podręcznym stałej tekstowej zaznacz '\' Codes Display, umieść w niej \F0 i wyślij to przy użyciu obiektu VISA Write - zostanie wtedy nadany bajt o zawartości F0h. Jeśli prędkość transmisji będzie ustawiona na 9600 b/s wtedy czas trwania stanu niskiego na linii DQ czujnika wyniesie 512 us, zatem zostanie to przez czujnik zinterpretowane jako sygnał zerowania;
3. za pomocą kolejnego VISA Property Node sprawdź, jaki jest stan linii CTS portu RS232.

Podaj wynik próby.
horu
Posty: 6
Rejestracja: 13 maja 2014 11:28
Wersja środowiska: LabVIEW 2016

Kit AVT2787 i LabVIEW

Post autor: horu »

Wiesz, ja tak na prawdę po prostu dostałem ten układ i mam go zaprogramować. Z elektroniki nie jestem najlepszy, ale jak pytałem kolegę, który się na tym zna to nie zwrócił na to uwagi. Tym bardziej dziękuję Ci za pomoc.

Co do labview, to zrobiłem tak jak napisałeś, ale stan linii CTS ciągle pokazuje 0.
Dołączam screena ze zmodyfikowanym vi.
Załączniki
LV2.png
ODPOWIEDZ