Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП ПиАУминс v5.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
34.56 Mб
Скачать

Порядок выполнения работы

Задание 1

Лабораторная работа № 10 « Изучение строк »

Цель работы:

научиться использовать функции LabVIEW для работы со строками, преобразовывать числовые данные в строковые и наоборот.

Приборы и принадлежности:

персональный компьютер с программной средой LabView.

Краткое изложение теоретического материала

Строка представляет собой набор символов ASCII. Часто строки используются для простых текстовых сообщений. Например, при управлении инструментом вы передаете числовые данные в виде строк символов, а затем для обработки данных вы превращаете эти строки в числа. Для хранения числовых данных на диске также можно использовать строки. Прежде чем сохранить числовые значения в файле во многих подпрограммах ввода/вывода в файл/из файла LabVIEW переводит их в строковые переменные.

Выбор типа отображения

Элементы управления и индикаторы строк имеют несколько полезных опций. Например, они могут отображать и принимать символы, которые обычно являются неотображаемыми, в частности знак возврата на один символ назад, знак возврата каретки и табуляция. Если вы выбрали функцию ʻ\ʼ Кодированное отображение (ʻ\ʼ Codes Display) вместо функции Нормальное отображение (Normal Display) из контекстного меню строк, то скрытые символы появятся в виде обратного слэша, за которым следует соответствующий код. В таблице показаны значения этих кодов.

Нужно использовать заглавные буквы для шестнадцатеричных символов и строчные буквы для специальных символов, таких как знаки смещения формы и знаки возврата. LabVIEW интерпретирует последовательность \BFare как шестнадцатеричный BF, идущий перед словом are, тогда как последовательности \bFare и \bfare интерпретируются как знак возврата, идущий перед словами Fare и fare.

Код

Выполнение в LabVIEW

\00-\FF

Шестнадцатеричное значение 8-битового символа; буквы должны быть заглавными

\b

Знак возврата на один символ назад (ASCII BS, эквивалент \08)

\f

Знак смещения формы (ASCII FF , эквивалент \0C)

\n

Новая строка (ASCII LF, эквивалент \0A)

\r

Знак возврата каретки (ASCII CR, эквивалент \0D)

\t

Табуляция (ASCII HT, эквивалент \09)

\s

Пробел ( эквивалент \20)

\\

Обратный слэш (ASCII \, эквивалент \5C)

В последовательности \Bfare символы не являются кодом знака возврата и \Bf не является действительным шестнадцатеричным кодом. В данном случае, когда за обратным слэшем следует лишь часть действительного шестнадцатеричного символа, LabVIEW подставляет 0 сразу после обратного слэша, поэтому интерпретируется как шестнадцатеричное 0 В. Когда же за обратным слэшем не идет действительный символьный код, LabVIEW игнорирует этот символ.

Данные в строке не изменяются при выборе режима отображения; меняется лишь вид некоторых символов. Режим ʻ\ʼ Кодированное отображение необходим для отладки программ и определения скрытых символов, которые требуются для работы с приборами, последовательным портом и другими инструментами.

П осле переключения в режим

ʻ\ʼ Кодированное отображение строка показывает пробелы, введенные оператором.

Строки также имеют опцию Скрытое отображение (Password Display), которая заставляет элемент управления или отображения показывать «звездочку» вместо каждого введенного символа, поэтому никто не сможет увидеть, что вы печатаете. В то время как на лицевой панели видна лишь последовательность знаков «*****», на блок-диаграмме в строке считываются реальные данные.

Одинарные строки

Если вы выберете функцию Ограничить до одной строки (Limit to Single Line), то строка всегда останется единственной. Если вы отметите эту функцию в контекстном меню строки, размер строки не превысит одной строчки текста, то есть в ней не будет символов возврата каретки. Если вы нажмете клавиши <enter> или <return>, то ввод теста будет автоматически закончен. Если число строк не лимитировано, нажатие клавиши <return> перемещает курсор на новую строку, и вы можете продолжать печатать текст.

Обновление строки во время ввода текста

Обычно элементы управления строками не изменяют их значения на терминале блок-диаграммы до тех пор, пока вы не закончите печатать текст и не нажмете клавишу <enter>. Щелкните мышью за пределами окна строки или по кнопке инструментальной линейки ВП для указания завершения ввода строки. Эту операцию вы будете использовать в большинстве случаев, так как нежелательно, что­ бы блок-диаграмма начинала работать со строкой, прежде чем пользователь закончил ввод текста.

Если вы хотите, чтобы значения данных обновлялись во время набора текста (как, например, в случае кнопки управления), вызовите контекстное меню элемента управления строками и выберите функцию Обновлять значение во время ввода (Update Value While Typing).

Полоса прокрутки

Если выбрать опцию Видимые элементы→Полоса прокрутки (Scrollbar) в контекстном меню строк, то на элементе отображения или управления появляется вертикальная полоса прокрутки. Вы можете использовать эту опцию для минимизации пространства, занимаемого на лицевой панели элементами управления строками, которые содержат большое количество текста. Обратите внимание: опция будет серой до тех пор, пока вы не увеличите в достаточной мере размер вашего текста, чтобы полоса прокрутки стала необходимой.

Таблицы

Таблица в LabVIEW представляет собой специальную структуру, которая отображает двумерный массив строк. Вы можете найти ее в подпалитре Списки и таблицы (Lists&Tables) палитры Элементы управления (Controls). Пример таблицы показан на рисунке.

