Можно сделать программирование инструментов через объекты устройства легче и более сопоставимым при помощи свойств. Свойство может использоваться, чтобы запросить или установить инструментальную установку или атрибут. Например, пороговым уровнем осциллографа можно управлять со свойством под названием 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
, в текстовом поле Name и нажимают кнопку Add. Имя нового свойства, DisplayContrast
, появляется в таблице Property Name.
Расширьте Properties
узел в дереве, чтобы отобразить все заданные свойства.
Выберите DisplayContrast
узел из свойств, отображенных в дереве.
Выберите вкладку Code, чтобы задать set
и get
команды для DisplayContrast
свойство.
Выберите Instrument Commands
в Свойстве разрабатывают поле.
Введите DISplay:CONTRast?
в Получить поле текста команды.
Введите DISplay:CONTRast
в поле текста команды Набора.
Выберите вкладку Property Values, чтобы задать позволенные значения свойств.
Выберите Double
в поле Data Type.
Выберите Bounded
в поле Constraint.
Введите 1.0
в поле Minimum.
Введите 100.0
в поле Maximum.
Выберите вкладку Help, чтобы закончить задавать поведение свойства.
Введите 50
в текстовом поле Значения по умолчанию.
Выберите never
в поле Только для чтения.
В текстовом поле Help введите Sets or queries the contrast of the LCD display
.
Нажмите кнопку Save.
Проверка Поведения Свойства. Эта процедура проверяет поведение свойства. В этом примере именем драйвера является tektronix_tds210_ex.mdd
. Связь с осциллографом Tektronix TDS 210 в первичном адресе 2 сделана через Измерение плата GPIB Корпорации 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 = 17
obj.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
, в текстовом поле Name и нажимают кнопку Add. Имя нового свойства CursorType
появляется в таблице Property Name.
Расширьте Properties
узел, чтобы отобразить все заданные свойства.
Выберите CursorType
узел из свойств, отображенных в дереве.
Выберите вкладку Code, чтобы задать set
и get
команды для CursorType
свойство.
Выберите Instrument Commands
в Свойстве разрабатывают поле.
Введите CURSor:FUNCtion?
в Получить поле Текста команды.
Введите CURSor:FUNCtion
в поле Текста команды Набора.
Выберите вкладку Property Values, чтобы задать позволенные значения свойств.
Выберите String
в поле Data Type.
Выберите Enumeration
в поле Constraint.
Введите none
в Новом текстовом поле значения свойства и нажимают кнопку Add. Затем введите OFF
в поле таблицы Instrument Value.
Так же добавьте значение свойства voltage
, с инструментальным значением HBArs
.
Так же добавьте значение свойства time
, с инструментальным значением VBArs
.
Выберите вкладку Help, чтобы закончить задавать поведение свойства.
Введите none
в текстовом поле Значения по умолчанию.
Выберите never
в поле Только для чтения.
В текстовом поле Help введите Specifies the type of cursor
.
Нажмите кнопку Save.
Проверка Поведения Свойства. Эта процедура проверяет поведение свойства. В этом примере именем драйвера является 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: 1
info.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
узел из свойств, отображенных в дереве.
Выберите вкладку Code, чтобы задать набор и получить команды для CursorDelta
свойство.
Выберите M-Code
в Свойстве разрабатывают поле.
Начиная с CursorDelta
свойство только для чтения, никакой программный код MATLAB не будет добавлен к текстовому полю Набора кода.
Следующий программный код MATLAB добавляется к Получить текстовому полю кода.
% 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
Выберите вкладку Property Values, чтобы задать позволенные значения свойств.
Выберите Double
в поле Data Type.
Выберите None
в поле Constraint.
Выберите вкладку Help, чтобы закончить задавать поведение свойства.
Введите 0
в текстовом поле Значения по умолчанию.
Выберите always
в поле Только для чтения.
В текстовом поле Help введите Returns the difference between the two cursors
.
Нажмите кнопку Save.
Проверка Поведения Свойства. Эта процедура проверяет поведение свойства. В этом примере именем драйвера является 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])