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

Обновляемое string поле ошибки

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

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

Обновляемое string поле ошибки

Сообщение cyro » Вс май 05, 2013 3:01 pm

Доброго времени суток.
У меня возникла проблема в создании обновляемого string поля ошибки. Собственно обработка ошибок у меня выглядит следующим образом:
Изображение
Как сделать так, чтобы в "Окне индикации" записывалась и не пропадала каждая возникающая ошибка?
cyro
 
Сообщений: 3
Зарегистрирован: Вс май 05, 2013 2:48 pm

Re: Обновляемое string поле ошибки

Сообщение IvanLis » Вс май 05, 2013 9:51 pm

cyro писал(а):Как сделать так, чтобы в "Окне индикации" записывалась и не пропадала каждая возникающая ошибка?

Создайте строковый массив.
И при возникновении ошибки, записывайте в него. Соответственно, если ошибки нет, то не пишите.
Отображать массив...
Знание нескольких принципов освобождает от знания многих фактов!

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

Re: Обновляемое string поле ошибки

Сообщение cyro » Пн май 06, 2013 8:28 am

Спасибо, сделал как Вы посоветовали, но мне не совсем понятно, как в этот массив все таки записывать с сохранением предыдущего значения? Остановился на такой блок-диаграмме, но не уверен, что она правильная.
Изображение
cyro
 
Сообщений: 3
Зарегистрирован: Вс май 05, 2013 2:48 pm

Re: Обновляемое string поле ошибки

Сообщение IvanLis » Пн май 06, 2013 9:26 am

cyro писал(а):Спасибо, сделал как Вы посоветовали, но мне не совсем понятно, как в этот массив все таки записывать с сохранением предыдущего значения? Остановился на такой блок-диаграмме, но не уверен, что она правильная.

По идее у Вас в цикле должно все вращаться, вот и передавайте массив через сдвиговый регистр.

На скринах, я неверно условие задал. Я сделал "интервал", а Вам нужно "равенство". Но смысл думаю понятен.
1.png
Запись ошибки в массив
1.png (27.3 KiB) Просмотров: 1997

2.png
Если ошибки нет, то ничего не пишем
2.png (25.24 KiB) Просмотров: 1997

Только при перезапуске программы, массив сбросится.
Так что продумайте, каким образом организовать программу.....
Знание нескольких принципов освобождает от знания многих фактов!

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

Re: Обновляемое string поле ошибки

Сообщение cyro » Пн май 06, 2013 1:29 pm

Подпрограмма обработки ошибок, блок-диаграмму которой я указал в первом посте, работает уже в цикле основной программы. Я уже думал о том, чтобы организовать цикл While в подпрограмме обработки ошибок, но в голову ничего не приходило по поводу остановки данного цикла, поэтому счел правильным оставить лишь Case структуры. Попробовал сделать так, используя Concatenate Strings:
2.JPG
2.JPG (62.97 KiB) Просмотров: 1995

Вроде работает так, как нужно. Запись пустых строк проверял с помощью Error Cluster From Error Code.vi, окружив всё структурой While и поставив Random number к входу Error code, т.о. получилось что ошибка рандомно генерировалась (не совсем понял почему это происходило, ведь по сути за наличие ошибки отвечает вход "is warning?"). Concatenate Strings.vi, Feedback node и сброс каретки стояли за телом внешней Case структуры, т.о. записывались пустые строки, поставив их внутрь, все заработало как необходимо, осталось только проверить с основным циклом программы:
1.JPG
1.JPG (46.26 KiB) Просмотров: 1995
cyro
 
Сообщений: 3
Зарегистрирован: Вс май 05, 2013 2:48 pm

Re: Обновляемое string поле ошибки

Сообщение IvanLis » Пн май 06, 2013 2:44 pm

cyro писал(а):Подпрограмма обработки ошибок, блок-диаграмму которой я указал в первом посте, работает уже в цикле основной программы. Я уже думал о том, чтобы организовать цикл While в подпрограмме обработки ошибок, но в голову ничего не приходило по поводу остановки данного цикла, поэтому счел правильным оставить лишь Case структуры.

Посмотрите как реализована Data Queue PtByPt.vi из палитры PtByPt.
Вам можно на ее основе реализовать свой буфер, который будет накапливать строковый массив.

Смысл такой, что вы используете цикл, который выполняется всего один раз и неинициализированный сдвиговый регистр, тогда данные в нем не будут сбрасываться.
Знание нескольких принципов освобождает от знания многих фактов!

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


Вернуться в LabVIEW

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

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

cron