Операция записи с помощью write, writeline, или writebinblock завершается, когда одному из этих условий удовлетворяют:
Заданные данные записаны.
Время задано Timeout передачи свойства.
Инструмент определяет, завершена ли операция записи на основе Terminator и EOIMode значения свойств. Значение по умолчанию Terminator символ перевода строки. Обратитесь к документации для своего инструмента, чтобы определить терминатор строки, требуемый вашим инструментом.
Если EOIMode on, затем линия Конца или идентифицирует (EOI) утверждается, когда последний байт записан в инструмент. Последний байт может быть частью потока двоичных данных или текстового потока данных. Последним записанным байтом является Terminator значение и линия EOI утверждаются, когда инструмент получает этот байт.
Операция чтения с read, readline, или readbinblock завершается, когда одному из этих условий удовлетворяют:
Терминатор строки задан Terminator свойство читается.
Время задано Timeout передачи свойства.
Конкретное количество значений читается.
Этот пример иллюстрирует, как связаться с инструментом VISA-GPIB путем записи и чтения текстовых данных.
Инструментом является Tektronix® TDS 210 двухканальный осциллограф. Поэтому многие команды в примере характерны для этого инструмента. Синусоида вводится в канал 2 из осциллографа, и вы хотите измерить напряжение от пика к пику входного сигнала.
Можно использовать эти функции и свойства при чтении и записи текста.
| Функция | Цель |
|---|---|
writeline | Запишите текст в инструмент. |
readline | Считайте данные из инструмента и отформатируйте как текст. |
| NumBytesAvailable | Количество байтов, доступных в чтение. |
| EOIMode | Утверждается ли EOI (заканчивают или идентифицируют) линия. |
| Терминатор | Символ раньше отключал команды, отправленные в инструмент. |
Создайте объект VISA-GPIB — Создают объект VISA-GPIB g сопоставленный с National Instruments ™® Контроллер GPIB с параметром плат 0 и инструмент с первичным адресом 1.
g = visadev("GPIB0::1::0::INSTR");Запишите и считайте данные — Запись *IDN? команда к инструментальному использованию writeline, и затем считайте назад результат использования команды readline.
writeline(g,"*IDN?")
g.NumBytesAvailableans =
56idn = readline(g)
idn =
"TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04"Необходимо определить источник измерения. Возможные источники измерения включают канал 1 и канал 2 из осциллографа.
writeline(g,"MEASUREMENT:IMMED:SOURCE?")
source = readline(g)source =
"CH1"Осциллограф сконфигурирован, чтобы возвратить измерение в канал 1. Поскольку входной сигнал соединяется с каналом 2, необходимо сконфигурировать инструмент, чтобы возвратить измерение в этот канал.
writeline(g,"MEASUREMENT:IMMED:SOURCE CH2") writeline(g,"MEASUREMENT:IMMED:SOURCE?") source = readline(g)
source =
"CH2"Можно теперь сконфигурировать осциллограф, чтобы возвратить напряжение от пика к пику, и затем запросить значение этого измерения.
writeline(g,"MEASUREMENT:MEAS1:TYPE PK2PK") writeline(g,"MEASUREMENT:MEAS1:VALUE?")
Считайте назад результат с помощью readline функция.
ptop = readline(g)
ptop =
"2.0199999809E0"Разъединитесь и вымойтесь — Использование clear отключать инструмент от объекта VISA-GPIB g и очистить его от MATLAB® рабочая область, когда вы закончите работающая с ним.
clear gСвойства записи ASCII
По умолчанию линия Конца или идентифицирует (EOI) утверждается, когда последний байт записан в инструмент. Этим поведением управляет EOIMode свойство. Когда EOIMode установлен в on, линия EOI утверждается, когда последний байт записан в инструмент. Когда EOIMode установлен в off, линия EOI не утверждается, когда последний байт записан в инструмент.
Этот пример иллюстрирует, как можно загрузить отображение на экране осциллографа TDS 210. Данные об отображении на экране сохранены в диск с помощью Windows® растровый формат. Эти данные обеспечивают постоянную запись вашей работы и являются простым способом зарегистрировать важный сигнал и параметры осциллографа.
Вы используете эти функции при чтении и записи двоичных данных.
Примечание
При выполнении операции чтения или операции записи, думайте о принятых данных в терминах значений, а не байтов. Значение состоит из одного или нескольких байтов. Например, один uint32 значение состоит из четырех байтов.
Создайте объект VISA-GPIB — Создают объект VISA-GPIB g сопоставленный с контроллером GPIB National Instruments ™ с параметром плат 0 и инструментом с первичным адресом 1.
g = visadev("GPIB0::1::0::INSTR");Сконфигурируйте значение тайм-аута — Конфигурируют значение тайм-аута к двум минутам с учетом медленной передачи данных.
g.Timeout = 120;
Запишите и считайте данные — Конфигурируют осциллограф, чтобы передать отображение на экране как битовый массив.
writeline(g,"HARDCOPY:PORT GPIB") writeline(g,"HARDCOPY:FORMAT BMP") writeline(g,"HARDCOPY START")
Передайте данные рабочему пространству MATLAB как 8-битные целые числа без знака.
out = read(g,g.NumBytesAvailable,"uint8");Разъединитесь и вымойтесь — Использование clear отключать инструмент от объекта VISA-GPIB g и очистить его от рабочего пространства MATLAB, когда вы закончите работающего с ним.
clear gВыполните эти шаги, чтобы просмотреть растровые данные.
Используйте функции ввода-вывода программного файла MATLAB fopen, fwrite, и fclose.
fid = fopen("test1.bmp","w"); fwrite(fid,out,"uint8"); fclose(fid) a = imread("test1.bmp","bmp");
Отобразите изображение.
imagesc(a)
Используйте серую палитру, поскольку инструмент генерирует только полутоновые изображения.
c = colormap(gray); colormap(flipud(c));
Изображение полученного растрового изображения показывают в следующем рисунке.

Этот пример иллюстрирует, как использовать split функционируйте, чтобы проанализировать данные, которые вы считываете из осциллографа Tektronix TDS 210. split функция особенно полезна, когда это необходимо, чтобы проанализировать строку в один или несколько элементов массива, где каждый элемент полон решимости быть или двойным или вектором символов.
Создайте объект VISA-GPIB — Создают объект VISA-GPIB g сопоставленный с контроллером GPIB National Instruments ™ с параметром плат 0 и инструментом с первичным адресом 1.
g = visadev("GPIB0::1::0::INSTR");Запишите и считайте данные — Возвращают идентификационную информацию, чтобы разделить элементы массива ячеек с помощью "," разделители.
writeline(g,"*IDN?") idn = readline(g); idn = split(idn,",")
idn =
4×1 string array
"TEKTRONIX"
"TDS 210"
"0"
"CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04"Разъединитесь и вымойтесь — Использование clear отключать инструмент от объекта VISA-GPIB g и очистить его от рабочего пространства MATLAB, когда вы закончите работающего с ним.
clear gvisadev | write | writeline | read | readline