---
title: "\"ГОСТ Р 60.2.7.1-2024/ИСО 22166-201:2024. Национальный стандарт Российской Федерации. Роботы и робототехнические устройства. Модульный принцип построения сервисных роботов. Часть 201. Общая информационная модель модулей\""
number: "ГОСТ Р 60.2.7.1-2024"
issuer: "Федеральное агентство по техническому регулированию и метрологии"
status: действует
canonical: "https://bukva.ai/docs/printsipy-gost-r-60-2-7-1-2024"
---

## "ГОСТ Р 60.2.7.1-2024/ИСО 22166-201:2024. Национальный стандарт Российской Федерации. Роботы и робототехнические устройства. Модульный принцип построения сервисных роботов. Часть 201. Общая информационная модель модулей"

# "ГОСТ Р 60.2.7.1-2024/ИСО 22166-201:2024. Национальный стандарт Российской Федерации. Роботы и робототехнические устройства. Модульный принцип построения сервисных роботов. Часть 201. Общая информационная модель модулей"

(утв. и введен в действие Приказом Росстандарта от 12.11.2024 N 1656-ст)

> [!IMPORTANT]
> Документ [введен](#p100011) в действие с 01.01.2025.


<a id="p100001"></a>Утвержден и введен в действие
Приказом Федерального агентства

<div align="right">

по техническому регулированию<br>
и метрологии<br>
от 12 ноября 2024 г. N 1656-ст

<a id="p100002"></a>НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

</div>


<div align="center">

<a id="p100003"></a>**РОБОТЫ И РОБОТОТЕХНИЧЕСКИЕ УСТРОЙСТВА**

<a id="p100004"></a>**МОДУЛЬНЫЙ ПРИНЦИП ПОСТРОЕНИЯ СЕРВИСНЫХ РОБОТОВ**

<a id="p100005"></a>**ЧАСТЬ 201**

<a id="p100006"></a>**ОБЩАЯ ИНФОРМАЦИОННАЯ МОДЕЛЬ МОДУЛЕЙ**

<a id="p100007"></a>**Robots and robotic devices. Modular principle of service**<br>
**robots structure. Part 201. Common information model**<br>
**for modules**

<a id="p100008"></a>**(ISO 22166-201:2024, Robotics - Modularity for service**<br>
**robots - Part 201: Common information model for modules,**<br>
**IDT)**

<a id="p100009"></a>**ГОСТ Р 60.2.7.1-2024/ИСО 22166-201:2024**

<a id="p100010"></a>**ОКС 25.040.30**

</div>


<a id="p100011"></a>Дата введения

<div align="right">

1 января 2025 года

</div>



### <a id="p100012"></a>Предисловие


<a id="p100013"></a>1 ПОДГОТОВЛЕН Федеральным государственным автономным научным учреждением "Центральный научно-исследовательский и опытно-конструкторский институт робототехники и технической кибернетики" (ЦНИИ РТК) на основе собственного перевода на русский язык англоязычной версии стандарта, указанного в [пункте 4](#p100016)

<div align="center">

<a id="p100014"></a>**2 ВНЕСЕН Техническим комитетом по стандартизации ТК 141 "Робототехника"**

</div>

<a id="p100015"></a>3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 12 ноября 2024 г. N 1656-ст
<a id="p100016"></a>4 Настоящий стандарт идентичен международному стандарту ИСО 22166-201:2024 "Робототехника. Модульность сервисных роботов. Часть 201. Общая информационная модель модулей" (ISO 22166-201:2024 "Robotics - Modularity for service robots - Part 201: Common information model for modules", IDT).
<a id="p100017"></a>Наименование настоящего стандарта изменено относительно наименования указанного международного стандарта для приведения в соответствие с ГОСТ Р 1.5-2012 (пункт 3.5) и для увязки с наименованиями, принятыми в существующем комплексе национальных стандартов Российской Федерации.
<a id="p100018"></a>При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты, сведения о которых приведены в дополнительном [приложении ДА](#p103136)
<a id="p100019"></a>5 ВВЕДЕН ВПЕРВЫЕ

<a id="p100020"></a>Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.rst.gov.ru)


### <a id="p100021"></a>Введение


<a id="p100022"></a>Требования стандартов комплекса ГОСТ Р 60 распространяются на роботы и робототехнические устройства. Целью стандартов является повышение интероперабельности роботов и их компонентов, а также снижение затрат на их разработку, производство и обслуживание за счет стандартизации и унификации процессов, интерфейсов, узлов и параметров.
<a id="p100023"></a>Стандарты комплекса ГОСТ Р 60 представляют собой совокупность отдельно издаваемых стандартов. Стандарты данного комплекса относятся к одной из следующих тематических групп: "Общие положения, основные понятия, термины и определения", "Технические и эксплуатационные характеристики", "Безопасность", "Виды и методы испытаний", "Механические интерфейсы", "Электрические интерфейсы", "Коммуникационные интерфейсы", "Методы моделирования и программирования", "Методы построения траектории движения (навигация)", "Конструктивные элементы". Стандарты любой тематической группы могут относиться как ко всем роботам и робототехническим устройствам, так и к отдельным группам объектов стандартизации - промышленным роботам в целом, промышленным манипуляционным роботам, промышленным транспортным роботам, сервисным роботам в целом, сервисным манипуляционным роботам, сервисным мобильным роботам, а также к морским робототехническим комплексам.
<a id="p100024"></a>Настоящий стандарт относится к тематической группе "Методы моделирования и программирования" и распространяется на все виды сервисных роботов.
<a id="p100025"></a>Настоящий стандарт определяет общую информационную модель (ОИМ) модулей, входящих в состав сервисных роботов в соответствии с ИСО 22166-1. Используя данную ОИМ, модули можно легко объединять между собой и обеспечивать обмен данными между ними. Данная ОИМ разработана для повышения интероперабельности, возможности повторного использования и компонуемости модулей. ОИМ представляет собой метамодель, являющуюся базовой моделью для всех видов модулей, таких как аппаратные модули, модули с аппаратными и программными свойствами, программные модули и составные модули. Поэтому ОИМ предоставляет метахарактеристики, которыми может обладать модуль.
<a id="p100026"></a>Изготовители и интеграторы модулей, разработчики и изготовители роботов, а также интеграторы робототехнических комплексов могут использовать ОИМ, чтобы упростить получение необходимых модулей, использовать разные модули в соответствии с требуемой функцией и бюджетом, а также разрабатывать новые (составные) модули на базе ОИМ. ОИМ может помочь в проектировании модулей, эксплуатации и техническом обслуживании сервисных роботов.
<a id="p100027"></a>ОИМ содержит четыре вида информации:
- <a id="p100028"></a>по идентификации модулей;
- <a id="p100029"></a>выбору модулей;
- <a id="p100030"></a>интеграции модулей;
- <a id="p100031"></a>эксплуатации и техническому обслуживанию модулей.
<a id="p100032"></a>ОИМ как метамодель состоит из нескольких субмоделей, к которым относятся "Идентификатор модуля", "Характеристики", "Входные и выходные переменные", "Состояние", "Сервисы", "Инфраструктура", "Уровень безопасности и защищенности", "Моделирование" и "Исполняемая форма".
<a id="p100033"></a>Модель реализации ОИМ будет представлена в последующих стандартах серии ИСО 22166, которая применима к составным модулям и различным типам сервисных роботов.
<a id="p100034"></a>Настоящий стандарт устанавливает требования и руководящие указания для информационной модели модулей сервисных роботов, соответствующей девяти принципам модульного построения, установленным в ИСО 22166-1.


### <a id="p100035"></a>1 Область применения


<a id="p100036"></a>Настоящий стандарт определяет требования и руководящие указания к общей информационной модели (ОИМ) модулей сервисных роботов для обеспечения интероперабельности, возможности повторного использования и компонуемости.
<a id="p100037"></a>Настоящий стандарт определяет структуру ОИМ и детализирует ее использование по назначению, сущность атрибутов и подклассов.
<a id="p100038"></a>Требования настоящего стандарта применимы к сервисным роботам.


### <a id="p100039"></a>2 Нормативные ссылки


<a id="p100040"></a>В настоящем стандарте использованы нормативные ссылки на следующие стандарты [для датированных ссылок применяют только указанное издание ссылочного стандарта, для недатированных - последнее издание (включая все изменения]:
<a id="p100041"></a>ISO 22166-1:2021, Robotics - Modularity for service robots - Part 1: General requirements (Робототехника. Модульность сервисных роботов. Часть 1. Общие требования)
<a id="p100042"></a>IETF RFC 4122, A Universally Unique Identifier (UUID) URN Namespace [Пространство имен URN универсального уникального идентификатора (UUID)]
<a id="p100043"></a>IEEE/Open Group 1003.1-2017, IEEE Standard for Information Technology - Portable Operating System Interface (POSIXTM) Base Specifications, Issue 7 [Информационные технологии. Базовые спецификации интерфейса переносимой операционной системы (POSIXTM), выпуск 7]


### <a id="p100044"></a>3 Термины и определения


<a id="p100045"></a>В настоящем стандарте применены следующие термины с соответствующими определениями.
<a id="p100046"></a>ИСО и МЭК поддерживают терминологические базы данных для использования в документах по стандартизации по следующим адресам:
- <a id="p100047"></a>платформа онлайн-просмотра ИСО доступна по адресу http://www.iso.org/obp;
- <a id="p100048"></a>Электропедия МЭК доступна по адресу http://www.electropedia.org.
<a id="p100049"></a>3.1 информационная модель; ИМ (information model; IM): Абстракция и представление объектов в управляемой среде, их свойств, операций, а также способа, которым они связаны друг с другом.
<a id="p100050"></a>[ИСО 22166-1:2021, пункт 3.1.11, модифицировано]
<a id="p100051"></a>3.2 общая информационная модель; ОИМ (common information model; CIM): Информационная модель, которую модули чаще всего используют в сервисных роботах.
<a id="p100052"></a>3.3 модуль (module): Компонент (или сборка компонентов с заданными интерфейсами), сопровождаемый профилями характеристик и предназначенный для облегчения проектирования системы, интеграции, интероперабельности и повторного использования.
<a id="p100053"></a>[ИСО 22166-1:2021, пункт 3.3.12]
<a id="p100054"></a>3.4 характеристика модуля (module property): Атрибут или параметр модуля.
<a id="p100055"></a>[ИСО 22166-1:2021, пункт 3.3.14]
<a id="p100056"></a>3.5 программный модуль (software module): Модуль, реализация которого состоит исключительно из запрограммированных алгоритмов.
<a id="p100057"></a>[ИСО 22166-1:2021, пункт 3.4.4]
<a id="p100058"></a>3.6 аппаратный модуль (hardware module): Модуль, реализация которого состоит только из физических элементов, включая механические элементы, электронные схемы и любое программное обеспечение (например, встроенные микропрограммы), недоступное извне через коммуникационный интерфейс.
<a id="p100059"></a>[ИСО 22166-1:2021, пункт 3.4.3]
<a id="p100060"></a>3.7 модуль с аппаратными и программными свойствами (аппаратно-программный модуль) [module with hardware aspects and software aspects (hardware-software module)]: Модуль, реализация которого состоит из физических элементов, программного обеспечения и коммуникационного интерфейса, позволяющего обмениваться данными с другими модулями.
<a id="p100061"></a>3.8 менеджер модулей (module manager): Реализует функции управления жизненным циклом экземпляров модулей, включая создание экземпляров модулей.
<a id="p100062"></a>3.9 экземпляр (instance): Отдельный объект, созданный из программного модуля, или отдельный объект конкретного модуля с аппаратными свойствами.
<a id="p100063"></a>*Примечание* 1 - В объектно-ориентированном программировании экземпляр представляет собой специфическую реализацию объекта.
<a id="p100064"></a>*Примечание* 2 - В аппаратной реализации экземпляр является одним из одинаковых модулей, используемых в составном модуле.

<a id="p100065"></a>3.10 уровень эффективности защиты; УЭЗ (performance level; PL): Дискретный уровень, используемый для определения способности элементов системы управления, связанных с обеспечением безопасности, осуществлять функцию безопасности в прогнозируемых условиях.
<a id="p100066"></a>[ИСО 13849-1:2023, пункт 3.1.5]
<a id="p100067"></a>3.11 уровень полноты безопасности; УПБ (safety integrity level; SIL): Дискретный уровень (принимающий одно из трех возможных значений), представляющий способность осуществлять функцию безопасности, при этом уровень 3 является высшим уровнем полноты безопасности, а уровень 1 - низшим.
<a id="p100068"></a>[МЭК 62061:2021, пункт 3.11]
<a id="p100069"></a>3.12 исполняемая форма (executable form): Форма программного кода, при которой программа или встроенная программа управляется и контролируется исключительно операционной средой модуля и не требует компиляции (например, отсутствие исходного кода, объектный код или код, компилируемый в нужное время).
<a id="p100070"></a>*Примечание* 1 - Двумя основными видами исполняемой формы являются скомпилированные программы и скрипты.
<a id="p100071"></a>*Примечание* 2 - Исполняемая форма может включать набор файлов и/или папок, которые составляют полный модуль, либо представлять собой единый файл.

<a id="p100072"></a>[ИСО/МЭК 19790:2012, пункт 3.42]
<a id="p100073"></a>3.13 аппаратные свойства (hardware aspects): Информация относительно параметров и функций, характеризующих модуль и его физические взаимосвязи, а также относительно допустимого диапазона физических параметров рабочей среды.
<a id="p100074"></a>[ИСО 22166-1:2021, пункт 3.3.5]
<a id="p100075"></a>3.14 программные свойства (software aspects): Информация о внешних программных характеристиках модуля и его интерфейса, а также о жизненном цикле выполнения функции данного модуля.
<a id="p100076"></a>[ИСО 22166-1:2021, пункт 3.3.21]


### <a id="p100077"></a>4 Общая информационная модель модулей



#### <a id="p100078"></a>4.1 Общие положения

<a id="p100079"></a>Общая информационная модель модулей должна состоять из элементов, представленных в [таблице 4.1](#p100083). Имена характеристик и классов, используемых в информационной модели, должны соответствовать [правилам](#p101352) присвоения имен, установленным в приложении A. В [таблице 4.1](#p100083) буквы "M" и "O" обозначают "обязательный (mandatory)" и "факультативный (optional)" соответственно. ОИМ, изображенная на [рисунке 4.1](#p100288), подробно описана в [4.3](#p100291). Модели классов для ОИМ представлены согласно ИСО/МЭК 19505-1:2012. Информация, приведенная в [таблице 4.1](#p100083) и на [рисунке 4.1](#p100288), может быть использована на этапах проектирования, разработки, эксплуатации и технического обслуживания, а в [приложении D](#p102888) представлено, на каком этапе используется информация, предоставленная информационной моделью.
<a id="p100080"></a>Примечание 1 - ОИМ для управления общей информацией в [таблице 4.1](#p100083) представлена на [рисунке 4.4](#p100313).
<a id="p100081"></a>*Примечание* 2 - В настоящем стандарте представление ОИМ на языке XML использовано только в качестве примеров, чтобы помочь понять значение атрибутов в модели классов.

<a id="p100082"></a>Таблица 4.1

<a id="p100083"></a>Общая информация по модулям и соответствующим групповым
меткам (использованным на [рисунке 4.4](#p100313))


<table>
<colgroup><col width="6%"><col width="39%"><col width="11%"><col width="10%"><col width="7%"><col width="8%"><col width="19%"></colgroup>
<tr><td rowspan="2"><a id="p100084"></a>Позиция</td><td rowspan="2"><a id="p100085"></a>Элемент</td><td rowspan="2"><a id="p100086"></a>Общая информационная модель <sup><a href="#p100205">b</a></sup></td><td colspan="3"><a id="p100087"></a>Информационные модели модулей <sup><a href="#p100206">c</a></sup></td><td rowspan="2"><a id="p100088"></a>Имя соответствующей группы/тега (Аббревиатура для каждой группы)</td></tr>
<tr><td><a id="p100089"></a>Программно-аппаратный модуль</td><td><a id="p100090"></a>Аппаратный модуль</td><td><a id="p100091"></a>Программный модуль</td></tr>
<tr><td><a id="p100092"></a>1</td><td><a id="p100093"></a>Имя модуля</td><td><a id="p100094"></a>M</td><td><a id="p100095"></a>M</td><td><a id="p100096"></a>M</td><td><a id="p100097"></a>M</td><td rowspan="4"><a id="p100098"></a>GenInfo</td></tr>
<tr><td><a id="p100099"></a>2</td><td><a id="p100100"></a>Описание</td><td><a id="p100101"></a>O</td><td><a id="p100102"></a>O</td><td><a id="p100103"></a>O</td><td><a id="p100104"></a>O</td></tr>
<tr><td><a id="p100105"></a>3</td><td><a id="p100106"></a>Изготовитель</td><td><a id="p100107"></a>M</td><td><a id="p100108"></a>M</td><td><a id="p100109"></a>M</td><td><a id="p100110"></a>M</td></tr>
<tr><td><a id="p100111"></a>4</td><td><a id="p100112"></a>Примеры</td><td><a id="p100113"></a>O</td><td><a id="p100114"></a>O</td><td><a id="p100115"></a>O</td><td><a id="p100116"></a>O</td></tr>
<tr><td><a id="p100117"></a>5</td><td><a id="p100118"></a>Версия информационной модели</td><td><a id="p100119"></a>M</td><td><a id="p100120"></a>M</td><td><a id="p100121"></a>M</td><td><a id="p100122"></a>M</td><td rowspan="4"><a id="p100123"></a>IDnType</td></tr>
<tr><td><a id="p100124"></a>6</td><td><a id="p100125"></a>Идентификатор модуля</td><td><a id="p100126"></a>M</td><td><a id="p100127"></a>M</td><td><a id="p100128"></a>M</td><td><a id="p100129"></a>M</td></tr>
<tr><td><a id="p100130"></a>7</td><td><a id="p100131"></a>Аппаратные свойства</td><td><a id="p100132"></a>O</td><td><a id="p100133"></a>M</td><td><a id="p100134"></a>M</td><td><a id="p100135"></a>-</td></tr>
<tr><td><a id="p100136"></a>8</td><td><a id="p100137"></a>Программные свойства</td><td><a id="p100138"></a>O</td><td><a id="p100139"></a>M</td><td><a id="p100140"></a>-</td><td><a id="p100141"></a>M</td></tr>
<tr><td><a id="p100142"></a>9</td><td><a id="p100143"></a>Характеристики модуля <sup><a href="#p100204">a</a></sup></td><td><a id="p100144"></a>M</td><td><a id="p100145"></a>M</td><td><a id="p100146"></a>M</td><td><a id="p100147"></a>M</td><td><a id="p100148"></a>Properties</td></tr>
<tr><td><a id="p100149"></a>10</td><td><a id="p100150"></a>Входы</td><td><a id="p100151"></a>O</td><td><a id="p100152"></a>O</td><td><a id="p100153"></a>O</td><td><a id="p100154"></a>O</td><td><a id="p100155"></a>IOVariables</td></tr>
<tr><td><a id="p100156"></a>11</td><td><a id="p100157"></a>Выходы</td><td><a id="p100158"></a>O</td><td><a id="p100159"></a>O</td><td><a id="p100160"></a>O</td><td><a id="p100161"></a>O</td><td></td></tr>
<tr><td><a id="p100162"></a>12</td><td><a id="p100163"></a>Состояние</td><td><a id="p100164"></a>O</td><td><a id="p100165"></a>O</td><td><a id="p100166"></a>O</td><td><a id="p100167"></a>M</td><td><a id="p100168"></a>-</td></tr>
<tr><td><a id="p100169"></a>13</td><td><a id="p100170"></a>Сервисы (возможности)</td><td><a id="p100171"></a>O</td><td><a id="p100172"></a>M</td><td><a id="p100173"></a>O</td><td><a id="p100174"></a>M</td><td><a id="p100175"></a>Services</td></tr>
<tr><td><a id="p100176"></a>14</td><td><a id="p100177"></a>Инфраструктура</td><td><a id="p100178"></a>O</td><td><a id="p100179"></a>O</td><td><a id="p100180"></a>M</td><td><a id="p100181"></a>M</td><td><a id="p100182"></a>Infra</td></tr>
<tr><td><a id="p100183"></a>15</td><td><a id="p100184"></a>Безопасность/защищенность</td><td><a id="p100185"></a>O</td><td><a id="p100186"></a>M</td><td><a id="p100187"></a>O</td><td><a id="p100188"></a>M</td><td><a id="p100189"></a>SafeSecure</td></tr>
<tr><td><a id="p100190"></a>16</td><td><a id="p100191"></a>Моделирование</td><td><a id="p100192"></a>O</td><td><a id="p100193"></a>O</td><td><a id="p100194"></a>O</td><td><a id="p100195"></a>O</td><td><a id="p100196"></a>Modelling</td></tr>
<tr><td><a id="p100197"></a>17</td><td><a id="p100198"></a>Исполняемая форма</td><td><a id="p100199"></a>O</td><td><a id="p100200"></a>O</td><td><a id="p100201"></a>O</td><td><a id="p100202"></a>M</td><td><a id="p100203"></a>ExecutableForm</td></tr>
<tr><td colspan="7"><a id="p100204"></a><a id="p100205"></a><a id="p100206"></a><sup>a</sup> Являются обязательными только для тех модулей, на которые может быть оказано влияние (которые могут быть установлены) извне или, по крайней мере, для тех, которые оказывают ожидаемое воздействие на другие модули.<br><sup>b</sup> Все элементы обязательны для ОИМ.<br><sup>c</sup> Для информационных моделей, таких как программно-аппаратные модули, аппаратные модули или программные модули, некоторые типы элементов могут быть опущены в зависимости от их функциональностей. В частности, информационные модели аппаратных модулей и программных модулей элементы <a href="#p100136">"Программные свойства"</a> и <a href="#p100130">"Аппаратные свойства"</a> не включают соответственно.</td></tr>
</table>


<a id="p100207"></a>Элемент, расположенный в [позиции номер 1 таблицы 4.1](#p100092), "Имя модуля" соответствует имени, представляющем модуль. Далее вместо выражения "элемент, расположенный в позиции номер N [таблицы 4.1](#p100083)" используется сокращенное выражение "элемент N".
<a id="p100208"></a>[Элемент 2](#p100099) "Описание" соответствует общему описанию модуля, т.е. что он собой представляет, что он делает и как он используется.
<a id="p100209"></a>[Элемент 3](#p100105) "Изготовитель" соответствует контактной информации проектировщика, разработчика или изготовителя модуля.
<a id="p100210"></a>[Элемент 4](#p100111) "Примеры" соответствует типичным вариантам применения модуля.
<a id="p100211"></a>[Элемент 5](#p100117) "Версия информационной модели" соответствует номеру версии информационной модели, которую определяет настоящий стандарт.
<a id="p100212"></a>[Элемент 6](#p100124) "Идентификатор модуля" должен соответствовать уникальному идентификатору модуля в системе, как описано в [приложении B](#p101383). Идентификатор модуля содержит информацию о типе модуля (аппаратно-программный, аппаратный или программный) и является ли он базовым или составным модулем.
<a id="p100213"></a>[Элементы 7](#p100130) "Аппаратные свойства" и [8](#p100136) "Программные свойства" относятся только к составным модулям. Если модуль состоит из двух или более аппаратно-программных модулей, программных модулей и/или аппаратных модулей, то идентификаторы модулей указаны в [элементе](#p100130) "Аппаратные свойства", если они являются аппаратными или аппаратно-программными модулями, иначе (если они являются программными модулями) идентификаторы модулей указаны в [элементе](#p100136) "Программные свойства".
<a id="p100214"></a>[Элемент 9](#p100142) "Характеристики модуля" соответствует значениям, обычно используемым при инициализации модулей. Характеристики модулей разделяют на обязательные и факультативные, и это должно быть отмечено. Взаимосвязь между модулями представлена данным [элементом](#p100142), подробное содержание которого будет определено в последующих стандартах, таких как ИСО 22166-202.
<a id="p100215"></a>*Примечание* 3 - Информация о взаимосвязи между модулями может быть предоставлена по-разному в зависимости от типа модуля.
<a id="p100216"></a>*Примечание* 4 - Ограничения внешней среды также считаются характеристиками, примерами которых являются рабочая температура, рабочая влажность и максимально допустимый механический удар. Параметры, связанные с поведением модуля, могут быть указаны в характеристиках. Например, каждый коэффициент, используемый в алгоритме ПИД (пропорциональный, интегральный, дифференциальный) регулятора, используется один раз при инициализации и изменяется и используется несколько раз в процессе выполнения соответствующих программных модулей.

<a id="p100217"></a>[Элементы 10](#p100149) и [11](#p100156) "Входы" и "Выходы" соответствуют именам переменных при передаче данных в модуль и/или из модуля.
<a id="p100218"></a>*Пример* 1 - Входами и выходами программного модуля управления сервоприводами являются показания датчика положения и значения управляющих воздействий на двигатель соответственно.
<a id="p100219"></a>*Примечание* 5 - Характеристики являются разновидностями входных значений с точки зрения модулей, но их отличие состоит в том, что входные значения относятся к внешней среде модуля, а характеристики связаны с параметрами самого модуля. Например, входами программного модуля управления сервоприводами являются показания датчика положения, а характеристиками являются коэффициенты P, I и D, соответствующие пропорциональной, интегральной и дифференциальной составляющим.

<a id="p100220"></a>[Элемент 12](#p100162) "Состояние" соответствует состоянию модуля в процессе работы.
<a id="p100221"></a>*Примечание* 6 - Состояние не используют на этапах проектирования и разработки.

<a id="p100222"></a>[Элемент 13](#p100169) "Сервисы (возможности)" соответствует интерфейсам, которые модуль предоставляет и использует для сервисов робота.
<a id="p100223"></a>*Примечание* 7 - Сервис означает выполнение одной или нескольких функций модуля для других модулей с помощью заранее определенного интерфейса.

<a id="p100224"></a>Пример 2 - Примеры формата функции для программных свойств приведены в [таблице 4.2](#p100226). Типы данных, такие как int16 и uint8, для данного примера определены в приложении C, [таблица C.5](#p101691).

<a id="p100225"></a>Таблица 4.2

<a id="p100226"></a>Примеры формата функции для программных модулей


<table>
<colgroup><col width="11%"><col width="23%"><col width="18%"><col width="48%"></colgroup>
<tr><td><a id="p100227"></a>Имя</td><td><a id="p100228"></a>Аргументы</td><td><a id="p100229"></a>Возвращаемое значение</td><td><a id="p100230"></a>Описание</td></tr>
<tr><td rowspan="2"><a id="p100231"></a>initialize</td><td><a id="p100232"></a><a id="p100233"></a>Integer init_ival1,<br>Real init_rval2</td><td><a id="p100234"></a>Integer</td><td><a id="p100235"></a><a id="p100236"></a><a id="p100237"></a>Инициализация с использованием двух аргументов<br>Возвращаемое значение:<br>(0: успех, отрицательное значение: тип ошибки)</td></tr>
<tr><td><a id="p100238"></a><a id="p100239"></a><a id="p100240"></a>Integer init_ival1,<br>Real init_rval2,<br>Integer init_ival3</td><td><a id="p100241"></a>Integer</td><td><a id="p100242"></a><a id="p100243"></a><a id="p100244"></a>Инициализация с использованием трех аргументов<br>Возвращаемое значение:<br>(0: успех, отрицательное значение: тип ошибки)</td></tr>
</table>


<a id="p100245"></a>Пример 3 - Пример формата функции для электрических/электронных свойств приведен в [таблице 4.3](#p100247), в которой аргументы "connType", "keying" и "busProtocol" означают тип соединителя, исполнение соединителя и тип протокола, который использует модуль. Данная функция используется для проверки того, что равноправный модуль использует надлежащие электрические свойства модуля. Значениями типа соединителя могут быть USB-A, RJ45, DB-9 и т.д. Значениями исполнения являются "штекер" или "гнездо". Значениями аргумента "busProtocol" могут быть USB, Ethernet, EtherCAT, RS232 и т.д.

<a id="p100246"></a>Таблица 4.3

<a id="p100247"></a>*Пример* формата функции для проверки
электрической/электронной применимости


| <a id="p100248"></a>Имя | <a id="p100249"></a>Аргументы | <a id="p100250"></a>Возвращаемое значение | <a id="p100251"></a>Описание |
| --- | --- | --- | --- |
| <a id="p100252"></a>checkElecConnectivity | <a id="p100253"></a><a id="p100254"></a><a id="p100255"></a>String connType,<br>String keying,<br>String busProtocol | <a id="p100256"></a>Boolean | <a id="p100257"></a><a id="p100258"></a><a id="p100259"></a>Проверка электрической/электронной применимости с использованием трех аргументов<br>Возвращаемое значение:<br>(True: успех, False: ошибка) |


<a id="p100260"></a>Пример 4 - Пример формата функции для механических свойств приведен в [таблице 4.4](#p100262). Как и для электрических/электронных свойств, данная функция используется для проверки того, что равноправный модуль использует надлежащие механические свойства модуля. Однако в отличие от предыдущего примера формат функции для механических свойств может быть более сложным из-за большого разнообразия их использования на практике. Поэтому в данном примере использованы только две упрощенные категории - шарнир и звено.

<a id="p100261"></a>Таблица 4.4

<a id="p100262"></a>*Пример* формата функции для проверки механической
применимости


| <a id="p100263"></a>Имя | <a id="p100264"></a>Аргументы | <a id="p100265"></a>Возвращаемое значение | <a id="p100266"></a>Описание |
| --- | --- | --- | --- |
| <a id="p100267"></a>linkConnectivity | <a id="p100268"></a>Real origin, Real mass, Real Inertia[], String shape, Real size, Real axis[], String connection, Real collision[] | <a id="p100269"></a>Boolean | <a id="p100270"></a><a id="p100271"></a><a id="p100272"></a>Проверка применимости механического звена с использованием 8 аргументов<br>Возвращаемое значение:<br>(True: успех, False: ошибка) |
| <a id="p100273"></a>jointConnectivity | <a id="p100274"></a>Real origin[], Real axis[], Real limits, Real damping, Real friction | <a id="p100275"></a>Boolean | <a id="p100276"></a><a id="p100277"></a><a id="p100278"></a>Проверка применимости механического шарнира с использованием 5 аргументов<br>Возвращаемое значение:<br>(True: успех, False: ошибка) |


<a id="p100279"></a>[Элемент 14](#p100176) "Инфраструктура" соответствует перечню аппаратного и/или программного обеспечения, которое модули обычно используют или с которыми соединяются.
<a id="p100280"></a>*Пример* 5 - Примерами инфраструктуры являются тип энергоснабжения, тип межплатформенного программного обеспечения, тип шины данных и тип базы данных.
<a id="p100281"></a>[Элемент 15](#p100183) "Безопасность/защищенность" соответствует связанному с безопасностью уровню эффективности защиты и информации о защищенности, обеспечиваемой модулем. В [элементе](#p100183) "Безопасность/защищенность" обычного сервисного робота используется связанный с безопасностью уровень эффективности защиты, определенный в ИСО 13849-1, и указывается уровень, связанный с защищенностью, значение которого находится в диапазоне от 0 до 4. Уровень защищенности 0 означает, что в модуле вообще не предусмотрены меры по обеспечению защищенности. Уровни защищенности от 1 до 4 определены в МЭК 62443-4-2:2019. Однако для специфических типов роботов, таких как медицинские роботы и роботы для оказания физической помощи, следует использовать другие стандарты, связанные с безопасностью и защищенностью. Уровень эффективности защиты обычно определяют для каждой отдельной функции безопасности. Если у модуля есть несколько функций безопасности, то такой модуль должен обеспечить уровень эффективности защиты, используя комбинацию уровней эффективности защиты всех функций безопасности модуля, либо с помощью верификации и валидации общей связанной с безопасностью функции модуля. Более подробные сведения приведены в [4.3.8](#p100934).
<a id="p100282"></a>[Элемент 16](#p100190) "Моделирование" соответствует разным типам моделей, предназначенных для имитационного моделирования и разработки.
<a id="p100283"></a>[Элемент 17](#p100197) "Исполняемая форма" соответствует программным кодам, исполнение которых обеспечивает достижение или поддержку назначения модуля.
<a id="p100284"></a>Классы, представленные в настоящем стандарте, могут быть описаны с помощью табличного формата, приведенного в [приложении E](#p103077).

#### <a id="p100285"></a>4.2 Взаимосвязь между ОИМ и конкретными ИМ

<a id="p100286"></a>Общую информационную модель модулей необходимо использовать в информационных моделях всех типов модулей, к которым относятся аппаратно-программные модули, программные модули и аппаратные модули. Взаимосвязи между информационными моделями модулей представлены на [рисунке 4.1](#p100288). Аппаратно-программные модули обладают как аппаратными, так и программными свойствами. Пример взаимосвязей между информационными моделями аппаратных модулей, программных модулей и аппаратно-программных модулей представлен на [рисунке 4.2](#p100290).

<a id="p100287"></a> ![4.2 Взаимосвязь между ОИМ и конкретными ИМ](https://i.bukva.ai/Sbr5guZu/img_0.png) 

<a id="p100288"></a>Рисунок 4.1 - Взаимосвязи между информационными
моделями модулей



<a id="p100289"></a> ![4.2 Взаимосвязь между ОИМ и конкретными ИМ](https://i.bukva.ai/Sbr5guZu/img_1.png) 

<a id="p100290"></a>Рисунок 4.2 - Пример взаимосвязей между информационными
моделями модулей


#### <a id="p100291"></a>4.3 Класс для общей информационной модели


##### <a id="p100292"></a>4.3.1 Общие положения

<a id="p100293"></a>Общая информационная модель должна быть сформирована из 9 внутренних классов, представленных на [рисунке 4.3](#p100295), где 8 классов взяты из [таблицы 4.1](#p100083), а дополнительный класс Status представляет информацию о состоянии модуля. Данный класс в основном используется во время работы модуля. Четыре элемента группы GenInfo из таблицы 4.1, которыми являются [Имя модуля](#p100092), [Описание](#p100099), [Изготовитель](#p100105) и [Примеры](#p100111), становятся атрибутами класса Common Information Model (CIM).

<a id="p100294"></a> ![4.3.1 Общие положения](https://i.bukva.ai/Sbr5guZu/img_2.png) 

<a id="p100295"></a>Рисунок 4.3 - Классы общей информационной модели

<a id="p100296"></a>Класс CIM (Общая информационная модель) должен иметь атрибуты, представленные на [рисунке 4.4](#p100313) и в [таблице 4.5](#p100315), которые основаны на ИСО 22166-1:2021, разделы 4 - 7. Значения атрибутов ModuleName, Description, Manufacture и Examples определены в [приложении A](#p101352). Классы IDnType, Properties, IOVariables, Status, Services, Infrastructure, SafeSecure, Modelling и ExecutableForm определены в [4.3.2](#p100384) - [4.3.10](#p101311).
<a id="p100297"></a>*Примечание* 1 - Атрибуты могут быть объявлены принадлежащими к одному из следующих типов: конфиденциальный (-), защищенный (*) или публичный (+). Сначала указывают имя атрибута, а затем определяют его тип данных. Символом, разделяющим имя атрибута и его тип данных, является двоеточие (:). Если атрибуты объявлены публичными, то нет необходимости определять функции доступа к ним.
<a id="p100298"></a>Примечание 2 - Четыре элемента: [имя модуля](#p100092), [описание](#p100099), [изготовитель](#p100105) и [примеры](#p100111) - являются атрибутами класса CIM.


| <a id="p100299"></a>Класс CIM |
| --- |
| <a id="p100300"></a><a id="p100301"></a><a id="p100302"></a><a id="p100303"></a><a id="p100304"></a><a id="p100305"></a><a id="p100306"></a><a id="p100307"></a><a id="p100308"></a><a id="p100309"></a><a id="p100310"></a><a id="p100311"></a><a id="p100312"></a>+ moduleName : String<br>+ description : String [0..1]<br>+ manufacture : String<br>+ examples : String [0..1]<br>+ idnType : IDnType<br>+ properties : Properties<br>+ ioVariables : IOVariables<br>+ status : Status [0..1]<br>+ services : Services [0..1]<br>+ infra : Infrastructure [0..1]<br>+ safeSecure : SafeSecure [0..1]<br>+ modelling : Modelling [0..1]<br>+ execForm : ExecutableForm [0..1] |
|  |


<div align="right">

<a id="p100313"></a>Рисунок 4.4 - Диаграмма классов класса CIM

</div>


<div align="center">

<a id="p100314"></a>Таблица 4.5

<a id="p100315"></a>Класс CIM

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100316"></a>Описание: Корневой класс для CIM (Общая информационная модель)</td></tr>
<tr><td colspan="5"><a id="p100317"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100318"></a>Атрибуты:</td></tr>
<tr><td><a id="p100319"></a>moduleName</td><td><a id="p100320"></a>String</td><td><a id="p100321"></a>M</td><td><a id="p100322"></a>1</td><td><a id="p100323"></a>Имя, представляющее модуль</td></tr>
<tr><td><a id="p100324"></a>description</td><td><a id="p100325"></a>String</td><td><a id="p100326"></a>O</td><td><a id="p100327"></a>1</td><td><a id="p100328"></a>Общее представление модуля, что он собой представляет, что он делает и как его использовать</td></tr>
<tr><td><a id="p100329"></a>manufacturer</td><td><a id="p100330"></a>String</td><td><a id="p100331"></a>M</td><td><a id="p100332"></a>1</td><td><a id="p100333"></a>Контактная информация о проектировщике, разработчике или изготовителе модуля</td></tr>
<tr><td><a id="p100334"></a>examples</td><td><a id="p100335"></a>String</td><td><a id="p100336"></a>O</td><td><a id="p100337"></a>1</td><td><a id="p100338"></a>Типичные случаи применения модуля</td></tr>
<tr><td><a id="p100339"></a>idnType</td><td><a id="p100340"></a>IDnType</td><td><a id="p100341"></a>M</td><td><a id="p100342"></a>1</td><td><a id="p100343"></a>ID модуля включает уникальный идентификатор, ID экземпляра, собственные программные/аппаратные свойства в виде их ID. Более подробно см. <a href="#p100384">4.3.2</a></td></tr>
<tr><td><a id="p100344"></a>properties</td><td><a id="p100345"></a>Properties</td><td><a id="p100346"></a>M</td><td><a id="p100347"></a>1</td><td><a id="p100348"></a>Список конфигурируемых параметров модуля. Более подробно см. <a href="#p100429">4.3.3</a></td></tr>
<tr><td><a id="p100349"></a>ioVariables</td><td><a id="p100350"></a>IOVariables</td><td><a id="p100351"></a>O</td><td><a id="p100352"></a>1</td><td><a id="p100353"></a>Информация о входных и выходных переменных модуля. Более подробно см. <a href="#p100495">4.3.4</a></td></tr>
<tr><td><a id="p100354"></a>status</td><td><a id="p100355"></a>Status</td><td><a id="p100356"></a>O</td><td><a id="p100357"></a>1</td><td><a id="p100358"></a>Информация о состоянии и работоспособности модуля. Более подробно см. <a href="#p100579">4.3.5</a></td></tr>
<tr><td><a id="p100359"></a>services</td><td><a id="p100360"></a>Services</td><td><a id="p100361"></a>O</td><td><a id="p100362"></a>1</td><td><a id="p100363"></a>Интерфейсы, которые модуль предоставляет и использует для сервисов робота. Более подробно см. <a href="#p100631">4.3.6</a></td></tr>
<tr><td><a id="p100364"></a>infra</td><td><a id="p100365"></a>Infrastructure</td><td><a id="p100366"></a>O</td><td><a id="p100367"></a>1</td><td><a id="p100368"></a>Информация об инфраструктуре модуля включает сведения об электропитании, шине данных, базе данных и защите от проникновения. Более подробно см. <a href="#p100837">4.3.7</a></td></tr>
<tr><td><a id="p100369"></a>safeSecure</td><td><a id="p100370"></a>SafeSecure</td><td><a id="p100371"></a>O</td><td><a id="p100372"></a>1</td><td><a id="p100373"></a>Уровни безопасности и защищенности, которые обеспечивает модуль. Более подробно см. <a href="#p100934">4.3.8</a></td></tr>
<tr><td><a id="p100374"></a>modelling</td><td><a id="p100375"></a>Modelling</td><td><a id="p100376"></a>O</td><td><a id="p100377"></a>1</td><td><a id="p100378"></a>Информация, связанная с моделированием модуля. Более подробно см. <a href="#p101271">4.3.9</a></td></tr>
<tr><td><a id="p100379"></a>execForm</td><td><a id="p100380"></a>ExecutableForm</td><td><a id="p100381"></a>O</td><td><a id="p100382"></a>1</td><td><a id="p100383"></a>Информация, связанная с программами, выполняемыми для достижения или поддержки назначения модуля. Более подробно см. <a href="#p101311">4.3.10</a></td></tr>
</table>



##### <a id="p100384"></a>4.3.2 Класс для идентификатора модуля

<div align="center">

<a id="p100385"></a>Информация об идентификаторе модуля должна быть определена в классе IDnType, который должен иметь атрибуты, представленные на [рисунке 4.5](#p100393) и в [таблице 4.6](#p100395). Значения атрибута moduleID и других атрибутов из [таблицы 4.6](#p100395) определены в [приложениях B](#p101383) и [C](#p101473). Если в составном модуле присутствуют модули одного и того же типа, то такие модули должны быть идентифицированы индивидуально. Это обеспечивает элемент Instance ID (или IID). Для программных модулей IID присваивается динамически менеджером модулей. Для модулей с аппаратными свойствами IID присваивается статически изготовителем модулей. Если IID используется, то он должен быть уникальным. Версия информационной модели является номером версии информационной модели, использованной при определении модуля. Версия информационной модели изменяется при изменении атрибутов классов, представленных в настоящем стандарте.<br>
<a id="p100386"></a>*Примечание* 1 - Под модулем с аппаратными свойствами понимается аппаратный модуль или модуль с аппаратными и программными свойствами.

</div>



| <a id="p100387"></a>Класс IDnType |
| --- |
| <a id="p100388"></a><a id="p100389"></a><a id="p100390"></a><a id="p100391"></a><a id="p100392"></a>+ moduleID : String<br>+ iID : UnlimitedNatural =0<br>+ informationModelVersion : String<br>+ hwAspects : String [0..*]<br>+ swAspects : String [0..*] |
|  |


<div align="center">

<a id="p100393"></a>Рисунок 4.5 - Диаграмма классов для класса IDnType

<a id="p100394"></a>Таблица 4.6

<a id="p100395"></a>Класс IDnType

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100396"></a>Описание: Информация об элементе Module ID должна быть определена в классе IDnType</td></tr>
<tr><td colspan="5"><a id="p100397"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100398"></a>Атрибуты:</td></tr>
<tr><td><a id="p100399"></a>moduleID</td><td><a id="p100400"></a>String</td><td><a id="p100401"></a>M</td><td><a id="p100402"></a>1</td><td><a id="p100403"></a>Формат атрибута moduleID определен в <a href="#p101383">приложении B</a></td></tr>
<tr><td><a id="p100404"></a>iID</td><td><a id="p100405"></a>UnlimitedNatural</td><td><a id="p100406"></a>M</td><td><a id="p100407"></a>1</td><td><a id="p100408"></a>Instance ID, значением по умолчанию является 0</td></tr>
<tr><td><a id="p100409"></a>informationModelVersion</td><td><a id="p100410"></a>String</td><td><a id="p100411"></a>M</td><td><a id="p100412"></a>1</td><td><a id="p100413"></a>Номер версии информационной модели</td></tr>
<tr><td><a id="p100414"></a>hwAspects</td><td><a id="p100415"></a>String</td><td><a id="p100416"></a>O</td><td><a id="p100417"></a>N</td><td><a id="p100418"></a>Список идентификаторов модулей для аппаратных модулей и модулей с аппаратными и программными свойствами</td></tr>
<tr><td><a id="p100419"></a>swAspects</td><td><a id="p100420"></a>String</td><td><a id="p100421"></a>O</td><td><a id="p100422"></a>N</td><td><a id="p100423"></a>Список идентификаторов модулей для программных модулей</td></tr>
</table>


<a id="p100424"></a>Атрибуты hwAspects и swAspects представляют списки идентификаторов модулей с аппаратными свойствами и с программными свойствами соответственно.
<a id="p100425"></a>При создании экземпляра данного класса должен быть задан атрибут instanceID с использованием атрибута moduleID. Если какой-либо модуль добавляется к составному модулю, то данный составной модуль должен проверить, не произойдет ли дублирование атрибута moduleID в данном составном модуле. Если дублирование имеет место (т.е. такой же модуль уже существует в составном модуле), то менеджер модулей или изготовитель составного модуля должен присвоить данному модулю новый атрибут instanceID.
<a id="p100426"></a>*Примечание* 2 - Элемент Module ID задает изготовитель модуля.
<a id="p100427"></a>*Примечание* 3 - Атрибут moduleID, включая IID, используется для доступа к модулю. Значением IID по умолчанию является "0".
<a id="p100428"></a>*Примечание* 4 - Значение атрибута informationModelVersion равно "1.0", если используется информационная модель, определенная в настоящем стандарте.


##### <a id="p100429"></a>4.3.3 Класс для характеристик

<a id="p100430"></a>Информация о характеристиках модуля должна быть определена в классе Properties, который должен представлять характеристики модуля в соответствии с [рисунком 4.6](#p100432) и [таблицами 4.7](#p100434) - [4.9](#p100469), содержащими информацию, необходимую для исполнения модуля, и информацию об операционной среде или состоянии модуля. На [рисунке 4.6](#p100432) приведена диаграмма классов для класса Properties и представлена взаимосвязь между классами, представленными в [таблицах 4.7](#p100434) - [4.9](#p100469). Конкретные значения атрибутов, таких как имя и тип данных, должны быть определены с использованием значений, указанных для элемента Property в [приложении C](#p101473).

<a id="p100431"></a> ![4.3.3 Класс для характеристик](https://i.bukva.ai/Sbr5guZu/img_3.png) 

<a id="p100432"></a>Рисунок 4.6 - Диаграмма классов для класса Properties

<a id="p100433"></a>Таблица 4.7

<a id="p100434"></a>Класс DataProfile


<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100435"></a>Описание: Класс для профилей данных</td></tr>
<tr><td colspan="5"><a id="p100436"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100437"></a>Атрибуты:</td></tr>
<tr><td><a id="p100438"></a>description</td><td><a id="p100439"></a>String</td><td><a id="p100440"></a>M</td><td><a id="p100441"></a>1</td><td><a id="p100442"></a>Описание свойства</td></tr>
<tr><td><a id="p100443"></a>name</td><td><a id="p100444"></a>String</td><td><a id="p100445"></a>M</td><td><a id="p100446"></a>1</td><td><a id="p100447"></a>Имя свойства</td></tr>
<tr><td><a id="p100448"></a>type</td><td><a id="p100449"></a>String</td><td><a id="p100450"></a>M</td><td><a id="p100451"></a>1</td><td><a id="p100452"></a>Тип данных свойства</td></tr>
<tr><td><a id="p100453"></a>unit</td><td><a id="p100454"></a>String</td><td><a id="p100455"></a>O</td><td><a id="p100456"></a>1</td><td><a id="p100457"></a>Единицы измерения свойства. Если их нет, то значением является 'null'</td></tr>
</table>


<div align="center">

<a id="p100458"></a>Таблица 4.8

<a id="p100459"></a>Класс Property

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100460"></a>Описание: Класс для свойства</td></tr>
<tr><td colspan="5"><a id="p100461"></a>Выведен из: DataProfile</td></tr>
<tr><td colspan="5"><a id="p100462"></a>Атрибуты:</td></tr>
<tr><td><a id="p100463"></a>value</td><td><a id="p100464"></a>any</td><td><a id="p100465"></a>M</td><td><a id="p100466"></a>1</td><td><a id="p100467"></a>Значение свойства</td></tr>
</table>


<div align="center">

<a id="p100468"></a>Таблица 4.9

<a id="p100469"></a>Класс Properties

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100470"></a>Описание: Определяет информацию о свойствах модуля</td></tr>
<tr><td colspan="5"><a id="p100471"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100472"></a>Атрибуты:</td></tr>
<tr><td><a id="p100473"></a>property</td><td><a id="p100474"></a>Property</td><td><a id="p100475"></a>O</td><td><a id="p100476"></a>N</td><td><a id="p100477"></a>Список атрибутов, полученных согласно классу Property</td></tr>
</table>


<a id="p100478"></a>Приведенные далее примеры на языке XML должны быть преобразованы, как представлено на [рисунке 4.6](#p100432):
<a id="p100479"></a><!-example for hardware-software module -->
<a id="p100480"></a><Property name="maxRatedCurrent" value=15 type="float32" unit="ampere" description =
"maximum of rated current for motor" />
<a id="p100481"></a><Property name="angleResolution" value=1 type="float32" unit="degree" description =

<div align="right">

"Angle Resolution of Lidar Sensor" />

</div>

<div align="center">

<a id="p100482"></a><Property name="minOpRange" value=0.05 type="float32" unit="meter" description =<br>
"minimum operation range of Lidar Sensor" /><br>
<a id="p100483"></a><Property name="maxOpRange" value=10 type="float32" unit="meter" description =<br>
"maximum operation range of Lidar Sensor" /><br>
<a id="p100484"></a><Property name="commModule" value="Ethernet microUSB" type="array of string"<br>
unit="null" description = "communication protocol type of Lidar Sensor" /><br>
<a id="p100485"></a><!-example for software module --><br>
<a id="p100486"></a><Property name="Weight" value=150 type="float32" unit="gram" description =<br>
"weight of Lidar Sensor" />  <-- example for hardware-software module --><br>
<a id="p100487"></a><Property name="maxRadius" value=2 type="float32" unit="meter" description =<br>
"maximum radius for Obstacle Avoidance" /><br>
<a id="p100488"></a><Property name="minRadius" value=0.5 type="float32" unit="meter" description =<br>
"minimum radius for Obstacle Avoidance" /><br>
<a id="p100489"></a><!-- example for hardware module --><br>
<a id="p100490"></a><Property name="origin" type="array of float32" unit="cm", "radian" description =

</div>

"pose of the inertial reference frame, relative to the link reference frame including
xyz and rpy" value=[0 0 0 0 0 0]/>
<a id="p100491"></a><Property name="mass" type="float32" unit="gram" description = "mass of a link" value =15 />
<a id="p100492"></a>< Property name="inertia" type="array of float32" $unit = "g - cm^{2}"$ description =
"inertial properties of the link, 3x3 matrix" value =[1 0 0; 0 1 0; 0 0 1] />
<a id="p100493"></a><Property name="shape" type="string" unit="" description = "shape of the visual
object" value =cylinder />
<a id="p100494"></a><Property name="size" type="3x1 array of float32" unit="cm" description = "three
side lengths of the box" value =[100; 200; 100] />

##### <a id="p100495"></a>4.3.4 Класс для входных и выходных переменных

<a id="p100496"></a>Информация о входных и выходных переменных модуля должна быть определена в классе IOVariables, представленном на [рисунке 4.7](#p100498) и в [таблицах 4.10](#p100500) - [4.15](#p100555). Класс IOVariables должен определять используемые в модуле переменные, которые содержат информацию, необходимую для выполнения модуля. Эти переменные должны быть определены с помощью класса Variable, представленного в [таблице 4.12](#p100525). Класс Variable наследует от класса VariableProfile, представленного в [таблице 4.11](#p100510), который в свою очередь наследует от класса DataProfile, представленного в [таблице 4.7](#p100434). Для хранения дополнительной информации в качестве контейнера может быть использован класс NVList, представленный в [таблице 4.14](#p100545). NVList содержит объекты класса NameValue, определенного в [таблице 4.15](#p100555). Значения IN, OUT и INOUT определены в [таблице 4.10](#p100500) как перечислимые типы данных. Конкретные значения атрибутов, таких как имя и тип данных, должны быть определены с использованием значений, указанных для элемента IOVariables в [приложении C](#p101473). На [рисунке 4.7](#p100498) представлена взаимосвязь между классами для класса IOVariables.

<a id="p100497"></a> ![4.3.4 Класс для входных и выходных переменных](https://i.bukva.ai/Sbr5guZu/img_4.png) 

<a id="p100498"></a>**Рисунок 4.7 - Взаимосвязь между классами для класса**
**IOVariables**

<a id="p100499"></a>Таблица 4.10

<div align="center">

<a id="p100500"></a>Перечисление InOutType

</div>



<table>
<colgroup><col width="15%"><col width="85%"></colgroup>
<tr><td colspan="2"><a id="p100501"></a>Описание: Типы входных и выходных переменных</td></tr>
<tr><td colspan="2"><a id="p100502"></a>Атрибуты:</td></tr>
<tr><td><a id="p100503"></a>IN</td><td><a id="p100504"></a>Используют для переменных, в которые внешние модули заносят данные</td></tr>
<tr><td><a id="p100505"></a>OUT</td><td><a id="p100506"></a>Используют для переменных, из которых внешние модули считывают данные</td></tr>
<tr><td><a id="p100507"></a>INOUT</td><td><a id="p100508"></a>Используют для переменных, из которых внешние модули считывают данные и в которые заносят данные</td></tr>
</table>


<a id="p100509"></a>**Таблица 4.11**

<a id="p100510"></a>**Класс VariableProfile**


<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100511"></a>Описание: Класс для профиля переменных</td></tr>
<tr><td colspan="5"><a id="p100512"></a>Выведен из: DataProfile (см. <a href="#p100434">таблицу 4.7</a>)</td></tr>
<tr><td colspan="5"><a id="p100513"></a>Атрибуты:</td></tr>
<tr><td><a id="p100514"></a>ioType</td><td><a id="p100515"></a>InOutTipe</td><td><a id="p100516"></a>M</td><td><a id="p100517"></a>1</td><td><a id="p100518"></a>Один из {IN, OUT, INOUT}. См. <a href="#p100500">таблицу 4.10</a></td></tr>
<tr><td><a id="p100519"></a>additionalInfo</td><td><a id="p100520"></a>NVList</td><td><a id="p100521"></a>O</td><td><a id="p100522"></a>1</td><td><a id="p100523"></a>Класс NVList служит в качестве контейнера для дополнительной информации по разным классам. См. <a href="#p100545">таблицу 4.14</a></td></tr>
</table>


<div align="center">

<a id="p100524"></a>Таблица 4.12

</div>


<a id="p100525"></a>Класс Variable


<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100526"></a>Описание: Класс для переменной</td></tr>
<tr><td colspan="5"><a id="p100527"></a>Выведен из: VariableProfile (см. <a href="#p100510">таблицу 4.11</a>)</td></tr>
<tr><td colspan="5"><a id="p100528"></a>Атрибуты:</td></tr>
<tr><td><a id="p100529"></a>value</td><td><a id="p100530"></a>any</td><td><a id="p100531"></a>M</td><td><a id="p100532"></a>1</td><td><a id="p100533"></a>Значение переменной</td></tr>
</table>


<a id="p100534"></a>Таблица 4.13

<a id="p100535"></a>Класс IOVariables


<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100536"></a>Описание: Класс для входных и выходных переменных модуля</td></tr>
<tr><td colspan="5"><a id="p100537"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100538"></a>Атрибуты:</td></tr>
<tr><td><a id="p100539"></a>variable</td><td><a id="p100540"></a>Variable</td><td><a id="p100541"></a>O</td><td><a id="p100542"></a>N</td><td><a id="p100543"></a>Список атрибутов, созданных в соответствии с тегом Variable</td></tr>
</table>


<div align="center">

<a id="p100544"></a>Таблица 4.14

<a id="p100545"></a>Класс NVList

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100546"></a>Описание: Список NameValue для дополнительной информации по разным классам</td></tr>
<tr><td colspan="5"><a id="p100547"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100548"></a>Атрибуты:</td></tr>
<tr><td><a id="p100549"></a>nv</td><td><a id="p100550"></a>NameValue</td><td><a id="p100551"></a>M</td><td><a id="p100552"></a>N</td><td><a id="p100553"></a>Список элементов Name Value. См. <a href="#p100555">таблицу 4.15</a></td></tr>
</table>


<div align="center">

<a id="p100554"></a>Таблица 4.15

<a id="p100555"></a>Класс NameValue

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100556"></a>Описание: Список NameValue для дополнительной информации по разным классам</td></tr>
<tr><td colspan="5"><a id="p100557"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100558"></a>Атрибуты:</td></tr>
<tr><td><a id="p100559"></a>name</td><td><a id="p100560"></a>String</td><td><a id="p100561"></a>M</td><td><a id="p100562"></a>1</td><td><a id="p100563"></a>Имя дополнительной информации</td></tr>
<tr><td><a id="p100564"></a>value</td><td><a id="p100565"></a>any</td><td><a id="p100566"></a>M</td><td><a id="p100567"></a>1</td><td><a id="p100568"></a>Значение дополнительной информации</td></tr>
</table>


<div align="center">

<a id="p100569"></a>Приведенные далее примеры на языке XML должны быть преобразованы, как представлено на [рисунке 4.7](#p100498):<br>
<a id="p100570"></a> <IOVariables><br>
<a id="p100571"></a>     <Input name="controlValue" type="float32" unit="ampere" description="current<br>
control to motor" /> <!-- IOType=IN --><br>
<a id="p100572"></a> <Output name="encoder" value= 0 type ="uint32" unit = "none" description = "absolute<br>
encoder's value" /> <!-- IOType=OUT --><br>
<a id="p100573"></a>     <Inout name="state" type="uint8" value= 0 unit = "none" description = "status<br>
of motor"/> <!-- IOType=INOUT --><br>
<a id="p100574"></a> </IOVariables><br>
<a id="p100575"></a>Из этих примеров генерируются следующие переменные и типы данных:<br>
<a id="p100576"></a>+ controlValue : float32 // or public float32 controlValue; current control command

</div>

to motor, input
<a id="p100577"></a>+ encoder=0 : uint32 // or public uint32 encoder=0; value of absolute encoder, output
<a id="p100578"></a>+ state=0 : uint8 // or public uint8 state=0; reset or read status of motor, input
**and output**

##### <a id="p100579"></a>4.3.5 Класс для состояния

<a id="p100580"></a>**Информация о состоянии и работоспособности модуля должна быть определена в классе Status, представленном на [рисунке 4.8](#p100596) и в [таблице 4.17](#p100612). Класс Status представляет текущее состояние модуля, которое определяет состояние работоспособности модуля, если существует информационная модель аппаратного обеспечения, состояние жизненного цикла выполнения модуля, если существует информационная модель программного обеспечения, а также тип ошибки, которая может возникнуть в процессе работы модуля.**
<a id="p100581"></a>Следует использовать номера, присвоенные ошибкам в IEEE/Open Group 1003.1-2017. Для каждого программного модуля могут быть определены дополнительные номера ошибок, но которые не должны конфликтовать с номерами ошибок в POSIX.1003.1.
<a id="p100582"></a>*Примечание* 1 - Примерами значений атрибута HealthCond являются: GH (полная работоспособность), H1 (состояние 1), H2 (состояние 2), Fa (неисправность).
<a id="p100583"></a>*Примечание* 2 - Примерами ошибок, указываемых в атрибуте ErrorType, являются: "Operation not permitted (Работа не разрешена)", "Authentication Error (Ошибка авторизации)", "Bad Parameter (Неправильный параметр)", "Unsupported Service (Неподдерживаемый сервис)", "out of Range (Вне диапазона) и "Precondition not met (Заданные условия не соблюдены)". Значения атрибута ErrorType будут точно определены в ИСО 22166-202 и других стандартах.
<a id="p100584"></a>Примечание 3 - Значение атрибута ExeStatus определено в ИСО 22166-1 и должно быть одним из следующих: CREATED (Создан), IDLE (Ожидает), EXECUTING (Выполняется), DESTRUCTED (Удален) и ERROR (Ошибка). Эти значения определены в [таблице 4.16](#p100598) как перечислимые типы данных.


<table>
<colgroup><col width="50%"><col width="9%"><col width="41%"></colgroup>
<tr><td><a id="p100585"></a>Класс Status</td><td rowspan="4"></td><td rowspan="2"><a id="p100586"></a><a id="p100587"></a>"enumeration"<br>ExeStatus</td></tr>
<tr><td rowspan="2"><a id="p100588"></a><a id="p100589"></a><a id="p100590"></a>+ healthCond : HealthCond [0..1]<br>+ executionStatus : ExeStatus [0..1]<br>+ errorType : Integer</td></tr>
<tr><td rowspan="2"><a id="p100591"></a><a id="p100592"></a><a id="p100593"></a><a id="p100594"></a><a id="p100595"></a>"enum" CREATED<br>"enum" IDLE<br>"enum" EXECUTING<br>"enum" DESTRUCTED<br>"enum" ERROR</td></tr>
<tr><td></td></tr>
</table>


<a id="p100596"></a>Рисунок 4.8 - Диаграмма классов для класса Status

<a id="p100597"></a>Таблица 4.16

<div align="center">

<a id="p100598"></a>Перечисление ExeStatus

</div>



<table>
<colgroup><col width="18%"><col width="82%"></colgroup>
<tr><td colspan="2"><a id="p100599"></a>Описание: Определяет типы состояния выполнения</td></tr>
<tr><td colspan="2"><a id="p100600"></a>Атрибуты:</td></tr>
<tr><td><a id="p100601"></a>CREATED</td><td><a id="p100602"></a>Состояние "создан"</td></tr>
<tr><td><a id="p100603"></a>IDLE</td><td><a id="p100604"></a>Состояние "ожидает"</td></tr>
<tr><td><a id="p100605"></a>EXECUTING</td><td><a id="p100606"></a>Состояние "выполняется"</td></tr>
<tr><td><a id="p100607"></a>DESTRUCTED</td><td><a id="p100608"></a>Состояние "удален"</td></tr>
<tr><td><a id="p100609"></a>ERROR</td><td><a id="p100610"></a>Состояние "ошибка"</td></tr>
</table>


<div align="center">

<a id="p100611"></a>Таблица 4.17

<a id="p100612"></a>Класс Status

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100613"></a>Описание: Класс для состояния модуля</td></tr>
<tr><td colspan="5"><a id="p100614"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100615"></a>Атрибуты:</td></tr>
<tr><td><a id="p100616"></a>healthCond</td><td><a id="p100617"></a>HealthCond</td><td><a id="p100618"></a>O</td><td><a id="p100619"></a>1</td><td><a id="p100620"></a>У некоторых модулей атрибут HealthCond не имеет значений. Данный перечислимый тип данных имеет следующие значения: {GH, H1, H2, Fa}, где GH, H1, H2 и Fa означают "Полная работоспособность", "Тип состояния 1", "Тип состояния 2" и "Сбой" соответственно</td></tr>
<tr><td><a id="p100621"></a>executionStatus</td><td><a id="p100622"></a>ExeStatus</td><td><a id="p100623"></a>O</td><td><a id="p100624"></a>1</td><td><a id="p100625"></a>У некоторых модулей атрибут ExeStatus может не иметь значений (см. <a href="#p100598">таблицу 4.16</a>)</td></tr>
<tr><td><a id="p100626"></a>errorType</td><td><a id="p100627"></a>Integer</td><td><a id="p100628"></a>M</td><td><a id="p100629"></a>1</td><td><a id="p100630"></a>Зависит от типа модуля. См. <a href="#p100583">примечание 2</a></td></tr>
</table>



##### <a id="p100631"></a>4.3.6 Класс для сервисов

<a id="p100632"></a>Информация о сервисах модуля должна быть определена в классе Services, который представляет методы (или функции), реализуемые данным модулем, как показано на [рисунке 4.9](#p100635) и в [таблице 4.18](#p100637). Атрибуты и методы, представленные в [таблице 4.18](#p100637), должны быть получены с помощью CIMServicePackage, представленного ниже на языке IDL, либо определены из классов, определенных в [таблицах 4.19](#p100657) - [4.24](#p100752). На [рисунке 4.9](#p100635) представлена взаимосвязь между классами для класса Services, которые представлены в [таблицах 4.18](#p100637) - [4.24](#p100752).
<a id="p100633"></a>*Примечание* - В данном пункте сервисы определены с использованием ИСО/МЭК 19516:2020.

<a id="p100634"></a> ![4.3.6 Класс для сервисов](https://i.bukva.ai/Sbr5guZu/img_5.png) 

<div align="center">

<a id="p100635"></a>Рисунок 4.9 - Взаимосвязь между классами для класса Services

<a id="p100636"></a>Таблица 4.18

</div>


<div align="right">

<a id="p100637"></a>Класс Services

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100638"></a>Описание: Класс для сервисов модуля</td></tr>
<tr><td colspan="5"><a id="p100639"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100640"></a>Атрибуты:</td></tr>
<tr><td><a id="p100641"></a>NoOfBasicService</td><td><a id="p100642"></a>UnlimitedNatural</td><td><a id="p100643"></a>M</td><td><a id="p100644"></a>1</td><td><a id="p100645"></a>Число предоставляемых базовых сервисов</td></tr>
<tr><td><a id="p100646"></a>NoOfOptionalService</td><td><a id="p100647"></a>UnlimitedNatural</td><td><a id="p100648"></a>M</td><td><a id="p100649"></a>1</td><td><a id="p100650"></a>Число предоставляемых факультативных сервисов</td></tr>
<tr><td><a id="p100651"></a>serviceProfile</td><td><a id="p100652"></a>ServiceProfile</td><td><a id="p100653"></a>O</td><td><a id="p100654"></a>N</td><td><a id="p100655"></a>Прототип для базовых (обязательных) сервисов, serviceProfile может быть представлен списком. См. <a href="#p100665">таблицу 4.20</a></td></tr>
</table>


<div align="right">

<a id="p100656"></a>Таблица 4.19

</div>


<div align="center">

<a id="p100657"></a>Перечисление PhysicalVirtual

</div>



<table>
<colgroup><col width="18%"><col width="82%"></colgroup>
<tr><td colspan="2"><a id="p100658"></a>Описание: Определяет тип интерфейса</td></tr>
<tr><td colspan="2"><a id="p100659"></a>Атрибуты:</td></tr>
<tr><td><a id="p100660"></a>Physical</td><td><a id="p100661"></a>Физический интерфейс, например механический или электрический интерфейс</td></tr>
<tr><td><a id="p100662"></a>Virtual</td><td><a id="p100663"></a>Виртуальный интерфейс, например программный интерфейс</td></tr>
</table>


<div align="right">

<a id="p100664"></a>Таблица 4.20

</div>


<div align="center">

<a id="p100665"></a>Класс ServiceProfile

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100666"></a>Описание: Класс для профиля сервисов</td></tr>
<tr><td colspan="5"><a id="p100667"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100668"></a>Атрибуты:</td></tr>
<tr><td><a id="p100669"></a>id</td><td><a id="p100670"></a>String</td><td><a id="p100671"></a>M</td><td><a id="p100672"></a>1</td><td><a id="p100673"></a>Имя профиля сервиса. Один или несколько профилей сервисов могут быть представлены</td></tr>
<tr><td><a id="p100674"></a>ifURL</td><td><a id="p100675"></a>String</td><td><a id="p100676"></a>O</td><td><a id="p100677"></a>1</td><td><a id="p100678"></a>URL/путь файла, определенного в IDL (см. CIMService Package) для сервиса</td></tr>
<tr><td><a id="p100679"></a>methodList</td><td><a id="p100680"></a>ServiceMethod</td><td><a id="p100681"></a>O</td><td><a id="p100682"></a>N</td><td><a id="p100683"></a>Список методов для сервиса, определенных на языке XML. См. <a href="#p100717">таблицу 4.23</a></td></tr>
<tr><td><a id="p100684"></a>pvType</td><td><a id="p100685"></a>PhysicalVirtual</td><td><a id="p100686"></a>M</td><td><a id="p100687"></a>1</td><td><a id="p100688"></a>PhysicalVirtual: перечислимый тип данных {Physical, Virtual} (см. <a href="#p100657">таблицу 4.19</a>). Physical (Mechanical/Elec) Method или Virtual (Software) Method</td></tr>
<tr><td><a id="p100689"></a>moType</td><td><a id="p100690"></a>MOType</td><td><a id="p100691"></a>M</td><td><a id="p100692"></a>1</td><td><a id="p100693"></a>MOType: перечислимый тип данных {MANDATORY, OPTIONAL}. См. <a href="#p100701">таблицу 4.21</a></td></tr>
<tr><td><a id="p100694"></a>additionalInfo</td><td><a id="p100695"></a>NVList</td><td><a id="p100696"></a>O</td><td><a id="p100697"></a>1</td><td><a id="p100698"></a>Аргументы с их значениями по умолчанию при инициализации для сервиса. См. <a href="#p100545">таблицу 4.14</a></td></tr>
<tr><td colspan="5"><a id="p100699"></a>Должен быть представлен только один из двух типов аргументов ifURL и methodList. Если он не представлен, то значением является NULL.</td></tr>
</table>


<a id="p100700"></a>**Таблица 4.21**

<a id="p100701"></a>Перечисление MOType


<table>
<colgroup><col width="18%"><col width="82%"></colgroup>
<tr><td colspan="2"><a id="p100702"></a>Описание: Определяет тип сервиса - обязательный или факультативный</td></tr>
<tr><td colspan="2"><a id="p100703"></a>Атрибуты:</td></tr>
<tr><td><a id="p100704"></a>MANDATORY</td><td><a id="p100705"></a>Обязательный</td></tr>
<tr><td><a id="p100706"></a>OPTIONAL</td><td><a id="p100707"></a>Факультативный</td></tr>
</table>


<div align="right">

<a id="p100708"></a>Таблица 4.22

</div>


<div align="center">

<a id="p100709"></a>Перечисление ReqProvType

</div>



<table>
<colgroup><col width="18%"><col width="82%"></colgroup>
<tr><td colspan="2"><a id="p100710"></a>Описание: Определяет тип сервиса - требуемый или предоставляемый</td></tr>
<tr><td colspan="2"><a id="p100711"></a>Атрибуты:</td></tr>
<tr><td><a id="p100712"></a>REQUIRED</td><td><a id="p100713"></a>Требуемый сервис</td></tr>
<tr><td><a id="p100714"></a>PROVIDED</td><td><a id="p100715"></a>Предоставляемый сервис</td></tr>
</table>


<div align="right">

<a id="p100716"></a>Таблица 4.23

</div>


<div align="center">

<a id="p100717"></a>Класс ServiceMethod

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100718"></a>Описание: Класс для метода сервиса</td></tr>
<tr><td colspan="5"><a id="p100719"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100720"></a>Атрибуты:</td></tr>
<tr><td><a id="p100721"></a>methodName</td><td><a id="p100722"></a>String</td><td><a id="p100723"></a>M</td><td><a id="p100724"></a>1</td><td><a id="p100725"></a>Имя метода сервиса</td></tr>
<tr><td><a id="p100726"></a>argType</td><td><a id="p100727"></a>ArgSpec</td><td><a id="p100728"></a>O</td><td><a id="p100729"></a>N</td><td><a id="p100730"></a>Упорядоченный список аргументов, используемых в методе. См. <a href="#p100752">таблицу 4.24</a></td></tr>
<tr><td><a id="p100731"></a>retType</td><td><a id="p100732"></a>String</td><td><a id="p100733"></a>M</td><td><a id="p100734"></a>1</td><td><a id="p100735"></a>Тип данных возвращаемого значения. См. <a href="#p101691">таблицу C.5</a></td></tr>
<tr><td><a id="p100736"></a>moType</td><td><a id="p100737"></a>MOType</td><td><a id="p100738"></a>M</td><td><a id="p100739"></a>1</td><td><a id="p100740"></a>Обязательный или факультативный метод. См. <a href="#p100701">таблицу 4.21</a></td></tr>
<tr><td><a id="p100741"></a>reqProvType</td><td><a id="p100742"></a>ReqProvType</td><td><a id="p100743"></a>M</td><td><a id="p100744"></a>1</td><td><a id="p100745"></a>Предоставляемый или требуемый метод. См. <a href="#p100709">таблицу 4.22</a></td></tr>
<tr><td><a id="p100746"></a>additionalInfo</td><td><a id="p100747"></a>NVList</td><td><a id="p100748"></a>O</td><td><a id="p100749"></a>1</td><td><a id="p100750"></a>Список NameValue для дополнительной информации. См. <a href="#p100545">таблицу 4.14</a></td></tr>
</table>


<div align="right">

<a id="p100751"></a>Таблица 4.24

</div>


<div align="center">

<a id="p100752"></a>Класс ArgSpec

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100753"></a>Описание: Класс для определения аргумента</td></tr>
<tr><td colspan="5"><a id="p100754"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100755"></a>Атрибуты:</td></tr>
<tr><td><a id="p100756"></a>type</td><td><a id="p100757"></a>String</td><td><a id="p100758"></a>O</td><td><a id="p100759"></a>N</td><td><a id="p100760"></a>Тип данных аргумента, используемого в методе. См. <a href="#p101691">таблицу C.5</a></td></tr>
<tr><td><a id="p100761"></a>valueName</td><td><a id="p100762"></a>String</td><td><a id="p100763"></a>M</td><td><a id="p100764"></a>1</td><td><a id="p100765"></a>Имя аргумента, используемого в методе</td></tr>
<tr><td><a id="p100766"></a>inout</td><td><a id="p100767"></a>InOutType</td><td><a id="p100768"></a>M</td><td><a id="p100769"></a>1</td><td><a id="p100770"></a>См. <a href="#p100500">таблицу 4.10</a></td></tr>
<tr><td><a id="p100771"></a>additionalInfo</td><td><a id="p100772"></a>NVList</td><td><a id="p100773"></a>O</td><td><a id="p100774"></a>1</td><td><a id="p100775"></a>Список NameValue для дополнительной информации. См. <a href="#p100545">таблицу 4.14</a></td></tr>
</table>


<a id="p100776"></a>CIMServicePackage written in IDL:

<a id="p100777"></a>Module CIMServicePackage {
<a id="p100778"></a>interface CIMService;// abstract declaration
<a id="p100779"></a>struct NameValue
<a id="p100780"></a>{
<a id="p100781"></a>   string name;
<a id="p100782"></a>   any value; // "any" means any data type
<a id="p100783"></a>  };
<a id="p100784"></a>  // Mandatory/Optional enum type
<a id="p100785"></a>  enum MOType
<a id="p100786"></a>  {
<a id="p100787"></a>        MANDATORY,
<a id="p100788"></a>        OPTIONAL
<a id="p100789"></a>  };
<a id="p100790"></a>  struct ArgSpec {
<a id="p100791"></a>      string type;              // argument type
<a id="p100792"></a>      string valueName;         // argument name
<a id="p100793"></a>      InOut inout;              // enumeration {IN, OUT, INOUT}
<a id="p100794"></a>      NVList additionalInfo;    // additional information
<a id="p100795"></a>   } ;
<a id="p100796"></a>   typedef sequenceArgSpecList;   //sequence means a list or vector of
<a id="p100797"></a>                                            **// given data**
<a id="p100798"></a>   **struct ServiceMethod**
<a id="p100799"></a>   {
<a id="p100800"></a>      string methodName;
<a id="p100801"></a>      ArgSpecList argType;
<a id="p100802"></a>      string retType;
<a id="p100803"></a>      MOType moType;     // enumeration {"MANDATORY", "OPTIONAL"}
<a id="p100804"></a>      ReqProvType reqProvType; // Provided or required method.
<a id="p100805"></a>      NVList additionalInfo;   // additional information

<div align="center">

<a id="p100806"></a>   };<br>
<a id="p100807"></a>   typedef sequence<NameValue> NVList;<br>
<a id="p100808"></a>   typedef sequence<ServiceMethod> MethodList;<br>
<a id="p100809"></a>   enumeration PhysicalVirtual<br>
<a id="p100810"></a>   {<br>
<a id="p100811"></a>        PHYSICAL,<br>
<a id="p100812"></a>        VIRTUAL<br>
<a id="p100813"></a>   };<br>
<a id="p100814"></a>   // ServiceProfile<br>
<a id="p100815"></a>   struct ServiceProfile<br>
<a id="p100816"></a>   {<br>
<a id="p100817"></a>     string id;<br>
<a id="p100818"></a>     PhysicalVirtual pvType; // Enumeration PHYSICAL, VIRTUAL

</div>

<a id="p100819"></a>     MethodList methodList;  // mandatory/optional method defined in CIMService
<a id="p100820"></a>     MOType moType;  // MOType: {MANDATORY, OPTIONAL}.
<a id="p100821"></a>     NVList additionalInfo; // additional information

<div align="center">

<a id="p100822"></a>   };<br>
<a id="p100823"></a>   interface CIMService<br>
<a id="p100824"></a>   {

</div>

<div align="right">

<a id="p100825"></a>     // define here for prototypes of methods for CIM Service<br>
<a id="p100826"></a>     // format: <type_spec | void> <method_identifier> ( <parameter decls> )<br>
<a id="p100827"></a>     // <parameter decls> ::= <para_dcl>

</div>

<div align="center">

<a id="p100828"></a>     // <param_dcl> ::= <"in"|"out"|"inout"> <type_spec> <parameter_name><br>
<a id="p100829"></a>     // example:<br>
<a id="p100830"></a>     //   uint8 initialize(in int16 val1, in float64 val2);

</div>

<a id="p100831"></a>     //   boolean checkElecConnectivity(string connType, string keying,
<a id="p100832"></a>     //                                string busProtocol)
<a id="p100833"></a>     //   boolean linkConnectivity(array origin, float mass, array inertia,
<a id="p100834"></a>     //    string shape, array size,array axis,string connection,array collision)
<a id="p100835"></a>   };
<a id="p100836"></a>  };

##### <a id="p100837"></a>4.3.7 Класс для инфраструктуры

<a id="p100838"></a>Информация об инфраструктуре модуля должна быть определена в классе Infrastructure, который представляет типы инфраструктур, поддерживаемых данным модулем, как показано на [рисунке 4.10](#p100843) и в [таблице 4.27](#p100900). В данном пункте определены следующие инфраструктурные модули: Electric Power, Data Bus, Database и Ingress Protection.
<a id="p100839"></a>*Примечание* 1 - Если дополнительный инфраструктурный модуль существует, то он может быть определен в связанной с ним информационной модели.

<a id="p100840"></a>Классы DataBus и Power, использованные в классе Infrastructure, представлены в [таблицах 4.25](#p100845) и [4.26](#p100880) соответственно.
<a id="p100841"></a>Примечание 2 - Значения аргументов typePhyMac и typeApp в [таблице 4.25](#p100845) и аргумента dbType в [таблице 4.27](#p100900) определены в ИСО 22166-202.

<a id="p100842"></a> ![4.3.7 Класс для инфраструктуры](https://i.bukva.ai/Sbr5guZu/img_6.png) 

<div align="right">

<a id="p100843"></a>Рисунок 4.10 - Взаимосвязь между классами<br>
для класса Infrastructure

</div>


<div align="center">

<a id="p100844"></a>Таблица 4.25

</div>


<a id="p100845"></a>Класс DataBus


<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100846"></a>Описание: Класс для шины данных</td></tr>
<tr><td colspan="5"><a id="p100847"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100848"></a>Атрибуты:</td></tr>
<tr><td><a id="p100849"></a>ConnectionType</td><td><a id="p100850"></a>String</td><td><a id="p100851"></a>M</td><td><a id="p100852"></a>1</td><td><a id="p100853"></a>Тип соединения: USB-A, USB-C, USD-C, RG45, DB9, DB15, DB25</td></tr>
<tr><td><a id="p100854"></a>typePhyMac</td><td><a id="p100855"></a>String</td><td><a id="p100856"></a>O</td><td><a id="p100857"></a>N</td><td><a id="p100858"></a>Физический/MAC тип протокола: USB, CAN2.0, EtherCAT, Ethernet, RS485</td></tr>
<tr><td><a id="p100859"></a>typeNetTrans</td><td><a id="p100860"></a>String</td><td><a id="p100861"></a>M</td><td><a id="p100862"></a>1</td><td><a id="p100863"></a>Сетевой протокол и транспортный протокол, IP, TCP, CANopen</td></tr>
<tr><td><a id="p100864"></a>typeApp</td><td><a id="p100865"></a>String</td><td><a id="p100866"></a>M</td><td><a id="p100867"></a>1</td><td><a id="p100868"></a>Протокол уровня сеанса/представления/приложения: список протоколов</td></tr>
<tr><td><a id="p100869"></a>speed</td><td><a id="p100870"></a>Real</td><td><a id="p100871"></a>M</td><td><a id="p100872"></a>1</td><td><a id="p100873"></a>Скорость передачи: Кбит/с</td></tr>
<tr><td><a id="p100874"></a>additionalInfo</td><td><a id="p100875"></a>NVList</td><td><a id="p100876"></a>O</td><td><a id="p100877"></a>1</td><td><a id="p100878"></a>Список NameValue для дополнительной информации. См. <a href="#p100545">таблицу 4.14</a></td></tr>
</table>


<a id="p100879"></a>Таблица 4.26

<div align="right">

<a id="p100880"></a>Класс Power

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100881"></a>Описание: Класс для мощности</td></tr>
<tr><td colspan="5"><a id="p100882"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100883"></a>Атрибуты:</td></tr>
<tr><td><a id="p100884"></a>ratedPower</td><td><a id="p100885"></a>Real</td><td><a id="p100886"></a>M</td><td><a id="p100887"></a>1</td><td><a id="p100888"></a>Номинальная мощность в ваттах</td></tr>
<tr><td><a id="p100889"></a>maxPower</td><td><a id="p100890"></a>Real</td><td><a id="p100891"></a>M</td><td><a id="p100892"></a>1</td><td><a id="p100893"></a>Максимальная мощность в ваттах</td></tr>
<tr><td><a id="p100894"></a>additionalInfo</td><td><a id="p100895"></a>NVList</td><td><a id="p100896"></a>O</td><td><a id="p100897"></a>1</td><td><a id="p100898"></a>Список NameValue для дополнительной информации. См. <a href="#p100545">таблицу 4.14</a></td></tr>
</table>


<div align="center">

<a id="p100899"></a>Таблица 4.27

<a id="p100900"></a>Класс Infrastructure

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p100901"></a>Описание: Класс для инфраструктуры</td></tr>
<tr><td colspan="5"><a id="p100902"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p100903"></a>Атрибуты:</td></tr>
<tr><td><a id="p100904"></a>power</td><td><a id="p100905"></a>Power</td><td><a id="p100906"></a>O</td><td><a id="p100907"></a>1</td><td><a id="p100908"></a>См. <a href="#p100880">таблицу 4.26</a></td></tr>
<tr><td><a id="p100909"></a>noBuses</td><td><a id="p100910"></a>Integer</td><td><a id="p100911"></a>O</td><td><a id="p100912"></a>1</td><td><a id="p100913"></a>Количество шин данных, использованных в модуле</td></tr>
<tr><td><a id="p100914"></a>dataBus</td><td><a id="p100915"></a>DataBus</td><td><a id="p100916"></a>O</td><td><a id="p100917"></a>N</td><td><a id="p100918"></a>Шины данных (или коммуникационные протоколы), которые предоставляет модуль. Если значение атрибута noBuses больше 0, то данное поле является обязательным. См. <a href="#p100845">таблицу 4.25</a></td></tr>
<tr><td><a id="p100919"></a>dbType</td><td><a id="p100920"></a>String</td><td><a id="p100921"></a>O</td><td><a id="p100922"></a>1</td><td><a id="p100923"></a>Типы системы управления базой данных, использованной в модуле (например, Oracle, SQL и т.д.)</td></tr>
<tr><td><a id="p100924"></a>ipCode</td><td><a id="p100925"></a>String</td><td><a id="p100926"></a>O</td><td><a id="p100927"></a>1</td><td><a id="p100928"></a>Код IP. Степень защиты по МЭК 60529:2013; две цифры</td></tr>
<tr><td><a id="p100929"></a>additionalInfo</td><td><a id="p100930"></a>NVList</td><td><a id="p100931"></a>O</td><td><a id="p100932"></a>1</td><td><a id="p100933"></a>Список NameValue для дополнительной информации. См. <a href="#p100545">таблицу 4.14</a></td></tr>
</table>



##### <a id="p100934"></a>4.3.8 Класс для безопасности и защищенности

<a id="p100935"></a>Класс SafeSecure должен представлять уровень безопасности и уровень защищенности, предоставляемые модулем, как показано на [рисунке 4.11](#p100944) и в [таблице 4.38](#p101227). На [рисунке 4.11](#p100944) приведена взаимосвязь между классами для класса SafeSecure, представленными в [таблицах 4.28](#p100946) - [4.38](#p101227).
<a id="p100936"></a>Меры по обеспечению конкретной функции безопасности должны быть определены с помощью типа данной функции безопасности, а также уровня эффективности защиты (отсутствие или a - e) или уровня полноты безопасности (0, 1 - 3) для данного типа функции безопасности. У модуля могут отсутствовать функции безопасности или их может быть даже несколько. Функция безопасности должна быть определена с помощью класса SafetyFunction, представленного в [таблице 4.34](#p101097). Разные типы функций безопасности представлены в [таблице 4.28](#p100946). Уровень безопасности, обеспечиваемый функциями безопасности, должен быть определен с помощью УЭЗ или УПБ. Уровень защищенности должен быть определен для функций защищенности.
<a id="p100937"></a>Меры по обеспечению конкретной киберзащищенности должны быть определены с помощью установления типа защищенности и уровня защищенности (0 - 4) для данного типа. Разные типы мер по обеспечению защищенности представлены в [таблице 4.29](#p100965). У модуля могут отсутствовать меры по обеспечению защищенности или их может быть даже несколько. Мера по конкретной киберзащищенности должна быть определена с помощью класса CyberSecurity, представленного в [таблице 4.37](#p101212). Если модуль реализует две или более меры по обеспечению защищенности, то такой модуль должен иметь общий уровень защищенности модуля, определяемый комбинацией уровней защищенности предоставляемых мер обеспечения защищенности либо посредством верификации и валидации всех мер обеспечения защищенности модуля.

<div align="right">

<a id="p100938"></a>Уровень безопасности модуля предоставляется только в качестве информации при оценке безопасности системы. Даже если уровень безопасности для функции безопасности модуля задан, составной модуль должен быть независимо оценен в отношении своей функции безопасности в соответствии с методами оценивания безопасности на системном уровне.

</div>

<div align="center">

<a id="p100939"></a>*Примечание* 1 - Определение уровня безопасности для функции безопасности основано на ИСО 13482:2014, а определение уровня защищенности для функции защищенности основано на МЭК 62443-4-2:2019.

</div>

<a id="p100940"></a>Примечание 2 - Предоставляемые изготовителем значения атрибутов в [таблицах 4.34](#p101097) и [4.37](#p101212) являются неизменяемыми.
<a id="p100941"></a>*Примечание* 3 - Уровень эффективности защиты при отсутствии функции безопасности обозначается как "none" или "n".
<a id="p100942"></a>*Примечание* 4 - Функции, связанные с безопасностью, и/или функции, связанные с защищенностью, представлены в классе Services, который может быть использован для управления безопасностью/защищенностью.

<a id="p100943"></a> ![4.3.8 Класс для безопасности и защищенности](https://i.bukva.ai/Sbr5guZu/img_7.png) 

<div align="center">

<a id="p100944"></a>Рисунок 4.11 - Взаимосвязь между классами<br>
для класса SafeSecure

<a id="p100945"></a>Таблица 4.28

<a id="p100946"></a>Типы функции безопасности и их теги

</div>



| <a id="p100947"></a>Функция безопасности (ИСО 13482:2014) | <a id="p100948"></a>Тег |
| --- | --- |
| <a id="p100949"></a>Аварийная остановка | <a id="p100950"></a>ESTOP |
| <a id="p100951"></a>Защитная остановка | <a id="p100952"></a>PSTOP |
| <a id="p100953"></a>Ограничения на рабочее пространство (включая обход запрещенных зон) | <a id="p100954"></a>LIMWS |
| <a id="p100955"></a>Связанное с безопасностью управление скоростью | <a id="p100956"></a>SRSC |
| <a id="p100957"></a>Связанное с безопасностью управление усилием | <a id="p100958"></a>SRFC |
| <a id="p100959"></a>Избегание опасных столкновений | <a id="p100960"></a>HCOLA |
| <a id="p100961"></a>Управление устойчивостью (включая защиту от опрокидывания) | <a id="p100962"></a>STCON |


<a id="p100963"></a>Примечание 5 - Функции безопасности, не представленные в [таблице 4.28](#p100946), могут быть добавлены при необходимости.

<div align="right">

<a id="p100964"></a>Таблица 4.29

</div>


<div align="center">

<a id="p100965"></a>Типы меры по обеспечению киберзащищенности и их теги

</div>



| <a id="p100966"></a>Тип меры по обеспечению защищенности (МЭК 62443-4-2:2019) | <a id="p100967"></a>Тег |
| --- | --- |
| <a id="p100968"></a>Идентификация и аутентификация пользователя | <a id="p100969"></a>HU_IA |
| <a id="p100970"></a>Идентификация и аутентификация программного процесса и устройства | <a id="p100971"></a>SD_IA |
| <a id="p100972"></a>Управление клиентами | <a id="p100973"></a>ACNT_MGT |
| <a id="p100974"></a>Управление идентификаторами | <a id="p100975"></a>ID_MGT |
| <a id="p100976"></a>Управление аутентификаторами | <a id="p100977"></a>AUTH_MGT |
| <a id="p100978"></a>Управление беспроводным доступом | <a id="p100979"></a>WIRELEE_MGT |
| <a id="p100980"></a>Прочность аутентификации на основе паролей | <a id="p100981"></a>PW_AUTH |
| <a id="p100982"></a>Сертификация инфраструктуры публичных ключей | <a id="p100983"></a>PK_CERT |
| <a id="p100984"></a>Устойчивость аутентификации на основе публичных ключей | <a id="p100985"></a>STR_PK_AUTH |
| <a id="p100986"></a>Неудачные попытки логина | <a id="p100987"></a>LOGIN_NO |
| <a id="p100988"></a>Доступ через ненадежные сети | <a id="p100989"></a>ACC_UNTRUST_NET |
| <a id="p100990"></a>Применение авторизации | <a id="p100991"></a>AUTHORIZE |
| <a id="p100992"></a>Контроль использования беспроводной связи | <a id="p100993"></a>WIRELESS_USE |
| <a id="p100994"></a>Блокировка сессии | <a id="p100995"></a>SESS_LOCK |
| <a id="p100996"></a>Дистанционное завершение сессии | <a id="p100997"></a>SESS_TERM |
| <a id="p100998"></a>Согласованный контроль сессий | <a id="p100999"></a>SECC_CNTR |
| <a id="p101000"></a>Поддающиеся проверке события | <a id="p101001"></a>AUDT_EVT |
| <a id="p101002"></a>Метки времени | <a id="p101003"></a>TIMESTM |
| <a id="p101004"></a>Невозможность отказа от авторства | <a id="p101005"></a>NON_REP |
| <a id="p101006"></a>Достоверность коммуникаций | <a id="p101007"></a>COMM_INTG |
| <a id="p101008"></a>Защита от вредоносных программ | <a id="p101009"></a>PROT_MALI_CODE |
| <a id="p101010"></a>Верификация функциональности защищенности | <a id="p101011"></a>SECUR_VERIFY |
| <a id="p101012"></a>Программная и информационная целостность | <a id="p101013"></a>SW_INTGT |
| <a id="p101014"></a>Валидация входов | <a id="p101015"></a>INPUT_VALD |
| <a id="p101016"></a>Детерминированные выходы | <a id="p101017"></a>DET_OUT |
| <a id="p101018"></a>Обработка ошибок | <a id="p101019"></a>ERR_HNDL |
| <a id="p101020"></a>Безошибочность сессий | <a id="p101021"></a>SESS_INTGT |
| <a id="p101022"></a>Конфиденциальность информации | <a id="p101023"></a>INFO_CONFI |
| <a id="p101024"></a>Сохраняемость информации | <a id="p101025"></a>INFO_PERS |
| <a id="p101026"></a>Применение криптографии | <a id="p101027"></a>CRYTO |
| <a id="p101028"></a>Ограниченный поток данных | <a id="p101029"></a>RSTIC_FLOW |
| <a id="p101030"></a>Защита от отказа в обслуживании | <a id="p101031"></a>DoS |
| <a id="p101032"></a>Управление ресурсами | <a id="p101033"></a>RESOU_MGT |
| <a id="p101034"></a>Исправление и восстановление системы контроля | <a id="p101035"></a>CNTR_RECOV_RECON |


<a id="p101036"></a>Таблица 4.30

<a id="p101037"></a>Перечисление SafetyType


<table>
<colgroup><col width="18%"><col width="82%"></colgroup>
<tr><td colspan="2"><a id="p101038"></a>Описание: Тип безопасности модуля. См. <a href="#p100946">таблицу 4.28</a></td></tr>
<tr><td colspan="2"><a id="p101039"></a>Атрибуты:</td></tr>
<tr><td><a id="p101040"></a>ESTOP</td><td><a id="p101041"></a>Аварийная остановка</td></tr>
<tr><td><a id="p101042"></a>PSTOP</td><td><a id="p101043"></a>Защитная остановка</td></tr>
<tr><td><a id="p101044"></a>LIMWS</td><td><a id="p101045"></a>Ограничения на рабочее пространство (включая обход запрещенных зон)</td></tr>
<tr><td><a id="p101046"></a>SRSC</td><td><a id="p101047"></a>Связанное с безопасностью управление скоростью</td></tr>
<tr><td><a id="p101048"></a>SRFC</td><td><a id="p101049"></a>Связанное с безопасностью управление усилием</td></tr>
<tr><td><a id="p101050"></a>HCOLA</td><td><a id="p101051"></a>Избегание опасных столкновений</td></tr>
<tr><td><a id="p101052"></a>STCON</td><td><a id="p101053"></a>Управление устойчивостью (включая защиту от опрокидывания)</td></tr>
</table>


<a id="p101054"></a>Таблица 4.31

<div align="right">

<a id="p101055"></a>Перечисление SafetyLevelPL

</div>



<table>
<colgroup><col width="18%"><col width="82%"></colgroup>
<tr><td colspan="2"><a id="p101056"></a>Описание: Представление уровня эффективности защиты</td></tr>
<tr><td colspan="2"><a id="p101057"></a>Атрибуты:</td></tr>
<tr><td><a id="p101058"></a>n</td><td><a id="p101059"></a>None. Нет уровня эффективности защиты</td></tr>
<tr><td><a id="p101060"></a>a</td><td><a id="p101061"></a>PL a</td></tr>
<tr><td><a id="p101062"></a>b</td><td><a id="p101063"></a>PL b</td></tr>
<tr><td><a id="p101064"></a>c</td><td><a id="p101065"></a>PL c</td></tr>
<tr><td><a id="p101066"></a>d</td><td><a id="p101067"></a>PL d</td></tr>
<tr><td><a id="p101068"></a>e</td><td><a id="p101069"></a>PL e</td></tr>
</table>


<div align="center">

<a id="p101070"></a>Таблица 4.32

<a id="p101071"></a>Перечисление SafetyLevelSIL

</div>



<table>
<colgroup><col width="18%"><col width="82%"></colgroup>
<tr><td colspan="2"><a id="p101072"></a>Описание: Уровень полноты безопасности</td></tr>
<tr><td colspan="2"><a id="p101073"></a>Атрибуты:</td></tr>
<tr><td><a id="p101074"></a>0</td><td><a id="p101075"></a>None. Нет уровня полноты безопасности</td></tr>
<tr><td><a id="p101076"></a>1</td><td><a id="p101077"></a>SIL 1</td></tr>
<tr><td><a id="p101078"></a>2</td><td><a id="p101079"></a>SIL 2</td></tr>
<tr><td><a id="p101080"></a>3</td><td><a id="p101081"></a>SIL 3</td></tr>
<tr><td><a id="p101082"></a>4</td><td><a id="p101083"></a>SIL 4</td></tr>
</table>


<div align="right">

<a id="p101084"></a>Таблица 4.33

</div>


<div align="center">

<a id="p101085"></a>Перечисление PLSILType

</div>



<table>
<colgroup><col width="18%"><col width="82%"></colgroup>
<tr><td colspan="2"><a id="p101086"></a>Описание: Тип представления безопасности</td></tr>
<tr><td colspan="2"><a id="p101087"></a>Атрибуты:</td></tr>
<tr><td><a id="p101088"></a>PL</td><td><a id="p101089"></a>Уровень безопасности, представленный в типе УПБ</td></tr>
<tr><td><a id="p101090"></a>SIL</td><td><a id="p101091"></a>Уровень безопасности, представленный в типе УЭЗ</td></tr>
<tr><td><a id="p101092"></a>BOTH</td><td><a id="p101093"></a>Уровень безопасности, представленный в типах УПБ и УЭЗ</td></tr>
<tr><td><a id="p101094"></a>NONE</td><td><a id="p101095"></a>Уровень безопасности, не представленный, ни в типе УПБ ни в типе УЭЗ</td></tr>
</table>


<a id="p101096"></a>Таблица 4.34

<div align="right">

<a id="p101097"></a>Класс SafetyFunction

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p101098"></a>Описание: Функция безопасности модуля</td></tr>
<tr><td colspan="5"><a id="p101099"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p101100"></a>Атрибуты:</td></tr>
<tr><td><a id="p101101"></a>safetyFunctionType</td><td><a id="p101102"></a>SafetyType</td><td><a id="p101103"></a>M</td><td><a id="p101104"></a>1</td><td><a id="p101105"></a>Тип безопасности. См. <a href="#p101037">таблицу 4.30</a></td></tr>
<tr><td><a id="p101106"></a>validSafetyLevelType</td><td><a id="p101107"></a>PLSILType</td><td><a id="p101108"></a>M</td><td><a id="p101109"></a>1</td><td><a id="p101110"></a>Предоставление типа уровня безопасности. См. <a href="#p101085">таблицу 4.33</a></td></tr>
<tr><td><a id="p101111"></a>eachSafetyLevelPL</td><td><a id="p101112"></a>SafetyLevelPL</td><td><a id="p101113"></a>M</td><td><a id="p101114"></a>1</td><td><a id="p101115"></a>См. <a href="#p101058">таблицу 4.31. n</a>: Нет функции безопасности</td></tr>
<tr><td><a id="p101116"></a>eachSafetyLevelSIL</td><td><a id="p101117"></a>SafetyLevelSIL</td><td><a id="p101118"></a>M</td><td><a id="p101119"></a>1</td><td><a id="p101120"></a>См. <a href="#p101074">таблицу 4.32. 0</a>: Нет функции безопасности</td></tr>
</table>


<a id="p101121"></a>Таблица 4.35

<a id="p101122"></a>**Перечисление SecurityType**


<table>
<colgroup><col width="18%"><col width="82%"></colgroup>
<tr><td colspan="2"><a id="p101123"></a>Описание: Тип защищенности модуля. См. <a href="#p100965">таблицу 4.29</a></td></tr>
<tr><td colspan="2"><a id="p101124"></a>Атрибуты:</td></tr>
<tr><td><a id="p101125"></a>HU_IA</td><td><a id="p101126"></a>Идентификация и аутентификация пользователя</td></tr>
<tr><td><a id="p101127"></a>SD_IA</td><td><a id="p101128"></a>Идентификация и аутентификация программного процесса и устройства</td></tr>
<tr><td><a id="p101129"></a>ACNT_MGT</td><td><a id="p101130"></a>Управление клиентами</td></tr>
<tr><td><a id="p101131"></a>ID_MGT</td><td><a id="p101132"></a>Управление идентификаторами</td></tr>
<tr><td><a id="p101133"></a>AUTH_MGT</td><td><a id="p101134"></a>Управление аутентификаторами</td></tr>
<tr><td><a id="p101135"></a>WIRELEE_MGT</td><td><a id="p101136"></a>Управление беспроводным доступом</td></tr>
<tr><td><a id="p101137"></a>PW_AUTH</td><td><a id="p101138"></a>Прочность аутентификации на основе паролей</td></tr>
<tr><td><a id="p101139"></a>PK_CERT</td><td><a id="p101140"></a>Сертификация инфраструктуры публичных ключей</td></tr>
<tr><td><a id="p101141"></a>STR_PK_AUTH</td><td><a id="p101142"></a>Устойчивость аутентификации на основе публичных ключей</td></tr>
<tr><td><a id="p101143"></a>LOGIN_NO</td><td><a id="p101144"></a>Неудачные попытки логина</td></tr>
<tr><td><a id="p101145"></a>ACC_UNTRUST_NET</td><td><a id="p101146"></a>Доступ через ненадежные сети</td></tr>
<tr><td><a id="p101147"></a>AUTHORIZE</td><td><a id="p101148"></a>Применение авторизации</td></tr>
<tr><td><a id="p101149"></a>WIRELESS_USE</td><td><a id="p101150"></a>Контроль использования беспроводной связи</td></tr>
<tr><td><a id="p101151"></a>SESS_LOCK</td><td><a id="p101152"></a>Блокировка сессии</td></tr>
<tr><td><a id="p101153"></a>SESS_TERM</td><td><a id="p101154"></a>Дистанционное завершение сессии</td></tr>
<tr><td><a id="p101155"></a>SECC_CNTR</td><td><a id="p101156"></a>Согласованный контроль сессий</td></tr>
<tr><td><a id="p101157"></a>AUDT_EVT</td><td><a id="p101158"></a>Поддающиеся проверке события</td></tr>
<tr><td><a id="p101159"></a>TIMESTM</td><td><a id="p101160"></a>Метки времени</td></tr>
<tr><td><a id="p101161"></a>NON_REP</td><td><a id="p101162"></a>Невозможность отказа от авторства</td></tr>
<tr><td><a id="p101163"></a>COMM_INTG</td><td><a id="p101164"></a>Достоверность коммуникаций</td></tr>
<tr><td><a id="p101165"></a>PROT_MALI_CODE</td><td><a id="p101166"></a>Защита от вредоносных программ</td></tr>
<tr><td><a id="p101167"></a>SECUR_VERIFY</td><td><a id="p101168"></a>Верификация функциональности защищенности</td></tr>
<tr><td><a id="p101169"></a>SW_INTGT</td><td><a id="p101170"></a>Программная и информационная целостность</td></tr>
<tr><td><a id="p101171"></a>INPUT_VALD</td><td><a id="p101172"></a>Валидация входов</td></tr>
<tr><td><a id="p101173"></a>DET_OUT</td><td><a id="p101174"></a>Детерминированные выходы</td></tr>
<tr><td><a id="p101175"></a>ERR_HNDL</td><td><a id="p101176"></a>Обработка ошибок</td></tr>
<tr><td><a id="p101177"></a>SESS_INTGT</td><td><a id="p101178"></a>Безошибочность сессий</td></tr>
<tr><td><a id="p101179"></a>INFO_CONFI</td><td><a id="p101180"></a>Конфиденциальность информации</td></tr>
<tr><td><a id="p101181"></a>INFO_PERS</td><td><a id="p101182"></a>Сохраняемость информации</td></tr>
<tr><td><a id="p101183"></a>CRYTO</td><td><a id="p101184"></a>Применение криптографии</td></tr>
<tr><td><a id="p101185"></a>RSTIC_FLOW</td><td><a id="p101186"></a>Ограниченный поток данных</td></tr>
<tr><td><a id="p101187"></a>DoS</td><td><a id="p101188"></a>Защита от отказа в обслуживании</td></tr>
<tr><td><a id="p101189"></a>RESOU_MGT</td><td><a id="p101190"></a>Управление ресурсами</td></tr>
<tr><td><a id="p101191"></a>CNTR_RECOV_RECON</td><td><a id="p101192"></a>Исправление и восстановление системы контроля</td></tr>
</table>


<div align="center">

<a id="p101193"></a>Таблица 4.36

</div>


<a id="p101194"></a>Перечисление SecurityLevel


<table>
<colgroup><col width="12%"><col width="44%"><col width="44%"></colgroup>
<tr><td colspan="3"><a id="p101195"></a>Описание: Представление уровня защищенности</td></tr>
<tr><td colspan="3"><a id="p101196"></a>Атрибуты:</td></tr>
<tr><td></td><td><a id="p101197"></a>Киберзащищенность</td><td><a id="p101198"></a>Физическая защищенность</td></tr>
<tr><td><a id="p101199"></a>0</td><td><a id="p101200"></a>None. Нет уровня защищенности</td><td><a id="p101201"></a>None. Нет уровня защищенности</td></tr>
<tr><td><a id="p101202"></a>1</td><td rowspan="4"><a id="p101203"></a>Значения, определенные в МЭК 62443-4-2:2019</td><td><a id="p101204"></a>LatchSensor</td></tr>
<tr><td><a id="p101205"></a>2</td><td><a id="p101206"></a>LockwithKey</td></tr>
<tr><td><a id="p101207"></a>3</td><td><a id="p101208"></a>LockwithActuator</td></tr>
<tr><td><a id="p101209"></a>4</td><td><a id="p101210"></a>Не определен</td></tr>
</table>


<div align="right">

<a id="p101211"></a>Таблица 4.37

</div>


<div align="center">

<a id="p101212"></a>Класс CyberSecurity

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p101213"></a>Описание: Класс киберзащищенности</td></tr>
<tr><td colspan="5"><a id="p101214"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p101215"></a>Атрибуты:</td></tr>
<tr><td><a id="p101216"></a>securityType</td><td><a id="p101217"></a>SecurityType</td><td><a id="p101218"></a>M</td><td><a id="p101219"></a>1</td><td><a id="p101220"></a>См. <a href="#p101122">таблицы 4.35</a> и <a href="#p100965">4.29</a></td></tr>
<tr><td><a id="p101221"></a>eachSecurityLevel</td><td><a id="p101222"></a>SecurityLevel</td><td><a id="p101223"></a>M</td><td><a id="p101224"></a>1</td><td><a id="p101225"></a>См. <a href="#p101194">таблицу 4.36</a></td></tr>
</table>


<div align="center">

<a id="p101226"></a>Таблица 4.38

<a id="p101227"></a>Класс SafeSecure

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p101228"></a>Описание: Класс для безопасности и защищенности модуля. Если модуль обеспечивает единственную функцию безопасности, то ее значение равно значению атрибута eachSafetyLevel функции безопасности. По крайней мере одно из этих двух значений должно быть предоставлено</td></tr>
<tr><td colspan="5"><a id="p101229"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p101230"></a>Атрибуты:</td></tr>
<tr><td><a id="p101231"></a>overallValidSafetyLevelType</td><td><a id="p101232"></a>PLSILType</td><td><a id="p101233"></a>M</td><td><a id="p101234"></a>1</td><td><a id="p101235"></a>Форма представления уровня общей безопасности (см. <a href="#p101085">таблицу 4.33</a>)</td></tr>
<tr><td><a id="p101236"></a>overallSafetyLevelPL</td><td><a id="p101237"></a>SafetyLevelPL</td><td><a id="p101238"></a>M</td><td><a id="p101239"></a>1</td><td><a id="p101240"></a>Установить PL, если атрибут overallValidSafetyLevelType равен PL или BOTH (см. <a href="#p101055">таблицу 4.31</a>)</td></tr>
<tr><td><a id="p101241"></a>overallSafetyLevelSIL</td><td><a id="p101242"></a>SafetyLevelSIL</td><td><a id="p101243"></a>M</td><td><a id="p101244"></a>1</td><td><a id="p101245"></a>Установить SIL, если атрибут overallValidSafetyLevelType равен SIL или BOTH (см. <a href="#p101071">таблицу 4.32</a>)</td></tr>
<tr><td><a id="p101246"></a>overallPhySecurityLevel</td><td><a id="p101247"></a>SecurityLevel</td><td><a id="p101248"></a>M</td><td><a id="p101249"></a>1</td><td><a id="p101250"></a>Общая физическая защищенность модуля. См. <a href="#p101194">таблицу 4.36</a></td></tr>
<tr><td><a id="p101251"></a>overallCybSecurityLevel</td><td><a id="p101252"></a>SecurityLevel</td><td><a id="p101253"></a>M</td><td><a id="p101254"></a>1</td><td><a id="p101255"></a>Общая киберзащищенность модуля. См. <a href="#p101212">таблицу 4.37</a></td></tr>
<tr><td><a id="p101256"></a>inSafetyLevel</td><td><a id="p101257"></a>SafetyFunction</td><td><a id="p101258"></a>O</td><td><a id="p101259"></a>N</td><td><a id="p101260"></a>УЭЗ отдельной функции безопасности. См. <a href="#p101097">таблицу 4.34</a></td></tr>
<tr><td><a id="p101261"></a>inCybSecurityLevel</td><td><a id="p101262"></a>CyberSecurity</td><td><a id="p101263"></a>O</td><td><a id="p101264"></a>N</td><td><a id="p101265"></a>Отдельная функция защищенности. См. <a href="#p101212">таблицу 4.37</a></td></tr>
<tr><td><a id="p101266"></a>additionalInfo</td><td><a id="p101267"></a>NVList</td><td><a id="p101268"></a>O</td><td><a id="p101269"></a>1</td><td><a id="p101270"></a>Список NameValue для дополнительной информации. См. <a href="#p100545">таблицу 4.14</a></td></tr>
</table>



##### <a id="p101271"></a>4.3.9 Класс для моделирования

<a id="p101272"></a>Класс Modelling должен представлять поддерживаемую модулем информацию, относящуюся к моделированию, как показано на [рисунке 4.12](#p101275) и в [таблицах 4.39](#p101277) и [4.40](#p101302). На [рисунке 4.12](#p101275) представлена взаимосвязь между классами для класса Modelling.
<a id="p101273"></a>Информация по моделированию должна содержать информацию, предоставляемую модулем для моделирования, состоящую из информации для геометрического моделирования и информации для динамического или поведенческого моделирования с физическими и/или логическими характеристиками. Примерами первой являются трехмерные модели и файлы в универсальном формате описания роботов (URDF). Примерами второй являются запускающие и/или управляющие программы для модуля. Данная информация должна быть представлена в соответствии с [приложением C](#p101473). Изготовители модулей могут предоставить несколько файлов для моделирования. При отсутствии URDF-файлов или файлов с трехмерными моделями соответствующий элемент должен быть помечен как "N/A" (не применимо).

<a id="p101274"></a> ![4.3.9 Класс для моделирования](https://i.bukva.ai/Sbr5guZu/img_8.png) 

<a id="p101275"></a>Рисунок 4.12 - Взаимосвязь между классами для класса
Modelling

<a id="p101276"></a>Таблица 4.39

<a id="p101277"></a>Класс ModelCase


<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p101278"></a>Описание: Используется для указания путей к файлам, содержащим модель для моделирования модуля</td></tr>
<tr><td colspan="5"><a id="p101279"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p101280"></a>Атрибуты:</td></tr>
<tr><td><a id="p101281"></a>simulator</td><td><a id="p101282"></a>String</td><td><a id="p101283"></a>M</td><td><a id="p101284"></a>1</td><td><a id="p101285"></a>Список программ моделирования, поддерживаемых модулем</td></tr>
<tr><td><a id="p101286"></a>mdf</td><td><a id="p101287"></a>String</td><td><a id="p101288"></a>M</td><td><a id="p101289"></a>N</td><td><a id="p101290"></a>Путь к файлу описания модели или путь к папке, содержащей файлы описания модели, либо "N/A". Файл описания модели может содержать трехмерную модель</td></tr>
<tr><td><a id="p101291"></a>dynamicSW</td><td><a id="p101292"></a>ExeForm</td><td><a id="p101293"></a>M</td><td><a id="p101294"></a>N</td><td><a id="p101295"></a>Динамические программы и/или управляющие программы для моделирования, связанного с модулем</td></tr>
<tr><td><a id="p101296"></a>additionalInfo</td><td><a id="p101297"></a>NVList</td><td><a id="p101298"></a>O</td><td><a id="p101299"></a>1</td><td><a id="p101300"></a>Список NameValue для дополнительной информации. См. <a href="#p100545">таблицу 4.14</a></td></tr>
</table>


<a id="p101301"></a>Таблица 4.40

<a id="p101302"></a>Класс Modelling


<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p101303"></a>Описание: Используется при наличии нескольких симуляторов, но трехмерная модель может быть использована только на одном симуляторе</td></tr>
<tr><td colspan="5"><a id="p101304"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p101305"></a>Атрибуты:</td></tr>
<tr><td><a id="p101306"></a>simulationModel</td><td><a id="p101307"></a>ModelCase</td><td><a id="p101308"></a>O</td><td><a id="p101309"></a>N</td><td><a id="p101310"></a>Обеспечивает информацию об имитационных моделях, используемых в модуле. См. <a href="#p101277">таблицу 4.39</a></td></tr>
</table>



##### <a id="p101311"></a>4.3.10 Класс для исполняемой формы

<a id="p101312"></a>Класс ExecutableForm должен представлять информацию, связанную с программой, исполняемой для достижения или поддержки назначения модуля, как показано на [рисунке 4.13](#p101314) и в [таблице 4.41](#p101316). На [рисунке 4.13](#p101314) представлена взаимосвязь между классами для класса ExecutableForm, который представлен в [таблицах 4.41](#p101316) и [4.42](#p101331). Класс ExecutableForm представляет пути к файлам, которые необходимы при исполнении модуля или когда другие модули исполняют программу из данного модуля. Все эти файлы подразделяются на два типа: файлы, которые должны быть исполнены непосредственно, представлены классом ExeForm в [таблице 4.42](#p101331) и библиотечные файлы, которые загружаются в оперативную память. Путь к файлам должен быть определен в формате URL, который представляется только профилем. Это означает, что пользователь может модифицировать URL, изменяя содержимое профиля.

<a id="p101313"></a> ![4.3.10 Класс для исполняемой формы](https://i.bukva.ai/Sbr5guZu/img_9.png) 

<div align="right">

<a id="p101314"></a>Рисунок 4.13 - Взаимосвязь между классами для класса<br>
ExecutableForm

</div>


<div align="center">

<a id="p101315"></a>Таблица 4.41

<a id="p101316"></a>Класс ExecutableForm

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p101317"></a>Описание: Представляет информацию, связанную с программой, исполняемой для достижения или поддержки назначения модуля. Должны быть указаны свойства, такие как используемая операционная система, которые определены в ИСО 22166-202</td></tr>
<tr><td colspan="5"><a id="p101318"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p101319"></a>Атрибуты:</td></tr>
<tr><td><a id="p101320"></a>exeForm</td><td><a id="p101321"></a>ExeForm</td><td><a id="p101322"></a>M</td><td><a id="p101323"></a>N</td><td><a id="p101324"></a>См. <a href="#p101331">таблицу 4.42</a></td></tr>
<tr><td><a id="p101325"></a>libraryURL</td><td><a id="p101326"></a>String</td><td><a id="p101327"></a>O</td><td><a id="p101328"></a>N</td><td><a id="p101329"></a>Двоичный код или исходный код, использованный в модуле. Для исходного кода требуется интерпретатор. Если библиотека не нужна, то значением данного атрибута должно быть NULL</td></tr>
</table>


<div align="right">

<a id="p101330"></a>Таблица 4.42

</div>


<div align="center">

<a id="p101331"></a>Класс ExeForm

</div>



<table>
<colgroup><col width="17%"><col width="17%"><col width="5%"><col width="5%"><col width="56%"></colgroup>
<tr><td colspan="5"><a id="p101332"></a>Описание: Представляет информацию, связанную с программой, которая должна быть исполнена для модуля</td></tr>
<tr><td colspan="5"><a id="p101333"></a>Выведен из: Не применимо</td></tr>
<tr><td colspan="5"><a id="p101334"></a>Атрибуты:</td></tr>
<tr><td><a id="p101335"></a>exeFileURL</td><td><a id="p101336"></a>String</td><td><a id="p101337"></a>M</td><td><a id="p101338"></a>1</td><td><a id="p101339"></a>Путь к исполняемому файлу, который должен быть выполнен</td></tr>
<tr><td><a id="p101340"></a>shellCmd</td><td><a id="p101341"></a>String</td><td><a id="p101342"></a>O</td><td><a id="p101343"></a>1</td><td><a id="p101344"></a>Командная строка для выполнения "exeFileURL", заданная как информация о данном модуле. Данная командная строка необходима, если программа "exeFileURL" использует какие-либо входные данные из командной строки. Если никакие данные не требуются, то значением данного аргумента должно быть NULL</td></tr>
<tr><td><a id="p101345"></a>properties</td><td><a id="p101346"></a>Property</td><td><a id="p101347"></a>O</td><td><a id="p101348"></a>N</td><td><a id="p101349"></a>См. <a href="#p100459">таблицу 4.8</a>. Свойства и их значения, необходимые при выполнении программы "exeFileURL". Если никакие свойства не требуются, то значением данного аргумента должно быть NULL</td></tr>
</table>


<div align="center">

<a id="p101350"></a>Класс ExeForm представляет информацию, необходимую при выполнении исполняемой формы модуля, которая включает URL для исполняемой формы, программную оболочку и свойства. Программная оболочка содержит информацию, используемую в качестве входных аргументов при выполнении связанной с ней исполняемой формы. Свойства содержат информацию, необходимую при выполнении исполняемой формы, к которой они относятся.

</div>






<div align="center">

<a id="p101351"></a>Приложение A<br>
(обязательное)

<a id="p101352"></a>ПРАВИЛА ПРИСВОЕНИЯ ИМЕН

<a id="p101353"></a>A.1 Общие положения

</div>

<a id="p101354"></a>Правила присвоения имен выведены на основе руководств и принципов, описанных в ИСО 11179-5:2015. Данные правила были приспособлены для конкретного применения в информационной модели. Они разработаны для обеспечения единообразного и адекватного именования как базовых, так и агрегированных информационных объектов.
<a id="p101355"></a>Базовый информационный объект используется для представления информации и построения информационных моделей, а его примерами являются класс объекта, атрибут класса объекта, элемент тега и элемент свойства. Он определен как Name (Имя элемента), являющееся именем объекта, полученным с помощью правил присвоения имен.
<a id="p101356"></a>Агрегированный информационный объект определен как имя, состоящее из имен базовых информационных объектов.
<a id="p101357"></a>**A.2 Правила присвоения имен**
<a id="p101358"></a>**Правило 1: Имя элемента должно быть уникальным в логической группировке данных, к которой принадлежит данный элемент.**
<a id="p101359"></a>**Правило 2: Имя класса допускается начинать с прописной буквы. Имя члена класса рекомендуется начинать со строчной буквы.**
<a id="p101360"></a>Правило 3: Имя класса не должно содержать последовательных дублирующих слов.
<a id="p101361"></a>Правило 4: Рекомендуется, чтобы имя элемента содержало менее 10 символов при максимальной длине менее 256 символов. При необходимости сокращение имени элемента может быть определено и использовано.
<a id="p101362"></a>Правило 5: Имя элемента должно разделяться точкой (.).
<a id="p101363"></a>Правило 6: В имени элемента могут быть использованы буквенно-цифровые символы, если они не определены особо.

<div align="center">

<a id="p101364"></a>Правило 7: Имя элемента должно быть представлено в единственном числе, если только его смысл не предполагает множественного числа (например, goods).<br>
<a id="p101365"></a>Правило 8: Имя элемента может состоять из двух или более слов (например, aggregate.information).<br>
<a id="p101366"></a>Некоторые примеры применения правил присвоения имен представлены на [рисунке A.1](#p101381).

</div>



<table>
<colgroup><col width="5%"><col width="4%"><col width="4%"><col width="37%"><col width="4%"><col width="4%"><col width="5%"><col width="38%"></colgroup>
<tr><td colspan="7"><a id="p101367"></a>Модуль</td><td rowspan="13"><a id="p101368"></a><a id="p101369"></a><a id="p101370"></a><a id="p101371"></a><a id="p101372"></a><a id="p101373"></a><a id="p101374"></a>Возможный формат:<br>- moduleID.I11Attr<br>- moduleID.I12Attr<br>- moduleID.I12Attr.I22Attr<br>- moduleID.I13Attr<br>- moduleID.I13Attr.I23Attr<br>- moduleID.I13Attr.I23Attr.I33Attr</td></tr>
<tr><td></td><td colspan="5"><a id="p101375"></a>Атрибуты на уровне 1 (I11Attr)</td><td></td></tr>
<tr><td colspan="7"></td></tr>
<tr><td rowspan="3"></td><td colspan="5"><a id="p101376"></a>Атрибуты на уровне 1 (I12Attr)</td><td rowspan="3"></td></tr>
<tr><td></td><td colspan="3"><a id="p101377"></a>Атрибуты на уровне 2 (I22Attr)</td><td></td></tr>
<tr><td colspan="5"></td></tr>
<tr><td colspan="7"></td></tr>
<tr><td rowspan="5"></td><td colspan="5"><a id="p101378"></a>Атрибуты на уровне 1 (I13Attr)</td><td rowspan="5"></td></tr>
<tr><td rowspan="3"></td><td colspan="3"><a id="p101379"></a>Атрибуты на уровне 2 (I23Attr)</td><td rowspan="3"></td></tr>
<tr><td></td><td><a id="p101380"></a>Атрибуты на уровне 3 (I33Attr)</td><td></td></tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="5"></td></tr>
<tr><td colspan="7"></td></tr>
</table>


<a id="p101381"></a>Рисунок A.1 - Взаимосвязь модуля и атрибутов
на каждом уровне





<div align="center">

<a id="p101382"></a>Приложение B<br>
(обязательное)

<a id="p101383"></a>ПРАВИЛО НАЗНАЧЕНИЯ ИДЕНТИФИКАТОРА МОДУЛЯ

</div>


<a id="p101384"></a>Идентификатор модуля должен состоять из 6 элементов, которые представлены на [рисунке B.1](#p101386), а их типы представлены в [таблице B.1](#p101388).

<a id="p101385"></a> ![4.3.10 Класс для исполняемой формы](https://i.bukva.ai/Sbr5guZu/img_10.png) 

<a id="p101386"></a>**Рисунок B.1 - Состав идентификатора модуля**

<a id="p101387"></a>Таблица B.1

<div align="center">

<a id="p101388"></a>Типы данных элементов идентификатора модуля

</div>



| <a id="p101389"></a>Имя | <a id="p101390"></a>Тип данных | <a id="p101391"></a>Длина, байты | <a id="p101392"></a>Примечание |
| --- | --- | --- | --- |
| <a id="p101393"></a>VID | <a id="p101394"></a>UUID | <a id="p101395"></a>16 | <a id="p101396"></a>Идентификатор изготовителя |
| <a id="p101397"></a>PID | <a id="p101398"></a>unsigned char | <a id="p101399"></a>4 | <a id="p101400"></a>Идентификатор и свойства изделия |
| <a id="p101401"></a>Rev | <a id="p101402"></a>unsigned char | <a id="p101403"></a>4 | <a id="p101404"></a>Номер версии |
| <a id="p101405"></a>SerialNo | <a id="p101406"></a>unsigned long | <a id="p101407"></a>4 | <a id="p101408"></a>Серийный номер |
| <a id="p101409"></a>CategoryID | <a id="p101410"></a>unsigned long | <a id="p101411"></a>3 | <a id="p101412"></a>Идентификатор категории |
| <a id="p101413"></a>IID | <a id="p101414"></a>unsigned char | <a id="p101415"></a>1 | <a id="p101416"></a>Идентификатор экземпляра |


<div align="center">

<a id="p101417"></a>[Первым элементом](#p101393) является идентификатор изготовителя или VID, который имеет длину 16 байтов и должен быть назначен с помощью Универсально Уникального Идентификатора (UUID) в соответствии с IETF RFC 4122. Остальные 5 элементов должны быть заданы изготовителем.<br>
<a id="p101418"></a>[Вторым элементом](#p101397) является идентификатор изделия или PID, который имеет длину 4 байта и должен содержать важную информацию о модуле (1 байт), и идентификатор изделия (3 байта). Первый байт должен отображать следующие 5 типов информации, представленные на [рисунке B.1](#p101386): является ли модуль базовым или составным, имеет ли модуль программные свойства, имеет ли модуль аппаратные свойства, выполняет ли модуль функцию, связанную с безопасностью, и выполняет ли модуль функцию, связанную с защищенностью. Значения каждого из этих полей представлены в [таблице B.2](#p101425). Последние 3 байта должны содержать фактический идентификатор изделия, состоящий из алфавитно-цифровых символов.<br>
<a id="p101419"></a>[Третьим элементом](#p101401) должен быть номер версии (Rev) длиной 4 байта.

</div>

<a id="p101420"></a>[Четвертым элементом](#p101405) должен быть серийный номер (SerialNo) длиной 4 байта.
<a id="p101421"></a>[Пятым элементом](#p101409) должен быть идентификатор категории (CategoryID) модуля длиной 3 байта.
<a id="p101422"></a>[Шестым элементом](#p101413) должен быть идентификатор экземпляра (IID) длиной 1 байт, представленный числовыми символами в диапазоне от 0 до 255. Значением по умолчанию идентификатора экземпляра является 0. Если модуль имеет два или более модулей одного типа, то эти модули должны иметь разные идентификаторы экземпляра.
<a id="p101423"></a>Все данные в идентификаторе модуля представляют в шестнадцатеричном и/или алфавитно-цифровом коде.

<div align="center">

<a id="p101424"></a>Таблица B.2

<a id="p101425"></a>Значения всех полей элемента Тип на [рисунке B.1](#p101386)

</div>



| <a id="p101426"></a>Поле | <a id="p101427"></a>Значение | <a id="p101428"></a>Положение в байте |
| --- | --- | --- |
| <a id="p101429"></a>Базовый/Составной | <a id="p101430"></a><a id="p101431"></a>0, если модуль базовый<br>1, если модуль составной | <a id="p101432"></a>Бит 7 (старший бит) |
| <a id="p101433"></a>Программные свойства | <a id="p101434"></a><a id="p101435"></a>1, если есть программные свойства<br>0, если их нет | <a id="p101436"></a>Бит 6 |
| <a id="p101437"></a>Аппаратные свойства | <a id="p101438"></a><a id="p101439"></a>1, если есть аппаратные свойства<br>0, если их нет | <a id="p101440"></a>Бит 5 |
| <a id="p101441"></a>Функция безопасности | <a id="p101442"></a><a id="p101443"></a>1, если модуль выполняет функцию, связанную с безопасностью<br>0, если не выполняет | <a id="p101444"></a>Бит 4 |
| <a id="p101445"></a>Функция защищенности | <a id="p101446"></a><a id="p101447"></a>1, если модуль выполняет функцию, связанную с защищенностью<br>0, если не выполняет | <a id="p101448"></a>Бит 3 |
| <a id="p101449"></a>Резерв | <a id="p101450"></a>- | <a id="p101451"></a>Биты 2 - 0 |


<a id="p101452"></a>Идентификатор категории должен состоять из 5 элементов, представленных на [рисунке B.2](#p101454). Нулевой уровень, представленный на [рисунке B.2](#p101454), является верхним уровнем и классифицируется по 4 категориям, представленным в [таблице B.3](#p101456). Категории с первого уровня по четвертый уровень будут определены в последующих стандартах, таких как ИСО 22166-202.

<a id="p101453"></a> ![4.3.10 Класс для исполняемой формы](https://i.bukva.ai/Sbr5guZu/img_11.png) 

<a id="p101454"></a>Рисунок B.2 - Поля идентификатора категории

<div align="center">

<a id="p101455"></a>Таблица B.3

<a id="p101456"></a>Классификация для нулевого уровня идентификатора категории<br>
на [рисунке B.2](#p101454)

</div>



| <a id="p101457"></a>Классификация | <a id="p101458"></a>Значение | <a id="p101459"></a>Примечание |
| --- | --- | --- |
| <a id="p101460"></a>Модуль с аппаратными и программными свойствами | <a id="p101461"></a>00 | <a id="p101462"></a>- |
| <a id="p101463"></a>Аппаратный модуль | <a id="p101464"></a>01 | <a id="p101465"></a>- |
| <a id="p101466"></a>Программный модуль | <a id="p101467"></a>10 | <a id="p101468"></a>- |
| <a id="p101469"></a>Инструменты разработки/тестирования | <a id="p101470"></a>11 | <a id="p101471"></a>Инструменты/модули для разработки/анализа/тестирования |






<div align="center">

<a id="p101472"></a>Приложение C<br>
(обязательное)

</div>


<div align="right">

<a id="p101473"></a>ПРЕДСТАВЛЕНИЕ ОБЩЕЙ ИНФОРМАЦИИ

<a id="p101474"></a>C.1 Общие положения

</div>

<a id="p101475"></a>В данном приложении представлена информация, которую следует использовать при создании объекта для класса, определенного в [разделе 4](#p100077). Данная информация может быть представлена на языках XML или JSON. В настоящем стандарте использовано представление на языке XML. Для представления информации об ОИМ классе следует использовать приведенную ниже XML-схему, после которой приведен пример представления информации для ОИМ модуля на основе данной XML-схемы. Описания имен элементов представлены в [таблице C.1](#p101517). Суб-элементы представлены в [таблицах C.2](#p101526) - [C.8](#p102500).
<a id="p101476"></a>XML-схема для ОИМ модуля:
<a id="p101477"></a><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"

<div align="center">

**xmlns:xs="https://www.w3.org/2001/XMLSchema">**<br>
<a id="p101478"></a>  **<xs:element name="GenInfo" type="xs:string"/>**<br>
<a id="p101479"></a>  **<xs:element name="IDnType" type="xs:string"/>**

</div>

<a id="p101480"></a>  <xs:element name="Properties" type="xs:string"/>
<a id="p101481"></a>  <xs:element name="IOVariables" type="xs:string"/>
<a id="p101482"></a>  <xs:element name="Services" type="xs:string"/>

<div align="center">

<a id="p101483"></a>  <xs:element name="Infra" type="xs:string"/><br>
<a id="p101484"></a>  <xs:element name="SafeSecure" type="xs:string"/><br>
<a id="p101485"></a>  <xs:element name="Modelling" type="xs:string"/><br>
<a id="p101486"></a>  <xs:element name="Module"><br>
<a id="p101487"></a>    <xs:annotation><br>
<a id="p101488"></a>      <xs:documentation>version = "1.1" </xs:documentation>

</div>

<div align="right">

<a id="p101489"></a>    </xs:annotation><br>
<a id="p101490"></a>    <xs:complexType><br>
<a id="p101491"></a>      <xs:sequence>

</div>

<div align="center">

<a id="p101492"></a>        <xs:element ref="GenInfo"/><br>
<a id="p101493"></a>        <xs:element ref="IDnType"/><br>
<a id="p101494"></a>        <xs:element ref="Properties"/><br>
<a id="p101495"></a>        <xs:element ref="IOVariables"/><br>
<a id="p101496"></a>        <xs:element ref="Services"/><br>
<a id="p101497"></a>        <xs:element ref="Infra"/><br>
<a id="p101498"></a>        <xs:element ref="SafeSecure"/><br>
<a id="p101499"></a>        <xs:element ref="Modelling"/><br>
<a id="p101500"></a>      </xs:sequence><br>
<a id="p101501"></a>    </xs:complexType><br>
<a id="p101502"></a>  </xs:element><br>
<a id="p101503"></a></xs:schema><br>
<a id="p101504"></a>*Пример* представления информации для ОИМ модуля на основе XML-схемы для ОИМ модуля:<br>
<a id="p101505"></a><?xml version="1.0" encoding="UTF-8" ?>    <!-- version = "1.1" OK --><br>
<a id="p101506"></a><Module><br>
<a id="p101507"></a> <GenInfo> </GenInfo> <!-- See [C.2](#p101523) --><br>
<a id="p101508"></a> <IDnType> </IDnType> <!-- See [C.3](#p101568) --><br>
<a id="p101509"></a> <Properties> </Properties> <!-- See [C.4](#p101641) --><br>
<a id="p101510"></a> <IOVariables> </IOVariables> <!-- See [C.4](#p101641) --><br>
<a id="p101511"></a> <Services> </Services> <!-- See [C.6](#p102289) --><br>
<a id="p101512"></a> <Infra> </Infra> <!-- See [C.7](#p102496) --><br>
<a id="p101513"></a> <SafeSecure> </SafeSecure> <!-- See [C.8](#p102640) --><br>
<a id="p101514"></a> <Modelling> </Modelling> <!-- See [C.9](#p102775) --><br>
<a id="p101515"></a></Module>

<a id="p101516"></a>Таблица C.1

</div>


<a id="p101517"></a>XML-элемент для ОИМ модуля


| <a id="p101518"></a>Имя элемента | <a id="p101519"></a>Описание |
| --- | --- |
| <a id="p101520"></a>Module | <a id="p101521"></a><a id="p101522"></a>Все характеристики модуля определены в данном элементе.<br>Данный элемент описывает корневой элемент представления информации о модуле |


<a id="p101523"></a>C.2 Общая информация о модуле
<a id="p101524"></a>XML-элементы, содержащие информацию для GenInfo, должны соответствовать [таблице C.2](#p101526). Для представления информации об элементах из [таблицы C.2](#p101526) следует использовать приведенную ниже XML-схему, после которой приведены примеры информации для GenInfo на языке XML.

<div align="right">

<a id="p101525"></a>Таблица C.2

</div>


<div align="center">

<a id="p101526"></a>XML-элементы для GenInfo

</div>



| <a id="p101527"></a>Имя элемента | <a id="p101528"></a>Описание |
| --- | --- |
| <a id="p101529"></a>GenInfo | <a id="p101530"></a><a id="p101531"></a>Все характеристики определены в данном элементе.<br>Данный элемент описывает общую информацию о модуле |
| <a id="p101532"></a>ModuleName | <a id="p101533"></a>Данный элемент определяет имя модуля |
| <a id="p101534"></a>Description | <a id="p101535"></a>Данный элемент содержит общую информацию о модуле |
| <a id="p101536"></a>Manufacturer | <a id="p101537"></a>Данный элемент определяет информацию об изготовителе модуля, например контактную информацию и наименование |
| <a id="p101538"></a>Examples | <a id="p101539"></a>Данный элемент содержит примеры типичного применения модуля |


<div align="center">

<a id="p101540"></a>XML-схема для GenInfo:<br>
<a id="p101541"></a><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"<br>
xmlns:xs="https://www.w3.org/2001/XMLSchema">

</div>

<div align="right">

<a id="p101542"></a>  <xs:element name="ModuleName" type="xs:string"/><br>
<a id="p101543"></a>  <xs:element name="Description" type="xs:string"/><br>
<a id="p101544"></a>  <xs:element name="Manufacturer" type="xs:string"/>

</div>

<div align="center">

<a id="p101545"></a>  <xs:element name="Examples" type="xs:string"/><br>
<a id="p101546"></a>  <xs:element name="GenInfo"><br>
<a id="p101547"></a>    <xs:annotation><br>
<a id="p101548"></a>      <xs:documentation>version = "1.1" OK</xs:documentation><br>
<a id="p101549"></a>    </xs:annotation><br>
<a id="p101550"></a>    <xs:complexType><br>
<a id="p101551"></a>      <xs:sequence><br>
<a id="p101552"></a>        <xs:element ref="ModuleName"/><br>
<a id="p101553"></a>        <xs:element ref="Description"/><br>
<a id="p101554"></a>        <xs:element ref="Manufacturer"/><br>
<a id="p101555"></a>        <xs:element ref="Examples"/><br>
<a id="p101556"></a>      </xs:sequence><br>
<a id="p101557"></a>    </xs:complexType><br>
<a id="p101558"></a>  </xs:element><br>
<a id="p101559"></a></xs:schema><br>
<a id="p101560"></a>*Пример* представления информации для GenInfo на основе на XML-схемы для GenInfo:<br>
<a id="p101561"></a><?xml version="1.0" encoding="UTF-8" ?>                 <!-- version = "1.1" OK --><br>
<a id="p101562"></a><GenInfo><br>
<a id="p101563"></a>  <ModuleName> Module Name </ModuleName>                <!-- string --><br>
<a id="p101564"></a>  <Description> Description of module  </Description>   <!-- string --><br>
<a id="p101565"></a>  <Manufacturer> manufacturer </Manufacturer>           <!-- string --><br>
<a id="p101566"></a>  <Examples> list of use case </Examples>               <!-- string --><br>
<a id="p101567"></a></GenInfo>

</div>

<a id="p101568"></a>C.3 Информация об идентификаторе модуля
<a id="p101569"></a>XML-элементы, содержащие информацию о классе IDnType, должны соответствовать [таблице C.3](#p101571). Для представления информации об элементах из [таблицы C.3](#p101571) следует использовать приведенную ниже XML-схему, после которой приведены примеры информации для класса IDnType. Первый пример является примером базового модуля, а второй пример - примером составного модуля, обладающего как аппаратными, так и программными свойствами. Если существует только элемент HWList, то данный составной модуль является разновидностью аппаратного модуля. Если существует только элемент SWList, то данный составной модуль является разновидностью программного модуля. Если оба элемента, HWList и SWList, существуют одновременно, то данный составной модуль является разновидностью аппаратно-программного модуля.

<a id="p101570"></a>Таблица C.3

<a id="p101571"></a>XML-элементы для идентификатора модуля


| <a id="p101572"></a>Имя элемента | <a id="p101573"></a>Описание |
| --- | --- |
| <a id="p101574"></a>IDnType | <a id="p101575"></a>Идентификатор модуля, версия информационной модели, списки всех модулей, использованных в модуле, определены в данном элементе. Список модулей указывают только для составного модуля |
| <a id="p101576"></a>ID | <a id="p101577"></a>Данный элемент определяет уникальный регистрационный номер изделия, присваиваемый изготовителем модуля (см. [приложение B](#p101383)). Данный элемент может иметь атрибут "type" для указания типа модуля, такого как базовый модуль или составной модуль. Если его значением является "Bas" или данный атрибут не определен, то данный модуль является базовым модулем. Если его значением является "Com", то данный модуль является составным модулем |
| <a id="p101578"></a>InformationModelVersion | <a id="p101579"></a>Данный элемент определяет номер версии использованной информационной модели |
| <a id="p101580"></a>HWList | <a id="p101581"></a><a id="p101582"></a>Данный элемент используется для модулей с аппаратными и программными свойствами, а также для аппаратных модулей в составном модуле. Он содержит список идентификаторов модулей, входящих в составной модуль.<br>Данный элемент имеет один или несколько атрибутов "ModuleID", определяющих идентификаторы модулей, входящих в составной модуль |
| <a id="p101583"></a>SWList | <a id="p101584"></a><a id="p101585"></a>Данный элемент используется для программных модулей в составном модуле. Он содержит список идентификаторов модулей, входящих в данный составной модуль.<br>Данный элемент имеет один или несколько атрибутов "ModuleID", определяющих идентификаторы модулей, входящих в данный составной модуль |


<a id="p101586"></a>XML-схема для идентификатора модуля:
<a id="p101587"></a><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="https://www.w3.org/2001/XMLSchema">
<a id="p101588"></a>  <xs:element name="ModuleID" type="xs:string"/>
<a id="p101589"></a>  <xs:element name="ID" type="xs:string"/>
<a id="p101590"></a>  <xs:element name="InformationModelVersion" type="xs:float"/>
<a id="p101591"></a>  <xs:element name="HWlist">
<a id="p101592"></a>    <xs:complexType>
<a id="p101593"></a>      <xs:sequence>
<a id="p101594"></a>        <xs:element ref="ModuleID" maxOccurs="unbounded" minOccurs="0"/>
<a id="p101595"></a>      </xs:sequence>
<a id="p101596"></a>    </xs:complexType>
<a id="p101597"></a>  </xs:element>
<a id="p101598"></a>  <xs:element name="SWlist">
<a id="p101599"></a>    <xs:complexType>
<a id="p101600"></a>      <xs:sequence>
<a id="p101601"></a>        <xs:element ref="ModuleID" maxOccurs="unbounded" minOccurs="0"/>
<a id="p101602"></a>      </xs:sequence>
<a id="p101603"></a>    </xs:complexType>
<a id="p101604"></a>  </xs:element>
<a id="p101605"></a>  <xs:element name="IDnType">
<a id="p101606"></a>    <xs:complexType>
<a id="p101607"></a>      <xs:sequence>
<a id="p101608"></a>        <xs:element ref="ID"/>
<a id="p101609"></a>        <xs:element ref="InformationModelVersion"/>
<a id="p101610"></a>        <xs:element ref="HWlist"/>
<a id="p101611"></a>        <xs:element ref="SWlist"/>
<a id="p101612"></a>      </xs:sequence>
<a id="p101613"></a>      <xs:attribute type="xs:string" name="type"/>
<a id="p101614"></a>    </xs:complexType>
<a id="p101615"></a>  </xs:element>
<a id="p101616"></a></xs:schema>
<a id="p101617"></a>*Пример* представления информации для идентификатора базового модуля на основе XML-схемы для идентификатора модуля:
<a id="p101618"></a><?xml version="1.0" encoding="UTF-8" ?>
<a id="p101619"></a><IDnType type="Bas"> <!-- example of basic module -->
<a id="p101620"></a>  <ID> moduleId </ID>   <!-- provided by manufacturer and defined in Annex B-->
<a id="p101621"></a>  <InformationModelVersion> 1.0 </InformationModelVersion>  <!-- string -->
<a id="p101622"></a></IDnType>
<a id="p101623"></a>*Пример* представления информации для идентификатора составного модуля на основе XML-схемы для идентификатора модуля:
<a id="p101624"></a><?xml version="1.0" encoding="UTF-8" ?>
<a id="p101625"></a>  <IDnType type="Com">  <!-- example of a composite module -->
<a id="p101626"></a>  <ID> moduleId  </ID><!-- ID for the composite module -->
<a id="p101627"></a>  <InformationModelVersion> 1.0 </InformationModelVersion> <!-- string -->
<a id="p101628"></a>  <HWlist> <!-- in the list, IIDs of modules are not defined -->
<a id="p101629"></a>    <ModuleID>hwModuleID1  </ModuleID>

<div align="right">

<a id="p101630"></a>    <ModuleID>hwModuleID2  </ModuleID><br>
<a id="p101631"></a>    <ModuleID>hwModuleID3  </ModuleID><br>
<a id="p101632"></a>    <ModuleID>hwModuleID4  </ModuleID>

</div>

<div align="center">

<a id="p101633"></a>  </HWlist><br>
<a id="p101634"></a>  <SWlist><br>
<a id="p101635"></a>    <ModuleID>swModuleID1  </ModuleID><br>
<a id="p101636"></a>    <ModuleID>swModuleID2  </ModuleID><br>
<a id="p101637"></a>    <ModuleID>swModuleID3  </ModuleID><br>
<a id="p101638"></a>    <ModuleID>swModuleID4  </ModuleID><br>
<a id="p101639"></a>  </SWlist>

</div>

<a id="p101640"></a></IDnType>
<a id="p101641"></a>C.4 Информация о классах Properties и IOVariables
<a id="p101642"></a>Большая часть информации в классах Properties и IOVariables относится к исполнению модулей и используется в качестве параметров и/или переменных в программных свойствах. Для аппаратных свойств необходимо показать некоторые типичные применения и привести примеры информации о входных и выходных переменных.
<a id="p101643"></a>В отношении информации для класса Properties, определенного в [4.3.3](#p100429), обязательно должны быть указаны имя и значение характеристики, а также ее тип данных. Единицы измерения данного значения и относящееся к нему описание могут быть включены для пояснения использования.
<a id="p101644"></a>Информация для класса IOVariables, определенного в [4.3.4](#p100495), включает имя, значение и тип данных переменной, а также тип входных и выходных данных. Единицы измерения данного значения и относящееся к нему описание могут быть включены для пояснения использования. Следует обратить внимание на то, что переменные, которые одновременно могут быть использованы в качестве входной и выходной переменной, должны быть помечены как "входная/выходная".
<a id="p101645"></a>XML-элементы, содержащие информацию об элементах Properties, Inputs и Outputs, должны соответствовать [таблице C.4](#p101647). Для представления информации об элементах из [таблицы C.4](#p101647) следует использовать приведенные ниже XML-схемы для классов Properties и IOVariables, после которых приведен пример информации для классов Properties и IOVariables.

<div align="right">

<a id="p101646"></a>Таблица C.4

</div>


<div align="center">

<a id="p101647"></a>XML-элементы для классов Properties и IOVariables

</div>



<table>
<colgroup><col width="18%"><col width="41%"><col width="41%"></colgroup>
<tr><td><a id="p101648"></a>Имя элемента</td><td colspan="2"><a id="p101649"></a>Описание</td></tr>
<tr><td><a id="p101650"></a>Properties</td><td colspan="2"><a id="p101651"></a><a id="p101652"></a>Все относящиеся к модулю характеристики определены в данном элементе.<br>Примечание - Если требуется пространство имен, то оно будет определено в последующих стандартах, таких как ИСО 22166-202.</td></tr>
<tr><td><a id="p101653"></a>Property</td><td colspan="2"><a id="p101654"></a><a id="p101655"></a>Данный элемент определяет отдельную характеристику <a href="#p101650">элемента</a> "Properties".<br>Данный элемент может иметь атрибут "Complex" для данных типа массива и комплексных типов данных, таких как структуры и классы. Если данный атрибут имеет значение "array" или "class", то элемент "Property" будет иметь структуру массива или класса. Если данный аргумент не определен, то элементу "Property" соответствует простой тип данных</td></tr>
<tr><td><a id="p101656"></a>IOVariables</td><td colspan="2"><a id="p101657"></a><a id="p101658"></a>В данном элементе определены все переменные, которые подразделяются на три типа: входные, выходные и входные/выходные.<br>Данный элемент может иметь атрибут "Name", определяющий имя домена. Тогда все переменные, определенные в элементе "IOVariables", будут относиться к тому же домену</td></tr>
<tr><td><a id="p101659"></a>Inputs</td><td colspan="2"><a id="p101660"></a>Данный элемент определяет входные переменные</td></tr>
<tr><td><a id="p101661"></a>Outputs</td><td colspan="2"><a id="p101662"></a>Данный элемент определяет выходные переменные</td></tr>
<tr><td><a id="p101663"></a>InOuts</td><td colspan="2"><a id="p101664"></a>Данный элемент определяет переменные, которые могут одновременно выступать в качестве входных и выходных переменных</td></tr>
<tr><td><a id="p101665"></a>Input</td><td><a id="p101666"></a>Данный элемент используется для переменной, заданной в <a href="#p101656">элементе</a> "IOVariables" только как входная переменная</td><td rowspan="3"><a id="p101667"></a>Данный элемент может иметь атрибут "Complex" для данных типа массива и комплексных типов данных, таких как структуры и классы. Если данный атрибут имеет значение "array" или "class", то переменные имеют структуру массива или класса. Если данный аргумент не определен, то для него может быть определен новый простой тип данных в классе DataProfile (см. <a href="#p100434">таблицу 4.7</a>)</td></tr>
<tr><td><a id="p101668"></a>Output</td><td><a id="p101669"></a>Данный элемент используется для переменной, заданной в <a href="#p101656">элементе</a> "IOVariables" только как выходная переменная</td></tr>
<tr><td><a id="p101670"></a>InOut</td><td><a id="p101671"></a>Данный элемент используется для переменной, заданной в <a href="#p101656">элементе</a> "IOVariables" как одновременно входная и выходная переменная</td></tr>
<tr><td><a id="p101672"></a>name</td><td colspan="2"><a id="p101673"></a>Данный элемент определяет имя характеристики или переменной, используемой в модуле (например, encoder, ratedCurrent, MaxCurrent, P_Coeff)</td></tr>
<tr><td><a id="p101674"></a>value</td><td colspan="2"><a id="p101675"></a><a id="p101676"></a>Данный элемент используется при инициализации характеристики или переменной.<br>Если характеристика или переменная имеет тип "array", то данный атрибут имеет одно или несколько значений, задаваемых с помощью атрибута "Item"</td></tr>
<tr><td><a id="p101677"></a>type</td><td colspan="2"><a id="p101678"></a>Данный элемент определяет тип данных характеристики или переменной; примерами являются Boolean, Integer, UnlimitedNatural, Real, String, Enumeration, void и any, представленные в <a href="#p101691">таблице C.5</a></td></tr>
<tr><td><a id="p101679"></a>complex</td><td colspan="2"><a id="p101680"></a>Данный элемент определяет типы данных array, class, vector или pointer из <a href="#p101691">таблицы C.5</a>, примерами которых являются Boolean, Integer, UnlimitedNatural, Real, String, Enumeration, void и any</td></tr>
<tr><td><a id="p101681"></a>complexName</td><td colspan="2"><a id="p101682"></a>Данный элемент определяет имя комплексного типа данных; например, в объявлении "cylinderType class {float32 length; float32 radius;} cylinder;" элементу complexName соответствует "cylinderType", а <a href="#p101672">элементу</a> name соответствует "cylinder"</td></tr>
<tr><td><a id="p101683"></a>unit</td><td colspan="2"><a id="p101684"></a>Данный элемент определяет единицу измерения характеристики или переменной (например, ампер, метр, Цельсий, безразмерный и т.д.)</td></tr>
<tr><td><a id="p101685"></a>description</td><td colspan="2"><a id="p101686"></a>Данный элемент содержит пояснение, относящееся к характеристике или переменной.</td></tr>
<tr><td><a id="p101687"></a>additionalInfo</td><td colspan="2"><a id="p101688"></a>Данный элемент содержит дополнительную информацию о переменных. Он может не иметь ни одного или иметь несколько значений, задаваемых с помощью атрибута "Item", каждое значение которого состоит из пары "name" (имя) и "value" (значение)</td></tr>
</table>


<a id="p101689"></a>В [таблице C.5](#p101691) представлен абстрактный тип данных, используемый в определении классов, и типы данных как ключевые слова языка XML, которые должны быть использованы в настоящем стандарте. Если типом данных элемента является перечислимый тип данных, то следует использовать новый атрибут "enumeration". Элемент "unit" означает размерную характеристику физической величины, примерами которой являются метр, обороты в минуту, секунда, бит в секунду, ампер, вольт, ватт и Цельсий. В частности, элемент "unit" имеет специальную единицу "none", которая означает отсутствие физической величины.

<div align="right">

<a id="p101690"></a>Таблица C.5

</div>


<div align="center">

<a id="p101691"></a>Абстрактный тип данных для определения классов и типы данных<br>
как ключевые слова языка XML

</div>



<table>
<colgroup><col width="22%"><col width="15%"><col width="63%"></colgroup>
<tr><td><a id="p101692"></a>Абстрактный тип данных, используемый при определении классов</td><td><a id="p101693"></a>Типы данных как ключевые слова языка XML</td><td><a id="p101694"></a>Описание</td></tr>
<tr><td><a id="p101695"></a>Boolean</td><td><a id="p101696"></a>bool</td><td><a id="p101697"></a>Истина(1) или Ложь(0)</td></tr>
<tr><td rowspan="5"><a id="p101698"></a>Integer</td><td><a id="p101699"></a>int</td><td><a id="p101700"></a>Целочисленный тип данных по умолчанию в зависимости от ОС</td></tr>
<tr><td><a id="p101701"></a>int8</td><td><a id="p101702"></a>Целое со знаком длиной 1 байт</td></tr>
<tr><td><a id="p101703"></a>int16</td><td><a id="p101704"></a>Целое со знаком длиной 2 байта</td></tr>
<tr><td><a id="p101705"></a>int32</td><td><a id="p101706"></a>Целое со знаком длиной 4 байта</td></tr>
<tr><td><a id="p101707"></a>int64</td><td><a id="p101708"></a>Целое со знаком длиной 8 байтов</td></tr>
<tr><td rowspan="5"><a id="p101709"></a>UnlimitedNatural</td><td><a id="p101710"></a>uint</td><td><a id="p101711"></a>Целочисленный тип данных без знака по умолчанию в зависимости от ОС</td></tr>
<tr><td><a id="p101712"></a>uint8</td><td><a id="p101713"></a>Целое без знака длиной 1 байт</td></tr>
<tr><td><a id="p101714"></a>uint16</td><td><a id="p101715"></a>Целое без знака длиной 2 байта</td></tr>
<tr><td><a id="p101716"></a>uint32</td><td><a id="p101717"></a>Целое без знака длиной 4 байта</td></tr>
<tr><td><a id="p101718"></a>uint64</td><td><a id="p101719"></a>Целое без знака длиной 8 байтов</td></tr>
<tr><td rowspan="2"><a id="p101720"></a>Real</td><td><a id="p101721"></a>Float32</td><td><a id="p101722"></a>Число с плавающей запятой длиной 4 байта</td></tr>
<tr><td><a id="p101723"></a>Float64</td><td><a id="p101724"></a>Число с плавающей запятой длиной 8 байтов</td></tr>
<tr><td><a id="p101725"></a>String</td><td><a id="p101726"></a>string</td><td><a id="p101727"></a>Последовательность алфавитно-цифрового текста или других символов, разновидность класса</td></tr>
<tr><td><a id="p101728"></a>Enumeration</td><td><a id="p101729"></a>enumeration</td><td><a id="p101730"></a>Перечислимый тип данных</td></tr>
<tr><td><a id="p101731"></a>void</td><td><a id="p101732"></a>void</td><td><a id="p101733"></a>Тип данных, который не имеет значений и используется для представления пустого множества</td></tr>
<tr><td><a id="p101734"></a>class</td><td><a id="p101735"></a>class</td><td><a id="p101736"></a>Комплексный тип данных, такой как структура или класс, который должен иметь имя</td></tr>
<tr><td><a id="p101737"></a>any</td><td><a id="p101738"></a>any</td><td><a id="p101739"></a>Используется для хранения в переменной значений любого типа</td></tr>
<tr><td rowspan="3"><a id="p101740"></a>Не применимо</td><td><a id="p101741"></a>array</td><td><a id="p101742"></a>Тип данных массив, разновидность комплексного типа данных</td></tr>
<tr><td><a id="p101743"></a>pointer</td><td><a id="p101744"></a>Тип данных указатель, разновидность комплексного типа данных</td></tr>
<tr><td><a id="p101745"></a>vector</td><td><a id="p101746"></a>Совокупность объектов, разновидность класса</td></tr>
</table>


<a id="p101747"></a>XML-схема для класса Properties:
<a id="p101748"></a><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="https://www.w3.org/2001/XMLSchema">
<a id="p101749"></a>  <xs:element name="value">
<a id="p101750"></a>    <xs:complexType mixed="true">
<a id="p101751"></a>      <xs:sequence>
<a id="p101752"></a>        <xs:element ref="Item" maxOccurs="unbounded" minOccurs="0"/>
<a id="p101753"></a>      </xs:sequence>

<div align="right">

<a id="p101754"></a>    </xs:complexType>

</div>

<div align="center">

<a id="p101755"></a>  </xs:element><br>
<a id="p101756"></a>  <xs:element name="Item" type="xs:float"/><br>
<a id="p101757"></a>  <xs:element name="Property">

</div>

<a id="p101758"></a>    <xs:complexType mixed="true">
<a id="p101759"></a>      <xs:sequence>

<div align="right">

<a id="p101760"></a>        <xs:element ref="value" minOccurs="0"/>

</div>

<div align="center">

<a id="p101761"></a>        <xs:element ref="Property" maxOccurs="unbounded" minOccurs="0"/><br>
<a id="p101762"></a>      </xs:sequence><br>
<a id="p101763"></a>      <xs:attribute type="xs:string" name="name" use="optional"/><br>
<a id="p101764"></a>      <xs:attribute type="xs:string" name="type" use="optional"/><br>
<a id="p101765"></a>      <xs:attribute type="xs:string" name="value" use="optional"/>

</div>

<a id="p101766"></a>      <xs:attribute type="xs:string" name="unit" use="optional"/>
<a id="p101767"></a>      <xs:attribute type="xs:string" name="description" use="optional"/>
<a id="p101768"></a>      <xs:attribute type="xs:string" name="complex" use="optional"/>
<a id="p101769"></a>      <xs:attribute type="xs:string" name="complexName" use="optional"/>
<a id="p101770"></a>    </xs:complexType>
<a id="p101771"></a>  </xs:element>
<a id="p101772"></a>  <xs:element name="Properties">
<a id="p101773"></a>    <xs:annotation>
<a id="p101774"></a>      <xs:documentation>example of class type property</xs:documentation>
<a id="p101775"></a>    </xs:annotation>
<a id="p101776"></a>    <xs:complexType>
<a id="p101777"></a>      <xs:sequence>
<a id="p101778"></a>        <xs:element ref="Property" maxOccurs="unbounded" minOccurs="0"/>
<a id="p101779"></a>      </xs:sequence>
<a id="p101780"></a>    </xs:complexType>
<a id="p101781"></a>  </xs:element>
<a id="p101782"></a></xs:schema>
<a id="p101783"></a>XML-схема для класса IOVariables:
<a id="p101784"></a><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="https://www.w3.org/2001/XMLSchema">
<a id="p101785"></a>  <xs:element name="Name" type="xs:string"/>
<a id="p101786"></a>  <xs:element name="Value" type="xs:float"/>
<a id="p101787"></a>  <xs:element name="Item">
<a id="p101788"></a>    <xs:complexType>
<a id="p101789"></a>      <xs:sequence>
<a id="p101790"></a>        <xs:element ref="Name"/>
<a id="p101791"></a>        <xs:element ref="Value"/>
<a id="p101792"></a>      </xs:sequence>
<a id="p101793"></a>    </xs:complexType>
<a id="p101794"></a>  </xs:element>
<a id="p101795"></a>  <xs:element name="name" type="xs:string"/>
<a id="p101796"></a>  <xs:element name="type" type="xs:string"/>
<a id="p101797"></a>  <xs:element name="value" type="xs:float"/>
<a id="p101798"></a>  <xs:element name="unit" type="xs:string"/>
<a id="p101799"></a>  <xs:element name="description" type="xs:string"/>
<a id="p101800"></a>  <xs:element name="additionalInfo">
<a id="p101801"></a>    <xs:complexType>
<a id="p101802"></a>      <xs:sequence>
<a id="p101803"></a>        <xs:element ref="Item" maxOccurs="unbounded" minOccurs="0"/>
<a id="p101804"></a>      </xs:sequence>
<a id="p101805"></a>    </xs:complexType>
<a id="p101806"></a>  </xs:element>
<a id="p101807"></a>  <xs:element name="Input">
<a id="p101808"></a>    <xs:complexType mixed="true">
<a id="p101809"></a>      <xs:sequence>
<a id="p101810"></a>        <xs:element ref="name" minOccurs="0"/>
<a id="p101811"></a>        <xs:element ref="type" minOccurs="0"/>
<a id="p101812"></a>        <xs:element ref="value" minOccurs="0"/>
<a id="p101813"></a>        <xs:element ref="unit" minOccurs="0"/>
<a id="p101814"></a>        <xs:element ref="description" minOccurs="0"/>
<a id="p101815"></a>        <xs:element ref="additionalInfo" minOccurs="0"/>
<a id="p101816"></a>      </xs:sequence>
<a id="p101817"></a>      <xs:attribute type="xs:string" name="name" use="optional"/>
<a id="p101818"></a>      <xs:attribute type="xs:string" name="type" use="optional"/>
<a id="p101819"></a>      <xs:attribute type="xs:float" name="value" use="optional"/>
<a id="p101820"></a>      <xs:attribute type="xs:string" name="unit" use="optional"/>
<a id="p101821"></a>      <xs:attribute type="xs:string" name="description" use="optional"/>
<a id="p101822"></a>    </xs:complexType>
<a id="p101823"></a>  </xs:element>
<a id="p101824"></a>  <xs:element name="Output">
<a id="p101825"></a>    <xs:complexType mixed="true">
<a id="p101826"></a>      <xs:sequence>
<a id="p101827"></a>        <xs:element ref="name" minOccurs="0"/>
<a id="p101828"></a>        <xs:element ref="type" minOccurs="0"/>
<a id="p101829"></a>        <xs:element ref="unit" minOccurs="0"/>
<a id="p101830"></a>        <xs:element ref="description" minOccurs="0"/>
<a id="p101831"></a>        <xs:element ref="additionalInfo" minOccurs="0"/>
<a id="p101832"></a>      </xs:sequence>
<a id="p101833"></a>      <xs:attribute type="xs:string" name="name" use="optional"/>
<a id="p101834"></a>      <xs:attribute type="xs:string" name="type" use="optional"/>
<a id="p101835"></a>      <xs:attribute type="xs:string" name="unit" use="optional"/>
<a id="p101836"></a>      <xs:attribute type="xs:string" name="description" use="optional"/>
<a id="p101837"></a>    </xs:complexType>
<a id="p101838"></a>  </xs:element>
<a id="p101839"></a>  <xs:element name="Inout">
<a id="p101840"></a>    <xs:complexType mixed="true">
<a id="p101841"></a>      <xs:sequence>
<a id="p101842"></a>        <xs:element ref="name" minOccurs="0"/>
<a id="p101843"></a>        <xs:element ref="type" minOccurs="0"/>
<a id="p101844"></a>        <xs:element ref="unit" minOccurs="0"/>
<a id="p101845"></a>        <xs:element ref="description" minOccurs="0"/>
<a id="p101846"></a>        <xs:element ref="additionalInfo" minOccurs="0"/>
<a id="p101847"></a>        <xs:element ref="Inout" maxOccurs="unbounded" minOccurs="0"/>
<a id="p101848"></a>      </xs:sequence>
<a id="p101849"></a>      <xs:attribute type="xs:string" name="name" use="optional"/>
<a id="p101850"></a>      <xs:attribute type="xs:string" name="type" use="optional"/>
<a id="p101851"></a>      <xs:attribute type="xs:string" name="unit" use="optional"/>
<a id="p101852"></a>      <xs:attribute type="xs:string" name="description" use="optional"/>
<a id="p101853"></a>      <xs:attribute type="xs:string" name="className" use="optional"/>
<a id="p101854"></a>    </xs:complexType>
<a id="p101855"></a>  </xs:element>
<a id="p101856"></a>  <xs:element name="Inputs">
<a id="p101857"></a>    <xs:complexType>
<a id="p101858"></a>      <xs:sequence>
<a id="p101859"></a>        <xs:element ref="Input" maxOccurs="unbounded" minOccurs="0"/>
<a id="p101860"></a>      </xs:sequence>
<a id="p101861"></a>    </xs:complexType>
<a id="p101862"></a>  </xs:element>
<a id="p101863"></a>  <xs:element name="Outputs">
<a id="p101864"></a>    <xs:complexType>
<a id="p101865"></a>      <xs:sequence>
<a id="p101866"></a>        <xs:element ref="Output" maxOccurs="unbounded" minOccurs="0"/>
<a id="p101867"></a>      </xs:sequence>
<a id="p101868"></a>    </xs:complexType>
<a id="p101869"></a>  </xs:element>
<a id="p101870"></a>  <xs:element name="InOuts">
<a id="p101871"></a>    <xs:complexType>
<a id="p101872"></a>      <xs:sequence>
<a id="p101873"></a>        <xs:element ref="Inout"/>
<a id="p101874"></a>      </xs:sequence>
<a id="p101875"></a>    </xs:complexType>
<a id="p101876"></a>  </xs:element>
<a id="p101877"></a>  <xs:element name="IOVariables">
<a id="p101878"></a>    <xs:complexType>
<a id="p101879"></a>      <xs:sequence>
<a id="p101880"></a>        <xs:element ref="Inputs"/>
<a id="p101881"></a>        <xs:element ref="Outputs"/>
<a id="p101882"></a>        <xs:element ref="InOuts"/>
<a id="p101883"></a>      </xs:sequence>
<a id="p101884"></a>    </xs:complexType>
<a id="p101885"></a>  </xs:element>
<a id="p101886"></a></xs:schema>
<a id="p101887"></a>*Пример* представления информации для классов Properties и IOVariables на основе XML-схем для классов Properties и IOVariables:
<a id="p101888"></a><?xml version="1.0" encoding="UTF-8" ?>
<a id="p101889"></a><Properties> <!-- properties -->
<a id="p101890"></a> <Property name="maxRatedCurrent" type="float32" unit="ampere" description = "maximum of
rated current for motor"  value ="15" />  <!-- example of single property -->
<a id="p101891"></a> <Property name="maxRatedVoltage" type="float32" unit="volt" description =
"maximum of rated voltage for motor">
<a id="p101892"></a>   <value> 5 </value>
<a id="p101893"></a> </Property>   <!--  example of single property -->
<a id="p101894"></a> <Property name="StatusEmerg" type="boolean" unit="none" description =
"existence of emergency stop button"  value ="True" />
<a id="p101895"></a> <Property name="SizeBd" type="uint8" unit="mm" description = "size of board" value ="30"
/>
<a id="p101896"></a> <Property name="Weight" type="uint16" unit="gram" description = "weight of product"
value ="450000" />
<a id="p101897"></a> <Property name="NoPixelDisplay" type="uint32" unit="none" description = "pixel number"
value ="345600" />
<a id="p101898"></a> <Property name="NoPixelCamera" type="uint64" unit="none" description = "pixel number"
value ="8294400" />
<a id="p101899"></a> <!-- following is example of array: float32 [6] initPos  -->
<a id="p101900"></a> <Property name="initPose" complex ="array" type="float32" unit="none"
description="initial pose, x,y,z, yaw,roll,pitch, in order. Unit of yaw, roll, and pitch = degree " >
<a id="p101901"></a>   <value>
<a id="p101902"></a>     <Item>  0 </Item>
<a id="p101903"></a>     <Item>  0 </Item>
<a id="p101904"></a>     <Item>  0 </Item>
<a id="p101905"></a>     <Item>  10 </Item>
<a id="p101906"></a>     <Item>  20 </Item>
<a id="p101907"></a>     <Item>  10 </Item>
<a id="p101908"></a>   </value>
<a id="p101909"></a> </Property>   <!-- example of array type property -->
<a id="p101910"></a><!-- following is example of class: -->
<a id="p101911"></a><!-- class cylinderType { -->
<a id="p101912"></a><!-- float32 length; -->
<a id="p101913"></a><!-- float32 radius -->
<a id="p101914"></a><!-- } cylinder;  -->
<a id="p101915"></a> <Property name="cylinder" complex = "class" complexName="cylinderType">
<a id="p101916"></a>   <Property name="length" type="float32" value = "100.0" unit="millimetre"
description = "length of cylinder" />
<a id="p101917"></a>   <Property name="radius" type="float32" value = "3.0" unit="millimetre"
description = "radius of cylinder" />
<a id="p101918"></a> </Property>   <!--  example of class type property -->
<a id="p101919"></a></Properties>

<a id="p101920"></a><IOVariables>
<a id="p101921"></a> <Inputs>
<a id="p101922"></a>  <Input name="controlvalue1" type="float32" value="5.0" unit="ampere"
description = "current control command to motor" />
<a id="p101923"></a>   <Input>
<a id="p101924"></a>    <name> controlvalue2 </name>
<a id="p101925"></a>    <type> float32 </type>
<a id="p101926"></a>    <value> 5.0 </value>
<a id="p101927"></a>    <unit> voltage </unit>
<a id="p101928"></a>    <description> voltage control of motor </description>
    
<a id="p101930"></a>       <Item>
<a id="p101931"></a>          <Name> min Voltage   </Name>
<a id="p101932"></a>          <Value> -5.0 </Value>
<a id="p101933"></a>       </Item>
<a id="p101934"></a>       <Item>
<a id="p101935"></a>          <Name> max voltage   </Name>
<a id="p101936"></a>          <Value> 5.0 </Value>
<a id="p101937"></a>       </Item>
<a id="p101938"></a>    </additionalInfo>
<a id="p101939"></a>   </Input>
<a id="p101940"></a> </Inputs>
<a id="p101941"></a> <Outputs>
<a id="p101942"></a>  <Output name="encoder" type ="uint32" unit = "none" description = "state of motor" />
<a id="p101943"></a>  <Output>
<a id="p101944"></a>   <name> Status </name>
<a id="p101945"></a>   <type> uint8 </type>
<a id="p101946"></a>   <unit> None </unit>
<a id="p101947"></a>   <description> Status </description>
   
<a id="p101949"></a>      <Item>
<a id="p101950"></a>         <Name> IDLE  </Name>
<a id="p101951"></a>         <Value> 0 </Value>
<a id="p101952"></a>      </Item>
<a id="p101953"></a>      <Item>
<a id="p101954"></a>         <Name> WORKING  </Name>
<a id="p101955"></a>         <Value> 1 </Value>
<a id="p101956"></a>      </Item>
<a id="p101957"></a>      <Item>
<a id="p101958"></a>         <Name> ERROR  </Name>
<a id="p101959"></a>         <Value> 2 </Value>
<a id="p101960"></a>      </Item>
<a id="p101961"></a>   </additionalInfo>
<a id="p101962"></a>  </Output>
<a id="p101963"></a> </Outputs>
<a id="p101964"></a> <InOuts>
<a id="p101965"></a>  <Inout name="pose" type = "" className="poseType">
<a id="p101966"></a>    <Inout name="x" type="float32" unit="none" description = "position x" />
<a id="p101967"></a>    <Inout name="y" type="float32" unit="none" description = "position y" />
<a id="p101968"></a>    <Inout name="z" type="float32" unit="none" description = "position z" />
<a id="p101969"></a>    <Inout name="yaw" type="float32" unit="degree" description = "yaw" />
<a id="p101970"></a>    <Inout name="roll" type="float32" unit="degree" description = " roll" />
<a id="p101971"></a>    <Inout>
<a id="p101972"></a>      <name> pitch </name>
<a id="p101973"></a>      <type> float32 </type>
<a id="p101974"></a>      <unit> degree </unit>
<a id="p101975"></a>      <description> pitch </description>
      
<a id="p101977"></a>        <Item>
<a id="p101978"></a>           <Name> min </Name>
<a id="p101979"></a>           <Value> -100 </Value>
<a id="p101980"></a>        </Item>
<a id="p101981"></a>        <Item>
<a id="p101982"></a>           <Name> max </Name>
<a id="p101983"></a>           <Value> 100 </Value>
<a id="p101984"></a>        </Item>
<a id="p101985"></a>     </additionalInfo>
<a id="p101986"></a>   </Inout>
<a id="p101987"></a>  </Inout>
<a id="p101988"></a> </InOuts>
<a id="p101989"></a></IOVariables>
<a id="p101990"></a>C.5 Информация о сервисах модуля
<a id="p101991"></a>XML-элементы, содержащие информацию о классе Services, должны соответствовать [таблице C.6](#p101994). Для представления информации о классе Services на основе [таблицы C.6](#p101994) следует использовать приведенную ниже XML-схему, после которой приведены два примера информации для класса Services (или Functions/Capabilities), один из которых представлен на языке IDL, а второй - на языке XML.
<a id="p101992"></a>Данная информация обычно используется в программах, написанных на таких языках, как C/C++, Java и Python. Поэтому важно определить порядок аргументов и получить дополнительные возвращаемые через аргументы значения. Типом данных аргументов, используемых в качестве дополнительных возвращаемых значений, является pointer (указатель) в языке C/C++ или reference type (ссылочный тип) в языках Java и Python.

<a id="p101993"></a>Таблица C.6

<a id="p101994"></a>XML-элементы для класса Services


| <a id="p101995"></a>Имя элемента | <a id="p101996"></a>Описание |
| --- | --- |
| <a id="p101997"></a>Services | <a id="p101998"></a>В данном элементе определена вся информация для класса Services. Данный элемент описывает информацию о сервисах (или функциях/возможностях) модуля |
| <a id="p101999"></a>Service | <a id="p102000"></a><a id="p102001"></a>Данный элемент представляет один информационный элемент, относящийся к сервису.<br>Данный элемент имеет атрибут "type" для определения используемого языка описания, такого как IDL или XML. Если значением атрибута "type" является IDL, то предоставляемый сервис описан на языке IDL, а значением элемента является путь к соответствующему IDL-файлу. Если значением атрибута "type" является XML, то предоставляемый сервис описан на языке XML, а значения элементов представлены в других XML-элементах |
| <a id="p102002"></a>ID | <a id="p102003"></a>Данный элемент определяет идентификатор интерфейса, который модуль использует или предоставляет |
| <a id="p102004"></a>PVType | <a id="p102005"></a><a id="p102006"></a><a id="p102007"></a>Данный элемент используется для классификации типа интерфейса модуля, значением которого является "Physical" или "Virtual".<br>Если модуль предоставляет физический интерфейс, например механический интерфейс, то значением элемента является "Physical".<br>Если модуль предоставляет программный интерфейс, например API (интерфейс прикладного программирования), то значением элемента является "Virtual" |
| <a id="p102008"></a>MOType | <a id="p102009"></a>Данный элемент объявляет предоставляемый интерфейс обязательным ("Mandatory") или факультативным ("Optional") |
| <a id="p102010"></a>Properties | <a id="p102011"></a><a id="p102012"></a>Данный элемент определяет характеристики, которые модуль должен использовать (или задать) при использовании предоставленного интерфейса.<br>Данный элемент имеет два атрибута, "Name" и "Value", которые соответствуют имени и значению характеристики данного модуля |
| <a id="p102013"></a>Methods | <a id="p102014"></a><a id="p102015"></a>Данный элемент определяет методы, которые должен использовать данный модуль.<br>В данном элементе может быть представлен один или несколько методов |
| <a id="p102016"></a>Method | <a id="p102017"></a>Данный элемент определяет отдельный метод из методов, перечисленных в [элементе](#p102013) "Methods" |
| <a id="p102018"></a>MethodName | <a id="p102019"></a>Данный элемент определяет имя предоставляемого метода |
| <a id="p102020"></a>ArgSpec | <a id="p102021"></a><a id="p102022"></a>Данный элемент определяет список аргументов, каждый из которых имеет 3 атрибута: "Type", "Name" и "InOutType".<br>Атрибут "Type" представляет тип данных аргумента, определенный в [таблице C.5](#p101691). Атрибут "Name" представляет имя аргумента данного метода. Атрибут "IOType" представляет направление, в котором передается данный аргумент и которое может быть входным, выходным или двунаправленным. Если атрибут "Type" представляет комплексное число, то необходимо использовать дополнительный атрибут "inDataType" для того, чтобы определить тип данных действительной части, содержащейся в комплексном типе данных, таком как массив или класс |
| <a id="p102023"></a>RetType | <a id="p102024"></a>Данный элемент определяет тип данных, возвращаемых данным методом |
| <a id="p102025"></a>additionalInfo | <a id="p102026"></a>Данный элемент содержит дополнительную информацию о переменных. Он может не иметь ни одного или иметь несколько значений, задаваемых с помощью атрибута "Item", каждое значение которого состоит из пары "name" (имя) и "value" (значение) |


<a id="p102027"></a>XML-схема для класса Services:
<a id="p102028"></a><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="https://www.w3.org/2001/XMLSchema">
<a id="p102029"></a>  <xs:element name="Name" type="xs:string"/>
<a id="p102030"></a>  <xs:element name="Value" type="xs:string"/>
<a id="p102031"></a>  <xs:element name="Item">
<a id="p102032"></a>    <xs:complexType>
<a id="p102033"></a>      <xs:sequence>

<div align="right">

<a id="p102034"></a>        <xs:element ref="Name"/><br>
<a id="p102035"></a>        <xs:element ref="Value"/><br>
<a id="p102036"></a>      </xs:sequence>

</div>

<div align="center">

<a id="p102037"></a>    </xs:complexType><br>
<a id="p102038"></a>  </xs:element><br>
<a id="p102039"></a>  <xs:element name="MethodName"><br>
<a id="p102040"></a>    <xs:complexType><br>
<a id="p102041"></a>      <xs:simpleContent><br>
<a id="p102042"></a>        <xs:extension base="xs:string"><br>
<a id="p102043"></a>          <xs:attribute type="xs:string" name="value" use="optional"/>

</div>

<a id="p102044"></a>        </xs:extension>
<a id="p102045"></a>      </xs:simpleContent>
<a id="p102046"></a>    </xs:complexType>
<a id="p102047"></a>  </xs:element>
<a id="p102048"></a>  <xs:element name="ArgSpec">
<a id="p102049"></a>    <xs:complexType mixed="true">
<a id="p102050"></a>      <xs:sequence>
<a id="p102051"></a>        <xs:element ref="Type" minOccurs="0"/>
<a id="p102052"></a>        <xs:element ref="Name" minOccurs="0"/>
<a id="p102053"></a>        <xs:element ref="IOType" minOccurs="0"/>
<a id="p102054"></a>        <xs:element ref="additionalInfo" minOccurs="0"/>
<a id="p102055"></a>      </xs:sequence>
<a id="p102056"></a>      <xs:attribute type="xs:string" name="Type" use="optional"/>
<a id="p102057"></a>      <xs:attribute type="xs:string" name="Name" use="optional"/>
<a id="p102058"></a>      <xs:attribute type="xs:string" name="IOType" use="optional"/>
<a id="p102059"></a>      <xs:attribute type="xs:string" name="inDataType" use="optional"/>
<a id="p102060"></a>    </xs:complexType>
<a id="p102061"></a>  </xs:element>
<a id="p102062"></a>  <xs:element name="RetType">
<a id="p102063"></a>    <xs:complexType>
<a id="p102064"></a>      <xs:simpleContent>
<a id="p102065"></a>        <xs:extension base="xs:string">
<a id="p102066"></a>          <xs:attribute type="xs:string" name="value" use="optional"/>
<a id="p102067"></a>        </xs:extension>
<a id="p102068"></a>      </xs:simpleContent>
<a id="p102069"></a>    </xs:complexType>
<a id="p102070"></a>  </xs:element>
<a id="p102071"></a>  <xs:element name="MOType">
<a id="p102072"></a>    <xs:complexType>
<a id="p102073"></a>      <xs:simpleContent>
<a id="p102074"></a>        <xs:extension base="xs:string">
<a id="p102075"></a>          <xs:attribute type="xs:string" name="value" use="optional"/>
<a id="p102076"></a>        </xs:extension>
<a id="p102077"></a>      </xs:simpleContent>
<a id="p102078"></a>    </xs:complexType>
<a id="p102079"></a>  </xs:element>
<a id="p102080"></a>  <xs:element name="ReqProvType">
<a id="p102081"></a>    <xs:complexType>
<a id="p102082"></a>      <xs:simpleContent>
<a id="p102083"></a>        <xs:extension base="xs:string">
<a id="p102084"></a>          <xs:attribute type="xs:string" name="value" use="optional"/>
<a id="p102085"></a>        </xs:extension>
<a id="p102086"></a>      </xs:simpleContent>
<a id="p102087"></a>    </xs:complexType>
<a id="p102088"></a>  </xs:element>
<a id="p102089"></a>  <xs:element name="additionalInfo">
<a id="p102090"></a>    <xs:complexType>
<a id="p102091"></a>      <xs:sequence>
<a id="p102092"></a>        <xs:element ref="Item"/>
<a id="p102093"></a>      </xs:sequence>
<a id="p102094"></a>    </xs:complexType>
<a id="p102095"></a>  </xs:element>
<a id="p102096"></a>  <xs:element name="Type" type="xs:string"/>
<a id="p102097"></a>  <xs:element name="IOType" type="xs:string"/>
<a id="p102098"></a>  <xs:element name="Method">
<a id="p102099"></a>    <xs:complexType>
<a id="p102100"></a>      <xs:sequence>
<a id="p102101"></a>        <xs:element ref="MethodName"/>
<a id="p102102"></a>        <xs:element ref="ArgSpec" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102103"></a>        <xs:element ref="RetType" minOccurs="0"/>
<a id="p102104"></a>        <xs:element ref="MOType"/>
<a id="p102105"></a>        <xs:element ref="ReqProvType"/>
<a id="p102106"></a>        <xs:element ref="additionalInfo" minOccurs="0"/>
<a id="p102107"></a>      </xs:sequence>
<a id="p102108"></a>    </xs:complexType>
<a id="p102109"></a>  </xs:element>
<a id="p102110"></a>  <xs:element name="ID" type="xs:string"/>
<a id="p102111"></a>  <xs:element name="PVType">
<a id="p102112"></a>    <xs:complexType>
<a id="p102113"></a>      <xs:simpleContent>
<a id="p102114"></a>        <xs:extension base="xs:string">
<a id="p102115"></a>          <xs:attribute type="xs:string" name="value" use="optional"/>
<a id="p102116"></a>        </xs:extension>
<a id="p102117"></a>      </xs:simpleContent>
<a id="p102118"></a>    </xs:complexType>
<a id="p102119"></a>  </xs:element>
<a id="p102120"></a>  <xs:element name="Methods">
<a id="p102121"></a>    <xs:complexType>
<a id="p102122"></a>      <xs:sequence>
<a id="p102123"></a>        <xs:element ref="Method" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102124"></a>        <xs:element ref="additionalInfo" minOccurs="0"/>
<a id="p102125"></a>      </xs:sequence>
<a id="p102126"></a>    </xs:complexType>
<a id="p102127"></a>  </xs:element>
<a id="p102128"></a>  <xs:element name="Properties">
<a id="p102129"></a>    <xs:complexType>
<a id="p102130"></a>      <xs:simpleContent>
<a id="p102131"></a>        <xs:extension base="xs:string">
<a id="p102132"></a>          <xs:attribute type="xs:string" name="Name" use="optional"/>
<a id="p102133"></a>          <xs:attribute type="xs:string" name="Value" use="optional"/>
<a id="p102134"></a>        </xs:extension>
<a id="p102135"></a>      </xs:simpleContent>
<a id="p102136"></a>    </xs:complexType>
<a id="p102137"></a>  </xs:element>
<a id="p102138"></a>  <xs:element name="Service">
<a id="p102139"></a>    <xs:complexType mixed="true">
<a id="p102140"></a>      <xs:sequence>
<a id="p102141"></a>        <xs:element ref="ID" minOccurs="0"/>
<a id="p102142"></a>        <xs:element ref="PVType" minOccurs="0"/>
<a id="p102143"></a>        <xs:element ref="MOType" minOccurs="0"/>
<a id="p102144"></a>        <xs:element ref="Properties" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102145"></a>        <xs:element ref="Methods" minOccurs="0"/>
<a id="p102146"></a>        <xs:element ref="additionalInfo" minOccurs="0"/>
<a id="p102147"></a>      </xs:sequence>
<a id="p102148"></a>      <xs:attribute type="xs:string" name="type" use="optional"/>
<a id="p102149"></a>    </xs:complexType>
<a id="p102150"></a>  </xs:element>
<a id="p102151"></a>  <xs:element name="Services">
<a id="p102152"></a>    <xs:complexType>
<a id="p102153"></a>      <xs:sequence>
<a id="p102154"></a>        <xs:element ref="Service" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102155"></a>      </xs:sequence>
<a id="p102156"></a>    </xs:complexType>
<a id="p102157"></a>  </xs:element>
<a id="p102158"></a></xs:schema>
<a id="p102159"></a>Пример информации для класса Services на основе CIMServicePackage, определенного на языке IDL в [4.3.6](#p100631).
<a id="p102160"></a>interface Service: CIMService
<a id="p102161"></a>{
<a id="p102162"></a>   uint8 initialize(int64 val1, float32 val2); //services provided by module
<a id="p102163"></a>   uint8 finalize(int32 val1, float32 val2, int32 val3);
<a id="p102164"></a>   uint8 read(int fd, uint8[] buf, uint16 nbytes);
<a id="p102165"></a>}
<a id="p102166"></a>*Пример* информации для класса Services на основе XML-схемы для класса Services:
<a id="p102167"></a><?xml version="1.0" encoding="UTF-8" ?>
<a id="p102168"></a><Services>
<a id="p102169"></a> <Service type = "IDL">
<a id="p102170"></a>    ./IDL/AppLayer/sdo.idl
<a id="p102171"></a> </Service>
<a id="p102172"></a> <Service type = "IDL">
<a id="p102173"></a>    ./IDL/AppLayer/sync.idl
<a id="p102174"></a> </Service>
<a id="p102175"></a> <Service type = "IDL">
<a id="p102176"></a>    ./IDL/DeviceDriver/CAN.idl
<a id="p102177"></a> </Service>
<a id="p102178"></a>  <Service type = "XML">
<a id="p102179"></a>   <ID> NMT </ID>ID>
<a id="p102180"></a>   <PVType> Virtual </PVType>
<a id="p102181"></a>   <MOType> MANDATORY </MOType>
<a id="p102182"></a>   <Methods>
<a id="p102183"></a>     <Method>
<a id="p102184"></a>       <MethodName value = "NMT_SearchNode" />
       
<a id="p102186"></a>       <RetType value="bool" />
<a id="p102187"></a>       <MOType value = "MANDATORY" />
<a id="p102188"></a>       <ReqProvType value="REQUIRED" />
       
<a id="p102190"></a>          <Item>
<a id="p102191"></a>             <Name> initialValue </Name>
<a id="p102192"></a>             <Value> 0 </Value>
<a id="p102193"></a>          </Item>
<a id="p102194"></a>       </additionalInfo>
<a id="p102195"></a>     </Method>
<a id="p102196"></a>     <Method>
<a id="p102197"></a>       <MethodName value = "NMT_AddNode" />
       
<a id="p102199"></a>       <Type> int8 </Type>
<a id="p102200"></a>       <Name> iNodeID </Name>
<a id="p102201"></a>       <IOType> IN </IOType>
          
<a id="p102203"></a>             <Item>
<a id="p102204"></a>                <Name> minValue </Name>
<a id="p102205"></a>                <Value> 20 </Value>
<a id="p102206"></a>             </Item>
<a id="p102207"></a>          </additionalInfo>
<a id="p102208"></a>       </ArgSpec>
       
       
<a id="p102211"></a>       <RetType value="bool" />
<a id="p102212"></a>       <MOType value = "MANDATORY" />
<a id="p102213"></a>       <ReqProvType value="REQUIRED" />
<a id="p102214"></a>     </Method>
<a id="p102215"></a>     <Method>
<a id="p102216"></a>       <MethodName value = "NMT_GetNodeInfo" />
       
       
       
       
<a id="p102221"></a>       <RetType value="bool" />
<a id="p102222"></a>       <MOType value = "MANDATORY" />
<a id="p102223"></a>       <ReqProvType value="REQUIRED" />
<a id="p102224"></a>     </Method>
     
<a id="p102226"></a>       <Item>
<a id="p102227"></a>         <Name> InvokeFirstService </Name>
<a id="p102228"></a>         <Value> NMT_SearchNode </Value>
<a id="p102229"></a>       </Item>
<a id="p102230"></a>     </additionalInfo>
<a id="p102231"></a>   </Methods>
   
<a id="p102233"></a>    <Item>
<a id="p102234"></a>       <Name> CANID </Name>
<a id="p102235"></a>       <Value> OFF </Value>
<a id="p102236"></a>    </Item>
<a id="p102237"></a>   </additionalInfo>
<a id="p102238"></a> </Service>
<a id="p102239"></a> <Service type = "XML">
<a id="p102240"></a>  <ID> RS485Driver </ID>
<a id="p102241"></a>  <PVType value="Virtual" />
<a id="p102242"></a>  <MOType> OPTIONAL </MOType>
<a id="p102243"></a>  <Properties Name = "Baud" Value ="9600" />
<a id="p102244"></a>  <Properties Name = "STOPBit" Value ="No" />
<a id="p102245"></a>  <Methods>
<a id="p102246"></a>    <Method>
<a id="p102247"></a>       <MethodName value = "initialize" />
       
       
<a id="p102250"></a>       <RetType value="uint8" />
<a id="p102251"></a>       <MOType value = "MANDATORY" />
<a id="p102252"></a>       <ReqProvType value="PROVIDED" />
<a id="p102253"></a>    </Method>
<a id="p102254"></a>    <Method>
<a id="p102255"></a>       <MethodName value = "initialize" />
       
       
       
<a id="p102259"></a>       <RetType value="uint8" />
<a id="p102260"></a>       <MOType value = "OPTIONAL" />
<a id="p102261"></a>       <ReqProvType value="PROVIDED" />
<a id="p102262"></a>    </Method>
<a id="p102263"></a>    <Method>
<a id="p102264"></a>       <MethodName value = "finalize" />
       
       
       
<a id="p102268"></a>       <RetType value="uint8" />
<a id="p102269"></a>       <MOType value = "MANDATORY" />
<a id="p102270"></a>       <ReqProvType value="PROVIDED" />
<a id="p102271"></a>    </Method>
<a id="p102272"></a>    <Method>
<a id="p102273"></a>       <MethodName value = "read" />
       
       
       
<a id="p102277"></a>       <MOType value = "MANDATORY" />
<a id="p102278"></a>       <ReqProvType value="PROVIDED" />
       
<a id="p102280"></a>          <Item>
<a id="p102281"></a>             <Name> minValue </Name>
<a id="p102282"></a>             <Value> 0 </Value>
<a id="p102283"></a>          </Item>
<a id="p102284"></a>       </additionalInfo>
<a id="p102285"></a>    </Method>
<a id="p102286"></a>  </Methods>
<a id="p102287"></a> </Service>
<a id="p102288"></a></Services>
<a id="p102289"></a>C.6 Информация об инфраструктуре
<a id="p102290"></a>Данная информация определяет тип инфраструктурной поддержки и/или защиты от неблагоприятного воздействия окружающей среды, например источники питания, шину данных и степень защиты (код IP). Шины питания зависят от вида энергии, подаваемой на модуль, включая потребляемую мощность, и от вида энергии поставляемой модулем, если это имеет место. Шина данных зависит от типа связи, подключенной к модулю (например, Ethernet, EtherCAT, CAN, USB и RS422). Степень защиты определяет код IP, соответствующий данному модулю в соответствии с МЭК 60529. XML-элементы, содержащие информацию о классе Infrastructure, должны соответствовать [таблице C.7](#p102294). Для представления информации о классе Infrastructure на основе [таблицы C.7](#p102294) следует использовать приведенную ниже XML-схему, после которой приведен пример информации для класса Infrastructure.
<a id="p102291"></a>*Примечание* - Шина данных в классе Infrastructure является шиной, которую модули совместно используют в системе.

<a id="p102292"></a>Информация об элементе Databuses включает тип протокола, скорость передачи данных и поддерживаемый API, а примерами типа протокола являются CAN2.0, EtherCAT, Ethernet и RS485.

<a id="p102293"></a>Таблица C.7

<a id="p102294"></a>XML-элементы для класса Infrastructure


| <a id="p102295"></a>Имя элемента | <a id="p102296"></a>Описание |
| --- | --- |
| <a id="p102297"></a>Infra | <a id="p102298"></a><a id="p102299"></a>В данном элементе определены все характеристики для класса Infrastructure.<br>Данный элемент содержит информацию об инфраструктуре модуля |
| <a id="p102300"></a>Powers | <a id="p102301"></a><a id="p102302"></a><a id="p102303"></a>Данный элемент определяет вид энергии, которую модуль использует или поставляет.<br>К видам энергии относятся электрическая энергия, пневматическая энергия и гидравлическая энергия.<br>Примечание - В настоящем стандарте определен [элемент](#p102304) ElecPower, представляющий электрическую энергию. |
| <a id="p102304"></a>ElecPower | <a id="p102305"></a><a id="p102306"></a>Данный элемент определяет электрическую энергию.<br>Атрибутами данного элемента являются "value" (величина) и "unit" (единица измерения). Величина означает количество энергии, выраженное в единицах измерения, а атрибут "unit" может иметь значения "watt" (ватт) или "W" (Вт) или "mW" (мВт) |
| <a id="p102307"></a>RatedPower | <a id="p102308"></a><a id="p102309"></a>Данный элемент определяет номинальную мощность.<br>Атрибутами данного элемента являются "value" (величина) и "unit" (единица измерения) |
| <a id="p102310"></a>MaxPower | <a id="p102311"></a><a id="p102312"></a>Данный элемент определяет максимальную мощность.<br>Атрибутами данного элемента являются "value" (величина) и "unit" (единица измерения) |
| <a id="p102313"></a>DataBuses | <a id="p102314"></a>Данный элемент определяет шины данных, которые используются в модуле |
| <a id="p102315"></a>Databus | <a id="p102316"></a>Данный элемент определяет одну из шин данных, используемых в модуле |
| <a id="p102317"></a>ConnectorType | <a id="p102318"></a><a id="p102319"></a>Данный элемент определяет тип соединителя для шины данных, используемого в модуле.<br>Значением атрибута "type" (тип), который определяет тип соединителя, используемого в модуле, является "MALE" (ВИЛКА) или "FEMALE" (РОЗЕТКА) |
| <a id="p102320"></a>TypePhyMac | <a id="p102321"></a>Данный элемент определяет типы протоколов физического и канального уровней, используемых в модуле (например, CAN, EtherCAT, Ethernet, RS232, RS485) |
| <a id="p102322"></a>TypeNetTrans | <a id="p102323"></a><a id="p102324"></a>Данный элемент определяет типы протоколов сетевого и транспортного уровней, используемых в модуле (например, IP, TCP, TCP/IP, CANopen).<br>Значения данного элемента определены подробно в ИСО 22166-202 |
| <a id="p102325"></a>TypeApp | <a id="p102326"></a><a id="p102327"></a>Данный элемент определяет типы прикладных уровней, используемых в модуле.<br>Один или несколько прикладных сервисов могут быть приведены, например: POD, OBD, SYNC. Значения будут подробно определены в ИСО 22166-202 |
| <a id="p102328"></a>Speed | <a id="p102329"></a>Данный элемент определяет скорость передачи данных, которую обеспечивает модуль |
| <a id="p102330"></a>DBType | <a id="p102331"></a>Данный элемент определяет тип системы управления базой данных, используемой в модуле |
| <a id="p102332"></a>IP | <a id="p102333"></a>Данный элемент определяет код IP по МЭК 60529 |
| <a id="p102334"></a>additionalInfo | <a id="p102335"></a>Данный элемент содержит дополнительную информацию о переменных. Он может не иметь ни одного или иметь несколько значений, задаваемых с помощью атрибута "Item", каждое значение которого состоит из пары "name" (имя) и "value" (значение) |


<a id="p102336"></a>XML-схема для класса Infrastructure:
<a id="p102337"></a><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="https://www.w3.org/2001/XMLSchema">
<a id="p102338"></a>  <xs:element name="Name" type="xs:string"/>
<a id="p102339"></a>  <xs:element name="Value" type="xs:float"/>
<a id="p102340"></a>  <xs:element name="Item">
<a id="p102341"></a>    <xs:complexType mixed="true">
<a id="p102342"></a>      <xs:sequence>
<a id="p102343"></a>        <xs:element ref="Name" minOccurs="0"/>
<a id="p102344"></a>        <xs:element ref="Value" minOccurs="0"/>
<a id="p102345"></a>      </xs:sequence>
<a id="p102346"></a>    </xs:complexType>
<a id="p102347"></a>  </xs:element>
<a id="p102348"></a>  <xs:element name="RatedPower">
<a id="p102349"></a>    <xs:complexType>
<a id="p102350"></a>      <xs:simpleContent>
<a id="p102351"></a>        <xs:extension base="xs:string">
<a id="p102352"></a>          <xs:attribute type="xs:byte" name="value"/>
<a id="p102353"></a>          <xs:attribute type="xs:string" name="unit"/>
<a id="p102354"></a>        </xs:extension>
<a id="p102355"></a>      </xs:simpleContent>
<a id="p102356"></a>    </xs:complexType>
<a id="p102357"></a>  </xs:element>
<a id="p102358"></a>  <xs:element name="MaxPower">
<a id="p102359"></a>    <xs:complexType>
<a id="p102360"></a>      <xs:simpleContent>
<a id="p102361"></a>        <xs:extension base="xs:string">
<a id="p102362"></a>          <xs:attribute type="xs:float" name="value"/>
<a id="p102363"></a>          <xs:attribute type="xs:string" name="unit"/>
<a id="p102364"></a>        </xs:extension>
<a id="p102365"></a>      </xs:simpleContent>
<a id="p102366"></a>    </xs:complexType>
<a id="p102367"></a>  </xs:element>
<a id="p102368"></a>  <xs:element name="additionalInfo">
<a id="p102369"></a>    <xs:complexType>
<a id="p102370"></a>      <xs:sequence>
<a id="p102371"></a>        <xs:element ref="Item"/>
<a id="p102372"></a>      </xs:sequence>
<a id="p102373"></a>    </xs:complexType>
<a id="p102374"></a>  </xs:element>
<a id="p102375"></a>  <xs:element name="ElecPower">
<a id="p102376"></a>    <xs:complexType>
<a id="p102377"></a>      <xs:sequence>
<a id="p102378"></a>        <xs:element ref="RatedPower"/>
<a id="p102379"></a>        <xs:element ref="MaxPower"/>
<a id="p102380"></a>        <xs:element ref="additionalInfo"/>
<a id="p102381"></a>      </xs:sequence>
<a id="p102382"></a>    </xs:complexType>
<a id="p102383"></a>  </xs:element>
<a id="p102384"></a>  <xs:element name="ConnectorType" type="xs:string"/>
<a id="p102385"></a>  <xs:element name="TypePhyMac" type="xs:string"/>
<a id="p102386"></a>  <xs:element name="TypeNetTrans" type="xs:string"/>
<a id="p102387"></a>  <xs:element name="TypeApp">
<a id="p102388"></a>    <xs:complexType mixed="true">
<a id="p102389"></a>      <xs:sequence>
<a id="p102390"></a>        <xs:element ref="Item" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102391"></a>      </xs:sequence>
<a id="p102392"></a>    </xs:complexType>
<a id="p102393"></a>  </xs:element>
<a id="p102394"></a>  <xs:element name="Speed">
<a id="p102395"></a>    <xs:complexType>
<a id="p102396"></a>      <xs:simpleContent>
<a id="p102397"></a>        <xs:extension base="xs:string">
<a id="p102398"></a>          <xs:attribute type="xs:short" name="value" use="optional"/>
<a id="p102399"></a>          <xs:attribute type="xs:string" name="unit" use="optional"/>
<a id="p102400"></a>        </xs:extension>
<a id="p102401"></a>      </xs:simpleContent>
<a id="p102402"></a>    </xs:complexType>
<a id="p102403"></a>  </xs:element>
<a id="p102404"></a>  <xs:element name="Databus">
<a id="p102405"></a>    <xs:complexType>
<a id="p102406"></a>      <xs:sequence>
<a id="p102407"></a>        <xs:element ref="ConnectorType"/>
<a id="p102408"></a>        <xs:element ref="TypePhyMac"/>
<a id="p102409"></a>        <xs:element ref="TypeNetTrans"/>
<a id="p102410"></a>        <xs:element ref="TypeApp"/>
<a id="p102411"></a>        <xs:element ref="Speed"/>
<a id="p102412"></a>      </xs:sequence>
<a id="p102413"></a>    </xs:complexType>
<a id="p102414"></a>  </xs:element>
<a id="p102415"></a>  <xs:element name="Powers">
<a id="p102416"></a>    <xs:complexType>
<a id="p102417"></a>      <xs:sequence>
<a id="p102418"></a>        <xs:element ref="ElecPower"/>
<a id="p102419"></a>      </xs:sequence>
<a id="p102420"></a>    </xs:complexType>
<a id="p102421"></a>  </xs:element>
<a id="p102422"></a>  <xs:element name="DataBuses">
<a id="p102423"></a>    <xs:complexType>
<a id="p102424"></a>      <xs:sequence>
<a id="p102425"></a>        <xs:element ref="Databus" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102426"></a>        <xs:element ref="additionalInfo"/>
<a id="p102427"></a>      </xs:sequence>
<a id="p102428"></a>    </xs:complexType>
<a id="p102429"></a>  </xs:element>
<a id="p102430"></a>  <xs:element name="DBType" type="xs:string"/>
<a id="p102431"></a>  <xs:element name="IP" type="xs:string"/>
<a id="p102432"></a>  <xs:element name="Infra">
<a id="p102433"></a>    <xs:complexType>
<a id="p102434"></a>      <xs:sequence>
<a id="p102435"></a>        <xs:element ref="Powers"/>
<a id="p102436"></a>        <xs:element ref="DataBuses"/>
<a id="p102437"></a>        <xs:element ref="DBType"/>
<a id="p102438"></a>        <xs:element ref="IP"/>
<a id="p102439"></a>        <xs:element ref="additionalInfo"/>
<a id="p102440"></a>      </xs:sequence>
<a id="p102441"></a>    </xs:complexType>
<a id="p102442"></a>  </xs:element>
<a id="p102443"></a></xs:schema>
<a id="p102444"></a>*Пример* информации для класса Infrastructure на основе XML-схемы для класса Infrastructure:
<a id="p102445"></a><?xml version="1.0" encoding="UTF-8" ?>
<a id="p102446"></a><Infra>
<a id="p102447"></a> <Powers>
<a id="p102448"></a>  <ElecPower>
<a id="p102449"></a>    <RatedPower value= "43" unit = "watt" />
<a id="p102450"></a>    <MaxPower value= "54.2" unit = "watt" />
    
<a id="p102452"></a>      <Item>
<a id="p102453"></a>        <Name> Max Current (unit:Ampere) </Name>
<a id="p102454"></a>        <Value> 1 </Value>
<a id="p102455"></a>      </Item>
<a id="p102456"></a>    </additionalInfo>
<a id="p102457"></a>  </ElecPower>
<a id="p102458"></a> </Powers>
<a id="p102459"></a> <DataBuses> <!-- list of data buses used in Module -->
<a id="p102460"></a>  <Databus>
<a id="p102461"></a>    <ConnectorType> DB9 </ConnectorType>  <!-- D-Sub 9-->
<a id="p102462"></a>    <TypePhyMac> CAN </TypePhyMac>
<a id="p102463"></a>    <TypeNetTrans> CANopen </TypeNetTrans>
<a id="p102464"></a>    <TypeApp> <!-- list for app. Layer of CANopen -->
<a id="p102465"></a>      <Item> OBD </Item>
<a id="p102466"></a>      <Item> NMT </Item>
<a id="p102467"></a>      <Item> SDO </Item>
<a id="p102468"></a>      <Item> PDO </Item>
<a id="p102469"></a>      <Item> SYNC </Item>
<a id="p102470"></a>    </TypeApp>
<a id="p102471"></a>    <Speed value = "1000" unit="kbps" />  <!-- 1 Mbps, unit Kbps -->
<a id="p102472"></a>  </Databus>
<a id="p102473"></a>  <Databus>
<a id="p102474"></a>    <ConnectorType> RJ45 </ConnectorType> <!-- Jack for EtherNet -->
<a id="p102475"></a>    <TypePhyMac> EtherCAT </TypePhyMac>
<a id="p102476"></a>    <TypeNetTrans> IPTCP </TypeNetTrans>
<a id="p102477"></a>    <TypeApp> Modbus </TypeApp>
<a id="p102478"></a>    <Speed value = "10000" unit="kbps" /> <!-- 10 Mbps, unit Kbps -->
<a id="p102479"></a>  </Databus>
  
<a id="p102481"></a>    <Item>
<a id="p102482"></a>      <Name> Maximum speed of EtherCAT </Name>
<a id="p102483"></a>      <Value> 100000 </Value>
<a id="p102484"></a>    </Item>
<a id="p102485"></a>  </additionalInfo>
<a id="p102486"></a> </DataBuses>
<a id="p102487"></a> <DBType> SQL DBMS </DBType> <!-- DBMS type -->
<a id="p102488"></a> <IP> IP23CH </IP><!-- Ingress Protection IEC 60529-->
 
<a id="p102490"></a>  <Item>
<a id="p102491"></a>    <Name> Minimum IP Code </Name>
<a id="p102492"></a>    <Value> 32 </Value>
<a id="p102493"></a>  </Item>
<a id="p102494"></a> </additionalInfo>
<a id="p102495"></a></Infra>
<a id="p102496"></a>C.7 Информация о безопасности и защищенности
<a id="p102497"></a>Класс SafeSecure обеспечивает информацию об уровне эффективности защиты для каждой функции безопасности и информацию, связанную с защищенностью, для каждой функции защищенности, поддерживаемой модулем. XML-элементы, содержащие информацию о классе SafeSecure, должны соответствовать [таблице C.8](#p102500). Для представления информации о классе SafeSecure на основе [таблицы C.8](#p102500) следует использовать приведенную ниже XML-схему, после которой приведен пример информации для класса SafeSecure.
<a id="p102498"></a>Атрибут "PL" (УЭЗ) должен иметь следующие значения: {n, a, b, c, d, e}, где "n" обозначает отсутствие уровня эффективности защиты, а "a" - "e" обозначают PLa - PLe (см. ИСО 13849-1). Киберзащищенность имеет следующие значения: {0, 1, 2, 3, 4}, где "0" обозначает отсутствие мер по обеспечению защищенности, а "1" - "4" обозначают уровень защищенности "SL1" - "SL4" (см. МЭК 62443-4-2:2019). Меры по обеспечению физической защищенности определены в ИСО 22166-1, 5.6. Уровень безопасности для каждой функции безопасности должен быть представлен с использованием УЭЗ или УПБ.

<div align="right">

<a id="p102499"></a>Таблица C.8

</div>


<div align="center">

<a id="p102500"></a>XML-элементы для класса SafeSecure

</div>



| <a id="p102501"></a>Имя элемента | <a id="p102502"></a>Описание |
| --- | --- |
| <a id="p102503"></a>SafeSecure | <a id="p102504"></a><a id="p102505"></a>В данном элементе определены все атрибуты, относящиеся к классу SafeSecure.<br>Данный элемент содержит информацию о безопасности и защищенности модуля |
| <a id="p102506"></a>Safety | <a id="p102507"></a>Данный элемент определяет уровень эффективности защиты функции безопасности, реализуемой модулем, или уровень эффективности защиты общей безопасности модуля, если модуль реализует две или более функций безопасности |
| <a id="p102508"></a>Overall | <a id="p102509"></a><a id="p102510"></a>Данный элемент представляет общий уровень эффективности защиты для безопасности или киберзащищенности модуля.<br>Атрибут "mode" (режим) имеет значение "PL" или "SIL", которое обозначает УЭЗ или УПБ, соответственно |
| <a id="p102511"></a>SafetyType | <a id="p102512"></a><a id="p102513"></a>Данный элемент представляет уровень эффективности защиты указанной отдельной функции безопасности, которую задают с помощью атрибута "type" (вид). Возможные значения данного атрибута представлены в [графе "Тег" таблицы 4.28](#p100948).<br>Атрибут "mode" (режим) имеет значение "PL" или "SIL", которое обозначает УЭЗ или УПБ, соответственно |
| <a id="p102514"></a>Security | <a id="p102515"></a>Данный элемент определяет уровень защищенности функции защищенности, который обеспечивает модуль, или уровень общей защищенности модуля, если модуль реализует две или более функций защищенности |
| <a id="p102516"></a>PhysicalSecurity | <a id="p102517"></a><a id="p102518"></a>Данный элемент определяет уровень физической защищенности модуля.<br>Значениями могут быть: None(0), LatchSensor(1), LockwithKey(2), LockwithActuator(3) (см. [таблицу 4.36](#p101194)) |
| <a id="p102519"></a>CyberSecurity | <a id="p102520"></a>Данный элемент определяет уровень защищенности функции киберзащищенности. Значения {0, 1, 2, 3, 4} (см. [таблицу 4.36](#p101194)) |
| <a id="p102521"></a>SecType | <a id="p102522"></a>Данный элемент представляет уровень защищенности указанной отдельной функции защищенности, которую задают с помощью атрибута "type" (вид). Возможные значения данного атрибута представлены в [графе "Тег" таблицы 4.29](#p100967) |
| <a id="p102523"></a>additionalInfo | <a id="p102524"></a>Данный элемент содержит дополнительную информацию о переменных. Он может не иметь ни одного или иметь несколько значений, задаваемых с помощью атрибута "Item", каждое значение которого состоит из пары "name" (имя) и "value" (значение) |


<a id="p102525"></a>XML-схема для класса SafeSecure:
<a id="p102526"></a><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="https://www.w3.org/2001/XMLSchema">
<a id="p102527"></a>  <xs:element name="Overall">
<a id="p102528"></a>    <xs:complexType>
<a id="p102529"></a>      <xs:simpleContent>
<a id="p102530"></a>        <xs:extension base="xs:string">
<a id="p102531"></a>          <xs:attribute type="xs:string" name="mode" use="optional"/>
<a id="p102532"></a>        </xs:extension>
<a id="p102533"></a>      </xs:simpleContent>
<a id="p102534"></a>    </xs:complexType>
<a id="p102535"></a>  </xs:element>
<a id="p102536"></a>  <xs:element name="SafetyType">
<a id="p102537"></a>    <xs:complexType>
<a id="p102538"></a>      <xs:simpleContent>
<a id="p102539"></a>        <xs:extension base="xs:string">
<a id="p102540"></a>          <xs:attribute type="xs:string" name="type" use="optional"/>
<a id="p102541"></a>          <xs:attribute type="xs:string" name="mode" use="optional"/>
<a id="p102542"></a>          <xs:attribute type="xs:byte" name="value" use="optional"/>
<a id="p102543"></a>        </xs:extension>
<a id="p102544"></a>      </xs:simpleContent>
<a id="p102545"></a>    </xs:complexType>
<a id="p102546"></a>  </xs:element>
<a id="p102547"></a>  <xs:element name="SecType">
<a id="p102548"></a>    <xs:complexType>
<a id="p102549"></a>      <xs:simpleContent>
<a id="p102550"></a>        <xs:extension base="xs:string">
<a id="p102551"></a>          <xs:attribute type="xs:string" name="type" use="optional"/>
<a id="p102552"></a>          <xs:attribute type="xs:byte" name="value" use="optional"/>
<a id="p102553"></a>        </xs:extension>
<a id="p102554"></a>      </xs:simpleContent>
<a id="p102555"></a>    </xs:complexType>
<a id="p102556"></a>  </xs:element>
<a id="p102557"></a>  <xs:element name="PhysicalSecurity" type="xs:string"/>
<a id="p102558"></a>  <xs:element name="CyberSecurity">
<a id="p102559"></a>    <xs:complexType>
<a id="p102560"></a>      <xs:sequence>
<a id="p102561"></a>        <xs:element ref="Overall"/>
<a id="p102562"></a>        <xs:element ref="SecType" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102563"></a>      </xs:sequence>
<a id="p102564"></a>    </xs:complexType>
<a id="p102565"></a>  </xs:element>
<a id="p102566"></a>  <xs:element name="Name" type="xs:string"/>
<a id="p102567"></a>  <xs:element name="Value" type="xs:float"/>
<a id="p102568"></a>  <xs:element name="Item">
<a id="p102569"></a>    <xs:complexType>
<a id="p102570"></a>      <xs:sequence>
<a id="p102571"></a>        <xs:element ref="Name"/>
<a id="p102572"></a>        <xs:element ref="Value"/>
<a id="p102573"></a>      </xs:sequence>
<a id="p102574"></a>    </xs:complexType>
<a id="p102575"></a>  </xs:element>
<a id="p102576"></a>  <xs:element name="Safety">
<a id="p102577"></a>    <xs:complexType>
<a id="p102578"></a>      <xs:sequence>
<a id="p102579"></a>        <xs:element ref="Overall" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102580"></a>        <xs:element ref="SafetyType" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102581"></a>      </xs:sequence>
<a id="p102582"></a>    </xs:complexType>
<a id="p102583"></a>  </xs:element>
<a id="p102584"></a>  <xs:element name="Security">
<a id="p102585"></a>    <xs:complexType>
<a id="p102586"></a>      <xs:sequence>
<a id="p102587"></a>        <xs:element ref="PhysicalSecurity"/>
<a id="p102588"></a>        <xs:element ref="CyberSecurity"/>
<a id="p102589"></a>      </xs:sequence>
<a id="p102590"></a>    </xs:complexType>
<a id="p102591"></a>  </xs:element>
<a id="p102592"></a>  <xs:element name="additionalInfo">
<a id="p102593"></a>    <xs:complexType>
<a id="p102594"></a>      <xs:sequence>
<a id="p102595"></a>        <xs:element ref="Item" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102596"></a>      </xs:sequence>
<a id="p102597"></a>    </xs:complexType>
<a id="p102598"></a>  </xs:element>
<a id="p102599"></a>  <xs:element name="SafeSecure">
<a id="p102600"></a>    <xs:complexType>
<a id="p102601"></a>      <xs:sequence>
<a id="p102602"></a>        <xs:element ref="Safety"/>
<a id="p102603"></a>        <xs:element ref="Security"/>
<a id="p102604"></a>        <xs:element ref="additionalInfo"/>
<a id="p102605"></a>      </xs:sequence>
<a id="p102606"></a>    </xs:complexType>
<a id="p102607"></a>  </xs:element>
<a id="p102608"></a></xs:schema>
<a id="p102609"></a>*Пример* информации для класса SafeSecure на основе XML-схемы для класса SafeSecure:
<a id="p102610"></a><?xml version="1.0" encoding="UTF-8" ?>
<a id="p102611"></a><SafeSecure>
<a id="p102612"></a>  <Safety>
<a id="p102613"></a>    <Overall mode="PL"> d </Overall>  <!-- choose one PL from a, b, c, d, e, and none. -->
<a id="p102614"></a>    <Overall mode="SIL"> 3 </Overall> <!-- choose one SIL from 0, 1, 2, and 3. -->
<a id="p102615"></a>    <!-- individual safety measure. see Table 4.5 -->
<a id="p102616"></a>    <SafetyType type = "ESTOP" mode="PL"> d </SafetyType>
<a id="p102617"></a>    <SafetyType type = "ESTOP" mode="SIL" value="3" />
<a id="p102618"></a>    <SafetyType type = "SRSC" mode="SIL" value = "2" />
<a id="p102619"></a>  </Safety>
<a id="p102620"></a>  <Security>
<a id="p102621"></a>    <!-- None,LatchSensor,LockwithKey,LockwithActuator, see sub-clause 5.6 in ISO 22166-1 -->
<a id="p102622"></a>    <PhysicalSecurity>  None   </PhysicalSecurity>
<a id="p102623"></a>    <CyberSecurity>  <!-- list security functions provided by module -->
<a id="p102624"></a>      <Overall>  2  </Overall>  <!-- overall security level of a module -->
<a id="p102625"></a>      <SecType type = "HU_IA">  3  </SecType > <!-- individual security fct. see Table 4.10 -->
<a id="p102626"></a>      <SecType type = "ACNT_MGT" value = "2"  />  <!--  see Table 4.10 -->
<a id="p102627"></a>    </CyberSecurity>
<a id="p102628"></a>  </Security>
  
<div align="right">

<a id="p102630"></a>    <Item><br>
<a id="p102631"></a>      <Name> Minimum overall PL </Name>

</div>

<div align="center">

<a id="p102632"></a>      <Value> 2 </Value><br>
<a id="p102633"></a>    </Item><br>
<a id="p102634"></a>    <Item><br>
<a id="p102635"></a>      <Name> Minimum overall security </Name><br>
<a id="p102636"></a>      <Value> 1 </Value><br>
<a id="p102637"></a>    </Item><br>
<a id="p102638"></a>  </additionalInfo>

</div>

<a id="p102639"></a></SafeSecure>
<a id="p102640"></a>C.8 Информация о классе Modelling
<a id="p102641"></a>Класс Modelling обеспечивает информацию, которую модуль предоставляет для моделирования, например, тип симулятора, 3D модель и формат описания 3D модели, такой как файлы универсального формата описания роботов (URDF). XML-элементы, содержащие информацию о классе Modelling, должны соответствовать [таблице C.9](#p102643). Для представления информации о классе Modelling на основе [таблицы C.9](#p102643) следует использовать приведенную ниже XML-схему, после которой приведен пример информации для класса Modelling.

<a id="p102642"></a>Таблица C.9

<a id="p102643"></a>XML-элементы для класса Modelling


| <a id="p102644"></a>Имя элемента | <a id="p102645"></a>Описание |
| --- | --- |
| <a id="p102646"></a>Modelling | <a id="p102647"></a><a id="p102648"></a><a id="p102649"></a>В данном элементе определена вся информация, относящаяся к моделированию.<br>Данный элемент содержит информацию об имитационном моделировании модуля.<br>У модуля может быть одна или несколько имитационных моделей |
| <a id="p102650"></a>SimulationModel | <a id="p102651"></a><a id="p102652"></a>Данный элемент определяет имитационную модель, представляющую модуль.<br>Имитационная модель состоит из симулятора (или моделирующей программы), формата описания модели и формата 3D модели |
| <a id="p102653"></a>Simulator | <a id="p102654"></a>Данный элемент определяет симулятор (или моделирующую программу) (например, Gazebo, Webots, RoboDK, SimSpark, OpenRave) |
| <a id="p102655"></a>ModelFile | <a id="p102656"></a><a id="p102657"></a><a id="p102658"></a><a id="p102659"></a>Данный элемент определяет форматы описания модели (MDF) и форматы 3D модели (3DF). Формат описания представляет модель модуля, внешнюю среду, средства визуализации и управления.<br>Атрибут "type" имеет одно из следующих значений:<br>Если описание относится к одному из форматов MDF, например URDF или SDF, то значением данного атрибута являются унифицированные указатели ресурса (URL) или пути к MDF-файлу, представляющему модуль.<br>Если описание относится к одному из форматов 3DF, например STL, OBJ, 3DS, DAE или FBX, то значением данного атрибута является унифицированный указатель ресурса (URL) или путь к 3DF-файлу, представляющему модуль |
| <a id="p102660"></a>DynamicSW | <a id="p102661"></a><a id="p102662"></a>Данный элемент определяет всю информацию, относящуюся к исполняемой форме.<br>Данный элемент содержит подробные сведения об исполняемой форме, которая должна быть выполнена для обеспечения работы модуля. У данного элемента есть три атрибута ExeFileURL, SheelCmd и Properties, представленные в [таблице C.10](#p102778) |
| <a id="p102663"></a>additionalInfo | <a id="p102664"></a>Данный элемент содержит дополнительную информацию о переменных. Он может не иметь ни одного или иметь несколько значений, задаваемых с помощью атрибута "Item", каждое значение которого состоит из пары "name" (имя) и "value" (значение) |


<a id="p102665"></a>XML-схема для класса Modelling:
<a id="p102666"></a><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="https://www.w3.org/2001/XMLSchema">
<a id="p102667"></a>  <xs:element name="Item">
<a id="p102668"></a>    <xs:complexType mixed="true">
<a id="p102669"></a>      <xs:sequence>
<a id="p102670"></a>        <xs:element ref="Name" minOccurs="0"/>
<a id="p102671"></a>        <xs:element ref="Value" minOccurs="0"/>
<a id="p102672"></a>      </xs:sequence>
<a id="p102673"></a>    </xs:complexType>
<a id="p102674"></a>  </xs:element>
<a id="p102675"></a>  <xs:element name="Property">
<a id="p102676"></a>    <xs:complexType>
<a id="p102677"></a>      <xs:simpleContent>
<a id="p102678"></a>        <xs:extension base="xs:string">
<a id="p102679"></a>          <xs:attribute type="xs:string" name="name" use="optional"/>
<a id="p102680"></a>          <xs:attribute type="xs:string" name="type" use="optional"/>
<a id="p102681"></a>          <xs:attribute type="xs:string" name="unit" use="optional"/>
<a id="p102682"></a>          <xs:attribute type="xs:string" name="description" use="optional"/>
<a id="p102683"></a>          <xs:attribute type="xs:byte" name="value" use="optional"/>
<a id="p102684"></a>        </xs:extension>
<a id="p102685"></a>      </xs:simpleContent>
<a id="p102686"></a>    </xs:complexType>
<a id="p102687"></a>  </xs:element>
<a id="p102688"></a>  <xs:element name="ExeFileURL" type="xs:string"/>
<a id="p102689"></a>  <xs:element name="ShellCmd" type="xs:string"/>
<a id="p102690"></a>  <xs:element name="Properties">
<a id="p102691"></a>    <xs:complexType>
<a id="p102692"></a>      <xs:sequence>
<a id="p102693"></a>        <xs:element ref="Property" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102694"></a>      </xs:sequence>
<a id="p102695"></a>    </xs:complexType>
<a id="p102696"></a>  </xs:element>
<a id="p102697"></a>  <xs:element name="Name" type="xs:string"/>
<a id="p102698"></a>  <xs:element name="Value" type="xs:string"/>
<a id="p102699"></a>  <xs:element name="Simulator" type="xs:string"/>
<a id="p102700"></a>  <xs:element name="ModelFile">
<a id="p102701"></a>    <xs:complexType>
<a id="p102702"></a>      <xs:sequence>
<a id="p102703"></a>        <xs:element ref="Item" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102704"></a>      </xs:sequence>
<a id="p102705"></a>      <xs:attribute type="xs:string" name="type" use="optional"/>
<a id="p102706"></a>    </xs:complexType>
<a id="p102707"></a>  </xs:element>
<a id="p102708"></a>  <xs:element name="DynamicSW">
<a id="p102709"></a>    <xs:complexType>
<a id="p102710"></a>      <xs:sequence>
<a id="p102711"></a>        <xs:element ref="ExeFileURL"/>
<a id="p102712"></a>        <xs:element ref="ShellCmd"/>
<a id="p102713"></a>        <xs:element ref="Properties"/>
<a id="p102714"></a>      </xs:sequence>
<a id="p102715"></a>    </xs:complexType>
<a id="p102716"></a>  </xs:element>
<a id="p102717"></a>  <xs:element name="additionalInfo">
<a id="p102718"></a>    <xs:complexType>
<a id="p102719"></a>      <xs:sequence>
<a id="p102720"></a>        <xs:element ref="Item" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102721"></a>      </xs:sequence>
<a id="p102722"></a>    </xs:complexType>
<a id="p102723"></a>  </xs:element>
<a id="p102724"></a>  <xs:element name="SimulationModel">
<a id="p102725"></a>    <xs:complexType>
<a id="p102726"></a>      <xs:sequence>
<a id="p102727"></a>        <xs:element ref="Simulator"/>
<a id="p102728"></a>        <xs:element ref="ModelFile" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102729"></a>        <xs:element ref="DynamicSW"/>
<a id="p102730"></a>        <xs:element ref="additionalInfo"/>
<a id="p102731"></a>      </xs:sequence>
<a id="p102732"></a>    </xs:complexType>
<a id="p102733"></a>  </xs:element>
<a id="p102734"></a>  <xs:element name="Modelling">
<a id="p102735"></a>    <xs:complexType>
<a id="p102736"></a>      <xs:sequence>
<a id="p102737"></a>        <xs:element ref="SimulationModel"/>
<a id="p102738"></a>      </xs:sequence>
<a id="p102739"></a>    </xs:complexType>
<a id="p102740"></a>  </xs:element>
<a id="p102741"></a></xs:schema>
<a id="p102742"></a>*Пример* информации для класса Modelling на основе XML-схемы для класса Modelling:
<a id="p102743"></a><?xml version="1.0" encoding="UTF-8" ?>
<a id="p102744"></a><Modelling>
<a id="p102745"></a>  <SimulationModel> <!-- the 1-st simulation model to be used -->
<a id="p102746"></a>    <Simulator> Gazebo </Simulator> <!-- Simulation programs. optional -->
<a id="p102747"></a>    <ModelFile type="URDF"> <!-- model description file type and its file path for model
of module -->
<a id="p102748"></a>     <Item> ../../modelDescriptionFileName1 </Item> <!-- the 1st path of model description file-->
<a id="p102749"></a><Item> ../../modelDescriptionFilePath2 </Item> <!-- the 2nd path of model description file -->
<a id="p102750"></a>    </ModelFile>
<a id="p102751"></a>    <ModelFile type="STL"> <!-- 3D graphic model type and its file path for model of
module -->
<a id="p102752"></a>      <Item> ../../module3DGraphicFileName1 </Item> <!--the 1st path of 3Dgraphic file
model file -->
<a id="p102753"></a>      <Item> ../../module3DGraphicFilePath2 </Item> <!--the 2nd path of 3Dgraphic file
model file -->
<a id="p102754"></a>    </ModelFile>
<a id="p102755"></a>    <DynamicSW>
<a id="p102756"></a>      <ExeFileURL> ../../sim.exe </ExeFileURL>
<a id="p102757"></a>      <ShellCmd> ../../sim.exe -r </ShellCmd> <!--example of shell command -->
<a id="p102758"></a>      <Properties>
<a id="p102759"></a>        <Property name="Shell cmd Arg1" type="int8" unit="none" description = "verbose"
value ="0" />
<a id="p102760"></a>        <Property name="Shell cmd Arg2" type="uint8" unit="none" description = "Warning
level" value ="2" />
<a id="p102761"></a>      </Properties>
<a id="p102762"></a>    </DynamicSW>
    
<a id="p102764"></a>      <Item>
<a id="p102765"></a>        <Name> kinematics model(Axis) </Name>

<div align="right">

<a id="p102766"></a>        <Value> 6 Axis </Value><br>
<a id="p102767"></a>      </Item><br>
<a id="p102768"></a>      <Item>

</div>

<div align="center">

<a id="p102769"></a>        <Name> additional info </Name><br>
<a id="p102770"></a>        <Value> added </Value><br>
<a id="p102771"></a>      </Item><br>
<a id="p102772"></a>    </additionalInfo><br>
<a id="p102773"></a>  </SimulationModel><br>
<a id="p102774"></a></Modelling><br>
<a id="p102775"></a>C.9 Информация о классе ExecutableForm

</div>

<a id="p102776"></a>Класс ExecutableForm представляет исполняемую форму, связанную с информацией, необходимой модулю при его выполнении. XML-элементы, содержащие информацию о классе ExecutableForm, должны соответствовать [таблице C.10](#p102778). Для представления информации о классе ExecutableForm на основе [таблицы C.10](#p102778) следует использовать приведенную ниже XML-схему, после которой приведен пример информации для класса ExecutableForm.

<a id="p102777"></a>Таблица C.10

<a id="p102778"></a>XML-элементы для класса ExecutableForm


| <a id="p102779"></a>Имя элемента | <a id="p102780"></a>Описание |
| --- | --- |
| <a id="p102781"></a>ExeForm | <a id="p102782"></a><a id="p102783"></a>В данном элементе определена вся информация, относящаяся к исполняемой форме.<br>Данный элемент содержит подробные сведения об исполняемой форме, которая должна быть выполнена для обеспечения работы модуля. У данного элемента есть три атрибута ExeFileURL, SheelCmd и Properties |
| <a id="p102784"></a>ExeFileURL | <a id="p102785"></a>Данный элемент представляет унифицированные указатели ресурса (URL) или пути к файлам, необходимым модулю в начале его выполнения |
| <a id="p102786"></a>ShellCmd | <a id="p102787"></a>Данный атрибут используется для выполнения с помощью ExeFileURL, Properties и LibURLs разных задач, таких как прогон программ, исполнение системных команд, работа с файлами и папками, управление системными ресурсами |
| <a id="p102788"></a>Properties | <a id="p102789"></a>Данный элемент представляет дополнительные характеристики, требующиеся или необходимые для выполнения модуля |
| <a id="p102790"></a>LibURLs | <a id="p102791"></a>Данный элемент представляет унифицированные указатели ресурса (URL) или пути к библиотекам, необходимым модулю в начале его выполнения |
| <a id="p102792"></a>additionalInfo | <a id="p102793"></a>Данный элемент содержит дополнительную информацию о переменных. Он может не иметь ни одного или иметь несколько значений, задаваемых с помощью атрибута "Item", каждое значение которого состоит из пары "name" (имя) и "value" (значение) |


<a id="p102794"></a>XML-схема для класса ExecutableForm:
<a id="p102795"></a><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="https://www.w3.org/2001/XMLSchema">
<a id="p102796"></a>  <xs:element name="Item">
<a id="p102797"></a>    <xs:complexType mixed="true">
<a id="p102798"></a>      <xs:sequence>
<a id="p102799"></a>        <xs:element ref="Name" minOccurs="0"/>
<a id="p102800"></a>        <xs:element ref="Value" minOccurs="0"/>
<a id="p102801"></a>      </xs:sequence>
<a id="p102802"></a>    </xs:complexType>
<a id="p102803"></a>  </xs:element>
<a id="p102804"></a>  <xs:element name="Property">
<a id="p102805"></a>    <xs:complexType>
<a id="p102806"></a>      <xs:simpleContent>
<a id="p102807"></a>        <xs:extension base="xs:string">
<a id="p102808"></a>          <xs:attribute type="xs:string" name="name" use="optional"/>
<a id="p102809"></a>          <xs:attribute type="xs:string" name="type" use="optional"/>
<a id="p102810"></a>          <xs:attribute type="xs:string" name="unit" use="optional"/>
<a id="p102811"></a>          <xs:attribute type="xs:string" name="description" use="optional"/>
<a id="p102812"></a>          <xs:attribute type="xs:byte" name="value" use="optional"/>
<a id="p102813"></a>        </xs:extension>
<a id="p102814"></a>      </xs:simpleContent>
<a id="p102815"></a>    </xs:complexType>
<a id="p102816"></a>  </xs:element>
<a id="p102817"></a>  <xs:element name="ExeFileURL" type="xs:string"/>
<a id="p102818"></a>  <xs:element name="ShellCmd" type="xs:string"/>
<a id="p102819"></a>  <xs:element name="Properties">
<a id="p102820"></a>    <xs:complexType>
<a id="p102821"></a>      <xs:sequence>
<a id="p102822"></a>        <xs:element ref="Property" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102823"></a>      </xs:sequence>
<a id="p102824"></a>    </xs:complexType>
<a id="p102825"></a>  </xs:element>
<a id="p102826"></a>  <xs:element name="Name" type="xs:string"/>
<a id="p102827"></a>  <xs:element name="Value" type="xs:string"/>
<a id="p102828"></a>  <xs:element name="LibURLs">
<a id="p102829"></a>    <xs:complexType>
<a id="p102830"></a>      <xs:sequence>
<a id="p102831"></a>        <xs:element ref="Item" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102832"></a>      </xs:sequence>
<a id="p102833"></a>    </xs:complexType>
<a id="p102834"></a>  </xs:element>
<a id="p102835"></a>  <xs:element name="ExeForm">
<a id="p102836"></a>    <xs:complexType>
<a id="p102837"></a>      <xs:sequence>
<a id="p102838"></a>        <xs:element ref="ExeFileURL"/>
<a id="p102839"></a>        <xs:element ref="ShellCmd"/>
<a id="p102840"></a>        <xs:element ref="Properties"/>
<a id="p102841"></a>      </xs:sequence>
<a id="p102842"></a>    </xs:complexType>
<a id="p102843"></a>  </xs:element>
<a id="p102844"></a>  <xs:element name="additionalInfo">
<a id="p102845"></a>    <xs:complexType>
<a id="p102846"></a>      <xs:sequence>
<a id="p102847"></a>        <xs:element ref="Item" maxOccurs="unbounded" minOccurs="0"/>
<a id="p102848"></a>      </xs:sequence>
<a id="p102849"></a>    </xs:complexType>
<a id="p102850"></a>  </xs:element>
<a id="p102851"></a>  <xs:element name="ExecutableForm">
<a id="p102852"></a>    <xs:complexType>
<a id="p102853"></a>      <xs:sequence>
<a id="p102854"></a>        <xs:element ref="LibURLs"/>
<a id="p102855"></a>        <xs:element ref="ExeForm"/>
<a id="p102856"></a>        <xs:element ref="additionalInfo"/>
<a id="p102857"></a>      </xs:sequence>
<a id="p102858"></a>    </xs:complexType>
<a id="p102859"></a>  </xs:element>
<a id="p102860"></a></xs:schema>
<a id="p102861"></a>*Пример* информации для класса ExecutableForm на основе XML-схемы для класса ExecutableForm:
<a id="p102862"></a><?xml version="1.0" encoding="UTF-8" ?>
<a id="p102863"></a><ExecutableForm>
<a id="p102864"></a>  <LibURLs>
<a id="p102865"></a>    <Item> ../lib/windows/modulelib.dll </Item>
<a id="p102866"></a>    <Item> www.module/org/windows/lib/modulelib.dll </Item>
<a id="p102867"></a>  </LibURLs>
<a id="p102868"></a>  <ExeForm>
<a id="p102869"></a>    <ExeFileURL> www.module.org/windows/exe/module1.exe</ExeFileURL>
<a id="p102870"></a>    <ShellCmd> ./module1.exe -r </ShellCmd> <!--this is example of shell command -->
<a id="p102871"></a>    <Properties>
<a id="p102872"></a>      <Property name="Shell cmd Arg1" type="integer" unit="none" description = "verbose"
value ="0" />
<a id="p102873"></a>      <Property  name="Shell cmd Arg2" type="uint8" unit="none" description = "Warning
level" value ="2" />
<a id="p102874"></a>    </Properties>
<a id="p102875"></a>  </ExeForm>
  
<div align="right">

<a id="p102877"></a>    <Item><br>
<a id="p102878"></a>      <Name> update date </Name><br>
<a id="p102879"></a>      <Value> Jun. 24, 2023 </Value><br>
<a id="p102880"></a>    </Item>

</div>

<a id="p102881"></a>    <Item>
<a id="p102882"></a>      <Name> additional info </Name>
<a id="p102883"></a>      <Value> added </Value>

<div align="center">

<a id="p102884"></a>    **</Item>**<br>
<a id="p102885"></a>  **</additionalInfo>**<br>
<a id="p102886"></a>**</ExecutableForm>**

</div>






<a id="p102887"></a>Приложение D
(справочное)

<a id="p102888"></a>КАК ИСПОЛЬЗОВАТЬ ИНФОРМАЦИОННЫЕ МОДЕЛИ

<a id="p102889"></a>Информационные модели модулей обеспечивают разные виды информации, которая может помочь проектировщикам, разработчикам или интеграторам при создании нового модуля или составного модуля. Часть этой информации может быть использована на ранней стадии создания, часть - на стадиях проектирования и разработки, а часть - на стадии эксплуатации.
<a id="p102890"></a>*Примечание* - ОИМ является абстрактной моделью, не предназначенной для непосредственной реализации. Пользователям необходимо использовать конкретные информационные модели программных модулей, аппаратных модулей и модулей с аппаратными и программными свойствами.

<div align="center">

<a id="p102891"></a>На [рисунке D.1](#p102893) представлены взаимосвязи между информацией о модуле и заинтересованными в ней лицами, когда информация о модуле представлена на основе общей информационной модели.

</div>


<a id="p102892"></a> ![4.3.10 Класс для исполняемой формы](https://i.bukva.ai/Sbr5guZu/img_12.png) 

<div align="center">

<a id="p102893"></a>Рисунок D.1 - Взаимосвязи между информацией о модуле<br>
и заинтересованными в ней лицами

</div>


<a id="p102894"></a>Информационные модели структурированы в виде нескольких субмоделей, как описано в [4.2](#p100285). Пользователи в первую очередь могут получить сведения об идентификаторах и общую информацию, которая включает описание, сведения об изготовителе, примеры, идентификатор, типы модулей и аппаратно-программные свойства модуля. Если начальная информация о модуле соответствует требованиям пользователей, то они могут ознакомиться с более подробной информацией о модуле с помощью информации, хранящейся во внутренних классах. Если необходимо, они могут разработать дополнительную информацию о модуле, включая его модификацию и расширение его функций или сервисов.
<a id="p102895"></a>В частности, интеграторы модулей, как пользователи, имеют возможность разрабатывать информацию для новых программных и аппаратных модулей, которые необходимы для построения нового сочетания модулей.
<a id="p102896"></a>Информация, содержащаяся в общей информационной модели, может быть использована на разных стадиях жизненного цикла модуля. В [таблицах D.1](#p102898) - [D.3](#p103016) представлена информация, предназначенная для использования на каждой из четырех стадий жизненного цикла: проектирование, разработка, эксплуатация и техническое обслуживание.

<div align="right">

<a id="p102897"></a>Таблица D.1

</div>



<table>
<colgroup><col width="25%"><col width="19%"><col width="19%"><col width="19%"><col width="19%"></colgroup>
<tr><td><a id="p102898"></a>Использование информации об аппаратных модулях</td><td>(включая составные модули)</td><td></td><td><a id="p102899"></a>Имя тега или внутреннего класса</td><td><a id="p102900"></a>Проектирование</td></tr>
<tr><td><a id="p102901"></a>Разработка</td><td><a id="p102902"></a>Эксплуатация</td><td><a id="p102903"></a>Техническое обслуживание</td><td><a id="p102904"></a>GenInfo</td><td><a id="p102905"></a>M</td></tr>
<tr><td><a id="p102906"></a>M</td><td><a id="p102907"></a>X</td><td><a id="p102908"></a>M</td><td><a id="p102909"></a>IDnType</td><td><a id="p102910"></a>M</td></tr>
<tr><td><a id="p102911"></a>M</td><td><a id="p102912"></a>X</td><td><a id="p102913"></a>M</td><td><a id="p102914"></a>Properties</td><td><a id="p102915"></a>M</td></tr>
<tr><td><a id="p102916"></a>M</td><td><a id="p102917"></a>X</td><td><a id="p102918"></a>M</td><td><a id="p102919"></a>IOVariables</td><td><a id="p102920"></a>X</td></tr>
<tr><td><a id="p102921"></a>X</td><td><a id="p102922"></a>X</td><td><a id="p102923"></a>X</td><td><a id="p102924"></a>Status</td><td><a id="p102925"></a>X</td></tr>
<tr><td><a id="p102926"></a>X</td><td><a id="p102927"></a>X</td><td><a id="p102928"></a>X</td><td><a id="p102929"></a>Services <sup><a href="#p102955">a</a></sup></td><td><a id="p102930"></a>O</td></tr>
<tr><td><a id="p102931"></a>O</td><td><a id="p102932"></a>X</td><td><a id="p102933"></a>O</td><td><a id="p102934"></a>Infra</td><td><a id="p102935"></a>M</td></tr>
<tr><td><a id="p102936"></a>M</td><td><a id="p102937"></a>M</td><td><a id="p102938"></a>M</td><td><a id="p102939"></a>SafeSecure</td><td><a id="p102940"></a>M</td></tr>
<tr><td><a id="p102941"></a>M</td><td><a id="p102942"></a>M</td><td><a id="p102943"></a>M</td><td><a id="p102944"></a>Modelling</td><td><a id="p102945"></a>O</td></tr>
<tr><td><a id="p102946"></a>O</td><td><a id="p102947"></a>X</td><td><a id="p102948"></a>O</td><td><a id="p102949"></a>ExecutableForm</td><td><a id="p102950"></a>O</td></tr>
<tr><td colspan="5"><a id="p102951"></a><a id="p102952"></a><a id="p102953"></a><a id="p102954"></a>O<br>X<br>O<br>M: обязательно, O: факультативно, X: не используется.</td></tr>
</table>



---

<a id="p102955"></a><sup>a</sup> Сервисы используют при объединении с другими модулями, примеры представлены в [таблицах 4.2](#p100226) и [4.3](#p100247).

<div align="right">

<a id="p102956"></a>Таблица D.2

</div>



<table>
<colgroup><col width="25%"><col width="19%"><col width="19%"><col width="19%"><col width="19%"></colgroup>
<tr><td><a id="p102957"></a>Использование информации о модулях с аппаратными</td><td>и программными свойствами (включая составные модули)</td><td></td><td><a id="p102958"></a>Имя тега или внутреннего класса</td><td><a id="p102959"></a>Проектирование</td></tr>
<tr><td><a id="p102960"></a>Разработка</td><td><a id="p102961"></a>Эксплуатация</td><td><a id="p102962"></a>Техническое обслуживание</td><td><a id="p102963"></a>GenInfo</td><td><a id="p102964"></a>M</td></tr>
<tr><td><a id="p102965"></a>M</td><td><a id="p102966"></a>O</td><td><a id="p102967"></a>M</td><td><a id="p102968"></a>IDnType</td><td><a id="p102969"></a>M</td></tr>
<tr><td><a id="p102970"></a>M</td><td><a id="p102971"></a>O</td><td><a id="p102972"></a>M</td><td><a id="p102973"></a>Properties</td><td><a id="p102974"></a>M</td></tr>
<tr><td><a id="p102975"></a>M</td><td><a id="p102976"></a>O</td><td><a id="p102977"></a>M</td><td><a id="p102978"></a>IOVariables</td><td><a id="p102979"></a>O</td></tr>
<tr><td><a id="p102980"></a>O</td><td><a id="p102981"></a>O</td><td><a id="p102982"></a>O</td><td><a id="p102983"></a>Status</td><td><a id="p102984"></a>O</td></tr>
<tr><td><a id="p102985"></a>O</td><td><a id="p102986"></a>O</td><td><a id="p102987"></a>O</td><td><a id="p102988"></a>Services <sup><a href="#p103014">a</a></sup></td><td><a id="p102989"></a>M</td></tr>
<tr><td><a id="p102990"></a>M</td><td><a id="p102991"></a>M</td><td><a id="p102992"></a>M</td><td><a id="p102993"></a>Infra</td><td><a id="p102994"></a>M</td></tr>
<tr><td><a id="p102995"></a>M</td><td><a id="p102996"></a>O</td><td><a id="p102997"></a>M</td><td><a id="p102998"></a>SafeSecure</td><td><a id="p102999"></a>M</td></tr>
<tr><td><a id="p103000"></a>M</td><td><a id="p103001"></a>O</td><td><a id="p103002"></a>M</td><td><a id="p103003"></a>Modelling</td><td><a id="p103004"></a>O</td></tr>
<tr><td><a id="p103005"></a>O</td><td><a id="p103006"></a>X</td><td><a id="p103007"></a>O</td><td><a id="p103008"></a>ExecutableForm</td><td><a id="p103009"></a>M</td></tr>
<tr><td colspan="5"><a id="p103010"></a><a id="p103011"></a><a id="p103012"></a><a id="p103013"></a>M<br>M<br>M<br>M: обязательно, O: факультативно, X: не используется.</td></tr>
</table>



---

<a id="p103014"></a><sup>a</sup> Сервисы используют при объединении с другими модулями, примеры представлены в [таблице 4.1](#p100083).

<div align="right">

<a id="p103015"></a>Таблица D.3

</div>


<div align="center">

<a id="p103016"></a>Использование информации о программных модулях и составных<br>
модулях, включая программные модули и/или модули<br>
с аппаратными и программными свойствами

</div>



<table>
<colgroup><col width="25%"><col width="19%"><col width="19%"><col width="19%"><col width="19%"></colgroup>
<tr><td><a id="p103017"></a>Имя тега или внутреннего класса</td><td><a id="p103018"></a>Проектирование</td><td><a id="p103019"></a>Разработка</td><td><a id="p103020"></a>Эксплуатация</td><td><a id="p103021"></a>Техническое обслуживание</td></tr>
<tr><td><a id="p103022"></a>GenInfo</td><td><a id="p103023"></a>M</td><td><a id="p103024"></a>M</td><td><a id="p103025"></a>O</td><td><a id="p103026"></a>M</td></tr>
<tr><td><a id="p103027"></a>IDnType</td><td><a id="p103028"></a>M</td><td><a id="p103029"></a>M</td><td><a id="p103030"></a>O</td><td><a id="p103031"></a>M</td></tr>
<tr><td><a id="p103032"></a>Properties</td><td><a id="p103033"></a>M</td><td><a id="p103034"></a>M</td><td><a id="p103035"></a>M</td><td><a id="p103036"></a>M</td></tr>
<tr><td><a id="p103037"></a>IOVariables</td><td><a id="p103038"></a>M</td><td><a id="p103039"></a>M</td><td><a id="p103040"></a>M</td><td><a id="p103041"></a>M</td></tr>
<tr><td><a id="p103042"></a>Status</td><td><a id="p103043"></a>M</td><td><a id="p103044"></a>M</td><td><a id="p103045"></a>M</td><td><a id="p103046"></a>M</td></tr>
<tr><td><a id="p103047"></a>Services</td><td><a id="p103048"></a>M</td><td><a id="p103049"></a>M</td><td><a id="p103050"></a>M</td><td><a id="p103051"></a>M</td></tr>
<tr><td><a id="p103052"></a>Infra</td><td><a id="p103053"></a>M</td><td><a id="p103054"></a>M</td><td><a id="p103055"></a>M</td><td><a id="p103056"></a>M</td></tr>
<tr><td><a id="p103057"></a>SafeSecure</td><td><a id="p103058"></a>M</td><td><a id="p103059"></a>M</td><td><a id="p103060"></a>M</td><td><a id="p103061"></a>M</td></tr>
<tr><td><a id="p103062"></a>Modelling</td><td><a id="p103063"></a>O</td><td><a id="p103064"></a>O</td><td><a id="p103065"></a>X</td><td><a id="p103066"></a>O</td></tr>
<tr><td><a id="p103067"></a>ExecutableForm</td><td><a id="p103068"></a>M</td><td><a id="p103069"></a>M</td><td><a id="p103070"></a>M</td><td><a id="p103071"></a>M</td></tr>
<tr><td colspan="5"><a id="p103072"></a>M: обязательно, O: факультативно, X: не используется.</td></tr>
</table>


<a id="p103073"></a>Информацию, предназначенную для стадий проектирования, разработки и технического обслуживания, используют главным образом пользователи при выполнении их задач.
<a id="p103074"></a>Информацию, предназначенную для стадии эксплуатации, используют главным образом автоматизированные процессы, включая информацию о других модулях в системе, состоящей из нескольких модулей. Информация, отмеченная как "обязательная" в [таблицах D.1](#p102898) - [D.3](#p103016), должна быть предоставлена разработчиком модуля. Автоматические средства, работающие с подобными моделями, должны отказаться от выполнения или отклонить модель как недопустимую, если в ней отсутствует информация, помеченная как "обязательная". Однако никаких дополнительных требований не предъявляется к пользователю модуля в отношении использования какой-либо информации из модели. Информация, помеченная как "не используется", не должна присутствовать в модели любого модуля соответствующего типа, однако в явном виде не определено, как автоматические средства должны действовать в данной ситуации.
<a id="p103075"></a>В [таблицах D.1](#p102898) - [D.3](#p103016) представлены информационные модели трех типов модулей: аппаратных модулей, модулей с аппаратными и программными свойствами и программных модулей соответственно. [Таблица D.3](#p103016) также соответствует составным модулям, состоящим из программных модулей и модулей с аппаратными и программными свойствами, причем последние могут включать и аппаратные модули.





<div align="right">

<a id="p103076"></a>Приложение E

</div>

(справочное)

<div align="center">

<a id="p103077"></a>**ФОРМАТ ПРЕДСТАВЛЕНИЯ КЛАССА**

</div>


<a id="p103078"></a>Классы определены в настоящем стандарте с использованием табличного формата, представленного в [таблице E.1](#p103080).

<div align="right">

<a id="p103079"></a>Таблица E.1

</div>


<div align="center">

<a id="p103080"></a>Табличный формат для представления класса

</div>



<table>
<colgroup><col width="24%"><col width="22%"><col width="23%"><col width="16%"><col width="16%"></colgroup>
<tr><td colspan="5"><a id="p103081"></a>Описание: &lt;Описание класса&gt;</td></tr>
<tr><td colspan="5"><a id="p103082"></a>Выведен из: &lt;Имя порождающего класса&gt; или &lt;не применимо&gt;</td></tr>
<tr><td colspan="5"><a id="p103083"></a>Атрибуты</td></tr>
<tr><td><a id="p103084"></a>&lt;Имя атрибута&gt;</td><td><a id="p103085"></a>&lt;Тип атрибута&gt;</td><td><a id="p103086"></a>Обязательный или факультативный</td><td><a id="p103087"></a>Число объектов</td><td><a id="p103088"></a>Описание</td></tr>
<tr><td><a id="p103089"></a>...</td><td><a id="p103090"></a>...</td><td><a id="p103091"></a>...</td><td><a id="p103092"></a>...</td><td><a id="p103093"></a>...</td></tr>
<tr><td colspan="5"><a id="p103094"></a>Методы</td></tr>
<tr><td><a id="p103095"></a>&lt;Имя метода с типами и именами параметров&gt;</td><td><a id="p103096"></a>&lt;Тип возвращаемого значения&gt;</td><td><a id="p103097"></a>Обязательный или факультативный</td><td colspan="2"><a id="p103098"></a>Описание</td></tr>
<tr><td><a id="p103099"></a>...</td><td><a id="p103100"></a>...</td><td><a id="p103101"></a>...</td><td colspan="2"><a id="p103102"></a>...</td></tr>
</table>


<div align="center">

<a id="p103103"></a>Атрибутами перечислимого типа данных являются перечислимые значения или константы.<br>
<a id="p103104"></a>Пример представления класса MyClass приведен в [таблице E.2](#p103106).

<a id="p103105"></a>Таблица E.2

<a id="p103106"></a>*Пример* представления класса MyClass

</div>



<table>
<colgroup><col width="20%"><col width="20%"><col width="5%"><col width="5%"><col width="50%"></colgroup>
<tr><td colspan="5"><a id="p103107"></a>Описание: Это пример.</td></tr>
<tr><td colspan="5"><a id="p103108"></a>Выведен из: ОИМ</td></tr>
<tr><td colspan="5"><a id="p103109"></a>Атрибуты</td></tr>
<tr><td><a id="p103110"></a>attribute_1</td><td><a id="p103111"></a>String</td><td><a id="p103112"></a>M</td><td><a id="p103113"></a>1</td><td><a id="p103114"></a>Данный атрибут использован для примера</td></tr>
<tr><td><a id="p103115"></a>attribute_2</td><td><a id="p103116"></a>UnlimitedNatural</td><td><a id="p103117"></a>M</td><td><a id="p103118"></a>1</td><td><a id="p103119"></a>Данный атрибут использован для примера</td></tr>
<tr><td><a id="p103120"></a>attribute_3</td><td><a id="p103121"></a>Real</td><td><a id="p103122"></a>O</td><td><a id="p103123"></a>N</td><td><a id="p103124"></a>Данный атрибут имеет тип списка из N объектов</td></tr>
<tr><td colspan="5"><a id="p103125"></a>Методы</td></tr>
<tr><td><a id="p103126"></a>method_1( )</td><td><a id="p103127"></a>void</td><td><a id="p103128"></a>M</td><td colspan="2"><a id="p103129"></a>Описание метода method_1</td></tr>
<tr><td><a id="p103130"></a>method_2 (paraName_1: Integer, paraName_2: String)</td><td><a id="p103131"></a>Integer</td><td><a id="p103132"></a>M</td><td colspan="2"><a id="p103133"></a>Описание метода method_2 с параметрами</td></tr>
<tr><td colspan="5"><a id="p103134"></a>Типы параметров методов отделены двоеточием ":".</td></tr>
</table>






<div align="center">

<a id="p103135"></a>**Приложение ДА**<br>
**(справочное)**

<a id="p103136"></a>**СВЕДЕНИЯ О СООТВЕТСТВИИ ССЫЛОЧНЫХ МЕЖДУНАРОДНЫХ СТАНДАРТОВ**<br>
**НАЦИОНАЛЬНЫМ И МЕЖГОСУДАРСТВЕННЫМ СТАНДАРТАМ**

</div>


<div align="right">

<a id="p103137"></a>Таблица ДА.1

</div>



<table>
<colgroup><col width="30%"><col width="12%"><col width="58%"></colgroup>
<tr><td><a id="p103138"></a>Обозначение ссылочного международного стандарта</td><td><a id="p103139"></a>Степень соответствия</td><td><a id="p103140"></a>Обозначение и наименование соответствующего национального стандарта</td></tr>
<tr><td><a id="p103141"></a>ISO 22166-1:2021</td><td><a id="p103142"></a>MOD</td><td><a id="p103143"></a><a href="https://bukva.ai/docs/printsipy-gost-r-60-2-0-1-2022">ГОСТ Р 60.2.0.1-2022</a> (ИСО 22166-1:2021 "Роботы и робототехнические устройства. Модульный принцип построения сервисных роботов. Часть 1. Общие требования"</td></tr>
<tr><td><a id="p103144"></a>IETF RFC 4122</td><td><a id="p103145"></a>-</td><td><a id="p103146"></a><a href="#p103150">&lt;*&gt;</a></td></tr>
<tr><td><a id="p103147"></a>IEEE/Open Group 1003.1-2017</td><td><a id="p103148"></a>-</td><td><a id="p103149"></a><a href="#p103150">&lt;*&gt;</a></td></tr>
<tr><td colspan="3"><a id="p103150"></a><a id="p103151"></a><a id="p103152"></a>&lt;*&gt; Соответствующий национальный стандарт отсутствует. До его принятия рекомендуется использовать перевод на русский язык данного международного стандарта.<br>Примечание - В настоящей таблице использовано следующее условное обозначение степени соответствия стандарта:<br>- MOD - модифицированный стандарт.</td></tr>
</table>







## <a id="p103153"></a>БИБЛИОГРАФИЯ



| <a id="p103154"></a>[1] | <a id="p103155"></a>ISO 11179-5:2015 | <a id="p103156"></a>Information technology - Metadata registries (MDR) - Part 5: Naming principles |
| --- | --- | --- |
| <a id="p103157"></a>[2] | <a id="p103158"></a>ISO 13482:2014 | <a id="p103159"></a>Robots and robotic devices - Safety requirements for personal care robots |
| <a id="p103160"></a>[3] | <a id="p103161"></a>ISO 13849-1:2023 | <a id="p103162"></a>Safety of machinery - Safety-related parts of control systems - Part 1: General principles for design |
| <a id="p103163"></a>[4] | <a id="p103164"></a>ISO/IEC 19505-1:2012 | <a id="p103165"></a>Information technology - Object Management Group Unified Modeling Language (OMG UML) - Part 1: Infrastructure |
| <a id="p103166"></a>[5] | <a id="p103167"></a>ISO/IEC 19516 | <a id="p103168"></a>Information technology - Object Management Group - Interface definition language (IDL) |
| <a id="p103169"></a>[6] | <a id="p103170"></a>IEC 60529 | <a id="p103171"></a>Degrees of protection provided by enclosures (IP Code) |
| <a id="p103172"></a>[7] | <a id="p103173"></a>IEC 62061 | <a id="p103174"></a>Safety of machinery - Functional safety of safety-related control systems |
| <a id="p103175"></a>[8] | <a id="p103176"></a>IEC 62443-4-2:2019 | <a id="p103177"></a>Security for industrial automation and control systems - Part 4-2: Technical security requirements for IACS components |







<table>
<colgroup><col width="50%"><col width="50%"></colgroup>
<tr><td><a id="p103178"></a>УДК 006.034:004.94:007.52:621.865.8:681.5</td><td><a id="p103179"></a>ОКС 25.040.30</td></tr>
<tr><td colspan="2"><a id="p103180"></a>Ключевые слова: роботы, робототехнические устройства, модульный принцип, сервисные роботы, модули, информационные модели</td></tr>
</table>




<a id="p103181"></a>

---
