Opóźnienie odczytu z VISA przy odczycie wejść analogowych

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
Zer0
Posty: 29
Rejestracja: 25 sty 2010 23:23
Wersja środowiska: LabVIEW 2014
Lokalizacja: Olsztyn

Opóźnienie odczytu z VISA przy odczycie wejść analogowych

Post autor: Zer0 »

Szanowni,

Taki oto program działa sobie na 2 stanowiskach:
1) testowym, gdzie do pracy zaprzęgnięta została karta NI USB-6008
2) produkcyjnym, wyposażonym w kartę NI USB-6343 X Series
główny vi
główny vi
Do urządzenia podłączona jest klawiatura przemysłowa do zadawania wartości sterujących, obsługiwana za pomocą przejściówki RS-USB (CH340). Wszystko niby działa, aplikacja reaguje na klawiaturkę bardzo płynnie, natomiast jak tylko startuje odczyt wejść analogowych aplikacja potrzebuje ok 2-3 sekund na zareagowanie na przyciski klawiaturki. Aplikacja sama w sobie raczej nie zwalnia, bo reaguje całkiem szybko na zmianę stanu czujników krańcowych lub na sterowanie przyciskami za pomocą myszy. Czy ktoś może mieć jakieś podejrzenia, jaki chochlik powoduje takie opóźnienia? Oczywiście na stanowisku testowym nie występują żadne opóźnienia, natomiast na produkcyjnym odczyt klawiaturki się okrutnie wiesza.

DAQ Assistant skonfigurowany jest do odczytu / zapisu na '1 sample on demand'. Zmiana parametru na 'continous' powoduje w krótkim czasie błąd mówiący o tym, że hardware nie nadąża, zaś 'n samples' nie wprowadza praktycznie żadnej zmiany w stosunku do '1 sample on demand'.

2 bloczki zaznaczone czerwonymi kółkami zawierają następującą strukturę:
otwarcie sesji visa
otwarcie sesji visa
odczyt
odczyt
Awatar użytkownika
aaddaas
Posty: 202
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

Opóźnienie odczytu z VISA przy odczycie wejść analogowych

Post autor: aaddaas »

Możesz podrzucić vi? Bo wybitnie źle się czyta z takich obrazków...
Inna sprawa, to jest konfiguracja DAQ ADC, bo być może to na niego czekasz, aż zareaguje.
Ogólnie, to nadużywasz Local Variable, oraz frame structure, przez to możesz sam wprowadzać sobie opóźnienia, lub odczywtywanie błędnych wartości.
Obrazek
Awatar użytkownika
micard
Posty: 207
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2017
Kontakt:

Re: Opóźnienie odczytu z VISA przy odczycie wejść analogowych

Post autor: micard »

Wyrzuć CH340!!
To chińskie ustrojstwo mi również przyprawiło sporo problemów. Niespójne sterowniki, opóźnienia, brak kontroli parzystości to tylko kilka z problemów.

Do racjonalnych zastosowań proponuję ukłdy na bazie FTDI - są droższe, ale pewne.

Do zastosowań na produkcji świetnie sprawdzają mi się urzadzenia firmy MOXA - górna póła, nie sa najtańsze, ale od lat żaden nie sprawił mi problemu
Awatar użytkownika
Zer0
Posty: 29
Rejestracja: 25 sty 2010 23:23
Wersja środowiska: LabVIEW 2014
Lokalizacja: Olsztyn

Re: Opóźnienie odczytu z VISA przy odczycie wejść analogowych

Post autor: Zer0 »

Czołem! Dzięki za zainteresowanie :)
aaddaas pisze:Możesz podrzucić vi? Bo wybitnie źle się czyta z takich obrazków...
Inna sprawa, to jest konfiguracja DAQ ADC, bo być może to na niego czekasz, aż zareaguje.
Ogólnie, to nadużywasz Local Variable, oraz frame structure, przez to możesz sam wprowadzać sobie opóźnienia, lub odczywtywanie błędnych wartości.
Tak, mogę wrzucić kilka vi. Na razie tych najbardziej niezbędnych.
MAIN.vi
(291.95 KiB) Pobrany 388 razy
Tasti_Open.vi
(25.68 KiB) Pobrany 396 razy
Tasti_232.vi
(41.21 KiB) Pobrany 413 razy
Local variable da się wyrzucić, jeśli to one mogą wprowadzać opóźnienia. Rzeczywiście usunięcie wewnętrznej ramki trochę przyspiesza działanie aplikacji. Może zatem lepiej komunikację ze światem zewnętrznym zamiast na DAQ Assistant oprzeć o takie oto rozwiązanie:
png.png
png.png (9.08 KiB) Przejrzano 7290 razy
Wydaje się, że mam większą kontrolę nad tym, co robi LV
micard pisze:Wyrzuć CH340!!
To chińskie ustrojstwo mi również przyprawiło sporo problemów. Niespójne sterowniki, opóźnienia, brak kontroli parzystości to tylko kilka z problemów.
Do racjonalnych zastosowań proponuję ukłdy na bazie FTDI - są droższe, ale pewne.
Do zastosowań na produkcji świetnie sprawdzają mi się urzadzenia firmy MOXA - górna póła, nie sa najtańsze, ale od lat żaden nie sprawił mi problemu
CH340 nigdy nie sprawiał mi większych problemów. Szczególnie kiedy szczegóły transmisji 232 były mi dokładnie znane. Poza tym komunikacja przez CH340 chodzi na sprzęcie testowym, a na sprzęcie produkcyjnym działa do momentu, kiedy zaczynam odczytywać dane analogowe.
Awatar użytkownika
aaddaas
Posty: 202
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

Opóźnienie odczytu z VISA przy odczycie wejść analogowych

Post autor: aaddaas »

Nie analizując całego programu już masz race condition w TASTI_232.vi Wpisujesz wartość do indykatora Odczyt, a jednocześnie z niego czytasz przy pomocy Local Variable. NIE jesteś w stanie na 100% mieść pewność, że uda Ci się do niej coś wcześniej wpisać, zanim z niej zaczniesz czytać. Popraw to i sprawdź czy coś się zmieniło

***EDYTA

Druga sprawa jest ze zbieraniem danych.
Przechwytywanie.PNG
W zależności od wartości kontrolki "stan" Case structure będzie się wykonywał wykorzystując lub nie dane z ADC. Lepiej już wrzcić ADC do środka Case Structure, bo będzie czekał na dane wtedy, gdy spodziewasz się je wykorzystać.
Obrazek
ODPOWIEDZ