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

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.
Bob
Posty: 2
Rejestracja: 06 kwie 2022 22:46
Wersja środowiska: LabVIEW 2019

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

Post autor: Bob »

run_exe.vi
plik
(43 KiB) Pobrany 93 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
Ostatnio zmieniony 07 kwie 2022 00:16 przez Bob, łącznie zmieniany 1 raz.
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

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

Post 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?
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Bob
Posty: 2
Rejestracja: 06 kwie 2022 22:46
Wersja środowiska: LabVIEW 2019

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

Post 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.
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

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

Post 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.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
ODPOWIEDZ