Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Функциональная модель модуля SCPI




Чтобы правильно выбрать команды SCPI для управления функциональными возможностями, используют обобщенную модель программируемого прибора или системы, которая показана на рис. 3.5. Каждый элемент функциональной схемы имеет свой иерархический набор команд. Сигналы необходимо формировать, маршрутизировать и измерять, поэтому можно выделить модули источников, коммутаторов и приемников.

Очевидно, что большинство приборов не обладают всеми функциональными возможностями. Например, прибору, принимающему сигнал, не нужен компонент генерации и не обязателен компонент маршрутизации (ROUTe) сигнала. Другой прибор, такой как мультиплексор, содержал бы только подсистему ROUTe.

 Рис. 3.5. Функциональная модель прибора или системы измерения  

 

Основная задача измерителя – сбор данных. Его модель содержит три модуля: INPut (ввод), SENSe (приемник, измеритель...) и CALCulate (вычислитель). Функция генерации сигналов содержит модули OUTPut (вывод), SOURce (источник) и CALCulate (вычислитель). У многофункционального прибора могут быть общие модули. Модуль памяти (MEMory) сохраняет данные внутри прибора. Модуль формата (FORMat) преобразует приборные данные в форму, которую можно передавать по стандартной шине. Модуль запуска (TRIGger) синхронизирует все действия с внутренними и внешними событиями.

Компонент ИЗМЕРИТЕЛЬ разделен на три основные части: input, sense и calculate. Функциональный узел input является входным модулем, создающим необходимые условия (например, усиление или согласование ) для входного сигнала прежде, чем он будет преобразован в данные блоком sense. Функции input включают также фильтрацию, преобразование и ослабление. Модуль sense преобразует сигналы во внутренние данные, которыми можно управлять. Функции sense управляют такими параметрами, как диапазон, разрешающая способность, время счета и режим работы. Модуль calculate преобразует полученные данные в формат, необходимый для прикладной программы. Функции calculate включают процедуры вычисления, усреднения и преобразования данных.

Компонент ГЕНЕРАТОР предназначен для формирования измерительного сигнала. Он обеспечивает преобразование программных данных в выходные физические сигналы – аналоговые или цифровые. Генератор разделен на три функциональных модуля: output, source и calculate. Компонент output создает нормированные условия для выходного сигнала. Функции output включают фильтрацию, преобразование и ослабление. Компонент source генерирует сигналы в соответствии с требованиями программных внутренних данных. Функции модуля source задают такие параметры сигнала, как вид и глубина модуляции, мощность или напряжение, частота, число каналов выхода и др. Компонент calculate преобразовывает программные данные во внутренние сигналы управления источником.

Основные особенности SCPI

Основные команды SCPI общепонятны, что достигается выбором простых мнемоник и их иерархической организацией. В высокоуровневых языках команды состоят из ключевых слов, разделенных специальными знаками. Любой, кто уже имел навыки работы с современными файловыми структурами, легко адаптируется к иерархической структуре SCPI.

 1. Многоуровневость SCPI

Многоуровневую структуру SCPI относят к схеме типа "дерево". Связанные по назначению команды группируются вместе в вершине дерева подобно тому, как листья одного уровня соединены с одной ветвью. Тонкие высокие ветви, образовавшиеся у корня дерева и присоединенные к телу дерева, считаются высшими в иерархии. Путь от корня к листьям описывают команды SCPI.

2. Ключевые слова

Каждое ключевое слово длиннее, чем четыре знака дается в укороченном варианте. Обычно в документации по SCPI командам придается следующая форма записи: ключевое слово дается в его длинной форме, с маленькими буквами после четырех больших букв. Обычно команды пишутся в их полной форме от корня к листьям.

Hапример: SENSe:FREQuency:STARt 10 MHz

Эта команда используется для установки начальной частоты измерителя на величину 10 МГц. Можно использовать ключевые слова-команды в длинной или короткой форме. Допустимые эквиваленты команды:

sense:frequency:start 10 МНz

sens:freq:star 10 МНz

В примере команда показана с конкретным параметром 10 МГц. Однако команды SCPI могут работать с диапазоном значений. В SCPI числовые значения описываются знаком <numeric_value>. Маркер <numeric_value> допускает применение также обозначений: MAXimum и MINimum. Ниже приведена команда установки начальной частоты к самому нижнему разрешенному пределу:

SENSe:FREQuency MINimum

При этом необходимо помнить, что текущее минимальное значение не всегда является абсолютным минимумом. Оно зависит от режима работы прибора.

Аналогично, используя MAXimum, можно установить начальную частоту на максимально допустимое в данном режиме работы прибора значение.

3. Запросная форма записи

В SCPI команды имеют возможность записи в эквивалентной запросной форме так, чтобы пользователь имел возможность запросить или возвратить данные в исходную точку. Форма записи запроса такая же, как и командная, только добавляется знак вопроса (?). Запросная форма при выполнении измерений говорит прибору о необходимости передать результат в компьютер. Запросная форма команды установки начальной частоты имеет вид:

SENSe:FREQuency:STARt?

