Datasocket - przyspieszenie pracy

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Bratt
Posty: 6
Rejestracja: 16 paź 2009 19:38
Wersja środowiska: LabVIEW 8.5

Datasocket - przyspieszenie pracy

Post autor: Bratt »

Witam serdecznie!

Jeśli wątek umieściłem w złym dziale to bardzo przepraszam i prosze o przeniesienie do odpowiedniejszego miejsca na froum ;).

Właśnie kończę projektować system złożony z dwóch kontrolerów Vision (V280 i V260) sterujących pracą kilku silników oraz Labview (w wersji 8.6)). Komunikacja między sterownikami a LV odbywa się z wykorzystaniem OPC servera dostarczonego przez Unitronics po portach szeregowych. W LV do komunikacji wykorzystuję Datasocket i z racji tego starałem się do minimum ograniczyć ilość zmiennych jakie będą wymieniane między sterownikami a LV. Pomimo tego cała aplikacja zdaje się działać bardzo wolno (czas odczytu zmiennej przez LV po jej zmianie w sterowniku wynosi nawet kilka s). Generalnie projektując układ w ten sposób nie spodziewałem się jakichś rewelacji jeśli idzie o czasy akwizycji, ale liczyłem, że będzie ona nieco szybsza (na poziomie ok 0,5 - 1 s). Stąd moje pytanie. Czy jest możliwość w jakiś sposób poprawić parametry odczytu (chodzi mi o odczyt już po zestawieniu połączenia, bo fakt, ze samo zestawianie połączenia trwa troszkę jest już dla mnie, dzięki waszej pomocy, oczywisty ;))?? Znalazłem informację o tym, że można ustawić Read AutoUpdate żeby dane odbierane były w jednym pakiecie (http://digital.ni.com/public.nsf/allkb/ ... enDocument) ale nie bardzo wiem gdzie to znaleźć i jak to ustawić. Jeśli ktoś z was miałby jakieś pomysły odnośnie tego w jaki sposób można poprawić parametry odczytu to bardzo proszę o jakąkolwiek pomoc.
W załączniku zamieszczam VI jednego z moich projektów (przygotowanego pod komunikację z jednym sterownikiem). Może w nim kryją się jakieś "opóźniające" pracę elementy, które można by zastąpić.

Z góry dziękuję za każdą sugestię i pomoc.

Pozdrawiam i życzę wszystkim spokojnych i wesołych Świąt ;]

EDIT
Sprawa już raczej nieaktualna. Po dokładniejszym przyjrzeniu się programowi okazało się, że opóźnienia przy odczycie pojawiają się jedynie we wskaźnikach, których wartości obliczane są przez LV, a sam odczyt z wykorzystaniem Datasocket przebiega zwykle dosyć sprawnie (mieści się w granicach 1s dla wskaźników graficznych, a w przypadku wskaźników numerycznych ok 0,3s). Tak więc opóźnienia wynikają najwyraźniej z małej "mocy obliczeniowej" mojego sprzętu ;]. Jedyna sprawa, która jeszcze mnie nęka to kwestia przechodzenia pomiędzy trybami pracy. Przejście z trybu Serwis do trybu Monitoring odbywa się niemalże w mgnieniu oka zaś przejście w drugą stronę trwa kilka sekund. Czy może być to spowodowane tym, że tryb Monitoringu opiera sie głównie na odczycie zaś tryb serwisowy na zapsisie?? Będę bardzo wdzięczny za ewentualne wskazówki, sugestie i pomysły dotyczące usprawnienia pracy mojego programu.

Dziękuję wszystkim, którzy zainteresowali sie tematem i przeczytali moje "wypociny" ;) .

Pozdrawiam.
Załączniki
OPC_project8(Zakladki_1sterownik).vi
(21.69 KiB) Pobrany 280 razy
ODPOWIEDZ