Strona 1 z 1

Opóźnienie w procedurze wywołania zew, pliku exe

: 06 kwie 2022 23:15
autor: Bob
run_exe.vi
plik
(43 KiB) Pobrany 98 razy
Na początku chciałem się przywitać z członkami tego forum. Przestudiowałem materiał zawarty w wielu watkach tego forum i nie znalazłem wskazówki do rozwiązania mojego problemu.
Dlatego prosiłbym o wsparcie w identyfikacji przyczyny znacznych opóźnień podczas wywoływania zewnętrznego programu (*.exe) przez LV.

Zbudowałem kod vi, który realizuje uruchomienie po 10 s procedury, która:
1. generuje sygnał,
2. zapisuje na dysku przebieg w pliku tekstowym "data.txt",
3. uruchamia zewnętrzny program "run.exe", który czyta dane z pliku "data.txt" i je przetwarza, po czym program ten generuje kolejny plik z danymi "data_out1.txt",
4. w ostatnim kroku powstały plik z danymi "data_out1.txt" jest wczytywany do LV i rysowany na wykresie.
W czasie całego pojedynczego cyklu mierze czas jego trwania.

Procedura działa, ale czas jej całkowitego (jeden cykl) wykonania wynosi ok. 24-26 s. Gdy wyrzucę sekwencje 2 (wywołanie programu exe), cały pojedynczy cykl trwa 1.5 sek.
Poza tym, gdy niezależnie uruchomię plik run.exe, klikając na niego myszką to: uruchomienie programu, wczytanie danych z pliku "data.txt", przetwarzanie, zapisane pliku wyjściowego "data_out1.txt" trwa ok. 2-3 s.

Czy samo LV wprowadza takie znaczące opóźnienia, czy ja gdzie popełniłem błąd?
Dziękuje za wszelkie komentarze. W załączniku znajduje się kod. a pod tym linkiem całość :
https://we.tl/t-0HAV9tAZn3

Re: Opóźnienie w procedurze wywołania zew, pliku exe

: 08 kwie 2022 12:27
autor: Pitol
Nie mam możliwości sprawdzenia tego run.exe w tej chwili, ale moje pytanie jest następujące:
Czy masz możliwość napisania funkcjonalności programu run.exe w LabVIEW?

Re: Opóźnienie w procedurze wywołania zew, pliku exe

: 20 kwie 2022 11:45
autor: Bob
Dzień dobry,
funkcjonalności algorytmu/programu run.exe można zaliczyć pośrednio do kwalifikatorów AdaBoost lub sieci neuronowych. Program/algorytm ma za zadanie wczytać ciąg 250 wartości liczbowych i porównać je z wzorcem. W zależności od postaci wczytanego ciągu na wyjściu z algorytmu otrzymuje plik tekstowy/wyjściowy zawierający liczbę binarną (00000 lub 01000 lub 00001... itd) wskazujący wartość odzwierciedlającą jeden z 5 stanów, która to wartość w dalszym etapie ma być wizualizowana na panelu.

Ponadto do tego programu/algorytmu przypisany jest też dodatkowy plik wejściowy zawierający wagi dla kwalifikatorów, które są aktualizowane co 1-2 godzin, wpływając na bazowy wzorzec.

Próbowałem to zrobić kiedyś w LV, lecz mnie to przerosło. Dlatego napisałem to w Pythonie i skompilowałem do exe.

Nie wiem czy taki skrótowy opis pomoże.

Dziękuje za zainteresowanie moim problemem.

Re: Opóźnienie w procedurze wywołania zew, pliku exe

: 27 kwie 2022 14:17
autor: Pitol
No to może w drugą stronę: próbowałeś to co chcesz w LV dopisać do pythona? :)

Szczerze nie spotkałem się z takim problemem jak opisujesz.
Proponuję dla hecy napisać szybko prosty program, który coś tam robi (np. dodaje 1 do tablicy) i sprawdzić, czy też tyle trwa jego uruchomienie.