В таблицах есть заголовки строк и столбцов, которые можно сделать видимыми или спрятать; заголовки отделены от данных тонкой двойной линией. Вы можете изменять заголовки текста, используя инструменты ввода текста (А) или управления («палец»). Также допустимо обновлять или считывать заголовки, при помощи узлов свойств.

Как и в случае массивов, элемент отображения индекса таблицы показывает, какая ячейка видна в верхнем левом углу таблицы. Для того чтобы научиться работать с таблицей, откройте и запустите пример Building Tables.vi, расположенный в библиотеке EVERYONE\СН9.LLB.

Окна списков

В Lab VIEW имеется два вида окон, содержащих списки: Окно-список (Listbox) и Многостолбцовое окно-список (Multi-column Lisbox), находящиеся в палитре Списки и таблицы.

Окно списков в LabVIEW является аналогом таблицы, однако во время работы программы ведет себя по-другому. В режиме редактирования вы можете впечатать в данное окно любой текст. Когда вы запускаете ВП, окно списков действует в качестве меню «выбора из множества», где нужно щелкнуть мышью по любой строке для ее выделения и выбора. На рисунке изображено окно списка с несколькими столбцами.

Окна списков целесообразно использовать, когда вы хотите представить данные (в одном или нескольких столбцах) пользователю путем выбора опции, а не ввода текста.

Подробнее о работе окон списков вы узнаете, открыв пример Listbox Example.vi, который находится в библиотеке EVERYONE\СН9 .LLB.

Использование функций обработки строк

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

Функция Длина строки (String Length) возвращает число символов в данной строке.

Функция Объединение строк (Concatenate Strings) объединяет все входные строки в одну выходную.

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

Кроме простых строк в качестве входных данных вы можете подключить одномерный массив строк. В этом случае на выходе будет одна строка, содержащая объединение строк массива.

Во многих случаях вам понадобится преобразовывать строки в числа или числа в строки. Функции Преобразовать в строку (Format Into String) и Просмотр строки (Scan Frpm String) обладают такими возможностями. Мы поговорим об этих функциях позднее. Попросту говоря, функция Преобразовать в строку преобразует числовые данные в строковые.

На рисунке эта функция преобразует число с плавающей запятой 1.28 в 6-байтовую строку 1.2800.

Функция Преобразовать в строку форматирует входной аргумент (который записан в числовом формате) как строку в соответствии с определением формата, заданным во входной переменной формат строки (format string). Спецификации подробно приводятся в руководстве по работе с LabVIEW. Данная функция применяет сформированный шаблон к входным данным, подключенным к вводу начальная строка (initial string), и выдает результаты на терминал результирующая строка (resulting string). В таблице приводятся некоторые примеры работы функции Преобразовать в строку.

Начальная строка

Формат строки

Число

Результирующая строка

(пустая)

счет=%2d%%

87

счет=87%

результат=

%2d%%

87

счет=87%

(пустая)

уровень=%7.2eV

0.03642

уровень=3.64E-2V

(пустая)

%5.3f

5.67N

5.670N

Символ % говорит о начале форматирования. Например в случае % число1. число2 число1 определяет длину результирующей строки, а число2 определяет точность (то есть количество цифр после десятичной запятой), f форматирует входное число как число с плавающей запятой, d - как целое и е - как число с плавающей запятой в научной системе обозначений (экспоненциальное представление чисел).

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

Функция Вызвать строку даты/времени (Get Date/Time String) из палитры Время и диалоги выводит строку даты, содержащую текущую дату, и строку времени, содержащую текущее время. Эта функция полезна при задании времени создания/модификации данных. Обратите внимание, что вам не нужно подключать входы к функции Вызвать строку даты/времени: она может использовать значения по умолчанию.

Функции анализа

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

Функция Выделение подстроки (String Subset) осуществляет доступ к отдельной части строки. Она возвращает подстроку, начиная с символа с заданным номером смещение (offset), с заданным числом символов длина (length). Помните, что номером первого символа является 0.

Ф ункция Шаблон строки (Match Pattern) используется для поиска заданной структуры символов в строке. Она ищет и возвращает найденную подстроку. Эта функция ищет выражение в соответствии с заданным выражением (regular expression), начиная с символа с определенным смещением. Как только она находит выражение, она разбивает строку на три подстроки. Если же выражение не обнаружено, то содержание вывода подходящая подстрока (match substring) оказывается пустым, а значение смещение после совпадения (offset past match) устанавливается в -1.

Ф ункция Просмотр строки (Scan from String) ~ обратная функции Преобразовать в строку - преобразует строку, содержащую действительные числовые символы (от 0 до 9, +, -, е, Е и период) в числовые данные. Эта функция начинает просмотр входной строки (input string) с места начала поиска (initial search location) и преобразует данные в соответствии со спецификацией формата строки. Данную функцию можно увеличить для одновременного преобразования нескольких значений.

В данном примере функция Просмотр строки преобразует строку VOLTS DC+1. 28E+2 в число 128.00. Она начинает просмотр с восьмого символа строки (который в данном случае является знаком +; не забудьте, что первый символ имеет порядковый номер 0).

Как функция Преобразовать в строку, так и функция Просмотр строки имеют панель Редактирование выделения/создание строки (Edit Scan/Format String), с помощью которой вы можете задать формат строки. В этом диалоговом окне допустимо установить формат, точность, тип данных и длину преобразованного значения. В панель редактирования выделения/создания строки можно попасть, дважды щелкнув мышью или вызвав контекстное меню соответствующей функции и выбрав опцию Редактирование выделения/создание строки.

После создания формата строки и щелчка мышью по кнопке Создать строку (Create String) будет создана строковая постоянная и подключена к вводу формата строки (format string).