С помощью свойств можно упростить программирование приборов через объекты устройства и сделать его более согласованным. Свойство может использоваться для запроса или установки параметров или атрибутов прибора. Например, уровень запуска осциллографа может управляться свойством, называемым TriggerLevel, которую вы можете прочитать или управлять с помощью get или set функция. Даже если две разные области имеют различный синтаксис триггера, можно использовать одно и то же имя свойства, TriggerLevel, для управления ими, потому что в каждом объеме будет свой драйвер приборов.
Другое преимущество свойств состоит в том, что их можно определить с помощью определенных допустимых значений (перечисленных) или пределов (ограниченных), которые можно проверить перед отправкой связанных команд в прибор.
Поведение свойства определяется следующими компонентами.
set код определяет код, который выполняется при настройке свойства с помощью set функция. set код может быть определен как команда прибора, которая будет записана на прибор, или как программный код MATLAB ®.
Если set код - код MATLAB, он может включать любое количество команд или программный код MATLAB, обернутый вокруг команд прибора для обеспечения дополнительной обработки или анализа.
Если set код определяется как команда прибора, то команда, записанная в прибор, будет представлять собой команду прибора, объединенную с пробелом и значением, указанным в вызове set. Например, set код для DisplayContrast свойство определяется как команда прибора DISplay:CONTRast. Когда set оценивается функция, приведенная ниже, команда прибора, посылаемая в прибор, будет DISplay:CONTRast 54.
set(obj,'DisplayContrast',54); get код определяет код, который выполняется при запросе значения свойства с помощью get функция. get код может быть определен как команда прибора, которая будет записана на прибор, или как программный код MATLAB.
Можно определить значения, которые могут быть установлены для свойства так, чтобы в инструмент записывались только допустимые значения и возвращалась ошибка, прежде чем в инструмент могло быть записано недопустимое значение.
Значение свойства может быть определено как двойное значение, символьный вектор или логическое значение.
Значение свойства, определенное как двойное, может быть ограничено принятием только двойных значений в пределах определенного диапазона или списка перечисленных двойных значений. Например, свойство может быть определено так, чтобы принимать двойное значение в диапазоне [0 10] или свойство может быть определено для принятия одного из значений [1,7,8,10].
Значение свойства, определенное как символьный вектор, может быть ограничено для принятия списка перечислимых символьных векторов. Например, свойство может быть определено для принятия векторов символов min и max.
Кроме того, свойство может быть определено для принятия нескольких определений значений свойств. Например, свойство может быть определено для принятия двойного диапазона между [0 10] или векторы символов min и max.
Значение свойства может зависеть от значения другого свойства. Например, при управлении источником питания свойство VoltageLevel можно настроить на следующие значения:
Двойной диапазон от 0 до 10 при значении свойства VoltageOutputRange является high
Двойной диапазон от 0 до 5 при значении свойства VoltageOutputRange является low
Когда VoltageLevel сконфигурировано, значение VoltageOutputRange запрашивается. Если значение VoltageOutputRange является high, то VoltageLevel может быть сконфигурирован с двойным диапазоном от 0 до 10. Если значение VoltageOutputRange является low, то VoltageLevel может быть сконфигурирован с двойным диапазоном от 0 до 5.
Значением по умолчанию свойства является значение, которое свойство настраивается при создании объекта.
Значение свойства, доступное только для чтения, определяет, когда свойство может быть настроено. Допустимые параметры описаны ниже.
Значение только для чтения | Описание |
|---|---|
Никогда | Свойство можно настроить в любое время с помощью |
При открытии | Свойство может быть настроено только с помощью |
Всегда | Свойство не может быть настроено с помощью |
В тексте справки содержится информация о свойстве. Эта информация возвращается вместе с instrhelp функция.
instrhelp(obj,'PropertyName')Этот раздел содержит несколько примеров создания, настройки и чтения свойств, а также шаги для проверки поведения этих свойств.
В этом примере создается свойство, которое настраивает контраст жидкокристаллического дисплея осциллографа Tektronix ® TDS 210. Дисплей осциллографа может быть настроен на значение в диапазоне[1 100]. В редакторе драйверов приборов MATLAB
Выберите Properties узел в дереве.
Введите имя свойства, DisplayContrast, в текстовом поле Имя и нажмите кнопку Добавить. Имя нового свойства, DisplayContrast, появляется в таблице Имя свойства (Property Name).
Разверните окно Properties узел в дереве для отображения всех определенных свойств.
Выберите DisplayContrast из свойств, отображаемых в дереве.
Выберите вкладку Код, чтобы определить set и get команды для DisplayContrast собственность.
Выбрать Instrument Commands в поле Стиль свойства.
Войти DISplay:CONTRast? в текстовом поле команды Get.
Войти DISplay:CONTRast в текстовом поле команды Set.
Выберите вкладку «Значения свойств» для определения допустимых значений свойств.
Выбрать Double в поле Тип данных.
Выбрать Bounded в поле Ограничение.
Войти 1.0 в поле Минимум.
Войти 100.0 в поле Максимум.

