Sterowanie diodami na sterowniku AVT 3016 przez RS232

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
endrju
Posty: 5
Rejestracja: 23 kwie 2009 16:06
Kontakt:

Sterowanie diodami na sterowniku AVT 3016 przez RS232

Post autor: endrju »

Witam

Zaczne od tego że posiadam szeregowy sterownik urządzeń AVT 3016, na sterowniku tym znajduje się 8 diod.
Mój problem polega na tym że mam napisać taki program w LabView8.5 aby można było przy jego pomocy sterować włączaniem i wyłączaniem 4 diod, każdej z osobna, które znajdują sie na tym sterowniku. Z tego co się dowiedzialem, przeglądając forum, będe musiał skorzystać z bloczków visa, tylko za bardzo nie wiem jak to zrobić. Sterownik do komputera połączony jest przez RS232.

Jak można się domyslec jestem początkującym użytkownikiem labview
i dlatego prosze o wszelką pomoc w rozwiązaniu tego problemu.

Pozdrawiam
Awatar użytkownika
Nowszy
Posty: 504
Rejestracja: 30 maja 2008 08:33
Wersja środowiska: LabVIEW 2011
Lokalizacja: Katowice
Kontakt:

Sterowanie diodami na sterowniku AVT 3016 przez RS232

Post autor: Nowszy »

Najpierw musisz się dowiedzieć (np z dokumentacji sterownika) jak steruje się tymi diodami. Innymi słowy: jakie komendy trzeba wysłać po RS232. Następnie sprawdź jakie są domyślne parametry transmisji dla tego urządzenia. Na koniec w LabVIEW wybierz Help>>Find Examples i wyszukaj Basic Serial Read and Write i złóż to wszystko do kupy
Pozdrawiam, Maciek Antonik
Edu4Industry
endrju
Posty: 5
Rejestracja: 23 kwie 2009 16:06
Kontakt:

Re: Sterowanie diodami na sterowniku AVT 3016 przez RS232

Post autor: endrju »

Witam

Zrobiłem tak jak mi radziłeś Nowszy i znalazlem informacje dotyczące sterowania tymi diodami, i wyglada to tak że(cytat z artykułu):

"Wyjścia od P1.2 do P1.7 oraz P3.2 -P3.3 sterują tranzystorami T1-T8, które z kolei układami wykonawczymi w postaci przekaźników. Diody D1-D8 sygnalizują stan przekaźników.."

Komendy przyjmowane przez sterownik są następujące:
urz:1 2 3 4 (tylko tyle potrzebuje)
on :1 3 5 7
off :0 2 4 6

Więc mam pytanie co z czym mam połączyć w przykłądzie Basic Serial Read and Write aby to działało??

Pozdrawiam
Awatar użytkownika
Nowszy
Posty: 504
Rejestracja: 30 maja 2008 08:33
Wersja środowiska: LabVIEW 2011
Lokalizacja: Katowice
Kontakt:

Sterowanie diodami na sterowniku AVT 3016 przez RS232

Post autor: Nowszy »

Po pierwsze musisz podłączyć kabel szeregowy z kompa do portu COM na tym sterowniku. Nie napisałeś jakie są domyślne parametry trabsmisji sterownika - w przykładzie po lewej stronie masz listę wszystkiego, co musisz wiedzieć (jak nie wiesz to zostaw jak jest i spróbuj). Wybierz tylko prawidłowy port COM w kompie - ten, do którego podłączyłeś urządzenie. Znów - jeśli nie wiesz który to, to spróbuj po kolei każdy COM.

Teraz w przykładzie przełącz wajchę 'read' na pozycję OFF i w pole komendy wpisz jedną z komend. Dobrze byłoby, gdybyś wcześniej mógł przetestować komunikację - poszperaj w dokumentacji sterownika, na pewno ma jakieś komendy kontrolne, na które odpowiada - wtedy możesz sprawdzić komunikację.
Pozdrawiam, Maciek Antonik
Edu4Industry
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Sterowanie diodami na sterowniku AVT 3016 przez RS232

Post autor: jogurt_owocowy »

Hej,
Dobrze byłoby jakbyś zamieścił tutaj dokumentację do tego sterownika, link do artykułu, który cytujesz itp. Pomóż sobie pomóc.
Po ściągnięciu gotowego (i w założeniu działającego) programu do sterowania tym sterownikiem stąd, poklikaniu guzikami do włączania/wyłączania diod i przeanalizowaniu danych zapisywanych do portu podczas klikania (za pomocą np. tego programu) można stwierdzić, że sterownik przyjmuje następujące komendy:

