ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

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
(191 Views)