Перейдите на вкладку «Справка», чтобы завершить определение поведения свойства.
Войти 50 в текстовом поле Значение по умолчанию.
Выбрать never в поле Только чтение.
В текстовом поле Справка введите Sets or queries the contrast of the LCD display.
Нажмите кнопку «Сохранить».

Проверка поведения свойства. Эта процедура проверяет поведение свойства. В этом примере имя драйвера: tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 по основному адресу 2 осуществляется через плату GPIB корпорации Measurement Computing™ с индексом платы 0. В командной строке MATLAB
Создайте объект устройства, obj, с использованием icdevice функция.
g = gpib('mcc',0,2); obj = icdevice('tektronix_tds210_ex.mdd',g);
Посмотреть DisplayContrast свойство и его текущее значение.
obj.DisplayContrast
ans =
50Запрос set на DisplayContrast В свойстве перечислены значения, которым можно задать свойство.
set(obj,'DisplayContrast')[ 1.0 to 100.0 ]
Попробуйте установить для свойства значения внутри и вне указанного диапазона.
obj.DisplayContrast = 17; obj.DisplayContrast
ans =
17obj.DisplayContrast = 120
Invalid value for DisplayContrast Valid values: a value between 1.0 and 100.0.
Просмотрите справку, которую вы написали.
instrhelp(obj,'DisplayContrast')DISPLAYCONTRAST [ 1.0 to 100.0 ] Sets or queries the contrast of the LCD display.
Перечислите DisplayContrast характеристики, определенные на вкладках «Значения свойств» и «Справка».
info = propinfo(obj,'DisplayContrast')
info =
struct with fields:
Type: 'double'
Constraint: 'bounded'
ConstraintValue: [1 100]
DefaultValue: 50
ReadOnly: 'never'
InterfaceSpecific: 1Подключитесь к инструменту для проверки set и get код.
connect(obj)
При выдаче get в программном обеспечении MATLAB, tektronix_tds210_ex.mdd драйвер фактически отправляет DISplay:CONTRast? команду прибору.
obj.DisplayContrast
ans =
17При выдаче set в программном обеспечении MATLAB, tektronix_tds210_ex.mdd драйвер фактически отправляет DISplay:CONTRast 34 команду прибору.
obj.DisplayContrast = 34;
Наконец, отсоедините от прибора и удалите объекты.
disconnect(obj) delete([obj g])
В этом примере создается свойство, которое выбирает и отображает курсор осциллографа Tektronix TDS 210. Осциллограф допускает два типа курсора. Он поддерживает горизонтальный курсор, измеряющий вертикальные единицы измерения в вольтах, делениях или децибелах, и вертикальный курсор, измеряющий горизонтальные единицы измерения во времени или частоте. В редакторе драйверов приборов MATLAB
Выберите Properties узел в дереве.
Введите имя свойства, CursorType, в текстовом поле Имя и нажмите кнопку Добавить. Имя нового свойства CursorType появляется в таблице Наименование свойства (Property Name).
Разверните окно Properties для отображения всех определенных свойств.
Выберите CursorType из свойств, отображаемых в дереве.
Выберите вкладку Код, чтобы определить set и get команды для CursorType собственность.
Выбрать Instrument Commands в поле Стиль свойства.
Войти CURSor:FUNCtion? в текстовом поле Get Command.
Войти CURSor:FUNCtion в текстовом поле Set Command.
Выберите вкладку «Значения свойств» для определения допустимых значений свойств.
Выбрать String в поле Тип данных.
Выбрать Enumeration в поле Ограничение.
Войти none в текстовом поле Новое значение свойства и нажмите кнопку Добавить. Затем введите OFF в поле «Instrument Value».
Аналогично добавьте значение свойства voltage, со значением прибора HBArs.
Аналогично добавьте значение свойства time, со значением прибора VBArs.

