Можно сделать программирование инструментов через объекты устройств более простым и последовательным при помощи свойств. Свойство может использоваться, чтобы запросить или задать настройку инструмента или атрибут. Для примера уровнем триггера осциллографа можно управлять со свойством, называемым TriggerLevel
, который вы можете считать или управлять с помощью get
или set
функция. Даже если две разные возможности имеют разный синтаксис триггера, можно использовать одно и то же имя свойства, TriggerLevel
, чтобы контролировать их, потому что каждые возможности будет иметь свой собственный драйвер прибора.
Другое преимущество свойств заключается в том, что можно задать их с помощью определенных допустимых значений (перечисленных) или пределов (ограниченных), которые можно проверить перед отправкой связанных команд на инструмент.
Поведение свойства определяется следующими компонентами.
The set
код определяет код, который выполняется, когда свойство сконфигурировано с set
функция. The set
код может быть определен как команда instrument, которая будет записана на инструмент или может быть определена как MATLAB® программный код.
Если на set
Код является кодом MATLAB, он может включать любое количество команд или код программного обеспечения MATLAB, обернутый вокруг команд прибора, чтобы обеспечить дополнительную обработку или анализ.
Если на set
код определяется как команда instrument, тогда команда, записанная на инструмент, будет командой instrument, объединенной с пространством, и значением, заданным в вызове set
. Для примера, set
код для DisplayContrast
свойство определяется как команда instrument DISplay:CONTRast
. Когда set
функция ниже оценивается, команда прибора, отправленная на инструмент, будет DISplay:CONTRast 54
.
set(obj,'DisplayContrast',54);
The get
код определяет код, который выполняется, когда значение свойства запрашивается с get
функция. The get
код может быть определен как команда instrument, которая будет записана на инструмент, или как код программного обеспечения MATLAB.
Можно задать значения, которые могут быть установлены для свойства, чтобы на инструмент записывались только допустимые значения, и была возвращена ошибка, прежде чем на инструмент можно было записать недопустимое значение.
Значение свойства может быть задано как двойной, символьный вектор или логический.
Значение свойства, которое определяется как double, может быть ограничено, чтобы принимать только doubles в определённой области значений или списке перечисленных double. Для примера свойство может быть определено, чтобы принять двойной в область значений [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
может быть сконфигурировано так, чтобы значение double варьировалось от 0 до 10. Если значение VoltageOutputRange
является low
, затем VoltageLevel
может быть сконфигурировано так, чтобы значение double варьировалось от 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?
в команда text.
Введите DISplay:CONTRast
в поле Задать текст команды.
Выберите вкладку Значения свойств, чтобы задать допустимые значения свойств.
Выберите Double
в поле Тип данных.
Выберите Bounded
в поле Ограничение.
Введите 1.0
в поле Minimum.
Введите 100.0
в поле Maximum.
Выберите вкладку «Справка», чтобы завершить определение поведения свойства.
Введите 50
в текстовом поле Значение по умолчанию.
Выберите never
в поле Read only.
В поле Текст справки введите Sets or queries the contrast of the LCD display
.
Нажмите кнопку Save.
Проверка поведения свойства. Эта процедура проверяет поведение свойства. В этом примере имя драйвера tektronix_tds210_ex.mdd
. Связь с осциллографом Tektronix TDS 210 по первичному адресу 2 осуществляется через плату Измерения Computing™ Corporation GPIB с индексом платы 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
признаки, определенные на вкладках Свойства Значений и Help.
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?
в поле Get Command text.
Введите CURSor:FUNCtion
в поле Задать текст команды.
Выберите вкладку Значения свойств, чтобы задать допустимые значения свойств.
Выберите String
в поле Тип данных.
Выберите Enumeration
в поле Ограничение.
Введите none
в текстовом поле New property value и нажмите кнопку Add. Затем введите OFF
в поле Instrument Value.
Точно так же добавьте значение свойства voltage
, со значением инструмента HBArs
.
Точно так же добавьте значение свойства time
, со значением инструмента VBArs
.
Выберите вкладку «Справка», чтобы завершить определение поведения свойства.
Введите none
в текстовом поле Значение по умолчанию.
Выберите never
в поле Read only.
В поле Текст справки введите 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
признаки, определенные на вкладках Свойства Значений и Help.
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 не будет добавлен в поле Set code text.
Следующий код программного обеспечения MATLAB добавляется в текстовое поле Get code.
% 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
в поле Read only.
В поле Текст справки введите 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
признаки, определенные на вкладках Свойства Значений и Help.
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])