Статус документа
Статус документа

ГОСТ Р ИСО 13584-31-2010 Системы промышленной автоматизации и интеграция. Библиотека деталей. Часть 31. Ресурсы реализации. Интерфейс геометрического программирования

     5.8.1 Методология исправления ошибок

Для каждой функции интерфейса имеется описание конечного количества состояний ошибки, при котором переменным ошибки присваиваются некоторые значения. Каждая реализация интерфейса должна поддерживать режим проверки ошибки. Переменные ошибки обеспечивают связь между прикладной программой и стандартным интерфейсом. Прикладная программа запрашивает значение ошибки, интерпретирует информацию об ошибке и заново устанавливает значение переменной ошибки error_variable = zero, чтобы восстановить интерфейс в состоянии "отсутствие ошибки" (error_state = false). Выбираемая стратегия исправления ошибок интерфейса соответствует нижеследующей классификации ошибок:

- класс I - ошибки, приводящие к заранее известной реакции системы;

- класс II - ошибки, связанные с попыткой сохранить результаты или предшествующие операции;

- класс III - ошибки, приводящие к непредсказуемым результатам, включая разрушение CAD.

Интерфейс распознает три ситуации выявления ошибки:

- ситуация А - ошибка в функции интерфейса;

- ситуация Б - ошибка в функции, вызываемой из интерфейса (функции CAD, функции операционной системы и т.д.);

- ситуация В - ошибка вне интерфейса.

Если ошибки выявлены вне интерфейса (ситуация В), то либо прикладная программа принимает на себя управление выполнением операций, либо выполнение программы заканчивается ненормально. В последнем случае результаты являются непредсказуемыми (класс III), это может привести к разрушению CAD. Если тем не менее прикладная программа принимает на себя управление, то она может попытаться вернуться в LMS, чтобы попробовать закрыть интерфейс надлежащим образом (см. раздел 5.7). Операции, определенные в разделе 5.7, могут быть также выполнены самим интерфейсом. Это стандартная реакция на ошибки класса II.

Все ошибки, явно представленные в перечне как часть определения функции интерфейса, принадлежат к классу I. Они либо возникают внутри самого интерфейса (ситуация A), либо возникают, когда функция, вызванная из интерфейса, передает управление обратно некоторой функции интерфейса вместе с соответствующей информацией об ошибке (ситуация Б). Во всех случаях выявления ошибок класса I интерфейс задает значения переменным ошибки error_variable, error_origin и error_text. Если в процессе создания функции сущности имеет место сбой и сущность не может быть создана, то имя сущности, вычисленное функцией, устанавливается равным 0. Если функция интерфейса активизируется с более чем одним состоянием ошибки, то любой из соответствующих номеров ошибки может быть присвоен переменной ошибки.

Функция запроса lnq_Error_State позволяет исправлять ошибки с помощью прикладного программирования. Функция Reset_Error_State выводит интерфейс из состояния ошибки. Закрытие открытого вида при значении переменной error_state = true позволяет LMS заранее предупредить CAD о том, что вид является неправильным.

При наступлении состояния ошибки функции запроса действуют в соответствии с их функциональным описанием (см. приложение A), их действия не должны генерировать новых ошибок. Поэтому для функций запроса описаний ошибок не существует. Для сообщений о возможных трудностях в процессе выполнения функций используется особый выходной параметр: error_indicator (индикатор ошибок).

Каждая ошибка имеет свой индивидуальный номер:

1) номера менее 1001 не используются. Они зарезервированы для последующих обновлений стандарта;

2) номера ошибок от 1000 до 2000 зарезервированы для привязок языка программирования.