Перейдите на вкладку «Справка», чтобы завершить определение поведения свойства.
Войти none в текстовом поле Значение по умолчанию.
Выбрать never в поле Только чтение.
В текстовом поле Справка введите Specifies the type of cursor.
Нажмите кнопку «Сохранить».
Проверка поведения свойства. Эта процедура проверяет поведение свойства. В этом примере имя драйвера: tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 по основному адресу 2 осуществляется через плату GPIB компании Measurement Computing Corporation с индексом платы 0. В командной строке MATLAB
Создайте объект устройства, obj, с использованием icdevice функция.
g = gpib('mcc',0,2); obj = icdevice('tektronix_tds210_ex.mdd',g);
Просмотр CursorType текущее значение свойства. Запрос get на объекте перечисляются все его свойства.
get(obj)
ConfirmationFcn =
DriverName = tektronix_tds210_ex.mdd
DriverType = MATLAB interface object
InstrumentModel =
Interface = [1x1 gpib]
LogicalName = GPIB0-2
Name = scope-tektronix_tds210_ex
ObjectVisibility = on
RsrcName =
Status = closed
Tag =
Timeout = 10
Type = scope
UserData = []
SCOPE specific properties:
CursorType = none
DisplayContrast = 50Запрос get на CursorType свойство содержит текущее значение.
obj.CursorType
ans =
'none'Просмотр допустимых значений для CursorType собственность. Запрос set на объекте перечисляются все его настраиваемые свойства.
set(obj)
ConfirmationFcn: string -or- function handle -or- cell array
Name:
ObjectVisibility: [ {on} | off ]
Tag:
Timeout:
UserData:
SCOPE specific properties:
CursorType: [ {none} | voltage | time ]
DisplayContrast: [ 1.0 to 100.0 ]Запрос set на CursorType В свойстве перечислены значения, которым можно задать свойство.
set(obj,'CursorType')[ {none} | voltage | time ]Попробуйте установить для свойства допустимые и недопустимые значения.
obj.CursorType = 'voltage';
obj.CursorType
ans =
'voltage'obj.CursorType = 'horizontal'There is no enumerated value named 'horizontal'.
Просмотрите справку, которую вы написали.
instrhelp(obj,'CursorType')
CURSORTYPE [ {none} | voltage | time ]
Specifies the type of cursor.Перечислите CursorType характеристики, определенные на вкладках «Значения свойств» и «Справка».
info = propinfo(obj,'CursorType')
info =
struct with fields:
Type: 'string'
Constraint: 'enum'
ConstraintValue: {3×1 cell}
DefaultValue: 'none'
ReadOnly: 'never'
InterfaceSpecific: 1info.ConstraintValue
ans =
3×1 cell array
{'none' }
{'voltage'}
{'time' }Подключитесь к инструменту для проверки set и get код.
connect(obj)
При выдаче set в программном обеспечении MATLAB, tektronix_tds210_ex.mdd драйвер фактически отправляет CURSor:FUNCtion VBArs команду прибору.
obj.CursorType = 'time';При выдаче get в программном обеспечении MATLAB, tektronix_tds210_ex.mdd драйвер фактически отправляет CURSor:FUNCtion? команду прибору.
obj.CursorType
ans =
'time'Отключитесь от прибора и удалите объекты.
disconnect(obj) delete([obj g])
В этом примере создается свойство, которое возвращает разницу между двумя курсорами осциллографа Tektronix TDS 210. Осциллограф допускает два типа курсора. Он поддерживает горизонтальный курсор, измеряющий вертикальные единицы измерения в вольтах, делениях или децибелах, и вертикальный курсор, измеряющий горизонтальные единицы измерения во времени или частоте. В предыдущем примере было создано свойство, CursorType, который выбирает и отображает курсор осциллографа. В редакторе драйверов приборов MATLAB
Выберите Properties узел в дереве.
Введите имя свойства, CursorDelta, в текстовом поле New Property и нажмите кнопку Add. Имя нового свойства, CursorDelta, появляется в таблице Имя свойства (Property Name).
Разверните окно Properties для отображения всех определенных свойств.
Выберите CursorDelta из свойств, отображаемых в дереве.
Выберите вкладку Код, чтобы определить набор и получить команды для CursorDelta собственность.
Выбрать M-Code в поле Стиль свойства.
С момента CursorDelta свойство доступно только для чтения, программный код MATLAB не будет добавлен в текстовое поле Set code.
Следующий программный код MATLAB добавляется в поле Get code text.
% Extract the interface object. interface = obj.Interface; % Determine the type of cursor being displayed. type = obj.CursorType % Based on the cursor type, query the instrument. switch (type) case 'none' propertyValue = 0; case 'voltage' propertyValue = query(interface, 'CURSor:HBArs:DELTa?'); propertyValue = str2double(propertyValue); case 'time' propertyValue = query(interface, 'CURSor:VBArs:DELTa?'); propertyValue = str2double(propertyValue); end

