Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabVIEW Basics 1.pdf
Скачиваний:
601
Добавлен:
05.06.2015
Размер:
6.38 Mб
Скачать

Урок 5 Отладка ВП

C. Неопределенные или непредвиденные данные

Неопределенные данные, к которым относятся NaN (Not a Number, не число) и Inf (Infinity, бесконечность), лишают смысла все последующие операции. Эти два символьных значения, которые могут выдаваться при операциях с плавающей точкой, служат признаком некорректного вычисления или бессмысленного результата.

NaN представляет значение с плавающей точкой, которое генерируется в результате некорректной операции, такой как извлечение квадратного корня из отрицательного числа.

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

LabVIEW не отслеживает переполнение (overflow) или потерю значащих цифр (underflow) для целых чисел. Для чисел с плавающей точкой эти ситуации соответствуют стандарту двоичной арифметики с плавающей точкой IEEE 754.

NaN и Inf являются формально допустимыми значениями для операций с плавающей точкой, но будучи явно или неявно преобразованы в целое или логическое число, полностью теряют смысл. Например, деление 1 на нуль дает Inf. Преобразование Inf в 16-битовое целое даст значение 32 767, которое является обычным числом.

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

Not A Number/Path/Refnum? (Не число/Путь/Ссылка?).

Не полагайтесь на специальные значения (NaN, Inf или пустой массив) при определении достоверности выходных данных. Вместо этого сделайте так, чтобы ВП выдавал сообщение об ошибке в тех ситуациях, когда возможно появление неопределенных данных.

Например, при использовании автоиндексации входного массива в цикле For подумайте о том, как ВП будет реагировать на пустой массив. Возможные варианты: выдать код ошибки и подставить вместо выходных данных цикла предопределенное значение, или использовать структуру Case, которая не будет выполнять цикл For в случае пустого массива.

©National Instruments Corporation

5-11

Учебный курс LabVIEW Основы I

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]