Операция записи с помощью 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.NumBytesAvailable
ans = 56
idn = 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 g
visadev
| write
| writeline
| read
| readline