InstrumentStudio

cancel
Showing results for 
Search instead for 
Did you mean: 

VISA Queue

Здравствуйте, хочу обратиться за помощью с моим кодом по управлению расходомером.

Я использую принцип State Machine для управления, мониторингом прибора Bronkhorst EL-FLOW. 


У меня на данный момент реализовано 3 состояния: run, initialization, start, close. (Да, названия специфичные) 

В событие run - идет обработка с правильным подключением по RS-232.

Далее идет событие по нажатию кнопок: initialization, start 
В событие initialization пользователь сможет посмотреть и написать свои команды для расходомера (пока это больше тестовый кейс для меня) 
В событие start уже идет управление прибором (подается сигнал управления и получение графической информации) 

 

Столкнулся с проблемой:

1) Во-первых, я не совсем понимаю, как можно ловить ошибку, вызванную VISA при отключение прибора (назовем это аварийной ситуацией). Одно дело вылавливать через bundle выходные ошибки блоков, обработать их в Error/No Error и посылать очередь на перезапуск кода, но у меня есть SubVI который используется для парсинга адресов + обработка в основном коде. И если в моменте работы программы выключить прибор, то программа просто зависнет, но я бы хотел чтобы она ушла в состояние RECOVER и попытался переподключиться (условно за 2-3 минуты) 
2) Во-вторых, бывает случаи когда переходы между состояниями зависают и я начинаю прыгать из одного в другое (как будто начинается гонка по событиям) 

Если вы дадите мне рекомендации, я буду очень благодарен вам
Заранее благодарю за ответ

(Код и SubVI тоже предоставляю) 

Download All
0 Kudos
Message 1 of 1
(116 Views)