Выберите вкладку «Значения свойств» для определения допустимых значений свойств.
Выбрать Double в поле Тип данных.
Выбрать None в поле Ограничение.
Перейдите на вкладку «Справка», чтобы завершить определение поведения свойства.
Войти 0 в текстовом поле Значение по умолчанию.
Выбрать always в поле Только чтение.
В текстовом поле Справка введите Returns the difference between the two cursors.
Нажмите кнопку «Сохранить».
Проверка поведения свойства. Эта процедура проверяет поведение свойства. В этом примере имя драйвера: tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 по основному адресу 2 осуществляется через плату GPIB компании Measurement Computing Corporation с индексом платы 0. В командной строке MATLAB
Создайте объект устройства, obj, с использованием icdevice функция.
g = gpib('mcc',0,2); obj = icdevice('tektronix_tds210_ex.mdd',g);
Просмотр CursorDelta текущее значение свойства. Запрос get на объекте перечисляются все его свойства.
get(obj)
ConfirmationFcn =
DriverName = tektronix_tds210_ex.mdd
DriverType = MATLAB interface object
InstrumentModel =
Interface = [1x1 gpib]
LogicalName = GPIB0-2
Name = scope-tektronix_tds210_ex
ObjectVisibility = on
RsrcName =
Status = closed
Tag =
Timeout = 10
Type = scope
UserData = []
SCOPE specific properties:
CursorDelta = 0
CursorType = none
DisplayContrast = 50Просмотр CursorDelta текущее значение свойства.
obj.CursorDelta
ans =
0Запрос set на объекте перечисляются все его настраиваемые свойства. Обратите внимание, что в качестве свойства только для чтения CursorDelta не указан в выходных данных.
set(obj)
ConfirmationFcn: string -or- function handle -or- cell array
Name:
ObjectVisibility: [ {on} | off ]
Tag:
Timeout:
UserData:
SCOPE specific properties:
CursorType: [ {none} | voltage | time ]
DisplayContrast: [ 1.0 to 100.0 ]Установка значения свойства приводит к появлению сообщения об ошибке.
obj.CursorDelta = 4;
Changing the 'CursorDelta' property of device objects is not allowed.
Просмотрите справку, которую вы написали.
instrhelp(obj,'CursorDelta')CURSORDELTA (double) (read only) Returns the difference between the two cursors.
Перечислите CursorDelta характеристики, определенные на вкладках «Значения свойств» и «Справка».
info = propinfo(obj,'CursorDelta')
info =
struct with fields:
Type: 'double'
Constraint: 'none'
ConstraintValue: []
DefaultValue: 0
ReadOnly: 'always'
InterfaceSpecific: 1Подключитесь к инструменту для проверки get код.
connect(obj)
При выдаче get в программном обеспечении MATLAB, tektronix_tds210_ex.mdd драйвер фактически выполняет указанный программный код MATLAB.
obj.CursorDelta
ans =
1.6000Наконец, отсоедините от прибора и удалите объекты.
disconnect(obj) delete([obj g])