Kod: Zaznacz cały

 
LED |  ON   | OFF 
---- ------- -------
1   | 31 0D | 30 0D
2   | 33 0D | 32 0D
3   | 35 0D | 34 0D
4   | 37 0D | 36 0D
5   | 39 0D | 38 0D
6   | 62 0D | 61 0D
7   | 64 0D | 63 0D
8   | 66 0D | 65 0D 
Kolumna LED to numer diody, kolumna ON to dwubajtowa komenda, jaką należy wysłać do sterownika, żeby zapalić diodę o danym numerze, a kolumna OFF - komenda, jaką należy wysłać, żeby ją zgasić.
Teraz otwórz wspomniany przez Nowszego przykład (Help -> Find Examples... -> Hardware Input and Output -> Basic Serial Write and Read.vi) i zmodyfikuj jego diagram, tak jak pokazuje obrazek poniżej.
Przejdź na panel, kliknij prawym na kontrolce wewnątrz utworzonej tablicy command, z menu kontekstowego wybierz Format & Precision... i ustaw format jako heksadecymalny.
Teraz ustaw na panelu parametry połączenia (baud rate, data bits, etc.) i spróbuj wysłać do sterownika na przykład komendę, która zapali diodę nr 5, czyli wg tabelki - 39 0D (rys.).
Daj znać czy się udało.
PS. Zaraz po uruchomieniu tego gotowego programu do sterownika, wysyła on dwa bajty wyglądające na jakąś komendę kontrolną - 73 0D Jakby nie działało, to spróbuj ją wysłać najpierw.
Ostatnio zmieniony 29 paź 2009 10:31 przez jogurt_owocowy, łącznie zmieniany 5 razy.
endrju
Posty: 5
Rejestracja: 23 kwie 2009 16:06
Kontakt:

Re: Sterowanie diodami na sterowniku AVT 3016 przez RS232

Post autor: endrju »

Witam

Wielkie dzieki za pomoc, po dokonaniu zmian program działa i diody na sterowniku się wlaczaja i wylaczaja(przyklad w zalaczniku)

Chciałbym się jeszcze zapytać czy istnieje możliwość, aby po włączeniu programu, a przed naciśnięciem przycisku, nie trzeba by było wpisywać komend do wł/wył diod tylko od razu przy użyciu przycisku tego dokonać??
Mam gdzieś te komendy przypisać?? Jeśli tak to gdzie i jak to zrobić??

Pozdrawiam
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Sterowanie diodami na sterowniku AVT 3016 przez RS232

Post autor: jogurt_owocowy »

Trochę przekombinowałeś ] Do wysyłania komendy po naciśnięciu przycisku w zupełności wystarczy jedna pętla.
Popatrz na rysunek: W zależności od tego czy diodka została zapalona czy zgaszona, poza strukturę event wyrzucasz odpowiednią komendę. Ramki dla pozostałych trzech diodek wyglądają tak samo, różnią się tylko zakodowanymi komendami.
Osobny event przechwytuje naciśnięcie przycisku stop zatrzymującego program i wygląda mniej więcej tak. Z punktu widzenia wysyłania danych to bez znaczenia, ale to dobra praktyka.
Do przechwycenia zmiany wartości kontrolki używaj eventu Value Change, a nie Mouse Up.
Pozdrawiam
endrju
Posty: 5
Rejestracja: 23 kwie 2009 16:06
Kontakt:

Re: Sterowanie diodami na sterowniku AVT 3016 przez RS232

Post autor: endrju »

Witam
Na początek wielkie dzięki za pomoc z przyciskami. Wiem że troche przekombinowałem ale jak na początek to całkiem nieźle mi poszło napisanie programu:)

A teraz prosze o kolejną pomoc w rozwiązaniu 3 problemów.

Problem 1:
Mam napisany program (przedstawiony na rysunku poniżej) w którym następuje wczytanie z pliku obrazu (przy użyciu przycisku OK Button 3) a następnie dokonane jest pokazanie histogramu z zaznaczonego obszaru obrazu. Problem polega na tym że mogę zdjęcie wczytać tylko raz a chciałbym aby przy każdym naciśnięciu przycisku można było wczytać zdjęcie.

Problem 2:
Mam program w którym mogę obserwować jednocześnie przy użyciu 2 kamer przedmioty. Problem polega na tym że chciałbym móc zapisywać obserwowane przez kamery obrazy (z każdej kamery osobno)

Problem 3:
Zrobiłem program do niewielkiej analizy obrazu. Problem polega na tym że nie wiem jak zrobić zapisywanie zdjęcia wyjściowego po analizie. Program ten został zrobiony przy użyciu Vision Assistant8.0 z którego stworzono program w labview.
DO wczytania obrazu wykorzystane zostanie rozwiązanie znajdujące się w problemie 1 (bo chodzi o to aby zdjęcie wczytane do pokazania histogramu wykorzystać także do analizy) o ile zostanie rozwiązany:).

Wszystkie te programy zostały zrobione w labview 8.5.1 z wykorzystaniem dodatku IMAQ.

Dla niektórych te problemy mogą okazać się łątwe ale dla mnie są to jak narazie problemy nie do przejścia (może są za łatwe i dlatego nie wiem jak sobie z nimi poradzić:).).
Za wszelką pomoc wielkie dzięki.

Pozdrawiam
ODPOWIEDZ