Если начальная частота ранее была 10 МГц, то запрос должен вернуть ее в исходное состояние. Задачей запросной формы является возврат ранее введенных данных, а в случае использования команд с <numeric_value> – возврат в конкретную точку. Однако запрос не возвращает единицы измерения.

Другим полезным свойством команд в запросной форме является облегченный механизм поиска доступного диапазона значений без изменения режима работы:

SENSe:FREQuency:STARt? MINimum

SENSe:FREQuency:STARt? MAXimum

Маркер <numeric_value> позволяет употреблять в командах и другие обозначения, используемые в приборах, такие как положительная бесконечность (INFinity) и отрицательная бесконечность (NINFinity).

4. Автоматическая настройка прибора

Диапазон и режимы работы зависят от функциональных возможностей выбранного прибора. Например, вольтметр может иметь шкалы измерения напряжения 1 В, 10 В и 100 В. Для обеспечения измерительной совместимости значения, задаваемые <numeric_value> и находящиеся внутри диапазона прибора, но не соответствующие фактическому значению в приборе, округляются. Округление производится в зависимости от прибора, команды и того, как близко стоит ближайшее фактическое значение. Если взять, к примеру, диапазон вольтметра, то запрос на значение 2 В подразумевает, что пользователю необходимо измерять сигналы до 2 В и выбранный прибор должен избрать шкалу 10 В. В случае выбора частотного значения или любого другого, наиболее вероятным действием будет округление до ближайшего разрешенного значения.

Выбор значения, которое выходит за рамки возможностей прибора, заставляет его генерировать ошибку "Выход из диапазона". Однако SCPI предусматривает округления, когда значение параметра лишь немного выходит за рамки. Например, в генераторах с диапазоном частот от 10 Гц до 20 кГц и четырьмя разрядами шкалы на запрос 50 кГц прибор выдаст ошибку "Выход из диапазона". В то же время на запрос 20,005 кГц может установить значение 20 кГц, так как дискрет по оси частот в точке установки больше 0,005 кГц.

5. Числовые и символьные переменные

Кроме числовых значений и обозначений типа MAXimum и MINimum, описываемых знаком <numeric_value>, в SCPI могут использоваться различные символьные переменные <Boolean> во многих, преимущественно управляющих командах. Команда, содержащая в своем описании <Boolean>, подразумевает состояния ON (включено) и OFF (выключено). Запрос на команду с параметром <Boolean> возвращает состояние 1 или 0.

Некоторые команды имеют подрежимы, которые описываются в символьном виде. Например, в строке SOURce:FREQuency:MODE символ MODE (вид колебания) предполагает режимы качания частоты (SWEep) или непрерывных колебаний (СW-continious wave или FIXed).

6. Табличная форма записи (в виде столбца)

В командной таблице наивысший узел графа иерархически занимает наиболее левую позицию, в то время как более низкий по значимости узел пишется на одну позицию ниже и правее корневого узла. Например, в строке ниже SENSe имеется ключевое слово корневого уровня FREQuency как его подуровень. В свою очередь, FREQuency имеет свои собственные три подуровня:

SENSe

:FREQuency

[:CW¦:FIXed] <numeric_value>

:STARt <numeric_value>

:STOP <numeric_value>

7. Передача нескольких команд в одном сообщении

Обычно программы пишутся только с одной командой в каждом сообщении, однако количество команд в одном сообщении не ограничивается стандартом и может быть достаточно большим:

 SENSe

 :FREQuency

 :STARt <numeric_value>

 :STOP <numeric_value>

Здесь STARt и STOP – вершины дерева, имеющие одну родительскую вершину FREQuency. Поэтому эти команды можно записать:

 SENSe:FREQuency:STARt 10 Mhz <PMT>

 SENSe:FREQuency:STOP 50 Mhz <PMT>

Здесь символ <PMT> обозначает конец сообщения. Альтернативно эти команды могут быть включены в одно сообщение, поскольку для каждого набора посылаемых сообщений контроллер должен адресоваться к этому прибору. Преимущество передачи нескольких команд в одном сообщении в том, что указанная выше адресация прибора сохраняется. Приведенный выше пример с одним сообщением будет иметь вид:

 SENSe:FREQuency:STARt 10 MHz;

 :SENSe:FREQuency:STOP 50 MHz <PMT>

Команды в одном сообщении отделяются точкой с запятой. В начале каждого сообщения прибор ожидает указания команды от корня к ветвям. После точки с запятой добавляется двоеточие к началу следующей команды. Это означает, что команда также идет от корня. В случае, когда двоеточие опущено, команда идет от родительской вершины дерева последней команды. Этот механизм обеспечивает существенное сокращение времени написания программы и наш пример преобразуется в следующий вид:

 SENSe:FREQuency:STARt 10 MHz;

 STOP 50 МHz <PMT>

8. Допустимые варианты записи

Внутри квадратных скобок приведенного выше примера есть два ключевых слова, разделенных вертикальной чертой. Эта черта свидетельствует о наличии выбора (ИЛИ) между ключевыми словами CW и FIXed. Таким образом, одну и ту же команду можно записать в нескольких вариантах:

 SENSe:FREQuency [:CW¦:FIXed]

 SENSe:FREQuency:CW 10 MHz

 SENSe:FREQuency:FIXed 10 MHz

 SENSe:FREQuency 10 MHz

9. Режимы работы по умолчанию

Один из вариантов подуровня FREQuency заключен в квадратные скобки. Такое изображение обозначает режим, принимающий значение по умолчанию. Язык SCPI часто использует режим "по умолчанию" с целью сделать команду как можно более простой. Когда прибор преимущественно источник или коммутирующее устройство, то по умолчанию подразумевается переход к корневым узлам SOURce или ROUTe. Таким образом, для генератора команда о смене фиксированной частоты выглядит следующим образом:

FREQuency 30 MHz

Режимы по умолчанию играют более существенную роль, чем упрощение неоднократно повторяющихся команд. Механизм режима по умолчанию – это ключ к расширению языка SCPI. Нижняя таблица показывает, как выглядит набор SCPI-команд для задания состояния и частоты фильтрации входного устройства:

NPut

:FILTer

 [:STATe] <Boolean>

 :FREQuency <numeric_value>

Пусть первоначально была задана фильтрация по низким частотам, но необходимо управлять также верхними частотами. Это достигается путем ввода текущей низкочастотной фильтрации в режим "по умолчанию" (Low PASs) и добавления нового графа (High PASs) для задания высокочастотных характеристик, как показано ниже:

INPut

 :FILTer [:LPASs]

 [:STATe] <Boolean>

 :FREQuency <numeric_value>

 :HPASs

 [:STATe] <Boolean>

 :FREQuency <numeric_value>

10. Вертикальная совместимость приборов

Программа, предназначенная для работы с приборами, имеющими устаревшую версию языка, будет работать и с новыми приборами, поддерживающими расширенный командный язык. SCPI поддерживает механизм обеспечения ограниченной обратной совместимости, когда необходимо использовать устаревший прибор с ранней версией языка. Однако если при написании прикладной программы основывались на новой версии языка и некоторые новые команды находятся в режиме "по умолчанию", то очевидно, что устаревший прибор не сможет выполнить новый граф. Для обеспечения обратной совместимости лучше исключить режимы "по умолчанию" из всех активных команд, посылаемых на старый прибор.

11. Горизонтальная совместимость приборов

Высшим уровнем программного кода считаются команды MEASure. Это самый высокий уровень горизонтальной совместимости приборов, базирующийся на использовании сигнально ориентированных команд, которые отражают суть задачи, стоящей перед прибором. Таким образом, команда MEASure для измерения частоты (FREQUuency) может быть подана на осциллограф, счетчик или другой многофункциональный прибор, и требуемая функция будет реализована.

12. Гибкость стандарта

Успех внедрения SCPI основан на возможности пользователей совершенствовать стандарт и включать в него различные полезные нововведения. Те стандарты, в которых возможности модернизации ограничены, не выдерживают жесткой конкуренции на мировом рынке сбыта. Функции приборов очень быстро развиваются и, конечно же, необходимо, чтобы стандарт не тормозил их развития.

Язык SCPI непрерывно пополняется разработками разных компаний. Предложения по расширению SCPI ставятся на рассмотрение рабочей группы консорциума. Этот орган решает, надо ли утвердить это предложение или нет, чтобы не нарушалась связь между новыми командами и общей стратегией SCPI. Если нововведения принимаются, то они становятся частью ежегодно распространяемого обновленного стандарта.

Пересмотренная версия стандарта содержит наименование года. Ежегодные версии сопровождаются нулем через точку. Например, стандарт в своем первом издании есть SCPI 1990.0. Если принимаются новые команды, то десятичная частица увеличивается. Первое изменение относится к SCPI 1990.1.

SCPI позволяет изготовителям приборов по-своему определять те функции, которые отсутствуют в стандарте. SCPI требует неукоснительного соблюдения только тех команд, которые утверждены. Используемые команды, не оговариваемые стандартом, называются "неутвержденными".

Прибор, в чей набор функций включены такие, которые описываются "неутвержденными" командами, не может быть полностью совместимым с новыми версиями стандарта. Добавление новых команд к стандарту запрещает прибору иметь полную принадлежность к новым версиям. Это проверяется командным запросом:

 SYSTem:VERSion?

При дальнейшей эволюции конкретного прибора производителям аппаратуры необходимо пересматривать, какие команды являются стандартными, а какие "неутвержденными". При точном подборе прибора под какую-то конкретную задачу наиболее предусмотрительно использовать последнюю версию стандарта. Этот пересмотр дает возможность определить, нужны ли для его измерительной аппаратуры какие-либо "неутвержденные" команды. В результате сохраняется баланс между нововведениями и стандартизацией.

Таким образом, SCPI – это язык программирования, который по мере развития расширяется. Несмотря на большой набор уже имеющихся команд, SCPI предусматривает большие возможности по дополнению и изменению.










Последнее изменение этой страницы: 2018-04-12; просмотров: 660.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...