Список форумов   Список форумов  

Некорректная работа подприборов

Всё о программировании на Labview

Модераторы: Техподдержка NI, Robert, Модератор

Некорректная работа подприборов

Сообщение Meteor » Ср ноя 07, 2012 8:32 pm

Доброго времени, уважаемое сообщество.
Потребовалось отслеживать группу событий с формированием меток времени. Если быть точнее в потоке определять начало данных и их окончание.
Для этого был разработан подприбор "детектор фронта", суть работы которого заключена в определении переходов "нет данных - первые данные" и "последние данные - нет данных" (можно нарисовать импульс и отождествить с его фронтами).
Далее был разработан узел, с применением Get Date/Time in Second и Get Date/Time string. Суть узла - при наступлении события выдать в строку данные о времени (часы, минуты, секунды). (На скрине находится в case два одинаковых узла, к ним проведены стрелки)
Данный узел был оттестирован и после того, как проверена правильность его работы (выдавались 2 строки с временем нажатия и отпускания кнопки) свернут до подприбора для экономии места и наведения эстетики (стрелка к нижней части).
После размещения двух подприборов началась какая-то галиматья. При включении тумблера строка отображения времени принимает одинаковые значения в обоих подприборах (хотя должна в только в одном их них). То же самое и при отключении.
Далее, были поставлены два узла не свернутые до подприборов. И проведено тестирование. Итог таков: узлы свернутые в подприбор - работают некорректно, узлы не свернутые в подприбор работают как положено (скрин).
Попытка комбинировать подприбор (один) с узлом - дает правильный результат работы. Красным выделены строки с выводом времени "фронтов", синим - строки одноименных событий "включение тумблера" (вверху) и "выключение тумблера" (внизу).
Отладка показала, что в строках подприборов данные меняются так: сперва в строке 1 появляются данные (начало), затем они же появляются в строке 2, далее новое значение появляется в строке 2 (окончание потока), затем, через 1 такт эти же данные сменяют запомненное значение в строке 1.
Признаюсь, потратив около часа на эти казусы не нашел никакого вразумительного объяснения.
Собственно вопрос таков: это вина программы или моя? Если моя, то как исправить ситуацию? Использую LabView 8.5
Вложения
prec_fp.JPG
Передняя панель
prec_fp.JPG (21.19 KiB) Просмотров: 1184
prec.JPG
Блок схема
prec.JPG (46.26 KiB) Просмотров: 1184
Meteor
Активный пользователь
 
Сообщений: 31
Зарегистрирован: Пт фев 04, 2011 1:28 pm

Re: Некорректная работа подприборов

Сообщение IvanLis » Чт ноя 08, 2012 12:51 pm

Meteor писал(а):Отладка показала, что в строках подприборов данные меняются так: сперва в строке 1 появляются данные (начало), затем они же появляются в строке 2, далее новое значение появляется в строке 2 (окончание потока), затем, через 1 такт эти же данные сменяют запомненное значение в строке 1.
Признаюсь, потратив около часа на эти казусы не нашел никакого вразумительного объяснения.
Собственно вопрос таков: это вина программы или моя? Если моя, то как исправить ситуацию? Использую LabView 8.5

дело в том, что SubVI в Вашем случае запускаются/вызываются последовательно
сделайте их "реентеральными", что бы запускалось несколько копий одной SubVI
1.png
1.png (27.11 KiB) Просмотров: 1174

должно все заработать нормально...
Реентерабельность: http://ru.wikipedia.org/wiki/%D0%A0%D0% ... 1%82%D1%8C
Reentrant VIs: http://digital.ni.com/public.nsf/allkb/ ... 59006B57CC
Знание нескольких принципов освобождает от знания многих фактов!

Живу я здесь ||| LabVIEW Portal in Google+
IvanLis
Специалист LabVIEW
 
Сообщений: 491
Зарегистрирован: Пн апр 23, 2007 1:44 pm
Откуда: СССР

Re: Некорректная работа подприборов

Сообщение Meteor » Чт ноя 08, 2012 7:03 pm

IvanLis писал(а):сделайте их "реентеральными", что бы запускалось несколько копий одной SubVI...
должно все заработать нормально...

Сделал, заработали как положено. Спасибо!
Meteor
Активный пользователь
 
Сообщений: 31
Зарегистрирован: Пт фев 04, 2011 1:28 pm


Вернуться в LabVIEW

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron