ГОСТ Р 34.1341-93
Информационная технология. Стандартные рутины для системы Фастбас

     ГОСТ Р 34.1341-93 (МЭК 1052-91)

Группа П70

     
     
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ

СТАНДАРТНЫЕ РУТИНЫ ДЛЯ СИСТЕМЫ ФАСТБАС

Information technology

Fastbus Standard Routines



ОКП 42 2000

Дата введения 1994-07-01


     
ИНФОРМАЦИОННЫЕ ДАННЫЕ

1. ПОДГОТОВЛЕН И ВНЕСЕН Всероссийским научно-исследовательским институтом стандартизации и сертификации в машиностроении (ВНИИНМАШ)
     

2. УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 24.06.93 N 159.
     
     Настоящий стандарт разработан на основе прямого применения Публикации МЭК 1052-91 и определяет стандартные программы для доступа к системе Фастбас - стандартизованной модульной быстродействующей системе сбора данных и управления, определенной стандартом ГОСТ 34.340-91 (МЭК 935-90)
     

3. ССЫЛОЧНЫЕ НОРМАТИВНО-ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ
     

Обозначение отечественного нормативно-технического документа,
на который дана ссылка

Обозначение соответствующего стандарта МЭК

Глава, пункт, подпункт,
в котором приведена ссылка

34.340-91

МЭК 935-90

1; 1.1; 2.1


     

Предисловие научного редактора русского текста


     Разработка этого стандарта началась в США в процессе создания первых устройств на основе стандарта Фастбас, утвержденного впервые в ноябре 1982 г. комитетом NIM (Nuclear Instruments Modules) Департамента энергии США. На годичном Nuclear Science Symposium в августе 1984 г. было объявлено об издании спецификации "Fastbus Standard Routines". После уточнения этот документ в апреле 1987 г. был представлен в Международную электротехническую комиссию в качестве проекта международного стандарта. Ровно через четыре года вышел в свет стандарт МЭК 1052(1991), идентичный американскому стандарту ANSI/IEEE 1177-1989. ГОСТ 34.341 является полным аутентичным переводом международного стандарта и предназначен для использования совместно с основным стандартом Фастбас, который издан на русском языке в виде ГОСТ 34.340.
     
     Разработка стандартных Рутин стала возможной благодаря тому, что в гл.8 основного стандарта впервые в мире были определены и стандартизованы функции всех битов регистров управления и состояний. Во многих Рутинах имеются прямые ссылки на биты РУС и их функции. Рутины позволяют создать комплект БИС, аппаратно воплощающих стандарт и обеспечивающих максимально быстрое программирование, трансляцию и исполнение программ. Рутины можно применить и другим способом - с использованием универсальных программ на языке высокого уровня при существенно более медленной работе. Такие программы будут учитывать логические требования, описанные в Рутинах, и явятся, скорее всего, промежуточной стадией на пути к комплекту БИС.
     
     Точные формулировки логических требований, данные в описаниях Рутин настоящего стандарта, обеспечивают совместимость программ, созданных в разных фирмах, с аппаратурой, соответствующей стандарту Фастбас. Оба стандарта совместно определяют 5 уровней Модели открытых систем Международной организации стандартов, начиная с физического уровня и кончая сессионным уровнем (п.3.1). Охват пяти уровней всего двумя стандартами является уникальным в мире.
     
     В гл.10 основного стандарта определены Соединители сегментов, обеспечивающие передачу информации между Крейт-сегментами при помощи Кабель-сегментов с использованием параллельных кодов. В комитетах NIM и IEEE в настоящее время завершается разработка третьего стандарта Фастбас на оптоволоконные каналы связи между Крейт-сегментами для передачи последовательным кодом. Ожидается, что и этот стандарт станет международным и в дальнейшем государственным стандартом России.
     
     При обоих способах передачи обеспечивается образование сети произвольной конфигурации. Поскольку информация между модулями и между крейтами передается на основе одного и того же логического протокола Фастбас, Рутины действительны для Работы как внутри крейта, так и в сети. Это свойство системы Фастбас также уникально в мире. В целом система Фастбас с присущей ей собственной универсальной сетью оказывается наиболее эффективной из магистрально-модульных многопроцессорных информационно-измерительно-управляющих систем.
     
     Многие термины, употребляемые в вычислительной технике, в стандартах Фастбас имеют специальный смысл, определенный стандартами. Например, Рутина в этом стандарте это не стандартная собственно программа, а логические требования к созданию программы. Поэтому Первичный адрес, Вторичный адрес, Среда, Воплощение и многие другие термины в оригинальных стандартах и в ГОСТ 34.340 и ГОСТ 34.341 написаны с заглавной буквы, чтобы предотвратить ошибки, возможные при попытках использовать в системе Фастбас термины в общепринятом смысле.
     

Гл.6-9. перевела М.А.Пирогова, гл.10, 11 перевел В.А.Краюшкин, гл.1-5 - К.Э.Эрглис. Он же выполнил научное редактирование и корректуру всего текста.
     

К.Эрглис

МЕЖДУНАРОДНАЯ ЭЛЕКТРОТЕХНИЧЕСКАЯ КОМИССИЯ

СТАНДАРТ МЭК-1052: СТАНДАРТНЫЕ ПРОГРАММЫ ДЛЯ СИСТЕМЫ ФАСТБАС

Предисловие
     

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

2. Стандарты имеют статус рекомендаций для международного использования и приняты Национальными комитетами именно в этом смысле.
     

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

4. МЭК не формулирует какие-либо процедуры, касающиеся маркировки в знак признания продукции, и не несет ответственности, когда продукция объявлена соответствующей одной из рекомендаций.

Информация
     
     Настоящий стандарт подготовлен Техническим комитетом 45: Ядерное приборостроение. Текст стандарта основан на следующих документах:     
     

По Правилу шести месяцев

По Отчету о голосовании

45 (ЦБ) 198

45 (ЦБ) 205


     
     Полную информацию о голосовании по одобрению этого стандарта можно получить из Отчета о голосовании, указанного в выше.
     
     В стандарте использована Публикация МЭК 935 (1990): ФАСТБАС - Модульная быстродействующая система сбора данных.
     
     

Глава 1. ВВЕДЕНИЕ, ПРЕДМЕТ И ОБЛАСТЬ РАСПРОСТРАНЕНИЯ СТАНДАРТА

     Глава 1. ВВЕДЕНИЕ, ПРЕДМЕТ И ОБЛАСТЬ РАСПРОСТРАНЕНИЯ СТАНДАРТА


     Настоящий стандарт определяет стандартные программы для доступа к системе ФАСТБАС - стандартизованной модульной быстродействующей системе сбора данных и управления, определенной ГОСТ 34.340 - ФАСТБАС - модульная быстродействующая система сбора данных.
     
     Принято, что читатель знаком с системой Фастбас.
          

1.1 Область распространения и предмет стандарта
     
     Стандартные программы (Рутины), определенные настоящим стандартом, применимы к системам Фастбас, соответствующим ГОСТ 34.340. Назначение документа - обеспечить разработчиков стандартными программами, имеющими единый смысл для всех пользователей, чтобы уменьшить дублирование в разработках программ и максимально повысить взаимозаменяемость в программах и аппаратуре Фастбас.
          

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

1.3 Обзор документа
     
     В гл.2 описаны некоторые основные положения, общие для всех Рутин.
     

Гл.3 посвящена Рутинам, применяемым в связи с использованием Среды, с которой работает система Фастбас.
     
     В гл.4 описаны Операционные параметры, которые образуют часть Среды Фастбас.
     
     В гл.5 описаны буферные режимы, которые действующая программа использует для управления доступом к буферам данных пользователя.
     
     В гл.6 описаны Рутины для выполнения простых передач Фастбас.
     
     В гл.7 описаны Рутины для выполнения сложных передач Фастбас.
     
     В гл.8 описаны Рутины для выполнения примитивных действий Фастбас.
     
     В гл.9 описаны Рутины для обработки асинхронных событий в системе Фастбас, для реакций на запрос обслуживания и реакций на сообщения о прерывании.
     
     В гл.10 описаны Рутины, зависящие либо от системы, либо от порта.
     
     В гл.11 описаны отзывы Воплощения на ошибки. Описаны Рутины, управляющие отзывами, и Рутины для извлечения статусной информации о предыдущих действиях.
     

Гл.12 содержит список всех кодов ошибок наряду со степенью их серьезности.
     
     

Глава 2. ОСНОВНЫЕ ПОЛОЖЕНИЯ

2.1 Терминология

В настоящем стандарте использованы термины, имеющие смысл, специфический для системы Фастбас. Такие термины, как "принудительная передача", "широкая адресация", "Сегмент" и другие, определены в стандарте Фастбас. Их определения здесь не повторяются.
     
     Рутины в этом стандарте определены как средство связи между "Пользователем", который их вызывает, и "Воплощением", которое вызываемо Рутиной. В сферу Фастбас-сессии входят понятия "Пользователь" или "Процесс пользователя". Некоторые общие термины определены ниже.
     
     "Фастбас-действия" непосредственно управляют линиями в сегменте Фастбас или считывают с линий. Не все Воплощения Фастбас поддерживают все действия этого типа, возможные в принципе.
     
     "Примитивным Фастбас-действием" является одно из следующих возможных логически завершенных поддействий:
     
     Цикл арбитража.
     
     Первичный адресный цикл.
     
     Вторичный адресный цикл данных.
     
     Цикл данных.
     
     Освобождение устройства (Завершающая последовательность).
     
     Освобождение магистрали.
     
     Не все Воплощения в Фастбасе поддерживают исполнение каждого одиночного поддействия, но все Воплощения должны поддерживать Операции и Передачи так, как они определены ниже, чтобы их можно было квалифицировать как Воплощения этого стандарта.
     
     "Операция" состоит из Первичного адресного цикла, за которым следует ноль или более Циклов данных и Завершающая последовательность.
     
     "Простая операция" - это Операция, в которой первый Цикл данных после Первичного адресного цикла может определять только Вторичный адрес.
     
     "Передача" состоит в получении Мастером владения магистралью, сопровождаемого исполнением одной или больше Операций с последующим освобождением магистрали.
     
     "Простая передача" это передача с исполнением единственной Простой операции.
     
     "Контроллер" является зачинателем вызовов Фастбас-действий, описанных в этом стандарте.
     
     "Порт" Фастбас связывает Контроллер с Сегментом Фастбас.
     
     Между Контроллером и Сегментом Фастбас могут существовать множественные маршруты. Для различения разных маршрутов должны быть использованы идентификаторы портов port_id.
     
     Понятие "Стандарт Фастбас", используемое здесь, ГОСТ 34.340 - ФАСТБАС - модульная быстродействующая система сбора данных.
     

2.2 Среда

2.2.1 Обзор
     
     Стандарт Фастбас определяет протокол, по которому Мастер сначала получает владение магистралью, устанавливает соединение с одним или несколькими Слугами, а затем передает данные. Мастер может прервать соединение со Слугами и, не оставляя контроль над Сегментом, может установить соединение с другим Слугой. В любой момент Мастер может освободить магистраль, чтобы другой Мастер мог получить управление магистралью сразу же после прекращения связки с адресатом.
     
     Все эти действия имеют место в Среде, относительно которой Пользователь имеет некоторые средства управления. Именно степень управления, доступная Пользователю, будет изменяться от одного Воплощения к другому. Контроллер может или может не быть способным изменять параметры, влияющие на Фастбас-действия, а также и система программирования процессора может или не может допускать использование определенных операций или техники. Чтобы сделать возможным использование широкого диапазона аппаратных и программных ресурсов, которые могут быть доступны при различных приложениях, в этом стандарте проведены различия между действиями, которые имеют место в собственно Сегменте Фастбас, и Средой, в которой происходят действия. Рутины определены так, чтобы управлять как характером Среды, так и действиями, происходящими в Сегменте.
     
     Процессы в системе Фастбас определяются инструкциями, выдаваемыми Контроллером. Контроллер может быть большой вычислительной системой со многими стандартными периферийными устройствами, как диски и магнитофоны (в дополнение к Фастбасу), и с многопользовательской многозадачной операционной системой, которая обеспечивает возможность для одновременных работ в широком диапазоне, таких как разработка программ и сбор данных. В другом случае в устройстве Фастбас может быть процессор, имеющий хотя бы только рудиментарную операционную систему для одного пользователя и одной задачи. Такой процессор может выполнять программы, подготовленные на стороне и хранимые в постоянной памяти.
     
     Результатом исполнения одних инструкций, выдаваемых Контроллером Фастбас, будут циклы различного типа в собственно системе Фастбас, в то время как другие инструкции будут управлять Средой, в которой имеют место циклы Фастбас. Эта Среда содержит уровень арбитража, используемый Мастером в соревновании за владение магистралью, различные выдержки времени, условия об удержании или освобождении магистрали в конце текущей Операции и т.д. В этом стандарте предусмотрена возможность спецификации таких условий, хотя от конкретного Порта Фастбас не требуется способность воспринимать все изменения.
     
     В другом аспекте Среда определяет, как система ведет себя после окончания вызванной Рутины Фастбас. Предусмотрен автоматический отклик на ошибочные условия и автоматическое извещение об ошибках. Пользователь имеет контроль над реакциями аппаратных и программных средств в определенных условиях, а также над тем, что выводить или не выводить для показа.
     
     Среда также определяет источник инструкций для Порта Фастбас. Эти инструкции могут исходить непосредственно от стандартной программы, как только она встречается в исполняемой программе, или они могут быть взяты из Списка инструкций, который был создан предварительно. Создан ли в системе Фастбас Список или нет, время вызова Рутины определяется Средой.
         

2.2.2 Определение понятия "Среда"
     
     "Среда" - это информация, которую хранит Воплощение по воле Пользователя. Эта информация состоит из пяти компонентов:
     

1. Комплект "Операционных параметров", которые имеют значения, фиксированные по умолчанию, и могут быть явно установлены Пользователем (см. гл.4).
     

2. Информация, управляющая откликом Воплощения на ошибки и другие несанкционированные условия (см. гл.4 и 11).
     

3. Информация, относящаяся к последовательностным буферам (см. гл.5).
     

4. Информация о состояниях, выдаваемая Воплощением, описывающая исполненные действия и ошибки (см. гл.11).
     

5. "Список" действий Фастбас. Этот список используют только в Режиме отложенного исполнения в качестве записи действий, подлежащих исполнению позднее. В Среде, которая не поддерживает Режим отложенного исполнения, Список отсутствует (см. гл.3).
     

2.2.3 Идентификатор Среды
     
     К Среде обращаются при помощи параметра environment_id - идентификатора Среды, который придается большинству Рутин Фастбас. Воплощение должно предусматривать Среду-по-умолчанию, имеющую идентификатор Среды FB_DEFAULT_EID. Вызовом одной из Рутин, указанных в разделе 3.2, могут быть созданы другие Среды. Пользователь может работать одновременно с несколькими Средами.
     

2.2.4 Режим исполнения
     
     Среда может содержать один из двух Режимов исполнения: "Режим немедленного исполнения" или "Режим отложенного исполнения". Режим исполнения указывает состояние Операционного параметра FB_PAR_DELAY_EXEC - соответственно FB_FALSE или FB_TRUE. Первоначальный Режим исполнения зависит от того, как создана Среда. Среда, созданная "немедленно", должна всегда оставаться с Режимом немедленного исполнения. Среда, созданная "отложенной", может быть изменена последовательно на Режим немедленного исполнения и обратно при помощи изменений значения FB_PAR_DELAY_EXEC.
     
     Для Воплощения обязательно поддержание Режима немедленного исполнения, в то время как поддержание Режима отложенного исполнения реализуется по желанию.
     
     Режим исполнения влияет на то, что происходит, когда вызывается Рутина действия.
     
     Действия, вызванные Рутинами действия, когда идентификатор Среды не прошел как параметр, должны всегда исполняться немедленно.     

2.2.5 Доступ к Фастбасу в многопользовательской системе
     
     Магистраль Фастбас и адресные связки предусматривают правильное использование магистрали множеством Мастеров. Программное Воплощение должно обеспечивать взаимное исключение нескольких Мастеров, достигающих Фастбас через один и тот же Порт. Воплощение должно предотвращать доступ других Пользователей к магистрали через Порт, если какой-нибудь Пользователь уже установил через этот Порт Владение магистралью (связка GK) или связался с другим адресом (связка AS-AK).
     
     Явное определение Порта является операцией высокого уровня, которая обеспечивает пользователю гарантию исключительного использования Порта Фастбас для выполнения серии операций без соревнования за Порт. Следует заметить, что определение Порта само по себе не гарантирует использование самой магистрали (см. раздел 10.3).     

2.2.6 Сессия Фастбас
     
     Вызов Рутины FB_OPEN, описанный в гл.3, определяет сессию Фастбас. В пределах этой сессии пользователь должен иметь доступную Среду-по-умолчанию (отмеченную идентификатором Среды FB_DEFAULT_EID). Любые назначения Порта или Устройства (см. гл.10) действительны в течение всей выполняемой сессии Фастбас.     

2.2.7 Рутины действия
     
     В последующих описаниях Рутин некоторые из них отмечены как "Рутины действия". Этим Рутинам присуще "действие", влияющее на систему Фастбас или "Буферы данных", или на то и другое. Все Рутины, в имени которых есть слова READ или WRITE (вместо GET или SET, см. раздел 4.1), являются Рутинами действия.
     
     В Режиме немедленного исполнения, когда вызвана Рутина действия, действие выполняется сразу. Статусная информация об успехе или неудаче действия запоминается в Среде (Статусная история, см. гл.11). Точное действие, подлежащее исполнению, зависит от вызванной Рутины и от состояния Операционных параметров. Передача данных Рутиной действия в буферы Пользователя и обратно происходит в соответствии с определенным Режимом буфера (см. гл.5).
     
     В Режиме отложенного исполнения, когда вызвана Рутина действия, действие начинается не сразу. При этом действие, определенное Рутиной в соответствии с состоянием Операционных параметров на данный момент, вносится в "Список" действий и может быть выполнено в любое более позднее время. Возвратный код Рутины дает индикацию лишь успеха в добавлении действия к Списку, но на этой стадии Статусная история не создается и предыдущая Статусная история остается нетронутой. На этой стадии не происходят передачи данных в Буферы данных (за исключением единственного слова WRITE [записать] данные - в режиме FB_BUFFER_VALUE - см. гл.5).
     
     Рутина FB_LIST_EXECUTE вызывает исполнение по порядку всех действий, запомненных в Списке. Когда вызвана эта Рутина, создается Статусная история и передаются данные в Буферы данных Пользователя и обратно, как полагается для каждого действия.          

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

2.3 Соглашения о наименованиях


     Каждой Рутине присвоено описательное имя в двух формах: полное имя (до 32 знаков) и краткое имя (до 6 знаков). Все полные имена начинаются с FB_ и все краткие - с F. По этому стандарту оба имени полагается набирать на верхнем регистре клавиатуры.
     
     Воплощение должно узнавать краткие имена. Воплощению следует узнавать полные имена.
     

2.4 Параметры для Рутин: типы и направления


     Имя, тип данных и направление приведены для каждой Рутины в следующей форме.
     
     Параметры:
     

<имя>

<тип>

<направление>

<имя>

<тип>

<направление>

...

...

Поле <имя> используют только для ссылок на параметр внутри последующего описания Рутины. По этому стандарту поле <имя> полагается всегда набирать строчными буквами нижнего регистра.
     
     Поле <тип> показывает использование и, для каждого Воплощения, потребный объем памяти для параметра. Обозначение типа всегда начинается с букв FB_ с последующими строчными буквами.
     
     Многие параметры хранятся как слова из 32 битов. Однако во многих случаях значения аргументов, которые можно взять, ограничены. Некоторые значения, подобные идентификаторам Среды, присвоены Рутиной и не должны быть изменяемы Пользователем. Другие типы должны иметь только символические значения, определенные этим стандартом. Преобразование этих имен в запоминаемые значения зависит от Воплощения. Ниже представлены поля <тип> с указанием их применения:
     

FB_boolean

Принимает значения FB_FALSE или FB_TRUE.

FB_buffer_mode

Определяет значение относительного параметра buffer_specifier (см. гл.5).

FB_environment_id

Значение FB_DEFAULT_EID может быть использовано всегда. Единственное другое значение, которое может быть использовано, обсуждается в разделе 3.2.

FB_error_code

Код ошибки (см. гл.11). Содержит статусную информацию и Серьезность.

FB_integer

Принимает любые значения от -2ГОСТ Р 34.1341-93 (МЭК 1052-91) Информационная технология. Стандартные рутины для системы ФАСТБАС до 2ГОСТ Р 34.1341-93 (МЭК 1052-91) Информационная технология. Стандартные рутины для системы ФАСТБАС-1.

FB_line

Идентифицирует сигнал или группу сигналов в Фастбасе. Принимает любое значение, данное в разделе 8.4.

FB_list_pointer

Позиция в Списке действий. Представление зависит от Воплощения.

FB_operator

Идентифицирует арифметическую или логическую операции, которые имеют место в течение Фастбас-цикла Чтение-модификация-запись (см. гл.7).

FB_parameter_id

Идентифицирует конкретный Операционный параметр. Принимает любое из значений, перечисленных в гл.4, или значение, зависящее от применения.

FB_parameter_value

Значение Операционного параметра. Допустимый диапазон значений, зависящий от параметра, дан в гл.4.

FB_port_id

Идентифицирует конкретное соединение между Контроллером и Фастбас-сегментом.

FB_response_code

Описывает действие, которое предпринято в результате определенных условий в аппаратуре Фастбас. См. раздел 11.8.

FB_routine

Параметр, используемый для введения программы Пользователя в качестве аргумента к Фастбас-Рутине.

FB_seq_buffer_id

Идентификатор Последовательстного буфера, описанный в гл.5.

FB_severety

Описывает Серьезность состояния с ошибками. Принимает любое значение из списка в разделе 11.6.

FB_word

32-разрядное слово не определенного значения.


     Тип может быть расширен при помощи префикса "array_of", который отмечает массив не определенного размера. Размер массива в байтах всегда дается как отдельный параметр.
     
     Представление этих типов в Среде Фортрана-77 дано в приложении С.
     
     Поле <направление> указывает на направление потока информации и должно иметь одно из следующих значений:
     

IN

Программа читает аргумент, но не изменяет его.

OUT

Программа возвращает значение аргументу или определенному выражению.


     Например. Рутина FRD или FB_READ_DAT имеет следующие параметры:
     

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)

primary _address

FB_word

(IN)

secondary_address

FB_word

(IN)

buffer_mode

FB_buffer_mode

(IN)

buffer_specifier

FB_word

(OUT)

(FBVAR)

или

FB_seq_buffer_id

(IN)

(FBSEQ)


     Здесь показано, что параметр в первой строке является Возвращаемым кодом, возвращаемым программой, во второй строке параметр является управляющим идентификатором, переданным программе и не возвращенным. Третий и четвертый параметры - это 32-разрядные слова, передаваемые программе. Параметры buffer_mode и buffer_specifier определяют источник или назначение данных в Контроллере и обсуждаются ниже. Параметр buffer_specifier может быть в одной или иных формах, записанных для каждой Рутины.
     

2.5 Параметры Буферов


     Любая Рутина действия среди своих параметров имеет два параметра буферов:
     

buffer_mode

FB_buffer_mode

(IN)

buffer_specifier

<тип>

<направление>


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

Buffer_mode Value
[значение Буферного режима]

Buffer_specifier [спецификатор буфера]

(полное имя)

(краткое)

<тип>

<направление>

FB_BUFFER_VAR

FBVAR

(array_of_)FB_word

IN или OUT

FB_BUFFER_VALUE

FBVAL

FB_word

IN

FB_BUFFER_SEQ

FBSEQ

FB_seq_buffer_id

IN


     
     Буферные режимы и их использование в Средах Режимов отложенного и немедленного исполнения обсуждаются более детально в гл.5.
     
     В приложении С дано предлагаемое представление типов Фастбас-данных в Среде Фортрана-77.
     

2.6 Категории Рутин


     В этом стандарте каждой Рутине присвоена одна из категорий:
     
     Рутины категории А обязательны для любого Воплощения.
     
     Рутины категории В обязательны для любого Воплощения, поддерживающего Среду Режима отложенного исполнения.
     
     Рутины категории С должны придаваться тем Контроллерам Фастбас, которые могут быть запрограммированы для выполнения одиночных Фастбас-циклов или управления отдельными сигнальными линиями в магистрали Фастбас.
     
     Рутины, соответствующие категории I, должны создаваться, когда Контроллер предназначен для работы в качестве Слуги, и принимать сообщения о прерываниях Фастбас или выполнять действия, связанные с выставлением сигнала SR.

     
     Рутины категории S являются системными и зависят от Воплощения. Их Воплощение необязательно и их Операция может не быть одной и той же для всех Воплощений.
     
     Рутины категории Е произвольны для любого Воплощения.
     
     

Глава 3. ОРГАНИЗАЦИЯ СРЕДЫ и ОТЛОЖЕННОЕ ИСПОЛНЕНИЕ


     Конкретное Воплощение Рутин Фастбас может зависеть от архитектуры Контроллера и Порта. В поддержании или отсутствии Режима отложенного исполнения заключается главное различие между Воплощениями. Это различие отображается в Воплощении (см. гл.2).
     
     Все Воплощения должны обеспечивать Среду-по-умолчанию, обозначаемую идентификатором среды FB_DEFAULT_EID. Эта Среда должна быть только Средой Режима немедленного исполнения.
     
     В Воплощениях, которые не поддерживают Режим отложенного исполнения, Среда-по-умолчанию, равно как и любая Среда, создаваемая пользователем, должна содержать операционные параметры, отклик на ошибки и статусную инфрмацию, а также информацию о Последовательном буфере, если он есть. В Воплощениях, которые поддерживают Режим отложенного исполнения, любые Среды, созданные Пользователем с Режимом отложенного исполнения, должны быть способны содержать дополнительно Список действий, подлежащих исполнению.

     

3.1 Открытие и Закрытие Фастбас-сессии


     Описаны две Рутины, которые должны быть вызываемы любой программой до и в конце Фастбас-сессии.     

3.1.1 Открытие Фастбас-сессии
     
     До вызова любой Рутины, определенной этим стандартом, Пользователем должна быть вызвана нижеследующая Рутина. Параметры, зависящие от воплощения, могут быть введены для спецификации деталей, указывающих, как должна быть использована Система Фастбас.
     
     Ни один из Операционных параметров не должен влиять на эту Рутину.
     

Имя:

FBOPEN или FB_OPEN

Категория:

А

Параметры:

return_code

FB_error_code

(OUT)

дальнейшие параметры зависят от Воплощения


Действие:
     
     Этот вызов может быть использован для выполнения программной и аппаратной инициализации Контроллера, но не должен выполнять какого-либо Фастбас-действия на магистрали.
     
     Не влияя на Фастбас-сегмент или выполнение какой-либо операции Фастбас, в Среде-по-умолчанию все Операционные параметры должны принимать свои состояния-по-умолчанию.

     
     Если FB_OPEN была вызвана раньше, чем FB_CLOSE, Рутина FB_CLOSE должна быть обязательно выполнена.     

3.1.2 Закрытие Фастбас-сессии
     
     Если использование системы Фастбас больше не требуется, Пользователь должен вызвать следующую Рутину:
     

Имя:

FBCLOS или FB_CLOSE

Категория:

А

Параметры:

return_code

FB_error_code

(OUT)


Действие:
     
     Если Пользователь покидает Порт Фастбас, когда на каких-либо линиях магистрали выставлены сигналы, эти сигналы должны быть сняты. Ни один из операционных параметров не должен влиять на эту Рутину. Если, после вызова Рутины FB_CLOSE, Пользователь вызывает любую Рутину, определенную в этом стандарте, до нового вызова Рутины FB_OPEN, должно быть выдано извещение об ошибке.
     
     Статусная история не генерируется.
     

3.2 Рутины, организующие Среду

3.2.1 Создание Среды с Режимом немедленного исполнения
     

Имя:

FCIENV или FB_CREATE_IMMEDIATE_ENVIRONMENT

Категория:

А

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(OUT) (см. текст)

Действие:
     
     Должна быть создана или назначена Среда, состояние которой по умолчанию определяется Воплощением в Режиме немедленного исполнения (FB_PAR_DELAY_EXEC имеет значение FB_FALSE). Для Сред, создаваемых таким путем, Операционный параметр FB_PAR_DELAY_EXEC должен быть только читаемым. Возвращаемое значение environment_id (идентификатора Среды) должно быть использовано в качестве входного параметра для определения Среды для других Рутин.
     
     Для Воплощений, распределяющих память, эта Рутина должна обеспечивать доступность необходимой для Среды зоны памяти и возвращать идентификатор среды.

     
     (В тех Воплощениях, где распределение памяти должен выполнять Пользователь, параметр идентификатора Среды указывает Пользователю назначенную зону адресов, которая должна быть использована для хранения и идентификации определения Среды. В этом случае направлением параметра является IN).

3.2.2 Создание Среды с Режимом отложенного исполнения
     

Имя:

FCDENV или FB_CREATE_DELAYED_ENVIRONMENT

Категория:

В

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(OUT)

maximum_calls

FB_integer

(IN)

(см. текст)

Действие:
     
     Должна быть создана или назначена Среда с Режимом отложенного исполнения. Операционный параметр FB_PAR_DELAY_EXEC имеет значение FB_TRUE, а в других отношениях Среда находится в состоянии, которое по умолчанию определено Воплощением. Для Сред, создаваемых таким путем, Операционный параметр FB_PAR_DELAY_EXEC должен выть read/write [чтение/запись]. Должен быть определен соответствующий идентификатор Среды environment_id и использован для определения Среды для других Рутин этого стандарта. Параметр maximum_calls [максимальное число вызовов] должен задавать максимальное число Фастбас-действий, которые могут быть указаны в Списке.
     
     Созданная Среда должна содержать пустой или нулевой Список. Для Воплощений, распределяющих память, эта Рутина должна обеспечивать доступность необходимой для Среды зоны памяти и возвращать идентификатор Среды.

     
     (В тех Воплощениях, где распределение памяти должен выполнять Пользователь, параметр идентификатора Среды указывает Пользователю назначенную зону адресов, которая должна быть использована для хранения и идентификации определения Среды и относящегося к ней Списка. В этом случае направлением параметра является IN).     

3.2.3 Среда с освобождением ресурсов
     

Имя:

FRLENV или FB_RELEASE_ENVIRONMENT

Категория:

А

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)

Действие:
     
     Все ресурсы системы, связанные со Средой, определенной идентификатором environment_id, должны быть освобождены. Этот идентификатор должен стать недействительным для использования в последующих вызовах Рутин этого стандарта.
          

3.2.4 Среда с восстановлением ресурсов
     

Имя:

FRSENV или FB_RESET_ENVIRONMENT

Категория:

А

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)


 Действие:
     
     Среда, определенная идентификатором environment_id, должна быть восстановлена в состояние, которое определено по умолчанию Воплощением. В Воплощениях с исполнением Списка действий Среда должна содержать пустой или нулевой Список. Идентификатор environment_id должен оставаться действительным для последующих вызовов Рутин этого стандарта.         

3.2.5 Копирование Среды

Имя:

FCOENV или FB_COPY_ENVIRONMENT

Категория:

Е

Параметры:

return_code

FB-error_code

(OUT)

from_environment_id

FB_environment_id

(IN)

to_environment_id

FB_environment_id

(OUT) (см. текст)


Действие:
     
     Эта Рутина должна создавать новую Среду, определяемую идентификатором to_environment_id и идентичную текущему состоянию Среды, которое выражается идентификатором from_environment_id. К идентификатору to_environment_id должны применяться пп.3.2.1 и 3.2.2 описания идентификатора environment_id соответственно для Сред с Режимами немедленного и отложенного исполнения.     

3.2.6 Получение Среды
     

Имя:

FGTENV или FB_GET_ENVIRONMENT

Категория:

Е

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)

user_array

array_of_FB_word

(IN)

array_size

FB-integer

(IN)

byte_count

FB_integer

(OUT)


Действие:
     
     Информация в Среде, определенной идентификатором environment_id, должна быть передана в массив user_array. Этот массив должен иметь длину array_size байтов. Действительное число переданных байтов должно быть возвращено в виде byte_count. Если user_array недостаточно велик, чтобы содержать определенную Среду, должно быть возвращено сообщение об ошибке, а возвращенное значение byte_count должно быть числом байтов, необходимых для безошибочной передачи.      

3.2.7 Установка Среды
     

Имя:

FSTENV или FB_SET_ENVIRONMENT

Категория:

E

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)

user_array

array_of_FB_word

(IN)

byte_count

FB_integer

(IN)


Действие:
     
     Информация байтов byte_count в массиве user_array должна быть передана Среде, определенной идентификатором environment_id.
     
     Информация должна быть запомнена в массиве user_array в предыдущем вызове FB_GET_ENVIRONMENT. Для Воплощений, распределяющих память, создается новая Среда, идентифицированная возвращенным параметром environment_id. Для Воплощений, в которых распределение памяти должен выполнять Пользователь, параметр environment_id указывает массив, определяемый Пользователем, который будет содержать описание Среды.
     
     

3.3 Отложенное исполнение и подтверждение правильности Списка

3.3.1 Исполнение Списка
     

Имя:

FLEXEC или FB_LIST_EXECUTE

Категория:

В

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)


Действие:
     
     В Среде, определенной идетификатором environment_id, эта Рутина должна запускать подтверждение правильности Списка (если подтверждение не сделано раньше) и затем запускать исполнение Списка (см. раздел 2.2). Состояние Операционного параметра FB_PAR_DELAY_EXЕС должно быть игнорировано.
     
     Создается Статусная история (см. гл.11).
          

3.3.2 Подтверждение правильности Списка
     

Имя:

FLVAL или FB_LIST_VALIDATE

Категория:

E

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)


Действие:
     
     Успешное исполнение этой Рутины должно показать, если оно может быть индицировано, что Список в Среде, определенной идентификатором environment_id, будет успешно исполнен при наличном идентификаторе port_id.     
     

3.3.3 Установка текущего указателя в определенном Списке
     

Имя:

FLGPTR или FB_LIST_GET_POINTER

Категория:

E

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)

list_pointer

FB_list_pointer

(OUT)


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

Глава 4. ОПЕРАЦИОННЫЕ ПАРАМЕТРЫ

4.1 Введение


     Операционные параметры (далее ОП) позволяют скроить Среду для конкретных применений. Когда создают Среду, ей придают набор ОП, которые все имеют значение по умолчанию, возможно, зависящие от их назначения. Текущее значение ОП может быть изменено Рутиной FB_PAR_SET, а ее текущее значение определяется Рутинами FB_PAR_GET и FB_PAR_READ.      

4.1.1 Операционные параметры в Режиме отложенного исполнения
     
     Имеются два типа ОП, различие между которыми становится ясным только в Средах с Режимом отложенного исполнения. Параметры первого типа, Всеобщий и Обрабатывающий ошибки ОП (раздел 4.4), должны, по самой своей природе, оставаться неизменными в течение исполнения Списка. Параметры второго типа, Фастбас-протокола (раздел 4.5), относятся непосредственно к действиям в системе Фастбас и могут быть изменены Рутинами действия, входящими в список. Всеобщий и Обрабатывающий ошибки ОП могут быть изменены только Рутиной FB_PAR_SET, в то время как ОП Фастбас-протокола могут быть изменены как Рутиной FB_PAR_SET, так и Рутиной FB_PAR_WRITE.
     
     Рутина FB_PAR_SET переопределяет текущее значение ОП и, следовательно, переопределяет исходную Среду для исполнения Списка (для Среды с Режимом отложенного исполнения). Рутина FB_PAR_WRITE позволяет изменить ОП Фастбас-протокола во время исполнения Списка, но без влияния на действия набора ОП, когда Список исполняется повторно. Эффект любого действия FB_PAR_WRITE может быть изменен между последующими исполнениями Списка изменением значений в соответствующем буфере данных. Рутина FB_PAR_READ позволяет опрашивать ОП Фастбас-протокола во время исполнения Списка.
     

4.2 Определение Операционных параметров


     Операционные параметры определяют часть Среды. ОП, относящиеся к различным идентификаторам environment_id, полностью независимы. ОП представляется одним 32-битным значением. Некоторые ОП принимают значения только FB_TRUE и FB_FALSE. Некоторые ОП могут быть только читаемы. Установка только читаемого параметра в значение, фиксированное Воплощением, не должна рассматриваться как ошибка. Могут быть также и ОП, специфичные для Воплощения.
     
     Краткая форма имен всех ОП, определенных ниже, должна быть узнаваема любым Воплощением.
     
     От Воплощения, предлагаемого этим стандартом, не требуется доступ ко всем ОП. ОП, которые не поддерживаются программным или аппаратным Воплощением, если к ним обращаются, должны возвращать извещение об ошибке (см. гл.12).
     
     Воплощение должно определять значения по умолчанию для всех поддерживаемых параметров. Если значения по умолчанию определены в этом стандарте, то именно они должны быть использованы во всех Воплощениях.
     
     Воплощение может ограничивать доступ к некоторым ОП (и возвращать код ошибки, указывающий на недостаточную привилегию для предпринятой операции, когда сделана попытка ее проведения). Это может быть особенно необходимо, когда Воплощение допускает множество Пользователей.
     

4.3 Рутины Операционных параметров


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

4.3.1 Операционный параметр инициализации
     

Имя:

FBPINI или FB_PAR_INIT

Категория:

А

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environmem_id

(IN)

parameter_id

FB_parameter_id

(IN)


Действие:
     
     Эта Рутина должна вызвать восстановление ОП, специфицированного через parameter__id, к свому значению по умолчанию, определенному Воплощением в конкретной Среде. Если parameter_id придан Рутине FB_PAR_ALL (FPALL), то все параметры должны быть установлены в их значения по умолчанию.     

4.3.2 Операционный параметр установки

Имя:

FBPSET или FB_PAR_SET

Категория:

А

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)

parameter_id

FB_parameter_id

(IN)

parameter_value

FB_parameter_value

(IN)


Действие:
     
     После вызова эта Рутина должна присваивать значения parameter_value Операционному параметру, специфицированному через parameter_id в конкретной Среде. После обращения к этой Рутине значение parameter_value должно стать текущим значением для названного ОП.
          

4.3.3 Операционный параметр получения

Имя:

FBPGET или FB_PAR_GET

Категория:

А

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)

parameter_id

FB_parameter_id

(IN)

parameter_value

FB_parameter_value

(OUT)


Действие:
     
     После вызова эта Рутина должна возвращать текущее значение названного ОП в конкретную Среду в качестве значения parameter_value.
          

4.3.4 Операционный параметр чтения
     

Имя:

FBPRD или FB_PAR_READ

Категория:

В, Рутина действия

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)

parameter_id

FB_parameter_id

(IN)

buffer_mode

FB_buffer_mode

(IN)

buffer_specifier

FB_word

(OUT)

(FBVAR)

или

FB_seq_buffer_id

(IN)

(FBSEQ)


Действие:
     
     Независимо от режима исполнения в конкретной Среде, эта Рутина должна во Время исполнения поместить текущее значение названного ОП в определенный буфер данных. Эта Рутина должна быть использована только для ОП, описанных в разделе 4.5.
          

4.3.5 Операционный параметр записи
     

Имя:

FBPWRT или FB_PAR_WRITE

Категория:

В, Рутина действия

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)

parameter_id

FB_parameter_id

(IN)

buffer_mode

FB_buffer_mode

(IN)

buffer_specifier

FB_word

(OUT)

(FBVAR)

или

FB_seq_buffer_id

(IN)

(FBSEQ)


Действие:
     
     Независимо от Режима исполнения в конкретной Среде, эта Рутина должна во Время исполнения изменять текущее значение названного ОП на значение Времени исполнения в определенном буфере данных. Действия FB_PAR_WRITE не должны переходить от одного исполнения Списка на последующее исполнение. Эта Рутина должна быть использована только для ОП, описанных в разделе 4.5.     

4.3.6 Проталкивание текущих Операционных параметров в стек
     

Имя:

FBPUSH или FB_PAR_PUSH

Категория:

Е

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)


Действие:
     
     После вызова эта Рутина должна переместить текущие ОП конкретной Среды во внутренний стек ОП, специфичных для Среды.     

4.3.7 Выталкивание текущих Операционных параметров из стека
     

Имя:

FBPOP или FB_PAR_POP

Категория:

Е

Параметры:

return_code

FB_error_code

(OUT)

environment_id

FB_environment_id

(IN)


Действие:
     
     После вызова эта Рутина должна заменить ОП названной Среды параметрами, извлеченными с верха внутреннего стека ОП, специфичных для Среды.
     
     

4.4 Всеобщий и Обрабатывающий ошибки Операционные параметры


     Всеобщие операционные параметры это параметры, связанные с действиями или элементами, которые не относятся прямо к деталям действий собственно системы Фастбас (последние описаны в разделе 4.5). Всеобщими операционными параметрами являются, например, определенность Порта Фастбас, указание, ожидать ли завершения Фастбас-действия до возвращения служебной информации к вызывающему или нет, объемы информации и Режим исполнения в Среде. Обрабатывающие ошибки ОП используются для управления извещениями о статусе. Они обсуждаются более детально в гл.11. Термины Суммарный статус и Дополнительный статус определены в разделе 11.3.     
     

4.4.1 Идентификатор Порта контроллера
     

Имя:

FPPORT или FB_PAR_PORT

Значение:

Зависит от Воплощения

По умолчанию:

Зависит от Воплощения


     Этот ОП должен идентифицировать Контроллер и Порт Фастбас, через которые проходит любое действие. Допустимо, чтобы данный Контроллер имел более одного Порта Фастбас. Этот параметр, зависящий от Воплощения, определяет, какой Порт использовать для последующих запросов действий, когда в Фастбасе доступны несколько маршрутов.
     
     В режиме отложенного исполнения:
     
     Заметим, что замена Порта, используемого данной Средой после того как составлен Список действий, подлежащих исполнению, может привести к тому, что невведенные или незаконные параметры будут присвоены Порту. Это затруднение может быть преодолено лишь при следующем вызове Рутины FB_LIST_EXECUTE.     
     

4.4.2 Не ждать завершения действия
     

Имя:

FPNOWT или FB_PAR_NO_WAIT

Значения:

FB_TRUE или FB_FALSE

По умолчанию:

FB_FALSE


     Если этот ОП установлен в FB_FALSE, то любая Рутина действия или вызов FB_LIST_EXECUTE должны выдать возвращение вызывающей Рутине только лишь сразу после завершения запрошенных действий - с ошибками или без ошибок. Если параметр установлен в FB_TRUE, возвращение вызывающей Рутине должно быть выполнено немедленно после того, как начались запрошенные действия, возможно до их завершения.     
     

4.4.3 Отложенное исполнение
     

Имя:

FPDLAY или FB_PAR_DELAY_EXEC

Copyright © 2024