agosty.ru25. МАШИНОСТРОЕНИЕ25.040. Промышленные автоматизированные системы

ГОСТ Р ИСО 15745-4-2010 Системы промышленной автоматизации и интеграция. Прикладная интеграционная среда открытых систем. Часть 4. Эталонное описание систем управления на основе стандарта Ethernet

Обозначение:
ГОСТ Р ИСО 15745-4-2010
Наименование:
Системы промышленной автоматизации и интеграция. Прикладная интеграционная среда открытых систем. Часть 4. Эталонное описание систем управления на основе стандарта Ethernet
Статус:
Заменен
Дата введения:
09.01.2011
Дата отмены:
-
Заменен на:
Код ОКС:
25.040.40

Текст ГОСТ Р ИСО 15745-4-2010 Системы промышленной автоматизации и интеграция. Прикладная интеграционная среда открытых систем. Часть 4. Эталонное описание систем управления на основе стандарта Ethernet


ГОСТ Р ИСО 15745-4-2010

Группа Т58


НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Системы промышленной автоматизации и интеграция

ПРИКЛАДНАЯ ИНТЕГРАЦИОННАЯ СРЕДА ОТКРЫТЫХ СИСТЕМ

Часть 4

Эталонное описание систем управления на основе стандарта Ethernet

Industrial automation systems and integration. Open systems application integration framework. Part 4. Reference description for Ethernet-based control systems

ОКС 25.040.40

Дата введения 2011-09-01


Предисловие

Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ "О техническом регулировании", а правила применения национальных стандартов Российской Федерации - ГОСТ Р 1.0-2004* "Стандартизация в Российской Федерации. Основные положения"

________________

* На территории Российской Федерации документ не действует. Действует ГОСТ Р 1.0-2012. - .

Сведения о стандарте

1 ПОДГОТОВЛЕН Научно-техническим центром ИНТЕК на основе собственного аутентичного перевода на русский язык международного стандарта, указанного в пункте 4

2 ВНЕСЕН Техническим комитетом по стандартизации ТК 100 "Стратегический и инновационный менеджмент"

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 21 декабря 2010 г. N 863-ст

4 Настоящий стандарт идентичен международному стандарту ИСО 15745-4:2003* "Системы промышленной автоматизации и интеграция. Прикладная интеграционная среда открытых систем. Часть 4. Эталонное описание систем управления на основе стандарта Ethernet" (ISO 15745-4:2003 "Industrial automation systems and integration - Open systems application integration framework. Part 4: Reference description for Ethernet-based control systems").

________________

* Доступ к международным и зарубежным документам, упомянутым в тексте, можно получить, обратившись в Службу поддержки пользователей. - .

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

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

Введение

Прикладная интеграционная среда (AIF) определяет элементы и правила, облегчающие:

- систематическую организацию и представление требований к интеграции прикладных систем с помощью моделей интеграции;

- разработку спецификаций интерфейсов в форме профилей интероперабельности прикладных систем (AIP), что позволяет выбрать как соответствующие ресурсы, так и документацию "встроенных" прикладных систем.

ИСО 15745-1 устанавливает общие элементы и правила описания интегрированных моделей и AIP вместе с их профилями компонент - профили процессов, профили обмена информацией и профили ресурсов. Содержание комплекса стандартов ИСО 15745 и структурный вид составных частей AIP показаны на рисунке 1 ИСО 15745-1:2003.

Настоящий стандарт расширяет исходную AIF, описанную в ИСО 15745-1, путем определения специальных технологических элементов и правил описания как профилей сетей коммуникаций, так и связанных с коммуникациями аспектов профилей устройств, специфичных для систем управления, основанных на Ethernet, ADS-net, FL-net и EtherNet/IP. Технология EtherNet/IP использует профиль МЭК 61158, который описан в МЭК 61784-1.

_______________

Ethernet использован в данном документе в качестве синонима ИСО/МЭК 8803-3.

ADS-net является торговой маркой, используемой для описания JIS-TR B0012 (сеть Автономной Децентрализованной Системы). Эта информация предоставлена для удобства пользователей ИСО 15745 и не означает одобрения со стороны ИСО торговой марки или какой-либо продукции. Для соответствия настоящему стандарту не требуется использования торговой марки ADS-net.

FL-net является торговой маркой для описания JEM 1479. Эта информация предоставлена для удобства пользователей ИСО 15745 и не означает одобрения со стороны ИСО торговой марки или какой-либо продукции. Для соответствия настоящему стандарту не требуется использования торговой марки FL-net.

EtherNet/IP является торговой маркой ControlNet International, Ltd и Ассоциации поставщиков открытой DeviceNet. Эта информация предоставлена для удобства пользователей ИСО 15745 и не означает одобрения со стороны ИСО торговой марки или какой-либо продукции. Для соответствия настоящему стандарту не требуется использование торговой марки ControlNet/IP™. Применение торговой марки Control Net/IP требует разрешения либо ControlNet International, Ltd, или Ассоциации поставщиков открытой DeviceNet.

В частности, настоящий стандарт описывает специфические для технологии шаблоны профилей для профилей устройств и профилей сетей коммуникаций. В рамках AIP вариант профиля устройства или вариант профиля сети коммуникаций является частью профиля ресурсов, определенного в ИСО 15745-1. Варианты файлов XML профиля устройства и профиля сети коммуникаций включены в вариант XML профиля ресурсов с использованием ProfileHandle_DataType согласно определениям в ИСО 15745-1:2003, пункт 7.2.5.

Установленные среды (AIF-ы), использующие элементы и правила стандарта ИСО 15745-1, могут быть легко интегрированы с профилями компонент, определенных с использованием элементов и правил, установленных в настоящем стандарте.

Стандарт ИСО 15745-4 был подготовлен техническим комитетом ИСО/ТК 184 "Системы промышленной автоматизации и интеграция", подкомитетом ПК 5 "Архитектура, коммуникации и структуры интеграции".

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

- часть 1. Общее эталонное описание;

- часть 2. Эталонное описание систем управления на основе стандарта ИСО 11898;

- часть 3. Эталонное описание систем управления на основе стандарта МЭК 61158;

- часть 4. Эталонное описание систем управления на основе стандарта Ethernet.

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

1 Область применения

Настоящий стандарт устанавливает описание технологических спецификаций для элементов и правил как профилей коммуникационной сети, так и связанных с коммуникациями аспектов профилей устройств, относящихся к системам управления на основе Ethernet.

Примечание - Общие элементы и правила описания моделей интеграции и профилей интероперабельности приложений с профилями их компонент (профили процессов, профили обмена информацией и профили ресурсов) установлены в ИСО 15745-1.

При описании среды интеграции приложений настоящий стандарт следует использовать совместно с ИСО 15745-1.

2 Нормативные ссылки

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

____________

* Таблицу соответствия национальных стандартов международным см. по ссылке. - .

ИСО 639-2:1998 Коды для представления названий языков. Часть 2. Трехбуквенный код (ISO 639-2:1998, Codes for the representation of names of languages - Part 2: Alpha-3 code)

ИСО 15745-1:2003 Системы промышленной автоматизации и интеграция. Прикладная среда интегрирования открытых систем. Часть 1. Общее эталонное описание (ISO 15745-1:2003, Industrial automation systems and integration - Open systems application integration framework-Part 1: Generic reference description)

ИСО/МЭК 7984-4:1989 Системы обработки информации. Взаимодействие открытых систем. Базовая эталонная модель. Часть 4. Структура управления (ISO/IEC 7498-4:1989, Information processing systems - Open Systems Interconnection - Basic Reference Model - Part 4: Management framework)

ИСО/МЭК 8802-3:2000 Информационные технологии. Телекоммуникации и информационный обмен между системами. Локальные и общегородские сети. Специальные требования. Часть 3. Метод доступа (CSMA/CD) с обнаружением столкновений и спецификации физического уровня (ISO/IEC 8802-3:2000, Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Specific requirements - Part 3: Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications)

ИСО/МЭК 10646-1:2000 Информационные технологии. Универсальный многооктетный набор кодированных знаков (UCS). Часть 1. Архитектура и основная многоязычная матрица (ISO/IEC 10646-1:2000, Information technology - Universal Multiple-Octet Coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane)

МЭК 61158 (все части) Передача цифровых данных для измерения и управления. Полевая шина для систем автоматического регулирования и управления технологическими процессами (IEC 61158 (all parts), Digital data communications for measurement and control - Fieldbus for use in industrial control systems)

МЭК 61784-1:2003 Цифровые передачи данных для измерения и управления. Часть 1. Профильные наборы для непрерывного и раздельного производства полевых шин для систем автоматического регулирования и управления технологическими процессами (IEC 61784-1:2003, Digital data communications for measurement and control - Part 1: Profile sets for continuous and discrete manufacturing relative to fieldbus use in industrial control systems)

IEEE Std 754-1985 (R1990) IEEE Standard for Binary Floating Point Arithmetic

JEM 1479:2002, Protocol specification - Factory automation control Link Network (FL-net)

JIS-TR B0012:2000 Autonomous Decentralized System Network (ADS-net)

REC-xml-20001006 Extensible Markup Language (XML) 1.0 Second Edition - W3C Recommendation 6 October 2000

REC-xmlschema-1-20010502 XML Schema Part 1: Structures - W3C Recommendation 02 May 2001

REC-xmlschema-2-20010502 XML Schema Part 2: Datatypes - W3C Recommendation 02 May 2001

RFC 768:1980 User Diagram Protocol - Internet Engineering Task Force (IETF), request for Comments (RFC)

RFC 791:1981 Internet Protocol - Internet Engineering Task Force (IETF), request for Comments (RFC)

RFC 793:1981 Transmission Control Protocol - Internet Engineering Task Force (IETF), request for Comments (RFC)

RFC 894:1984 A standard for the Transmission of IP Datagrams over Ethernet Network - Internet Engineering Task Force (IETF), request for Comments (RFC)

RFC 1738:1994 Uniform Resource Locators (URL) - Internet Engineering Task Force (IETF), Request for Comments (RFC)

RFC 1759:1995 Printer MIB - Internet Engineering Task Force (IETF), Request for Comments (RFC)

ИСО 639-1:2002 Коды для представления названий языков. Часть 1. Двухбуквенный код (ISO 639-1:2002, Codes for the representation of names of languages - Part 1: Alpha-2 code)

ИСО 15745-3:2003 Системы промышленной автоматизации и интеграция. Прикладная среда интегрирования открытых систем. Часть 3. Эталонное описание систем управления на основе стандарта МЭК 61158 (ISO 15745-3:2003, Industrial automation systems and integration - Open systems application integration framework - Part 3: Reference description for IEC 61158-based control systems)

ИСО/МЭК 11578:1996 Информационные технологии. Взаимосвязь открытых систем. Вызов удаленных процедур (ISO/IEC 11578:1996, Information technology - Open Systems Interconnection - Remote Procedure Call (RPC))

REC-svg-20030114 Scalable Vector Graphics (SVG) 1.1 Specification - W3C Recommendation 14 January 2003, available at <https://www.w3.org/TR/S VG/>

REC-xpath-1999111 XML Path Language (XPath) Version 1.0-W3C Recommendation 16 November 1999

RFC 1101:1989 DNS encoding of network names and other types - Internet Engineering Task Force (IETF), Request for Comments (RFC)

RFC 2131:1997 Dynamic Host Configuration Protocol - Internet Engineering Task Force (IETF), Request for Comments (RFC)

UML V1.4, OMG - Unified Modeling Language Specification (Version 1.4, September 2001)

3 Термины и определения

В настоящем стандарте применены термины по ИСО 15745-1.

Примечание - Терминология UML и обозначения, использованные в настоящем стандарте, описаны в ИСО 15745-1:2003 (приложение А).

4 Сокращения и обозначения

AIF

-

среда интеграции приложений (Application Integration Framework);

AIP

-

профиль интероперабельности приложений (Application Interoperability Profile);

ASCII

-

Американский стандартный код для обмена информацией (American Standard Code for Information Interchange);

ASE

-

элемент сервиса приложения (Common Industrial Protocol);

CIP

-

общий промышленный протокол (Common Industrial Protocol);

_______________

CIP является торговой маркой ControlNet International, Ltd. и Open DeviceNet Vendor Association, Inc. Эта информация предоставлена для удобства пользователей ИСО 15745 и не означает подтверждения со стороны ИСО держателя торговой марки или какой-либо из его продукции. Для соответствия настоящему стандарту не требуется использование торговой марки CIP. Применение торговой марки CIP требует разрешения ControlNet International, Ltd. и Open DeviceNet Vendor Association, Inc.

EDS

-

электронный бланк данных (Electronic Data Sheet);

IAS

-

системы промышленной автоматизации (Industrial Automation Systems);

ID

-

идентификатор (Identifier);

IP

-

Интернет-Протокол (см. RFC 791 и RFC 894) (Internet Protocol);

MAC

-

контроль доступа к носителю информации (Media Access Control);

MCG

-

группа многоадресной передачи (MultiCast Group);

OSI

-

взаимодействие открытых систем (Open System Interconnection);

TCD

-

код транзакции (Transaction CoDe);

TCP

-

протокол контроля передачи (см. RFC 793) (Transmission Control Protocol);

UDP

-

протокол датаграммы пользователя (см. RFC 768) (User Datagram Protocol);

UML

-

унифицированный язык моделирования (см. UML V1.4) (Unified Modeling Language);

XML

-

расширяемый язык разметки (см. REC-xml-20001006) (eXtensible Markup Language);

DAP

-

точка доступа к устройству (Device Access Point);

DNS

-

система имен доменов (Domain Name System (см. RFC 1101));

GSD

-

общее описание станции (Generic Station Description);

GSDML

-

язык разметки для общего описания станции (Generic Station Description Markup Language);

ID

-

идентификация (Identification);

IO

-

ввод/вывод (Input/Output);

PDU

-

блок данных протокола (Protocol Data Unit);

SVG

-

масштабируемая векторная графика (Scalable Vector Graphics (см. REC-svg-20030114));

URL

-

унифицированный указатель ресурса (Uniform Resource Locator);

UUID

-

универсальный уникальный идентификатор (Universally Unique Identifier (см. ISO/IEC 11578));

W3C

-

Консорциум всемирной сети (World Wide Web Consortium).

5 Специфические для технологии элементы и правила

5.1 Модели интеграции и интерфейсы IAS

Разработчик AIP должен подготовить модель интеграции, использующую описанные в ИСО 15745-1 правила, а также гарантировать, что основанные на Ethernet профили устройств и сетей коммуникаций (как соответствующие требованиям интерфейса, так и полученные на основе существующих устройств/сетей коммуникаций) включают в себя необходимые интерфейсы IAS. Интерфейсы IAS, включенные в профиль, должны быть указаны в разделе заголовков (см. ИСО 15745-1:2003, пункт 7.2.2).

Примечание - Интерфесы IAS описаны в ИСО 15745-1:2003 (приложение В).

5.2 Шаблоны профилей

5.2.1 Общие положения

Специфические для основанной на Ethernet технологии шаблоны профилей разрабатывают исходя из общих шаблонов профилей, установленных в ИСО 15745-1:2003 (раздел 7).

5.2.2 Содержание и синтаксис

Комплекс стандартов ИСО 15745 устанавливает шаблоны профилей, представляющие собой XML схемы (REC-xmlschema-1-20010502 и REC-xmlschema-2-20010502) и использующие общую родовую структуру. Профили устройств и сетей коммуникаций, основанные на этих шаблонах, как правило, включают следующее:

- информацию, необходимую для идентификации соединяемого устройства;

- описание данных устройства, которые могут быть доступны по сети;

- описание коммуникационных возможностей, поддерживаемых устройством;

- дополнительную относящуюся к поставщику информацию.

Однако в некоторых технологиях на основе Ethernet используют специальный ранее принятый синтаксис ASCII. В связи с этим для достижения обратной совместимости определений шаблонов в любых технологиях (см. приложения) включают все или необходимые следующие подмножества:

- шаблонов профилей сетей коммуникаций и устройств согласно определениям в ИСО 15745-1;

- шаблона ИСО 15745 для инкапсуляции файлов, содержащих ранее принятый синтаксис ASCII ("оболочку");

- ранее принятого синтаксиса ASCII.

5.2.3 Заголовок

Заголовок шаблона профиля, определенный в ИСО 15745-1:2003 (пункт 7.2.2), используют для специфических для технологии Ethernet шаблонов профилей. Каждая технология использует одно имя или более для идентификации технологии или ее частных компонент (см. таблицу 1). Выбранное имя должно сохраняться в атрибуте ProfileTechnology в разделе заголовка.

Таблица 1 - Имена ProfileTechnology

Имя ProfileTechnology

Технология

ADS-Net

ADS-Net

FL-net

FL-net

EtherNet/IP

EtherNet/IP

CIP

EtherNet/IP

EDS

EtherNet/IP

GSDML

PROFINET

5.3 Специфические для технологии профили

Структура специфического для технологии профиля сети коммуникаций и коммуникационные аспекты структуры профиля устройства, основанные на технологиях Ethernet, описаны в разделе 6. Рассматриваемые технологии включают в себя:

- ADS-net (см. 6.1);

- FL-net (см. 6.2);

- EtherNet/IP (см. 6.3);

- PROFINET (см. 6.4).

Соответствующие определения шаблона профиля приведены в приложениях А-D.

6 Профили устройств и сетей коммуникаций в системах управления, основанных на Ethernet

6.1 ADS-net

6.1.1 Профиль устройства

6.1.1.1 Общие положения

На рисунке 1 показана диаграмма класса профилей устройства ADS-net.


Рисунок 1 - Диаграмма класса профилей устройства ADS-net

Имеющиеся форматы профилей устройств ADS-net описаны в А.2 (приложение А).

XML схема, представляющая шаблон профиля устройства ADS-net, определена в А.2.3 (приложение А). Имя файла этой XML схемы должно быть "ADS-net_Device_Profile.xsd".

Примечание - Диаграмма класса профиль устройства ADS-net, показанная на рисунке 1, определяет основные классы. Эти классы далее развертываются; подробности приведены в приложении А.

XML схема, представляющая шаблон профиля устройства ADS-net, определена в А.2 (приложение А).

6.1.1.2 DeviceIdentity (идентификация устройства)

Класс DeviceIdentity содержит атрибуты, которые уникальным образом идентифицируют устройство, и поддерживает сервисы, позволяющие извлечь эту информацию из устройства.

Эти атрибуты предоставляют следующие данные:

- идентификация продавца (VendorName);

- идентификация устройства (код продукта, версия продукта, имя устройства).

6.1.1.3 DeviceManager (менеджер устройства)

Класс менеджер устройства содержит атрибуты и поддерживает сервисы, используемые для контроля и конфигурирования устройства.

Эти атрибуты предоставляют следующую информацию:

- DeviceState (статус устройства).

6.1.1.4 DeviceFunction (функция устройства)

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

Эти атрибуты предоставляют следующую информацию:

- номер поля данных (DFNO):

- номер логического узла (LNODENO);

- режим (MODE).

6.1.1.5 ApplicationProcess (прикладной процесс)

Класс ApplicationProcess содержит атрибуты и поддерживает сервисы, позволяющие осуществлять контроль коммуникаций между программами приложений, выполняемых в ADS-net.

Эти атрибуты предоставляют следующую информацию:

- список TCD производителей (Producer-TCD-List);

- список TCD потребителей (Consumer-TCD-List);

- приоритет (Priority).

6.1.2 Профиль сети коммуникаций

6.1.2.1 Общие положения

На рисунке 2 показана диаграмма класса профилей коммуникационной сети ADS-net.


Рисунок 2 - Диаграмма класса профилей сети коммуникаций ADS-net

Существующие форматы профилей сети коммуникаций ADS-net описаны в А.3 (приложение А).

XML схема, представляющая шаблон профиля сети коммуникаций ADS-net, определена в А.3.3 (приложение А). Имя файла этой XML схемы должно быть "ADS-net_CommNet_Profile.xsd".

6.1.2.2 ApplicationLayers (прикладные уровни)

6.1.2.2.1 Общие положения

Класс ApplicationLayers ADS-net представляет комбинированные профили трех верхних уровней OSI модели интеграции сети коммуникаций ADS-net. Он устанавливает поддерживаемые элементы сервиса приложения и их ассоциированные сервисы.

На рисунке 3 показано определение класса ApplicationLayers ADS-net.


Рисунок 3 - Диаграмма класса ApplicationLayers ADS-net

6.1.2.2.2 DataField (поле данных)

6.1.2.2.2.1 Общие положения

ADS-net определяет домен под именем "Data Field", в котором подсистемы разделяют информацию при пересылке сообщений между равноправными узлами. Каждый узловой компьютер передает сообщения на многоадресной основе в поле данных, к которому он относится, и другие узловые компьютеры, принадлежащие к тому же полю данных, могут получать эти данные автономно. Многие компьютеры, относящиеся к некоторому полю данных, посылают или принимают данные. Многоадресная группа (MCG), т.е. группа узловых компьютеров, относящихся к определенному полю данных, также вводится в целях локализации многоадресной передачи.

DataField определяет характеристики, используемые для контроля поля данных. Атрибуты DataField предоставляют, в частности, следующую информацию:

- номер поля данных (DFNO);

- таблицу многоадресной группы (MCG-Table).

6.1.2.2.2.2 AliveNotification (уведомление о рабочем состоянии)

На поле данных периодически передается сообщение "keep alive" ("в рабочем состоянии") для уведомления других узловых компьютеров о статусе узлового компьютера-отправителя.

AliveNotification определяет параметры, используемые для проверки статуса узловых компьютеров. Атрибуты AliveNotification предоставляют, в частности, следующую информацию:

- имя узла (ND-Name);

- перерыв работы (TM-Out).

6.1.2.2.2.3 ErrorNotification (уведомление об ошибке)

Когда на узловом компьютере произошел отказ, информация об отказе включается в сообщение "keep alive", передаваемое на поле данных во время цикла передачи сообщения "keep alive". Любой узловой компьютер, относящийся к тому же полю данных, может обнаружить состояние отказа (ошибки).

ErrorNotification определяет параметры, описывающие информацию об отказе. Атрибуты ErrorNotification предоставляют, в частности, следующую информацию:

- имя ошибки (ERR-Name);

- список ошибок (ERR-List).

6.1.2.2.3 MessageSelection (выбор сообщения)

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

MessageSelection определяет параметры, используемые для обмена сообщениями. Атрибуты MessageSelection предоставляют, в частности, следующую информацию:

- список TCD производителей (Producer-TCD-List);

- список TCD потребителей (Consumer-TCD-List);

- список MCG производителей (Producer-MCG-List);

- список MCG потребителей (Consumer-MCG-List).

6.1.2.3 TransportLayers (транспортные уровни)

6.1.2.3.1 Общие положения

Класс ADS-net TransportLayers представляет комбинированные профили для низших четырех уровней OSI модели интеграции сети коммуникаций. Класс TransportLayers подразделяется на один или более основанных на Ethernet объектов и объект UDP/IP.

6.1.2.3.2 EthernetObject (объект Ethernet)

EthernetObject определяет параметры Ethernet, используемые для реализации ADS-net. Атрибуты EthernetObject предоставляют следующую информацию:

- тип носителя информации (MediaType);

- скорость коммуникаций (CommRate);

- индикаторы (Indicators);

- адрес MAC (MACAddress);

- журнал ошибок (ErrorLog).

6.1.2.3.3 Объект UDP-IP (UDP-IPObject)

UDP-IPObject определяет параметры UDP/IP, используемые для реализации ADS-net. Атрибуты UDP-IPObject предоставляют следующую информацию:

- адрес IP (IPADDR);

- информацию о многоадресной группе (UDP-IP-MCGs);

- имя хоста (HostName);

- журнал ошибок (ErrorLog).

6.1.2.4 NetworkManagement (управление сетью)

6.1.2.4.1 Общие положения

Класс ADS-net NetworkManagement представляет конфигурацию сети и возможности регулировки характеристик модели интеграции коммуникационной сети ADS-net.

Этот класс далее подразделяется на несколько классов, как показано на рисунке 2.

6.1.2.4.2 Nm-Configuration (Nm-Конфигурация)

6.1.2.4.2.1 Общие положения

Nm-Configuration определяет параметры конфигурации сети, относящейся к ADS-net. Атрибуты Nm-Configuration предоставляют, в частности, следующую информацию:

- список номеров активных полей данных (ActiveDataFieldNoList);

- список номеров активных узлов (ActiveNodeNoList);

- список номеров активных многоадресных групп (ActiveMulticastGroupNoList).

6.1.2.4.2.2 Nm-MessageSelection (Выбор Nm-сообщения)

Nm-MessageSelection определяет параметры, используемые для управления выбором сообщений. Атрибуты Nm-MessageSelection предоставляют, в частности, следующую информацию:

- поддерживаемый список TCD активных производителей (ActiveProducerTCDSupportedList);

- поддерживаемый список TCD активных потребителей (ActiveConsumerTCDSupportedList).

6.1.2.4.2.3 Nm-Performance (Nm-Характеристики)

Nm-Performance определяет параметры, используемые для мониторинга характеристик. Атрибуты Nm-Performance предоставляют следующую информацию:

- число сообщений в процессе обмена (MessageTransaction).

6.1.2.4.3 Nm-Fault (Nm-Отказ)

Nm-Fault определяет параметры, используемые для мониторинга отказов. Атрибуты Nm-Fault предоставляют, в частности, следующую информацию:

- список аварийных узлов (FaultNodeList).

6.2 FL-net

6.2.1 Профиль устройства

6.2.1.1 Общие положения

На рисунке 4 показана диаграмма класса профилей устройства FL-net.


Рисунок 4 - Диаграмма класса профиля устройства FL-net

Существующие форматы профилей устройства FL-net описаны в В.1 (приложение В).

XML схема, представляющая шаблон профиля устройства FL-net, определена в В.1.5 (приложение В). Имя файла этой XML схемы должно быть "FL-net_Device_Profile.xsd".

Примечание 1 - Диаграмма класса профиля устройства FL-net, показанная на рисунке 4, определяет основные классы. Некоторые классы далее развертываются; подробности приведены в приложении В.

Примечание 2 - Все эти классы отображены в одной XML схеме, определенной в В.1.5 (приложение В).

6.2.1.2 Deviceldentity (идентификация устройства)

Класс Deviceldentity определен на рисунке 5, а подклассы описаны в таблице 2.


Рисунок 5 - Диаграмма класса FL-net Deviceldentity

Таблица 2 - Элементы объекта Deviceldentity

Элементы класса

Описание

VendorCode (Код продавца)

Код изготовителя или продавца устройства

ProductName (Имя продукта)

Специальное имя продукта продавца

ProductCode (Код продукта)

Уникальный идентификатор ID, идентифицирующий продукт. Формат определяется продавцом

ProductRevision (Версия продукта)

Номер версии продукта продавца

DeviceType (Тип продукта)

Конкретный тип устройства FL-net (см. приложение В, таблица В.1)

6.2.1.3 DeviceManager (менеджер устройства)

6.2.1.3.1 Общие положения

На рисунке 6 показана структура класса объекта DeviceManager.


Рисунок 6 - Диаграмма класса FL-net DeviceManager

6.2.1.3.2 DevicelDSpecRev (версия спецификации идентификатора устройства)

Объект DevicelDSpecRev должен описывать версию объекта идентификатора FL-net.

6.2.1.3.3 CommuServiceManager (менеджер коммуникационных услуг)

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

6.2.1.3.4 DeviceState (состояние устройства)

Объект DeviceState должен описывать состояния устройства.

6.2.1.4 DeviceFunction (функция устройства)

Объект DeviceFunction содержит атрибуты и поддерживает сервисы, обеспечивающие менеджмент (например, конфигурацию) функций устройства.

Примечание - Класс функций устройства в ИСО 15745-4 не определен.

6.2.1.5 ApplicationProcess (прикладной процесс)

Объект ApplicationProcess содержит атрибуты и поддерживает сервисы, соответствующие требованиям приложения.

Эти атрибуты предоставляют, в частности, следующую информацию:

- название завода (PlantName).

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

6.2.2 Профиль сети коммуникаций

6.2.2.1 Общие положения

На рисунке 7 показана диаграмма профилей коммуникации сети FL-net.


Рисунок 7 - Диаграмма класса профилей коммуникационной сети FL-net

Существующие форматы профилей коммуникационной сети FL-net описаны в В.2 (приложение В).

XML схема, представляющая шаблон профилей коммуникационной сети FL-net, определена в В.2.4.5 (приложение В). Имя файла этой XML схемы должно быть "FL-net_CommNet_Profile.xsd".

6.2.2.2 ApplicationLayers (прикладные уровни)

6.2.2.2.1 Общие положения

Класс FL-net ApplicationLayers представляет комбинированные профили верхних трех уровней OSI модели интеграции сети коммуникаций FL-net. Он устанавливает поддерживаемые элементы сервиса приложения и ассоциированные с ними сервисы.

Далее этот класс делится на несколько классов, как показано на рисунке 7.

Примечание - Объект ApplicationLayers полностью определен в JEM 1479:2002.

6.2.2.2.2 ComMemorylnterface (интерфейс коммуникативной памяти)

Объект ComMemorylnterface определяет характеристики, связанные с общим интерфейсом памяти. Элементы объекта ComMemorylnterface определены в В.2.2.1 (приложение В).

6.2.2.2.3 MessageService (сервис сообщений)

Объект MessageService определяет характеристики, ассоцированные с сервисами сообщений устройства. Элементы объекта MessageService определены в В.2.2.2 (приложение В).

6.2.2.2.4 ErrorNotification (уведомление об ошибке)

Объект ErrorNotification определяет характеристики, ассоцированные с видами ошибок, относящимися к сети и устройству. Элементы объекта ErrorNotification определены в В.2.2.3 (приложение В).

6.2.2.3 TransportLayers (транспортные уровни)

6.2.2.3.1 Общие положения

Класс FL-net TransportLayers представляет комбинированные профили четырех нижних уровней OSI модели интеграции сети коммуникаций FL-net.

Этот класс далее подразделяется на несколько классов, как показано на рисунке 7.

6.2.2.3.2 EthernetBasedObject (объект на основе Ethernet)

Объект EthernetBasedObject определяет характеристики, связанные с физическим уровнем FL-net. Элементы объекта EthernetBasedObject определены в В.2.3.1 (приложение В).

6.2.2.3.3 UDP-IPObject (объект UDP-IP)

Объект UDP-IPObject определяет характеристики, связанные с конфигурацией и мониторингом канала передачи данных. Элементы объекта UDP-IPObject определены в В.2.3.2 (приложение В).

6.2.2.4 NetworkManagement (управление сетью)

6.2.2.4.1 Общие положения

Класс FL-net NetworkManagement представляет средства наладки характеристик и конфигурации сети в модели интеграции сети коммуникаций FL-net.

Этот класс далее подразделяется на несколько классов, как показано на рисунке 7.

Примечание - Объект NetworkManagement полностью определен в JEM 1479:2002.

6.2.2.4.2 Configuration (конфигурация)

Объект Configuration определяет характеристики, связанные с первоначальной установкой и модификацией конфигурации. Элементы объекта Configuration определены в В.2.4.1 (приложение В).

6.2.2.4.3 ServiceSelection (выбор сервиса)

Объект ServiceSelection определяет характеристики, связанные с сервисами сети коммуникаций. Элементы объекта ServiceSelection определены в В.2.4.2. (приложение В).

6.2.2.4.4 PerformanceManager (менеджер исполнения)

Объект PerformanceManager определяет параметры, связанные с характеристиками обмена данными в сети. Элементы объекта PerformanceManager определены в В.2.4.3 (приложение В).

6.2.2.4.5 FaultManager (менеджер отказов)

Объект FaultManager определяет характеристики, связанные с возможностями отказов в FL-net. Элементы объекта FaultManager определены в В.2.4.4 (приложение В).

6.3 EtherNet/IP

6.3.1 Профиль устройства

6.3.1.1 Общие положения

На рисунке 8 показана диаграмма класса профиль устройства EtherNet/IP.


Рисунок 8 - Диаграмма класса профиля устройства EtherNet/IP

Существующие форматы профиля устройства EtherNet/IP описаны в С.1 (приложение С).

XML схема, представляющая шаблон профиля устройства EtherNet/IP, определена в С.2.1.3.3 (приложение С). Имя файла этой схемы XML должно быть "2CIP_Device_Profile.xsd".

Примечание - Диаграмма класса профиля устройства EtherNet/IP, показанная на рисунке 8, определяет основные классы. Некоторые классы далее развертываются; подробности приведены в приложении С.

XML схема, представляющая инкапсуляцию ранее принятого EtherNet/IP EDS в шаблон профиля устройства ИСО 15745, определена в С.2.2.2 (приложение С). Имя файла этой XML схемы должно быть "EDS_Device_Profile_wrapper.xsd". Синтаксис ASCII ранее принятого EDS описан в С.4 (приложение С).

6.3.1.2 Device identity (идентификация устройства)

Класс Deviceldentity содержит атрибуты, которые уникальным образом идентифицируют устройство, и поддерживает сервисы, которые позволяют извлекать эту информацию из устройства.

Эти атрибуты предоставляют, в частности, следующую информацию:

- идентификация изготовителя (имя и код идентификации);

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

- классификация устройства.

Сервисы позволяют выполнять:

- перезагрузку устройства;

- получение атрибутов DeviceManager.

6.3.1.3 Device manager (менеджер устройства)

Класс DeviceManager содержит атрибуты и поддерживает сервисы, используемые для мониторинга и конфигурации устройства.

Эти атрибуты предоставляют, в частности, следующую информацию:

- версию объекта идентичности EtherNet/IP;

- информацию о структуре устройства (для устройств, интегрированных в модульную систему).

Сервисы позволяют выполнять:

- перезагрузку устройства;

- извлечение атрибутов DeviceManager.

6.3.1.4 Device function (функция устройства)

Класс DeviceFunction содержит атрибуты и поддерживает сервисы, позволяющие осуществлять управление функциями устройства (например, конфигурацией).

Пример - Примерами объектов DeviceFunction являются Overload (перегрузка), Presence Sensing (обнаружение присутствия), Analogue Input (аналоговый ввод), Discrete Output (дискретный вывод).

Примечание - Класс DeviceFunction не определен в ИСО 15745-4.

6.3.1.5 Application process (прикладной процесс)

На рисунке 9 показана структура класса ApplicationProcess.


Рисунок 9 - Диаграмма класса EtherNet/IP ApplicationProcess

Класс Assembly объединяет несколько элементов данных процесса приложения в один блок в целях оптимизации коммуникаций. Класс Parameter предоставляет стандартный интерфейс для доступа к отдельным элементам данных процесса приложения. Класс ParameterGroup определяет группы связанных параметров для специальных целей (например, конфигурации, мониторинга).

Класс Assembly и класс Parameter поддерживают атрибуты и сервисы на уровнях как класса, так и варианта.

Классы Assem, Param и Group определяют отдельные варианты основных классов.

Примечание - Класс Assembly и класс Parameter соответствуют объекту EtherNet/IP Assembly и объектам Parameter. Объект Assembly полностью определен в МЭК 61158-5:2003 и МЭК 61158-6:2003 (тип 2).

6.3.2 Профиль коммуникационной сети

6.3.2.1 Общие положения

На рисунке 10 показана диаграмма класса профилей сети коммуникаций EtherNet/IP.


Рисунок 10 - Диаграмма класса профилей коммуникационной сети EtherNet/IP

Существующие форматы профилей коммуникационной сети EtherNet/IP описаны в С.3 (приложение С).

XML схема, представляющая шаблон профиля коммуникационной сети EtherNet/IP, определена в С.3.1.3 (приложение С). Имя файла этой XML схемы должно быть "ENet_CommNet_Profile.xsd".

XML схема, представляющая инкапсуляцию ранее принятого EtherNet/IP EDS в шаблон профиля коммуникационной сети ИСО 15745, определена в С.3.2.2 (приложение С). Имя файла этой XML схемы должно быть "EDS_CommNet_Profile_wrapper.xsd". Синтаксис ASCII ранее принятого EDS описан в С.4 (приложение С).

6.3.2.2 Application Layers (прикладные уровни)

Класс EtherNet/IP ApplicationLayers представляет комбинированные профили трех верхних уровней OSI модели интеграции сети коммуникаций EtherNet/IP.

Этот класс далее подразделяется на несколько классов, как показано на рисунке 10:

- ConnectionManager (менеджер связи) определяет характеристики, относящиеся к соединениям и управлению соединениями;

- MessageRouter (маршрутизатор сообщений) определяет характеристики, связанные с маршрутизацией внутренних сообщений в устройстве.

Примечание - Соответствующий объект Connection Manager и объект Message Router полностью определены в МЭК 61158-5:2003 и МЭК 61158-6:2003 (тип 2).

6.3.2.3 Transport Layers (транспортные уровни)

Класс EtherNet/IP TransportLayers представляет комбинированные профили для низших четырех уровней OSI модели интеграции сети коммуникаций EtherNet/IP.

Этот класс далее подразделяется на несколько классов, как показано на рисунке 10:

- ENPhysicalLayer (Физический уровень EN) определяет характеристики физического уровня;

- EtherNetlPLinkObject определяет характеристики, связанные с конфигурацией и мониторингом канала передачи данных;

- TCPIPInterfaceObject определяет характеристики, связанные с конфигурацией и мониторингом TCP/IP;

- EncapsulationProtocol (протокол инкапсуляции) определяет характеристики, связанные с инкапсуляцией сообщений приложения в TCP/IP;

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

Примечание - Соответствующий EtherNet Link объект связи и TCP/IP объект интерфейса полностью описаны в МЭК 61158-4:2003 (тип 2), опции Encapsulation Protocol (протокол инкапсуляции) подробно изложены в МЭК 61158-6:2003 (тип 2).

6.3.2.4 Network management (управление сетью)

Класс EtherNet/IP NetworkManagement представляет средства наладки конфигурации и характеристик сети в модели интеграции сети коммуникаций EtherNet/IP.

Этот класс далее подразделяется на несколько классов, как показано на рисунке 10:

- NM-EtherNetlPLinkObject, NM-TCPIPInterfaceObject, NM-ConnectionManager и NM-MessageRouter определяют характеристики, связанные с менеджментом класса соответствующих объектов.

6.4 PROFINET

6.4.1 Общие положения

Примечание - Дополнительно к терминологии и нотации UML в ИСО 15745-1:2003 (приложение А) используют нотацию кратности (UML V1.4). Кратность атрибута выражается в квадратных скобках.

6.4.2 Профиль устройства

6.4.2.1 Общие положения

На рисунке 11 показана диаграмма класса профилей устройства GSDML.


Рисунок 11 - Диаграмма класса профилей устройства GSDML

XML схема, представляющая шаблон профиля устройства GSDML, определена в D.5.2 (приложение D). Заголовок профиля для профиля устройства GSDML должен иметь следующее содержание:

<ProfileHeader>

<Profileldentification>PROFINET Device Profile</Profileldentification>

<ProfileRevision>1.00</ProfileRevision>

<ProfileName>Device Profile for PROFINET Devices</ProfileName>

<ProfileSource>PROFIBUS Nutzerorganisation e. V. (PNO)</ProfileSource>

<ProfileClasslD>Device</ProfileClasslD>

<ISO15745Reference>

<ISO15745Part>4</ISO15745Part>

<ISO15745Edition>1</ISO15745Edition>

<ProfileTechnology>GSDML</ProfileTechnology>

</ISO15745Reference>

</ProfileHeader>

6.4.2.2 Device Identity (идентификация устройства)

На рисунке 12 показана диаграмма класса Deviceldentity (идентификация устройства).


Рисунок 12 - Диаграмма класса Deviceldentity

Атрибуты и семантика классов определены в D.4.2 (приложение D).

6.4.2.3 Device Function (функция устройства)

На рисунке 13 показана диаграмма класса DeviceFunction (функция устройства).


Рисунок 13 - Диаграмма класса DeviceFunction

Атрибуты и семантика классов определены в D.4.3.

6.4.2.4 Application Process (прикладной процесс)

6.4.2.4.1 Общие положения

На рисунке 14 приведено описание структуры элемента ApplicationProcess. Классы UML без поля атрибутов подробно определены на отдельной диаграмме. Атрибуты и семантика классов определены в D.4.4 (приложение D).

_______________

Подробные сведения см. в субдиаграммах.

Рисунок 14 - Диаграмма класса ApplicationProcess PROFINET

6.4.2.4.2 DeviceAccessPointltem (точечный элемент доступа к устройству)

На рисунке 15 приведено описание структуры элемента DeviceAccessPointltem. Классы UML без поля атрибута подробно поясняются на отдельной диаграмме. Атрибуты и семантика классов определены в D.4.5 (приложение D).


Рисунок 15 - Диаграмма класса DeviceAccessPointltem

6.4.2.4.3 VirtualSubmoduleltem (виртуальный элемент подмодуля)

На рисунке 16 приведено описание элемента VirtualSubmoduleltem. Классы UML без поля атрибута подробно поясняются на отдельной диаграмме. Атрибуты и семантика этих классов определены в D.4.6 (приложение D).


Рисунок 16 - Диаграмма класса PROFINET VirtualSubmoduleltem

6.4.2.4.4 RecordDataList (список записи данных)

На рисунке 17 дано описание диаграммы элемента RecordDataList. Атрибуты и семантика классов определены в D.4.7 (приложение D).


Рисунок 17 - Диаграмма класса PROFINET RecordDataList

6.4.2.4.5 Modulelnfo (информационный модуль)

На рисунке 18 дано описание диаграммы элемента Modulelnfo. Атрибуты и семантика этих классов определены в D.4.8 (приложение D).


Рисунок 18 - Диаграмма класса PROFINET Modulelnfo

6.4.3 Профиль сети коммуникаций

На рисунке 19 показана диаграмма класса профилей коммуникационной сети GSDML.


Рисунок 19 - Диаграмма класса профилей коммуникационной сети PROFINET

Примечание - В GSDML классы профилей коммуникационной сети пустые. Причина этого состоит в том, что варианты характеристик коммуникаций устройства PROFINET не предоставлены.

XML схема, представляющая шаблон профиля коммуникационной сети GSDML, определена в D.5.3 (приложение D).

Приложение А
(обязательное)


Шаблоны профиля ADS-net

А.1 Общие положения

Верхние уровни ADS-net основаны на сети Автономной децентрализованной системы (ADS-net). Этот протокол моделирует все коммуникации и обмен сообщениями, имеющими место при взаимосвязях производитель - потребитель.

ADS-net предоставляет доступ ко всем данным конфигурации, информации о статусе и параметрам рабочего цикла узла и/или системы.

А.2 Описание шаблона профиля устройства ADS-net

А.2.1 Общие положения

Файлы XML профиля устройства должны соответствовать XML схеме профиля устройства, установленной в А.2.3.

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

А.2.2 Семантика элементов схемы XML

А.2.2.1 Deviceldentity (идентичностьустройства)

Семантика элемента Deviceldentity определена в таблице А.1. Эти элементы используются в среде рабочего цикла ADS-net в целях предоставления информации для полной идентификации устройства.

Таблица А.1 - Элементы Deviceldentity

Элементы

Описание и семантика

VendorName

Имя продавца устройства

ProductCode

Идентификатор устройства в продукте продавца (максимум шесть знаков)

ProductRevision

Номер версии продукта

DeviceName

Имя устройства

Более подробные данные о семантике каждого атрибута содержатся в [4].

А.2.2.2 DeviceManager (менеджер устройства)

Семантика субэлементов DeviceManager-Attributes элемента DeviceManager определена в таблице А.2. Эти субэлементы используются в среде рабочего цикла ADS-net.

Таблица А.2 - Элементы DeviceManager-Attributes

Элементы

Описание и семантика

DeviceState (устройство состояние)

Состояние устройства

А.2.2.3 DeviceFunction (функция устройства)

Семантика субэлементов DeviceFunction-Attributes элемента DeviceFunction определена в таблице А.3. Эти субэлементы используются в среде рабочего цикла ADS-net.

Таблица А.3 - Элементы DeviceFunction-Attributes

Элементы

Описание и семантика

DFNO

Номер поля данных (десятичная нотация: 0-255)

LNODENO

Номер логического узла (десятичная нотация: 0-4095)

MODE

Режим сообщения (десятичная нотация: 0-1)
0 = режим онлайн
1 = тестовый режим

Более подробные сведения о семантике каждого атрибута см. в [4].

А.2.2.4 ApplicationProcess (прикладной процесс)

Семантика субэлементов DeviceProcess-Attributes элемента DeviceProcess определена в таблице А.4.

Таблица А.4 - Элементы DeviceProcess-Attributes

Элементы

Описание и семантика

Producer-TCD-List (Список TCD производителей)

Список TCD (Десятичная нотация: 1-65534) для посылаемых из процесса приложения сообщений

Consumer-TCD-List (Список TCD потребителей)

Список TCD (Десятичная нотация: 1-65534) для получаемых процессом приложения сообщений

Приоритет

Приоритет (Десятичная нотация: 0-7), ассоциированный с сообщением, как для посылаемых, так и для получаемых сообщений

Более подробные сведения о семантике каждого атрибута см. в [4].

А.2.3 ADS-net_Device_Profile.xsd

<?xml version="1.0" encoding="UTF-8" ?>

<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">

<xsd:annotation>

<xsd:documentation>

Device Profile - ISO 15745 Part 4

</xsd:documentation>

</xsd:annotation>

<xsd:simpleType name="ProfileClasslD_DataType">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="AIP"/>

<xsd:enumeration value="Process"/>

<xsd:enumeration value="lnformationExchange"/>

<xsd:enumeration value="Resource"/>

<xsd:enumeration value="Device"/>

<xsd:enumeration value="CommunicationNetwork"/>

<xsd:enumeration value="Equipment"/>

<xsd:enumeration value="Human"/>

<xsd:enumeration value="Material"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="ISO15745Reference_DataType">

<xsd:sequence>

<xsd:element name="ISO15745Part" type="xsd:positivelnteger"/>

<xsd:element name="ISO15745Edition" type="xsd:positivelnteger"/>

<xsd:element name="ProfileTechnology" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<xsd:simpleType name="IASInterface_DataType">

<xsd:union>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="CSI"/>

<xsd:enumeration value="HCI"/>

<xsd:enumeration value="ISI"/>

<xsd:enumeration value="API"/>

<xsd:enumeration value="CMI"/>

<xsd:enumeration value="ESI"/>

<xsd:enumeration value="FSI"/>

<xsd:enumeration value="MTI"/>

<xsd:enumeration value="SEI"/>

<xsd:enumeration value="USI"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="4"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:union>

</xsd:simpleType>

<xsd:element name="ISO15745Profile">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ProfileHeader"/>

<xsd:element ref="ProfileBody"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:annotation>

<xsd:documentation>

ADS-net Device Profile Template

</xsd:documentation>

</xsd:annotation>

<xsd:element name="ProfileHeader">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Profileldentification" type="xsd:string"/>

<xsd:element name="ProfileRevision" type="xsd:string"/>

<xsd:element name="ProfileName" type="xsd:string"/>

<xsd:element name="ProfileSource" type="xsd:string"/>

<xsd:element name="ProfileClasslD" type="ProfileClasslD_DataType"/>

<xsd:element name="ProfileDate" type="xsd:date" minOccurs="0"/>

<xsd:element name="Additionallnformation" type="xsd:anyURI" minOccurs="0"

maxOccurs="unbounded"/>

<xsd:element name="ISO15745Reference" type="ISO15745Reference_DataType"/>

<xsd:element name="IASInterfaceType" type="IASInterface_DataType" minOccurs="0"

maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ProfileBody">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Deviceldentity" minOccurs="1" maxOccurs="1"/>

<xsd:element ref="DeviceManager" minOccurs="0" maxOccurs="1"/>

<xsd:element ref="DeviceFunction" minOccurs="1" maxOccurs="unbounded"/>

<xsd:element ref="ApplicationProcess" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Deviceldentity">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="VendorName" type="xsd:string"/>

<xsd:element name="ProductCode" type="xsd:string"/>

<xsd:element name="ProductRevision" type="xsd:string"/>

<xsd:element name="DeviceName" minOccurs="0" maxOccurs="1" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceManager">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="DeviceManager-Attributes" minOccurs="0" maxOccurs="1"/>

<xsd:element ref="DeviceManager-Operations" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceManager-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="DeviceState" minOccurs="1" maxOccurs="1" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceManager-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_Single" minOccurs="0" maxOccurs="1"/>

<xsd:element name="Set_Attribute_Single" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceFunction">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="DeviceFunction-Attributes" minOccurs="1" maxOccurs="1"/>

<xsd:element ref="DeviceFunction-Operations" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceFunction-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="DFNO" minOccurs="1" maxOccurs="unbounded" type="xsd:unsignedByte"/>
<xsd:element name="LNODENO" minOccurs="1" maxOccurs="unbounded" type="xsd:unsignedShort"/>
<xsd:element name="MODE" minOccurs="1" maxOccurs="1" type="xsd:unsignedShort"/>
</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceFunction-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0" maxOccurs="1"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0" maxOccurs="1"/>

<xsd:element name="Get-Attribute-All" minOccurs="0" maxOccurs="1"/>

<xsd:element name="Set-Attribute-All" minOccurs="0" maxOccurs="1"/>

<xsd:element name="Create" minOccurs="0" maxOccurs="1"/>

<xsd:element name="Delete" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ApplicationProcess">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ApplicationProcess-Attributes" minOccurs="0" maxOccurs="1"/>

<xsd:element ref="ApplicationProcess-Operations" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ApplicationProcess-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Producer-TCD-List" minOccurs="1" maxOccurs="unbounded" type="xsd:string"/>
<xsd:element name="Consumer-TCD-List" minOccurs="1" maxOccurs="unbounded" type="xsd:string"/>
<xsd:element name="Priority" minOccurs="1" maxOccurs="unbounded" type="xsd:unsignedShort"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ApplicationProcess-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0" maxOccurs="1"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0" maxOccurs="1"/>

<xsd:element name="Get-Attribute-All" minOccurs="0" maxOccurs="1"/>

<xsd:element name="Set-Attribute-All" minOccurs="0" maxOccurs="1"/>

<xsd:element name="Create" minOccurs="0" maxOccurs="1"/>

<xsd:element name="Delete" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

A.3 Описание шаблона профиля коммуникационной сети ADS-net

А.3.1 Общие положения

Файлы XML профиля коммуникационной сети должны соответствовать XML схеме профиля коммуникационной сети, установленной в А.3.3.

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

А.3.2 Семантика элементов XML схемы

А.3.2.1 ApplicationLayers (прикладные уровни)

А.3.2.1.1 DataField (поле данных)

А.3.2.1.1.1 Общие положения

Данный элемент устанавливает поддерживаемые атрибуты варианта, используемые для контроля поля данных.

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

Поле данных имеет уникальную идентификацию с помощью относящегося к нему Номера Поля Данных (Data Field Number - DFNO). Уникальное значение DFNO присвоено всем полям данных в системе в диапазоне от 1 до 255. DFNO, равное 0, зарезервировано для коммуникаций внутри текущего узла.

Семантика субэлементов DataField-Attributes элемента DataField определена в таблице А.5.

Таблица А.5 - Элементы DataField-Attributes

Элементы

Описание и семантика

DFNO

Номер поля данных (Десятичная нотация: 0-255)

NETADDR

Адрес подсети, описанный в стандартном формате с точкой Internet как "ХХХ.ХХХ.ХХХ.ХХХ"

BCADDR

Широковещательный адрес, описанный в стандартном формате с точкой Internet

NETMASK

Маска подсети, описанная в стандартном формате с точкой Internet

MCG-Table

Список номеров MCG (десятичная нотация: 0-255), использованных в этом поле данных

Более подробные сведения о семантике каждого атрибута см. в [4].

А.3.2.1.1.2 AliveNotification (уведомление о существовании)

Данный элемент устанавливает атрибуты, используемые для проверки нормального состояния узлового компьютера.

Семантика элемента AliveNotification определена в таблице А.6.

Таблица А.6 - Элементы AliveNotification

Элементы

Описание и семантика

ND-Name

Имя узла (строка символов ASCII длиной до девяти символов)

OS-Name

Имя устройства поставщика (строка символов ASCII длиной до девяти символов). Рекомендуется придерживаться следующих руководящих указаний:

"BN_MN"

BN: Идентификатор продавца (2 символа)

MN: Определенное продавцом имя устройства или OS

TM-Out

Интервал задержки в секундах после сигнала о рабочем состоянии при мониторинге рабочего состояния. Интервал времени, проходящий перед признанием узла не работающим после прекращения передачи им сигналов о рабочем состоянии

Chg-Time

Время момента изменения состояния узла. Рекомендуется использовать время по Гринвичу (прошедшее время в секундах от 0 часов 0 минут 0 секунд, 1970). Устанавливают 0, если время по Гринвичу использовать нельзя

IPADDR

Адрес IP LAN, описанный в стандартном формате Internet с точкой

Более подробные сведения о семантике каждого атрибута см. в [4].

А.3.2.1.1.3 ErrorNotification (уведомление об ошибке)

Данный элемент устанавливает атрибуты, используемые для проверки ошибок узлового компьютера.

Семантика элемента ErrorNotification определена в таблице А.7.

Таблица А.7 - Элементы ErrorNotification

Элементы

Описание и семантика

CNT-Mode-Alive

Число модулей, сообщающих, что они в рабочем состоянии

Mod-Alive-List

Список статуса всех модулей (в рабочем или нерабочем состоянии)

CNT-Error

Число сообщенных ошибок

ERR-Name

Имя ошибки

ERR-List

Список номеров ошибок

Mod-NO

Номер модуля (1 или выше)

ERR-NO

Номер ошибки, которая уникально идентифицирована именем ERR

CNT-Option

Длина опциональной информации

Option-List

Список опциональной информации

Более подробные сведения о семантике каждого атрибута см. в [4].

А.3.2.1.2 MessageSelection (выбор сообщений)

Данный элемент устанавливает атрибуты, используемые при обмене сообщениями в ADS-net.

Сообщение идентифицируется уникальным образом Кодом Транзакции (TCD). Передатчик посылает сообщение, ассоциированное с некоторым TCD, используя многоадресную передачу на группу, принимающую передачу и имеющую установленное поле данных. Узлы в указанной группе приема широковещательной передачи принимают только сообщения, имеющие определенный TCD.

Семантика субэлементов MessageSelection-Attributes элемента MessageSelection определена в таблице А.8.

Таблица А.8 - Элементы MessageSelection-Attributes

Элементы

Описание и семантика

Producer-TCD-List (Список TCD производителей)

Список TCD (Десятичная нотация: 1-65534) для посылаемых сообщений

Consumer-TCD-List (Список TCD потребителей)

Список TCD (Десятичная нотация: 1-65534) для получаемых сообщений

Producer- MCG-List (Список MCG производителей)

Список MCG (Десятичная нотация: 0-255), используемых для посылки сообщений

Producer- MCG-List (Список MCG потребителей)

Список MCG (Десятичная нотация: 0-255), используемых для приема сообщений

Более подробные сведения о семантике каждого описания см. в [4].

А.3.2.2 TransportLayers (транспортные уровни)

А.3.2.2.1 EthernetObject (объект Ethernet)

Данный элемент устанавливает атрибуты Ethernet, используемые в ADS-net.

EthernetObject определяет атрибуты, связанные с конфигурацией и мониторингом канала передачи данных.

Семантика субэлементов EthernetObject-Attributes элемента EthernetObject определена в таблице А.9.

Таблица А.9 - Элементы EthernetObject-Attributes

Элементы

Описание и семантика

MediaType

Тип среды Ethernet (например, 10Base-T, 100Base-TX)

CommRate

Скорость коммуникаций, зависящая от среды Ethernet (например, 100 Mbps - 100 мегабит в секунду)

Индикаторы

Состояние среды Ethernet

MACAddress

MAC адрес

ErrorLog

Список ошибок, возникших на физическом уровне или уровне канала передачи данных

А.3.2.2.2 UDP-IPObject

Данный элемент устанавливает атрибуты UDP/IP, используемые в ADS-net.

Семантика субэлементов UDP-IPObject-Attributes элемента UDP-IPObject определена в таблице А.10.

Таблица А.10 - Элементы UDP-IPObject-Attributes

Элементы

Описание и семантика

IPADDR

IP адрес, описанный в стандартном формате Internet с точкой

UDP-IP-MCGs

Семантика этого элемента установлена в таблице А.11

HostName

Имя хоста устройства, соответствующее адресу IP

ErrorLog

Список ошибок, возникших на транспортном уровне

Таблица А.11- Элементы UDP-IP-MCG

Элементы

Описание и семантика

Mcg Number

Номер идентификации многоадресной группы (Десятичная нотация: 0-255)

PortNumber

Номер порта, используемого многоадресной группой

Более подробные сведения о семантике каждого атрибута см. в [4].

А.3.2.3 NetworkManagement (управление сетью)

А.3.2.3.1 Nm-Configuration (конфигурация)

Данный элемент устанавливает атрибуты, используемые для конфигурации сети.

Семантика субэлементов Nm-Configuration-Attributes элемента Nm-Configuration определена в таблице А.12.

Таблица А.12 - Элементы Nm-Configuration-Attributes

Элементы

Описание и семантика

ActiveDataFieldNoList

Список номеров полей данных (Десятичная нотация: 0-255), используемых в целевой системе

ActiveNodeNoList

Список номеров узлов (Десятичная нотация: 0-4095), работающих в целевой системе. Данный список создан путем сбора информации сообщений о рабочем состоянии

Active Multicast Group NoList List

Список номеров MCG (Десятичная нотация: 0-255), используемых в целевой системе

Более подробные сведения о семантике каждого описания см. в [4].

А.3.2.3.2 Nm-MessageSelection (выбор Nm-Сообщений)

Данный элемент устанавливает атрибуты, используемые при выборе сообщений.

Семантика субэлементов Nm-MessageSelection-Attributes элемента Nm-MessageSelection определена в таблице А.13.

Таблица А.13 - Элементы Nm-MessageSelection-Attributes

Элементы

Описание и семантика

ActiveProducerTCDSupportedList

Список TCD (Десятичная нотация: 1-65534) для любого посылаемого сообщения

ActiveConsumerTCDSupportedList

Список TCD (Десятичная нотация: 1-65534) для любого получаемого сообщения

ActiveProducerMulticastGroupSupportedList

Список номеров MCG (Десятичная нотация: 0-255), используемых для передачи любого сообщения

ActiveConsumerMulticastGroupSupportedList

Список номеров MCG (Десятичная нотация: 0-255), используемых для приема любого сообщения

Более подробные сведения о семантике каждого описания см. в [4].

А.3.2.3.3 Nm-Performance (Nm-исполнение)

Данный элемент устанавливает атрибуты, используемые для мониторинга характеристик.

Семантика субэлементов Nm-Performance-Attributes элемента Nm-Performance определена в таблице А.14.

Таблица А.14 - Элементы Nm-Performance-Attributes

Элементы

Описание и семантика

MessageTransaction

Число сообщений, посланных и полученных устройством

А.3.2.3.4 Nm-Fault

Данный элемент определяет атрибуты, используемые для мониторинга отказов.

Семантика субэлементов Nm-Fault-Attributes элемента Nm-Fault определена в таблице А.15.

Таблица А.15 - Элементы Nm-Fault-Attributes

Элементы

Описание и семантика

FaultNodeList

Список номеров узлов (Десятичная нотация: 0-4095), диагностика которых показывает отказ

Not ificationOf Fault Program

Идентификатор аварийного модуля, обнаруженного сообщением о его состоянии

Более подробные сведения о семантике каждого описания см. в [4].

А.3.3 ADS-net CommNet Profile.xsd

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">

<xsd:annotation>

<xsd:documentation>

Communication Profile - ISO 15745 Part 4

</xsd:documentation>

</xsd:annotation>

<xsd:simpleType name="ProfileClasslD_DataType">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="AIP"/>

<xsd:enumeration value="Process"/>

<xsd:enumeration value="lnformationExchange"/>

<xsd:enumeration value="Resource"/>

<xsd:enumeration value="Device"/>

<xsd:enumeration value="CommunicationNetwork"/>

<xsd:enumeration value="Equipment"/>

<xsd:enumeration value="Human"/>

<xsd:enumeration value="Material"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="ISO15745Reference_DataType">

<xsd:sequence>

<xsd:element name="ISO15745Part" type="xsd:positivelnteger"/>

<xsd:element name="ISO15745Edition" type="xsd:positivelnteger"/>

<xsd:element name="ProfileTechnology" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<xsd:simpleType name="IASInterface_DataType">

<xsd:union>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="CSI"/>

<xsd:enumeration value="HCI"/>

<xsd:enumeration value="ISI"/>

<xsd:enumeration value="API"/>

<xsd:enumeration value="CMI"/>

<xsd:enumeration value="ESI"/>

<xsd:enumeration value="FSI"/>

<xsd:enumeration value="MTI"/>

<xsd:enumeration value="SEI"/>

<xsd:enumeration value="USI"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="4"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:union>

</xsd:simpleType>

<xsd:element name="ISO15745Profile">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ProfileHeader"/>

<xsd:element ref="ProfileBody"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:annotation>

<xsd:documentation>

ADS-net Communication Network Profile Template

</xsd:documentation>

</xsd:annotation>

<xsd:element name="ProfileHeader">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Profileldentification" type="xsd:string"/>

<xsd:element name="ProfileRevision" type="xsd:string"/>

<xsd:element name="ProfileName" type="xsd:string"/>

<xsd:element name="ProfileSource" type="xsd:string"/>

<xsd:element name="ProfileClasslD" type="ProfileClasslD_DataType"/>

<xsd:element name="ProfileDate" type="xsd:date" minOccurs="0"/>

<xsd:element name="Additionallnformation" type="xsd:anyURI" minOccurs="0"

maxOccurs="unbounded"/>

<xsd:element name="ISO15745Reference" type="ISO15745Reference_DataType"/>

<xsd:element name="IASInterfaceType" type="IASInterface_DataType" minOccurs="0"

maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ProfileBody">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ApplicationLayers"/>

<xsd:element ref="TransportLayers"/>

<xsd:element ref="NetworkManagement" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ApplicationLayers">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="DataField" maxOccurs="unbounded"/>

<xsd:element ref="MessageSelection" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DataField">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="DataField-Attributes"/>

<xsd:element ref="DataField-Operations" minOccurs="0"/>

<xsd:element ref="AliveNotification"/>

<xsd:element ref="ErrorNotification" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DataField-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="DFNO" type="xsd:unsignedByte"/>

<xsd:element name="NETADDR" type="xsd:unsignedlnt"/>

<xsd:element name="BCADDR" type="xsd:unsignedlnt"/>

<xsd:element name="NETMASK" type="xsd:unsignedlnt"/>

<xsd:element name="MCG-Table" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DataField-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_Single" minOccurs="0"/>

<xsd:element name="Set_Attribute_Single" minOccurs="0"/>

<xsd:element name="Get_Attribute_All" minOccurs="0"/>

<xsd:element name="Set_Attribute_All" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="AliveNotification">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ND-Name" type="xsd:string"/>

<xsd:element name="OS-Name" type="xsd:string"/>

<xsd:element name="TM-Out" type="xsd:nonNegativelnteger"/>

<xsd:element name="Chg-Time" type="xsd:nonNegativelnteger"/>

<xsd:element name="IPADDR" type="xsd:unsignedlnt"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ErrorNotification">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="CNT-Mode-Alive" type="xsd:string"/>

<xsd:element name="Mod-Alive-List" type="xsd:string" minOccurs="0"/>

<xsd:element name="CNT-Error" type="xsd:string"/>

<xsd:element name="ERR-Name" type="xsd:string" minOccurs="0"/>

<xsd:element name="ERR-List" type="xsd:string" minOccurs="0"/>

<xsd:element name="Mod-NO" type="xsd:string" minOccurs="0"/>

<xsd:element name="ERR-NO" type="xsd:string" minOccurs="0"/>

<xsd:element name="CNT-Option" type="xsd:string"/>

<xsd:element name="Option-List" type="xsd:string" minOccurs=0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="MessageSelection">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="MessageSelection-Attributes"/>

<xsd:element ref="MessageSelection-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="MessageSelection-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Producer-TCD-List" type="xsd:string" minOccurs="0"/>

<xsd:element name="Consumer-TCD-List" type="xsd:string" minOccurs="0"/>

<xsd:element name="Producer-MCG-List" type="xsd:string" minOccurs="0"/>

<xsd:element name="Consumer-MCG-List" type="xsd:string" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="MessageSelection-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_Single" minOccurs="0"/>

<xsd:element name="Set_Attribute_Single" minOccurs="0"/>

<xsd:element name="Get_Attribute_All" minOccurs="0"/>

<xsd:element name="Set_Attribute_All" minOccurs="0"/>

<xsd:element name="Create" minOccurs="0"/>

<xsd:element name="Delete" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="TransportLayers">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="EthernetObject" maxOccurs="unbounded"/>

<xsd:element ref="UDP-IPObject" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="EthernetObject">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="EthernetObject-Attributes"/>

<xsd:element ref="EthernetObject-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="EthernetObject-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="MediaType" type="xsd:string"/>

<xsd:element name="CommRate" type="xsd:unsignedlnt"/>

<xsd:element name="lndicators" type="xsd:string" minOccurs="0"/>

<xsd:element name="MACAddress" type="xsd:string"/>

<xsd:element name="ErrorLog" type="xsd:string" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="EthernetObject-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0"/>

<xsd:element name="Get_Attribute_All" minOccurs="0"/>

<xsd:element name="Set_Attribute_All" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="UDP-IPObject">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="UDP-IPObject-Attributes"/>

<xsd:element ref="UDP-IPObject-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="UDP-IPObject-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="IPADDR" type="xsd:string"/>

<xsd:element ref="UDP-IP-MCGs" maxOccurs="unbounded"/>

<xsd:element name="HostName" type="xsd:string"/>

<xsd:element name="ErrorLog" type="xsd:string" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="UDP-IP-MCGs">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="McgNumber" type="xsd:unsignedShort"/>

<xsd:element name="PortNumber" type="xsd:unsignedShort"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="UDP-IPObject-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0"/>

<xsd:element name="Get_Attribute_All" minOccurs="0"/>

<xsd:element name="Set_Attribute_All" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="NetworkManagement">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Nm-Configuration" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element ref="Nm-MessageSelection" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element ref="Nm-Performance" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element ref="Nm-Fault" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-Configuration">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Nm-Configuration-Attributes"/>

<xsd:element ref="Nm-Configuration-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-Configuration-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ActiveDataFieldNoList" type="xsd:string"/>

<xsd:element name="ActiveNodeNoList" type="xsd:string"/>

<xsd:element name="ActiveMulticastGroupNoList" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-Configuration-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0"/>

<xsd:element name="Get_Attribute_All" minOccurs="0"/>

<xsd:element name="Set_Attribute_All" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-MessageSelection">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Nm-MessageSelection-Attributes"/>

<xsd:element ref="Nm-MessageSelection-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-MessageSelection-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ActiveProducerTCDSupportedList" type="xsd:string"/>

<xsd:element name="ActiveConsumerTCDSupportedList" type="xsd:string"/>

<xsd:element name="ActiveProducerMulticastGroupSupportedList" type="xsd:string"/>

<xsd:element name="ActiveConsumerMulticastGroupSupportedList" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-MessageSelection-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_Single" minOccurs="0"/>

<xsd:element name="Set_Attribute_Single" minOccurs="0"/>

<xsd:element name="Get_Attribute_All" minOccurs="0"/>

<xsd:element name="Set_Attribute_All" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-Performance">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Nm-Performance-Attributes" minOccurs="0"/>

<xsd:element ref="Nm-Performance-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-Performance-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="MessageTransaction" type="xsd:unsignedlnt"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-Performance-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-Fault">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Nm-Fault-Attributes" minOccurs="0"/>

<xsd:element ref="Nm-Fault-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-Fault-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="FaultNodeList" type="xsd:string"/>

<xsd:element name="NotificationOfFaultProgram" type="xsd:string" minOccurs="0"

maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Nm-Fault-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0"/>

<xsd:element name="Get-Attributes-All" minOccurs="0"/>

<xsd:element name="Set-Attributes-All" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

Приложение В
(обязательное)


Шаблоны профиля FL-net

В.1 Описание шаблона профиля устройства

В.1.1 Общие положения

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

В.1.2 Deviceldentity (идентичность устройства)

Данный элемент определяет атрибуты и операции объекта Deviceldentity совместно с дополнительной информацией для полной идентификации устройства.

В таблице В.1 дано описание элементов объекта DeviceType (устройство тип).

Таблица В.1 - Элементы объекта DeviceType

Элементы

Описание и семантика

PC

Программируемый контроллер

NC

Цифровой блок управления

RC

Контроллер робота

Компьютер

Персональный компьютер, компьютер пульта, рабочая станция

SP-*xxx*

ххх - установленное поставщиком имя устройства

В.1.3 DeviceManager (менеджер устройства)

В.1.3.1 Общие положения

Данный элемент определяет атрибуты и операции объекта DeviceManager совместно с дополнительной информацией по управлению устройством.

В.1.3.2 Объект DevicelDSpecRev (версия спецификации идентификатора устройства)

В таблице В.2 дано описание элементов объекта DeviceldSpecRev согласно определению в 6.2.1.3.2.

Таблица В.2 - Элементы объекта DevicelDSpecRev

Элементы

Описание и семантика

COMVER

Версия Deviceldentity

Дата

Дата определения идентичности

В.1.3.3 Объект CommuServiceManager (менеджер коммуникационного сервиса)

В таблице В.З дано описание элементов объекта CommuServiceManager согласно определению в 6.2.1.3.3.

Таблица В.3 - Элементы объекта CommuServiceManager

Элементы

Описание и семантика

DM-NodeNumber

Номер узла, используемого в FL-net

DM-ComMemory1Datafield

Поле данных общей области памяти 1, используемое в устройстве

DM-ComMemory2Datafield

Поле данных общей области памяти 2, используемое в устройстве

DM-MessageServiceList

Список сервисов сообщений, используемых в устройстве

В.1.3.4 Объект DeviceState (состояние устройства)

В таблице В.4 дано описание элементов объекта DeviceState согласно определению в 6.2.1.3.4.

Таблица В.4 - Элементы объекта DeviceState

Элементы

Описание и семантика

RUN-STOP

Индикация состояния устройства (работа или останов)

Нормальное

Индикация нормального состояния устройства

Предупреждение

Индикация аварийного состояния устройства - устройство еще работает

Тревога

Индикация аварийного состояния устройства - устройство не работает

InRingState

Индикация состояния коммуникаций устройства

В.1.4 ApplicationProcess (прикладной процесс)

Данный элемент устанавливает атрибуты и операции объекта ApplicationProcess совместно с дополнительными элементами.

В таблице В.5 дано описание элементов объекта PlantName согласно определению в 6.2.1.5.

Таблица В.5 - Элементы объекта PlantName

Элементы

Описание и семантика

PlantName (УстановкаИмя)

Имя установки или процесса

В.1.5 Схемы XML шаблона профиля устройства FL-net

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">

<xsd:annotation>

<xsd:documentation>

Device Profile - ISO 15745 Part 4

</xsd:documentation>

</xsd:annotation>

<xsd:simpleType name="ProfileClasslD_DataType">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="AIP"/>

<xsd:enumeration value="Process"/>

<xsd:enumeration value="lnformationExchange"/>

<xsd:enumeration value="Resource"/>

<xsd:enumeration value="Device"/>

<xsd:enumeration value="CommunicationNetwork"/>

<xsd:enumeration value="Equipment"/>

<xsd:enumeration value="Human"/>

<xsd:enumeration value="Material"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="ISO15745Reference_DataType">

<xsd:sequence>

<xsd:element name="ISO15745Part" type="xsd:positivelnteger"/>

<xsd:element name="ISO15745Edition" type="xsd:positivelnteger"/>

<xsd:element name="ProfileTechnology" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<xsd:simpleType name="IASInterface_DataType">

<xsd:union>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="CSI"/>

<xsd:enumeration value="HCI"/>

<xsd:enumeration value="ISI"/>

<xsd:enumeration value="API"/>

<xsd:enumeration value="CMI"/>

<xsd:enumeration value="ESI"/>

<xsd:enumeration value="FSI"/>

<xsd:enumeration value="MTI"/>

<xsd:enumeration value="SEI"/>

<xsd:enumeration value="USI"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="4"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:union>

</xsd:simpleType>

<xsd.element name="ISO15745Profile">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ProfileHeader"/>

<xsd:element ref="ProfileBody"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:annotation>

<xsd:documentation>

FL-net Device Profile Template

</xsd:documentation>

</xsd:annotation>

<xsd:element name="ProfileHeader">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Profileldentification" type="xsd:string"/>

<xsd:element name="ProfileRevision" type="xsd:string"/>

<xsd:element name="ProfileName" type="xsd:string"/>

<xsd:element name="ProfileSource" type="xsd:string"/>

<xsd:element name="ProfileClasslD" type="ProfileClasslD_DataType"/>

<xsd:element name="ProfileDate" type="xsd:date" minOccurs="0"/>

<xsd:element name="Additionallnformation" type="xsd:anyURI" minOccurs="0"

maxOccurs="unbounded"/>

<xsd:element name="ISO15745Reference" type="ISO15745Reference_DataType"/>

<xsd:element name="IASInterfaceType" type="IASInterface_DataType" minOccurs="0"

maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ProfileBody">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Deviceldentity" minOccurs="0"/>

<xsd:element ref="DeviceManager" minOccurs="0"/>

<xsd:element ref="DeviceFunction" maxOccurs="unbounded"/>

<xsd:element ref="ApplicationProcess" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Deviceldentity">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Deviceldentity-Attributes"/>

<xsd:element ref="Deviceldentity-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Deviceldentity-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="VendorCode" type="xsd:string"/>

<xsd:element name="ProductName" type="xsd:string"/>

<xsd:element name="ProductCode" type="xsd:string"/>

<xsd:element name="ProductRevision" type="xsd:string"/>

<xsd:element name="DeviceType" minOccurs="0">

<xsd:simpleType>

<xsd:union>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="PC"/>

<xsd:enumeration value="NC"/>

<xsd:enumeration value="RC"/>

<xsd:enumeration value="computer"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:pattern value="SP-\*.{0,32}\*"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:union>

</xsd:simpleType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Deviceldentity-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All" minOccurs="0"/>

<xsd:element name="Get_Attribute_Single" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceManager">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="DeviceManager-Attributes""/>

<xsd:element ref="DeviceManager-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceManager-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="DevicelDSpecRev">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="COMVER">

<xsd:simpleType>

<xsd:restriction base="xsd:integer">

<xsd:minlnclusive value="1"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="Date" type="xsd:date"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="CommuServiceManager">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="DM-NodeNumber">

<xsd:simpleType>

<xsd:restriction base="xsd:integer">

<xsd:minlnclusive value="1"/>

<xsd:maxlnclusive value="255"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="DM-ComMemory1Datafield">

<xsd:simpleType>

<xsd:restriction base="xsd:integer">

<xsd:minlnclusive value="0"/>

<xsd:maxlnclusive value="63"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="DM-ComMemory2Datafield">

<xsd:simpleType>

<xsd:restriction base="xsd:integer">

<xsd:minlnclusive value="0"/>

<xsd:maxlnclusive value="8195"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="DM-MessageServiceList" type="xsd:unsignedShort"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceState" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="RUN-STOP" type="xsd:boolean"/>

<xsd:element name="Normal" type="xsd:boolean"/>

<xsd:element name="Warning" type="xsd:boolean"/>

<xsd:element name="Alarm" type="xsd:boolean"/>

<xsd:element name="lnRingState" type="xsd:boolean"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceManager-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All" minOccurs="0"/>

<xsd:element name="Get_Attribute_Single" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceFunction">

<xsd:complexType>

<xsd:sequence>

<xsd:any namespace="##any"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ApplicationProcess">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ApplicationProcess-Attributes"/>

<xsd:element ref="ApplicationProcess-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ApplicationProcess-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="PlantName" type="xsd:string"/>

<xsd:choice maxOccurs="unbounded">

<xsd:element ref="externalelement" minOccurs="0" maxOccurs="unbounded"/>

</xsd:choice>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="externalelement">

<xsd:complexType>

<xsd:sequence>

<xsd:any namespace="##any"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ApplicationProcess-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0"/>

<xsd:element name="Get-Attribute-All" minOccurs="0"/>

<xsd:element name="Set-Attribute-All" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

B.2 Описание шаблона профиля коммуникационной сети FL-net

В.2.1 Общие положения

XML схема шаблона профиля коммуникационной сети, определенная в В.2.4.5, содержит отображение диаграмм класса профиля коммуникационной сети, показанных на рисунке 7. Помимо отображенных классов и атрибутов она содержит дополнительные элементы, позволяющие дать полное описание требований и возможностей коммуникационной сети.

В.2.2 ApplicationLayers (интерфейс коммуникационной памяти)

В.2.2.1 Объект ComMemorylnterface

В таблице В.6 дано описание элементов объекта ComMemorylnterface согласно определениям в 6.2.2.2.2. Субэлементы ComMemory1AllocationList и ComMemory2AllocationList предоставляют информацию о распределении памяти. Их атрибуты описаны в таблице В.7.

Таблица В.6 - Элементы ComMemorylnterface

Элементы

Описание и семантика

Com Memory1AllocationList

Распределение общей области памяти 1

ComMemory2AllocationList

Распределение общей области памяти 2

NodeNumber

Номер узла

DataAvailability

Информация о наличии данных в общей памяти

DataConsistency

Совместимость данных

Cyclic

Циклический обмен данными

Таблица В.7 - Атрибуты ComMemoryAllocationList

Элементы

Описание и семантика

Размер

Размер данных

FieldNumber

Номер поля данных в общей памяти

В.2.2.2 Объект MessageService (сервис сообщений)

В таблице В.8 дано описание элементов объекта MessageService согласно определению в 6.2.2.2.3.

Таблица В.8 - Элементы объекта MessageService

Элементы

Описание и семантика

NodeNumberList

Список номеров узлов

TCDList

Список TCD

В.2.2.3 Объект ErrorNotification (уведомление об ошибке)

В таблице В.9 дано описание элементов объекта ErrorNotification согласно определению в 6.2.2.2.4.

Таблица В.9 - Элементы объекта ErrorNotification

Элементы

Описание и семантика

ActiveNodeNumberList

Список номеров активных узлов

NodeStatus

Статус узла

В.2.3 TransportLayers (объект на основе Ethernet)

В.2.3.1 Объект EthernetBasedObject

В таблице В.10 дано описание элементов объекта EthernetBasedObject согласно определению в 6.2.2.3.2.

Таблица В.10 - Элементы объекта EthernetBasedObject

Элементы

Описание и семантика

MediaType

Тип среды Ethernet (например, 10Base-5, 10Base-T, 100Base-TX)

CommRate

Скорость коммуникаций, зависящая от среды Ethernet (например, 10 мегабит в секунду, 100 мегабит в секунду)

Индикаторы

Состояние среды Ethernet

MACAddress

Адрес MAC

ErrorLog

Список ошибок, возникших на физическом уровне и уровне канала передачи данных

В.2.3.2 Объект UDP-IPObject

В таблице В.11 дано описание элементов объекта UDP-IPObject согласно определению в 6.2.2.3.3.

Таблица В.11 - Элементы объекта UDP-IPObject

Элементы

Описание и семантика

IPADDR

Адрес IP

PortNumber

Номер порта, определенный в FL-net

HostName

Имя хоста устройства, соответствующее адресу IP

ErrorLog

Список ошибок, возникших на транспортном уровне

В.2.4 NetworkManagement (управление сетью)

В.2.4.1 Объект Configuration (конфигурация)

В таблице В.12 дано описание элементов объекта Configuration согласно определению в 6.2.2.4.2.

Таблица В.12 - Элементы объекта Configuration

Элементы

Описание и семантика

SpecificationMajorversion

Большая версия спецификации FL-net

SpecificationMinorversion

Малая версия спецификации FL-net

InRingManager

Объект Manager, ассоциированный с участием сети

ConnectionManager

Объект Manager, ассоциированный с соединением

Индикаторы

Состояние FL-net

В.2.4.2 Объект ServiceSelection (выбор сервиса)

В таблице В.13 дано описание элементов объекта ServiceSelection согласно определению в 6.2.2.4.3.

Таблица В.13 - Элементы объекта ServiceSelection

Элементы

Описание и семантика

NM-MessageTypeList

Список типов сообщений

NM-TCDList

Список TCD для посылаемых сообщений

NM-VendorCodeList

Список кодов продавца

В.2.4.3 Объект PerformanceManager (менеджер исполнения)

В таблице В.14 дано описание элементов объекта PerformanceManager согласно определению в 6.2.2.4.4.

Таблица В.14 - Элементы объекта PerformanceManager

Элементы

Описание и семантика

TokenMonitoringTime

Максимальное время перед тем, как следующий узел воспроизведет маркер

TokenHoldTime

Максимальное время, в течение которого узлу разрешается удерживать маркер

MinimumFramelnterval

Минимальный интервал времени между передачей фреймов

RefreshCycleAvailableTime

Время восстановления цикла

MessageTransmissionSchedule

Расписание передачи сообщений

В.2.4.4 Объект FaultManager (менеджер ошибок)

В таблице В.15 дано описание элементов объекта FaultManager согласно определению в 6.2.2.4.5.

Таблица В.15 - Элементы объекта FaultManager

Элементы

Описание и семантика

FaultNodeList

Список номеров активных узлов

ErrorName

Имя ошибки, которое присвоено каждой ошибке

ErrorLog

Список ошибок, возникших в коммуникациях FL-net

ComMemoryAreaOverlap

Информация о перекрытии распределения общей памяти

NodeNurnber*Conflict

Информация о конфликтах номеров узлов

_______________

* Текст документа соответствует оригиналу. - .

В.2.4.5 Схема XML: FL-net_CommNet_Profile.xsd

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">

<xsd:annotation>

<xsd:documentation>

Communication Profile - ISO 15745 Part 4

</xsd:documentation>

</xsd:annotation>

<xsd:simpleType name="ProfileClasslD_DataType">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="AIP"/>

<xsd:enumeration value="Process"/>

<xsd:enumeration value="lnformationExchange"/>

<xsd:enumeration value="Resource"/>

<xsd:enumeration value="Device"/>

<xsd:enumeration value="CommunicationNetwork"/>

<xsd:enumeration value="Equipment"/>

<xsd:enumeration value="Human"/>

<xsd:enumeration value="Material"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="ISO15745Reference_DataType">

<xsd:sequence>

<xsd:element name="ISO15745Part" type="xsd:positivelnteger"/>

<xsd:element name="ISO15745Edition" type="xsd:positivelnteger"/>

<xsd:element name="ProfileTechnology" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<xsd:simpleType name="IASInterface_DataType">

<xsd:union>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="CSI"/>

<xsd:enumeration value="HCI"/>

<xsd:enumeration value="ISI"/>

<xsd:enumeration value="API"/>

<xsd:enumeration value="CMI"/>

<xsd:enumeration value="ESI"/>

<xsd:enumeration value="FSI"/>

<xsd:enumeration value="MTI"/>

<xsd:enumeration value="SEI"/>

<xsd:enumeration value="USI"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="4"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:union>

</xsd:simpleType>

<xsd:element name="ISO15745Profile">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ProfileHeader"/>

<xsd:element ref="ProfileBody"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:annotation>

<xsd:documentation>

FL-net Communication Network Profile Template

</xsd:documentation>

</xsd:annotation>

<xsd:element name="ProfileHeader">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Profileldentification" type="xsd:string"/>

<xsd:element name="ProfileRevision" type="xsd:string"/>

<xsd:element name="ProfileName" type="xsd:string"/>

<xsd:element name="ProfileSource" type="xsd:string"/>

<xsd:element name="ProfileClasslD" type="ProfileClasslD_DataType"/>

<xsd:element name="ProfileDate" type="xsd:date" minOccurs="0"/>

<xsd:element name="Additionallnformation" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element name="ISO15745Reference" type="ISO15745Reference_DataType"/>

<xsd:element name="IASInterfaceType" type="IASInterface_DataType" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ProfileBody">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ApplicationLayers"/>

<xsd:element ref="TransportLayers"/>

<xsd:element ref="NetworkManagement" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ApplicationLayers">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ComMemorylnterface" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element ref="MessageService" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element ref="ErrorNotification" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ComMemorylnterface">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ComMemorylnterface-Attributes"/>

<xsd:element ref="ComMemorylnterface-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ComMemorylnterface-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ComMemory1AllocationList" minOccurs="0" maxOccurs="unbounded">

<xsd:complexType>

<xsd:attribute name="Size">

<xsd:simpleType>

<xsd:restriction base="xsd:integer">

<xsd:minlnclusive value="0"/>

<xsd:maxlnclusive value="64"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

<xsd:attribute name="FieldNumber">

<xsd:simpleType>

<xsd:restriction base="xsd:integer">

<xsd:minlnclusive value="0"/>

<xsd:maxlnclusive value="63"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:complexType>

</xsd:element>

<xsd:element name="ComMemory2AllocationList" minOccurs="0" maxOccurs="unbounded">

<xsd:complexType>

<xsd:attribute name="Size">

<xsd:simpleType>

<xsd:restriction base="xsd:integer">

<xsd:minlnclusive value="0"/>

<xsd:maxlnclusive value="8196"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

<xsd:attribute name="FieldNumber">

<xsd:simpleType>

<xsd:restriction base="xsd:integer">

<xsd:minlnclusive value="0"/>

<xsd:maxlnclusive value="8195"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:complexType>

</xsd:element>

<xsd:element name="NodeNumber" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="DataAvailability" type="xsd:boolean" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="DataConsistency" type="xsd:boolean" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="Cyclic" type="xsd:boolean" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ComMemorylnterface-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_Single" minOccurs="0"/>

<xsd:element name="Set_Attribute_Single" minOccurs="0"/>

<xsd:element name="Apply_Attributes" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="MessageService">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="MessageService-Attributes"/>

<xsd:element ref="MessageService-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="MessageService-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="NodeNumberList" type="xsd:unsignedShort" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="TCDList" type="xsd:unsignedlnt" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="MessageService-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All" minOccurs="0"/>

<xsd:element name="Get_Attribute_Single" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ErrorNotification">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ActiveNodeNumberList" type="xsd:unsignedlnt" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="NodeStatus" type="xsd:unsignedlnt" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="TransportLayers">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="EthernetBasedObject" maxOccurs="unbounded"/>

<xsd:element ref="UDP-IPObject" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="EthernetBasedObject">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="EthernetBasedObject-Attributes"/>

<xsd:element ref="EthernetBasedObject-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="EthernetBasedObject-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="MediaType" type="xsd:string"/>

<xsd:element name="CommRate" type="xsd:unsignedlnt"/>

<xsd:element ref="lndicators" type="xsd:string" minOccurs="0"/>

<xsd:element name="MACAddress" type="xsd:string"/>

<xsd:element name="ErrorLog" type="xsd:unsignedlnt" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="EthernetBasedObject-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0"/>

<xsd:element name="Get-Attributes-All" minOccurs="0"/>

<xsd:element name="Clear" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="UDP-IPObject">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="UDP-IPObject-Attributes"/>

<xsd:element ref="UDP-IPObject-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="UDP-IPObject-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="IPADDR" type="xsd:string"/>

<xsd:element name="PortNumber" type="xsd:unsignedShort" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element name="HostName" type="xsd:string"/>

<xsd:element name="ErrorLog" type="xsd:unsignedlnt" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="UDP-IPObject-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0"/>

<xsd:element name="Get-Attributes-All" minOccurs="0"/>

<xsd:element name="Clear" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="NetworkManagement">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Configuration" maxOccurs="unbounded"/>

<xsd:element ref="ServiceSelection" maxOccurs="unbounded"/>

<xsd:element ref="PerformanceManager" maxOccurs="unbounded"/>

<xsd:element ref="FaultManager" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Configuration">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Configuration-Attributes"/>

<xsd:element ref="Configuration-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Configuration-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="SpecificationMajorVersion" minOccurs="0"/>

<xsd:element ref="SpecificationMinorVersion" minOccurs="0"/>

<xsd:element ref="lnRingManager" minOccurs="0"/>

<xsd:element ref="ConnectionManager" minOccurs="0"/>

<xsd:element ref="lndicators" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="SpecificationMajorVersion">

<xsd:simpleType>

<xsd:restriction base="xsd:integer">

<xsd:minlnclusive value="1"/>

<xsd:maxlnclusive value="15"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="SpecificationMinorVersion">

<xsd:simpleType>

<xsd:restriction base="xsd:integer">

<xsd:minlnclusive value="0"/>

<xsd:maxlnclusive value="15"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="lnRingState" type="xsd:string"/>

<xsd:element name="ConnectionManager" type="xsd:string"/>

<xsd:element name="lndicators" type="xsd:string"/>

<xsd:element name="Configuration-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0"/>

<xsd:element name="Get-Attributes-All" minOccurs="0"/>

<xsd:element name="Set-Attributes-All" minOccurs="0"/>

<xsd:element name="Clear" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ServiceSelection">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ServiceSelection-Attributes"/>

<xsd:element ref="ServiceSelection-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ServiceSelection-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="NM-MessageTypeList" type="xsd:unsignedShort" maxOccurs="unbounded"/>
<xsd:element name="NM-TCDList" type="xsd:unsignedlnt" maxOccurs="unbounded"/>
<xsd:element name="NM-VendorCodeList" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ServiceSelection-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All" minOccurs="0"/>

<xsd:element name="Get_Attribute_Single" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="PerformanceManager">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="PerformanceManager-Attributes"/>

<xsd:element ref="PerformanceManager-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="PerformanceManager-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="TokenMonitoringTime" type="xsd:unsignedShort" minOccurs="0"/>
<xsd:element name="TokenHoldTime" type="xsd:unsignedShort" minOccurs="0"/>
<xsd:element name="MinimumFramelnterval" minOccurs="0"/>
<xsd:element name="RefreshCycleAvailableTime" type="xsd:unsignedShort" minOccurs="0"

maxOccurs="unbounded"/>

<xsd:element name="MessageTransmissionSchedule" type="xsd:unsignedShort"

minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="PerformanceManager-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0"/>

<xsd:element name="Get-Attributes-All" minOccurs="0"/>

<xsd:element name="Set-Attributes-All" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="FaultManager">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="FaultManager-Attributes"/>

<xsd:element ref="FaultManager-Operations" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="FaultManager-Attributes">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="FaultNodeList" type="xsd:unsignedShort" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="ErrorName" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="ErrorLog" type="xsd:unsignedlnt" minOccurs="0"/>
<xsd:element name="ComMemoryAreaOverlap" type="xsd:boolean" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="NodeNumberConflict" type="xsd:boolean" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="FaultManager-Operations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get-Attribute-Single" minOccurs="0"/>

<xsd:element name="Set-Attribute-Single" minOccurs="0"/>

<xsd:element name="Get-Attributes-All" minOccurs="0"/>

<xsd:element name="Set-Attributes-All" minOccurs="0"/>

<xsd:element name="Clear" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

Приложение С
(обязательное)


Шаблоны профиля EtherNet/IP

С.1 Общие положения

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

Для дистанционной конфигурации устройства доступны многие опции с помощью интерфейса коммуникаций CIP, включая следующее:

- сохраненную информацию об устройстве в печатном или электронном формате;

- выделенные объекты параметров (Parameter Objects), которые предоставляют известный общедоступный интерфейс для индивидуальных значений данных конфигурации/параметров и могут также вводить дополнительную информацию о конфигурации, например дескриптивный текст, тип данных, предельные значения данных и значения по умолчанию;

- выделенное объединение конфигураций (Configuration Assembly), что допускает групповое сохранение и загрузку данных конфигурации путем объединения в группы отдельных значений данных по конфигурации/параметрам;

- комбинации указанных выше методов.

Инструменты конфигурации, имеющиеся в настоящее время в основанных на CIP устройствах, используют специально форматированный файл ASCII, называемый электронным бланком данных (EDS), который предоставляет следующее:

- информацию, необходимую для идентификации присоединенного устройства;

- описание данных устройства, которые могут быть доступны через сеть (например, конфигурируемые параметры);

- описание возможностей коммуникации, поддерживаемых устройством (например, соединения);

- дополнительную информацию поставщика.

EDS допускает применение инструмента конфигурации, автоматически выполняющего процесс конфигурации устройства. Требования EDS обеспечивают открытый, последовательный и совместимый подход к выполнению конфигурации устройства в среде CIP.

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

- шаблонов профиля сети коммуникаций и устройства согласно определению в ИСО 15745-1;

- инкапсуляции ранее принятых файлов EDS в шаблоны комплекса стандартов ИСО 15745 ("оболочки");

- ранее принятого EDS, включая общую семантическую информацию.

Примечание - EtherNet/IP EDS некоторого устройства может быть получен из содержания соответствующих файлов XML профиля устройства и коммуникационной сети путем использования бланков подходящего стиля.

С.2 Описание шаблона профиля устройства

С.2.1 Описание шаблона профиля устройства на основе XML

С.2.1.1 Общие положения

Файлы XML профиля устройства должны соответствовать XML схеме профиля устройства, установленной в С.2.1.3.3.

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

С.2.1.2 Семантика элементов XML схемы

С.2.1.2.1 ProfileBody (тело профиля)

Этот основной элемент ассоциируется с набором атрибутов, которые предоставляют дополнительную информацию относительно файла профиля.

Семантика этих атрибутов установлена в С.4.1.4.2.

С.2.1.2.2 Deviceldentity (идентичность устройства)

Этот элемент устанавливает поддерживаемые атрибуты и операции сущности Identity Object [см. МЭК 61158-5:2003 и МЭК 61158-6:2003 (тип 2)] совместно с дополнительной информацией для полной идентификации устройства. Когда это целесообразно, он также показывает фактические значения атрибутов сущности.

Семантика субэлементов Deviceldentity_InstanceAttributes элемента Deviceldentity определена в таблице С.1.

Таблица С.1 - Элементы Deviceldentity_lnstanceAttributes

Элементы XML схемы

Атрибуты объекта

Семантика

SpecificationConformance

Нет

Строка, определяющая ссылочную версию спецификаций EtherNet/IP

VendCode, ProdType, ProdCode, ProdRevision

Да

См. С.4.1.4.3

VendName, ProdTypeStr, ProdName, Catalog, Icon, ExcludeFromAdapterRackConnection

Нет

См. С.4.1.4.3

Status, SerialNumber

Да

Не применяется

State, ConfigurationConsistencyValue, Heartbeatlnterval

Да

Не применяется

DeviceClassification

Нет

См. С.4.1.4.4 и С.4.2.2.1

С.2.1.2.3 DeviceManager (менеджер устройства)

Данный элемент определяет поддерживаемые атрибуты и операции класса объекта Identity Object [см. МЭК 61158-5:2003 и МЭК 61158-6:2003 (тип 2)] совместно с дополнительной информацией по управлению устройством. Когда это целесообразно, он также показывает фактические значения атрибутов сущности.

Семантика Модульного (Modular) субэлемента элемента DeviceManager установлена в С.4.1.5.2.

С.2.1.2.4 DeviceFunction (функция устройства)

Содержание этого элемента в данном документе подробно не рассматривается.

С.2.1.2.5 ApplicationProcess (прикладной процесс)

С.2.1.2.5.1 Assembly (Сборка)

Данный элемент определяет поддерживаемые атрибуты и операции класса и варианта объекта Assembly Object [см. МЭК 61158-5:2003 и МЭК 61158-6:2003 (тип 2)] совместно с описанием отдельных вариантов.

Семантика субэлементов Assem, ProxyAssem и ProxiedAssem элемента Assembly определена в С.4.1.4.8 и С.4.1.5.3.2.

С.2.1.2.5.2 Parameter (параметр)

Данный элемент устанавливает поддерживаемые атрибуты и операции класса и варианта объекта Parameter Object совместно с описанием отдельных вариантов.

Семантика субэлемента Parameter_ClassAttributes элемента Parameter определена в С.4.1.4.5.

Семантика субэлементов Param, ProxyParam и ProxiedParam элемента Parameter определена в С.4.1.4.6 и С.4.1.5.3.1.

С.2.1.2.5.3 ParameterGroup (группа параметров)

Данный элемент устанавливает группы связанных параметров для специальных целей.

Семантика субэлемента Group элемента ParameterGroup определена в С.4.1.4.7.

С.2.1.3 Схемы XML

С.2.1.3.1 MasterTemplateTypes.xsd

Примечание - Данная XML схема содержит все стили, определенные как часть шаблона ведущего устройства в ИСО 15745-1:2003.

<?xml version="1.0" encoding="UTF-8" ?>

<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">

<!- - Target namespaces are not specified in this master template - ->

<xsd:annotation>

<xsd:documentation>* HEADER DATA TYPES *</xsd:documentation>

</xsd:annotation>

<xsd:simpleType name="ProfileClasslD_DataType">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="AIP" />

<xsd:enumeration value="Process" />

<xsd:enumeration value="lnformationExchange" />

<xsd:enumeration value="Resource" />

<xsd:enumeration value="Device" />

<xsd:enumeration value="CommunicationNetwork" />

<xsd:enumeration value="Equipment" />

<xsd:enumeration value="Human" />

<xsd:enumeration value="Material" />

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="ISO15745Reference_DataType">

<xsd:sequence>

<xsd:element name="ISO15745Part" type="xsd:positivelnteger" />

<xsd:element name="ISO15745Edition" type="xsd:positivelnteger" />

<xsd:element name="ProfileTechnology" type="xsd:string" />

</xsd:sequence>

</xsd:complexType>

<xsd:simpleType name="IASInterface_DataType">

<xsd:union>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="CSI" />

<xsd:enumeration value="HCI" />

<xsd:enumeration value="ISI" />

<xsd:enumeration value="API" />

<xsd:enumeration value="CMI" />

<xsd:enumeration value="ESI" />

<xsd:enumeration value="FSI" />

<xsd:enumeration value="MTI" />

<xsd:enumeration value="SEI" />

<xsd:enumeration value-'USI" />

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="4" />

</xsd:restriction>

</xsd:simpleType>

</xsd:union>

</xsd:simpleType>

<xsd:annotation>

<xsd:documentation>* ISO 15745 DEFINED DATA TYPES *</xsd:documentation>

</xsd:annotation>

<xsd:complexType name="ProfileHandle_DataType">

<xsd:sequence>

<xsd:element name="Profileldentification" type="xsd:string" />

<xsd:element name="ProfileRevision" type="xsd:string" />

<xsd:element name="ProfileLocation" type="xsd:anyURI" minOccurs="0" maxOccurs="1" />

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

C.2.1.3.2 CIPDataTypes.xsd

Примечание - Данная XML схема определяет пункты XML схемы (например, типы данных, типы элементов, группы атрибутов), используемые в других XML схемах.

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">

<!- - Target namespaces are not specified in this master template - ->

<xsd:annotation>

<xsd:documentation>* CIP DATA TYPES *</xsd:documentation>

</xsd:annotation>

<xsd:simpleType name="dt_USINT">

<xsd:restriction base="xsd:unsignedByte"/>

</xsd:simpleType>

<xsd:simpleType name="dt_UINT">

<xsd:restriction base="xsd:unsignedShort"/>

</xsd:simpleType>

<xsd:simpleType name="dt_UDINT">

<xsdrestriction base="xsd:unsignedlnt"/>

</xsd:simpleType>

<xsd:simpleType name="dt_ULINT">

<xsd:restriction base="xsd:unsignedLong"/>

</xsd:simpleType>

<xsd:simpleType name="dt_SINT">

<xsd:restriction base="xsd:byte"/>

</xsd:simpleType>

<xsd:simpleType name="dt_INT">

<xsd:restriction base="xsd :short"/>

</xsd:simpleType>

<xsd:simpleType name="dt_DINT">

<xsd:restriction base="xsd: int"/>

</xsd:simpleType>

<xsd:simpleType name="dt_LINT">

<xsd:restriction base="xsd:long"/>

</xsd:simpleType>

<xsd:simpleType name="dt_BYTE">

<xsd:restriction base="xsd: hexBinary">

<xsd:maxLength value="1"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="dt_WORD">

<xsd restriction base="xsd: hexBinary">

<xsd:maxLength value="2"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="dt_DWORD">

<xsd:restriction base="xsd: hexBinary">

<xsd:maxLength value="4"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="dt_LWORD">

<xsd:restriction base="xsd: hexBinary">

<xsd:maxLength value="8"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="dt_REAL">

<xsd:restriction base="xsd:float"/>

</xsd:simpleType>

<xsd:simpleType name="dt_LREAL">

<xsd:restriction base="xsd:double"/>

</xsd:simpleType>

<xsd:simpleType name="dt_EDS_Char_Array">

<xsd:restriction base="xsd:string"/>

</xsd:simpleType>

<xsd:simpleType name="dt_EPATH">

<xsd:list itemType="et_EPATH_item"/>

</xsd:simpleType>

<xsd:simpleType name="dt_STRINGI">

<xsd:restriction base="xsd:string"/>

</xsd:simpleType>

<xsd:simpleType name="dt_EDS_Date">

<xsd:restriction base="xsd:date"/>

</xsd:simpleType>

<xsd:simpleType name="dt_EDS_Time_Of_Day">

<xsd:restriction base="xsd:time"/>

</xsd:simpleType>

<xsd:simpleType name="dt_EDS_Revision">

<xsd:restriction base="xsd:string">

<xsd:pattern value="[0-9]\.[1-9]|[1-9]\.[0-9]|[1-9]\.[1-9]"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="dt_EDS_URL">

<xsd:restriction base="xsd:anyURI">

<xsd:pattern value="//.*"/>

<xsd:pattern value="ftp://.*"/>

<xsd:pattern value=".*"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="at_AccessType_OptionalGet">

<xsd:restriction base="xsd:NMTOKEN">

<xsd:enumeration value="None"/>

<xsd:enumeration value="Get"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="at_AccessType_OptionalSet">

<xsd:restriction base="xsd:NMTOKEN">

<xsd:enumeration value="None"/>

<xsd:enumeration value="Get"/>

<xsd:enumeration value="Set"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="at_AccessType_Mandatory">

<xsd:restriction base="xsd:NMTOKEN">

<xsd:enumeration value="Get"/>

<xsd:enumeration value="Set"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="et_VendorSpecificKeyword">

<xsd:restriction base="xsd:string">

<xsd:pattern value="[1-9][0-9]{0,4}_([A-Z]|[a-z]|[0-9])([A-Z]|[a-z]|[0-9]|[_])*"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="et_EPATH_item":>

<xsd:union>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:pattern value="([0-9]|[a-f]|[A-F]){2}"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:NMTOKEN">

<xsd:enumeration value="SLOT"/>

<xsd:enumeration value="SLOT_MINUS_ONE"/>

<xsd:enumeration value="SYMBOL_ANSI"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:pattern value="Param[1-9][0-9]{0,4}"/:>

<xsd:pattern value="\[Param[1-9][0-9]{0,4}\]"/>

<xsd:pattern value="ProxyParam[1-9][0-9]{0,4}"/>

<xsd:pattern value="\[ProxyParam[1-9][0-9]{0,4}\]"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:union>

</xsd:simpleType>

<xsd:simpleType name="et_ParamReference">

<xsd:restriction base="xsd:NMTOKEN">

<xsd:pattern value="Param[1-9][0-9]{0,4}([:][0-9]{1,2})*"/>

<xsd:pattern value="ProxyParam[1-9][0-9]{0,4}([:][0-9]{1,2})*"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="et_AssemReference">

<xsd:restriction base="xsd:NMTOKEN">

<xsd:pattern value="Assem[1-9][0-9]{0,4}"/>

<xsd:pattern value="ProxyAssem[1-9][0-9]{0,4}"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:attributeGroup name="ag_FileDescription">

<xsd:attribute name="DescText" type="dt_EDS_Char_Array" use="required"/>

<xsd:attribute name="CreateDate" type="dt_EDS_Date" use="required"/>

<xsd:attribute name="CreateTime" type="dt_EDS_Time_Of_Day" use="required"/>

<xsd:attribute name="ModDate" type="dt_EDS_Date" use="optional"/>

<xsd:attribute name="ModTime" type="dt_EDS_Time_Of_Day" use="optional"/>

<xsd:attribute name="Revision" type="dt_EDS_Revision" use="required"/>

<xsd:attribute name="HomeURL" type="dt_EDS_URL" use="optional"/>

<xsd:attribute name="SpecificationConformance" type="dt_EDS_Char_Array" use="required"/>

</xsd:attributeGroup>

</xsd:schema>

C.2.1.3.3 CIP_DeviceProfile.xsd

Примечание - Данная XML схема включает файлы "MasterTemplateTypes.xsd" (см. С.2.1.3.1) и "CIPDataTypes.xsd" (см. С.2.1.3.2).

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!- - Target namespaces are not specified in this master template - ->
<xsd:redefine schemaLocation="MasterTemplateTypes.xsd">
<xsd:complexType name="IS015745Reference_DataType">
<xsd:complexContent>
<xsd:restriction base="ISO15745Reference_DataType">
<xsd:sequence>
<xsd:element name="ISO15745Part" type="xsd:positivelnteger"/>
<xsd:element name="ISO15745Edition" type="xsd:positivelnteger"/>
<xsd:element name="ProfileTechnology" type="xsd:string" fixed="CIP"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:redefine>
<xsd:include schemaLocation="CIPDataTypes.xsd"/>
<xsd:element name="ISO15745Profile">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ProfileHeader"/>
<xsd:element ref="ProfileBody"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:annotation>
<xsd:documentation>* HEADER SECTION *</xsd:documentation>
</xsd:annotation>
<xsd:element name="ProfileHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Profileldentification" type="xsd:string"/>
<xsd:element name="ProfileRevision" type="xsd:string"/>
<xsd:element name="ProfileName" type="xsd:string"/>
<xsd:element name="ProfileSource" type="xsd:string"/>
<xsd:element name="ProfileClasslD" type="ProfileClasslD_DataType" fixed="Device"/>
<xsd:element name="ProfileDate" type="xsd:date" minOccurs="0"/>
<xsd:element name="Additionallnformation" type="xsd:anyURI" minOccurs="0"/>
<xsd:element name="ISO15745Reference" type="ISO15745Reference_DataType"/>
<xsd:element name="IASInterfaceType" type="IASInterface_DataType" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:annotation>
<xsd:documentation>* BODY SECTION *</xsd:documentation>
</xsd:annotation>
<xsd:element name="ProfileBody">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Deviceldentity"/>
<xsd:element ref="DeviceManager" minOccurs="0"/>
<xsd:element ref="DeviceFunction" maxOccurs="unbounded"/>
<xsd:element ref="ApplicationProcess" minOccurs="0"/>
<xsd:element name="ExternalProfileHandle" type="ProfileHandle_DataType" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="ag_FileDescription"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Deviceldentity">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Deviceldentity_lnstanceAttributes">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="VendCode">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="dt_UINT">
<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="VendName">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="dt_EDS_Char_Array"/>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="SpecificationConformance" type="dt_EDS_Char_Array" minOccurs="0"/>
<xsd:element name="ProdType">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="dt_UINT">
<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ProdTypeStr">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="dt_EDS_Char_Array"/>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ProdCode">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="dt_UINT">
<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ProdRevision">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="MajRev" type="dt_USINT"/>
<xsd:element name="MinRev" type="dt_USINT"/>
</xsd:sequence>
<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Status" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="SerialNumber" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ProdName">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="State" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ConfigurationConsistencyValue" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Heartbeatlnterval" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalSet"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Catalog" type="xsd:string" minOccurs="0"/>
<xsd:element name="lcon" type="xsd:string" minOccurs="0"/>
<xsd:element name="ExcludeFromAdapterRackConnection" type="xsd:string"
minOccurs="0"/>
<xsd:element name="DeviceClassification" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Class" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="MainClass">
<xsd:simpleType>
<xsd:union>
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="ControlNet"/>
<xsd:enumeration value="DeviceNet"/>
<xsd:enumeration value="EtherNetlP"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base="et_VendorSpecificKeyword"/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
</xsd:element>
<xsd:element name="SubClass" type="xsd:NMTOKEN" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" use="required">
<xsd:simpleType>
<xsd: restriction base="xsd:ID">
<xsd:pattern value="Class[1-9][0-9]{0,4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Deviceldentity_lnstanceOperations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Get_Attribute_All">
<xsd:complexType>
<xsd:attribute ref="SupportedService" fixed="true"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Reset">
<xsd:complexType>
<xsd:attribute ref="SupportedService" fixed="true"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Get_Attribute_Single">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeviceManager">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Deviceldentity_ClassAttributes" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ObjectRevision">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Maxlnstance">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="MaxlDCIassAttributes">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"
use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="MaxlDlnstanceAttributes">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"
use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Deviceldentity_ClassOperations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Get_Attribute_All">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Reset">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Get_Attribute_Single">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Find_Next_Object_lnstance">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Modular" minOccurs="0">
<xsd:complexType>
<xsd:choice>
<xsd:element name="Chassis">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DefineSlotslnRack" type="dt_UINT"/>
<xsd:element name="SlotDisplayRule" type="et_ParamReference" minOccurs="0"/>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Module">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Width" type="dt_UINT"/>
<xsd:element name="Rack" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="VendCode" type="dt_UINT"/>
<xsd:element name="ProdType" type="dt_UINT"/>
<xsd:element name="ProdCode" type="dt_UINT"/>
<xsd:element name="MajRev" type="dt_USINT"/>
<xsd:element name="MinRev" type="dt_USINT"/>
<xsd:element name="LegalSlot" type="dt_UINT" maxOccurs="unbounded"/>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" use="required">
<xsd:simpleType>
<xsd: restriction base="xsd:ID">
<xsd:pattern value="Rack[1-9][0-9]{0,4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="ExternallD" type="dt_EPATH" minOccurs="0"/>
<xsd:element name="GenericlD" type="dt_EPATH" minOccurs="0"/>
<xsd:element name="ExternlDExactMatch" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="Yes"/>
<xsd:enumeration value="No"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Query" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Path" type="dt_EPATH"/>
<xsd:element name="Service" type="dt_USINT"/>
<xsd:element name="Size">
<xsd:simpleType>
<xsd:restriction base="dt_USINT">
<xsd:minlnclusive value="1"/>
<xsd:maxlnclusive value="16"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ExternallD" type="dt_EPATH"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeviceFunction">
<xsd:complexType>
<xsd:sequence>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ApplicationProcess">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Parameter" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Parameter_Class" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Parameter_ClassAttributes">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ObjectRevision" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Maxlnstance">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ParameterClassDescriptor">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Access_Rule"
type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ConfigurationAssemblylnstance">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Access_Rule"
type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="NativeLanguage" minOccurs="0">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Access_Rule"
type="at_AccessType_OptionalSet" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Parameter_ClassOperations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Get_Attribute_All">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Reset">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Get_Attribute_Single">
<xsd:complexType>
<xsd:attribute ref="SupportedService" fixed="true"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Set_Attribute_Single">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Restore">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Save">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Parameter_lnstance" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Parameter_lnstanceAttributes" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ParameterValue">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_Mandatory" use="required" fixed="Set"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="LinkPathSize">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_Mandatory" use="required" fixed="Set"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="LinkPath">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_Mandatory" use="required" fixed="Set"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ParamDescriptor">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataType">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataSize">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ParameterName">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="UnitsString">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="HelpString">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="<<at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="MinimumValue">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="MaximumValue">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DefaultValue">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ScalingMultiplier">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ScalingDivider">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ScalingBase">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ScalingOffset">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="MultiplierLink">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DivisorLink">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="BaseLink">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="OffsetLink">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="DecimalPrecision">
<xsd:complexType>
<xsd:attribute name="Access_Rule"
type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Parameter_lnstanceOperations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Get_Attribute_All">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Get_Attribute_Single">
<xsd:complexType>
<xsd:attribute ref="SupportedService" fixed="true"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Set_Attribute_Single">
<xsd:complexType>
<xsd:attribute ref="SupportedService" fixed="true"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Get_Enum_String">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Param" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="et_ParamType">
<xsd:attribute name="id" use="required">
<xsd:simpleType>
<xsd: restriction base="xsd:ID">
<xsd:pattern value="Param[1-9][0-9]{0,4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ProxyParam" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="et_ProxyParamType">
<xsd:attribute name="id" use="required">
<xsd:simpleType>
<xsd: restriction base="xsd:ID">
<xsd:pattern value="ProxyParam[1-9][0-9]{0,4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ProxiedParam" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="et_ParamType">
<xsd:attribute name="id" use="required">
<xsd:simpleType>
<xsd: restriction base="xsd:ID">
<xsd:pattern value="ProxiedParam[1-9][0-9]{0,4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Assembly" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Assembly_Class" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Assembly_ClassAttributes" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ObjectRevision">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" use="required" fixed="Get"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Maxlnstance">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Assembly_ClassOperations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Create">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Delete">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Get_Attribute_Single">
<xsd:complexType>
<xsd:attribute ref="SupportedService" fixed="true"/>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Assembly_lnstance" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Assembly_lnstanceAttributes" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NumberOfMembers">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="AssemblyMemberList">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalSet" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="AssemblyData">
<xsd:complexType>
<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" use="required" fixed="Set"/>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Assembly_lnstanceOperations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Delete">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Get_Attribute_Single">
<xsd:complexType>
<xsd:attribute ref="SupportedService" fixed="true"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Set_Attribute_Single">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Get_Member">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Set_Member">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="lnsert_Member">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Remove_Member">
<xsd:complexType>
<xsd:attribute ref="SupportedService"/>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Assem" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="et_AssemType">
<xsd:attribute name="id" use="required">
<xsd:simpleType>
<xsd: restriction base="xsd:ID">
<xsd:pattern value="Assem[1-9][0-9]{0,4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ProxyAssem" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="et_AssemType">
<xsd:attribute name="id" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:ID">
<xsd:pattern value="ProxyAssem[1-9][0-9]{0,4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ProxiedAssem" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="et_AssemType">
<xsd:attribute name="id" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:ID">
<xsd:pattern value="ProxiedAssem[1-9][0-9]{0,4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ParameterGroup" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Group" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NameString" type="dt_EDS_Char_Array"/>
<xsd:element name="NumberOfMembers" type="dt_UINT"/>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="ParameterRef" type="dt_UINT"/>
<xsd:element name="VariantRef" type="xsd:NMTOKEN"/>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="id" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:ID">
<xsd:pattern value="Group[1-9][0-9]{0,4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:attribute name="SupportedService" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:boolean">
<xsd:pattern value="true|false"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:complexType name="et_ParamType">
<xsd:sequence>
<xsd:element name="LinkPathSize" type="dt_USINT" minOccurs="0"/>
<xsd:element name="LinkPath" type="dt_EPATH" minOccurs="0"/>
<xsd:element name="ParamDescriptor" type="dt_WORD"/>
<xsd:element name="DataType">
<xsd:simpleType>
<xsd:union memberTypes="dt_USINT dt_EPATH"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="DataSize" type="dt_USINT"/>
<xsd:element name="ParameterName" type="dt_EDS_Char_Array"/>
<xsd:element name="UnitsString" type="dt_EDS_Char_Array"/>
<xsd:element name="HelpString" type="dt_EDS_Char_Array"/>
<xsd:element name="MinimumValue" minOccurs="0"/>
<xsd:element name="MaximumValue" minOccurs="0"/>
<xsd:element name="DefaultValue" minOccurs="0"/>
<xsd:element name="ScalingMultiplier" type="dt_UINT" minOccurs="0"/>
<xsd:element name="ScalingDivider" type="dt_UINT" minOccurs="0"/>
<xsd:element name="ScalingBase" type="dt_UINT" minOccurs="0"/>
<xsd:element name="ScalingOffset" type="dt_INT" minOccurs="0"/>
<xsd:element name="MultiplierLink" type="dt_UINT" minOccurs="0"/>
<xsd:element name="DivisorLink" type="dt_UINT" minOccurs="0"/>
<xsd:element name="BaseLink" type="dt_UINT" minOccurs="0"/>
<xsd:element name="OffsetLink" type="dtJNT" minOccurs="0"/>
<xsd:element name="DecimalPrecision" type="dt_USINT" minOccurs="0"/>
<xsd:element name="lnternationalParameterName" type="dt_EDS_Char_Array" minOccurs="0"/>
<xsd:element name="lnternationalEngineeringUnits" type="dt_EDS_Char_Array" minOccurs="0"/>
<xsd:element name="lnternationalHelpString" type="dt_EDS_Char_Array" minOccurs="0"/>
<xsd:element name="Enum" minOccurs="0">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded">
<xsd:element name="EnumValue" type="dt_LINT"/>
<xsd:element name="EnumName" type="dt_EDS_Char_Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="et_ProxyParamType">
<xsd:complexContent>
<xsd:extension base="et_ParamType">
<xsd:sequence>
<xsd:element name="ProxyParamSizeAdder" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="MinimumValue"/>
<xsd:element name="MaximumValue"/>
<xsd:element name="DefaultValue"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="et_AssemType">
<xsd:sequence>
<xsd:element name="AssemblyName" type="dt_EDS_Char_Array" minOccurs="0"/>
<xsd:element name="AssemblyPath" type="dt_EPATH" minOccurs="0"/>
<xsd:element name="AssemblyDataSize" type="dt_UINT" minOccurs="0"/>
<xsd:element name="AssemblyDescriptor" type="dt_WORD" minOccurs="0"/>
<xsd:element name="AssemblyMember" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:choice>
<xsd:element name="MemberSize" type="dt_UINT"/>
<xsd:element name="MemberReference" type="et_MemberReferenceType"/>
<xsd:element name="VariantReference">
<xsd:complexType/>
</xsd:element>
<xsd:choice>
<xsd:sequence>
<xsd:element name="MemberSize" type="dt_UINT"/>
<xsd:element name="MemberReference"" type="et_MemberReferenceType"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="MemberSize" type="dt_UINT"/>
<xsd:element name="VariantReference">
<xsd:complexType/>
</xsd:element>
</xsd:sequence>
</xsd:choice>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="et_MemberReferenceType">
<xsd:union memberTypes="et_AssemReference et_ParamReference dt_UDINT dt_EPATH
xsd:NMTOKEN"/>
</xsd:simpleType>
</xsd:schema>

C.2.2 Описание шаблона профиля устройства - инкапсуляция XML файлов EDS

С.2.2.1 Общие положения

Файлы XML профиля устройства, используемые для инкапсуляции файлов EDS, должны соответствовать XML схеме профиля устройства, определенной в С.2.2.2.

Семантика субэлементов элемента ExternalProfileHandle, использованных для ссылки на существующий файл EDS, определена в таблице С.2. В зависимости от значения атрибута WrapperReference ссылка на файл EDS будет осуществляться с использованием элементов идентификации либо в самом файле EDS, либо в продукте, описанном этим EDS.

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

Таблица С.2 - Элементы ExtemalProfileHandle

Элементы XML схемы

WrapperReference = FILEINFO

WrapperReference = DEVICEINFO

Profileldentification

Текст описания файла EDS

IDПоставщика, Тип Устройства, Код Продукта

ProfileRevision

Версия EDS

Версия Продукта

ProfileLocation

EDS HomeURL

Имя Файла в виде иконки

Более подробно см. в С.4.1.4.2.

Более подробно см. в С.4.1.4.3.

Если они присутствуют, элементы Deviceldentity, DeviceManager, DeviceFunction и Application Process должны быть совместимы с форматами, определенными в С.2.1.3.3.

Примечание 2 - Это может быть использовано на этапе перехода от ранее принятого формата EDS к полному формату XML.

С.2.2.2 Схема XML: EDS_Device_Profile_wrapper.xsd

Примечание - Эта XML схема включает в себя файл "MasterTemplateTypes.xsd" (см. С.2.1.3.1).

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">

<!- - Target namespaces are not specified in this master template - ->

<xsd:redefine schemaLocation="MasterTemplateTypes.xsd">

<xsd:complexType name="ISO15745Reference_DataType">

<xsd:complexContent>

<xsd:restriction base="ISO15745Reference_DataType">

<xsd:sequence>

<xsd:element name="ISO15745Part" type="xsd:positivelnteger"/>

<xsd:element name="ISO15745Edition" type="xsd:positivelnteger"/>

<xsd:element name="ProfileTechnology" type="xsd:string" fixed="EDS"/>

</xsd:sequence>

</xsd:restriction>

</xsd:complexContent>

</xsd:complexType>

</xsd:redefine>

<xsd:element name="ISO15745Profile">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ProfileHeader"/>

<xsd:element ref="ProfileBody"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:annotation>

<xsd:documentation>* HEADER SECTION *</xsd:documentation>

</xsd:annotation>

<xsd:element name="ProfileHeader">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Profileldentification" type="xsd:string"/>

<xsd:element name="ProfileRevision" type="xsd:string"/>

<xsd:element name="ProfileName" type="xsd:string"/>

<xsd:element name="ProfileSource" type="xsd:string"/>

<xsd:element name="ProfileClasslD" type="ProfileClasslD_DataType" fixed="Device"/>

<xsd:element name="ProfileDate" type="xsd:date" minOccurs="0"/>

<xsd:element name="Additionallnformation" type="xsd:anyURI" minOccurs="0"/>

<xsd:element name="ISO15745Reference" type="ISO15745Reference_DataType"/>

<xsd:element name="IASInterfaceType" type="IASInterface_DataType" minOccurs="0"

maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:annotation>

<xsd:documentation>* BODY SECTION *</xsd:documentation>

</xsd:annotation>

<xsd:element name="ProfileBody">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Deviceldentity" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:any namespace="##any"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceManager" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:any namespace="##any"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceFunction" maxOccurs="unbounded">

<xsd:complexType>

<xsd:sequence>

<xsd:any namespace="##any"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ApplicationProcess" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:any namespace="##any"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ExternalProfileHandle">

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="ProfileHandle_DataType">

<xsd:attribute name="WrapperReference" use="optional" default="FILEINFO">

<xsd:simpleType>

<xsd:restriction base="xsd:NMTOKEN">

<xsd:enumeration value="FILEINFO"/>

<xsd:enumeration value="DEVICEINFO"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema

C.3 Описание шаблона профиля коммуникационной сети

С.3.1 Описание шаблона профиля коммуникационной сети - на основе XML

С.3.1.1 Общие положения

Файлы XML профиля коммуникационной сети должны соответствовать XML схеме профиля коммуникационной сети, установленной в С.3.1.2.

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

С.3.1.2 Семантика элементов XML схемы

С.3.1.2.1 ProfileBody (тело профиля)

Этот основной элемент ассоциируется с набором атрибутов, которые предоставляют дополнительную информацию относительно файла профиля.

Семантика этих атрибутов установлена в С.4.1.4.2.

С.3.1.2.2 Application Layers (прикладные уровни)

С.3.1.2.2.1 ConnectionManager (менеджер соединений)

Данный элемент устанавливает поддерживаемые атрибуты и операции сущности объекта Connection Manager Object [см. МЭК 61158-5:2003 и МЭК 61158-6:2003 (тип 2)] совместно с описанием отдельных вариантов соединения.

Семантика субэлементов Connection, ProxyConnect и ProxiedConnect элемента ConnectionDescriptions определена в С.4.1.4.9 и С.4.1.5.3.3.

С.3.1.2.2.2 MessageRouter (маршрутизатор сообщений)

Данный элемент устанавливает поддерживаемые атрибуты и операции сущности объекта Message Router Object [см. МЭК 61158-5:2003 и МЭК 61158-6:2003 (тип 2)].

С.3.1.2.3 TransportLayers (транспортные уровни)

С.3.1.2.3.1 ENPhysicalLayer (EN физический уровень)

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

С.3.1.2.3.2 EtherNetlPLinkObject

Данный элемент определяет поддерживаемые атрибуты и операции сущности объекта EtherNet/IP Link Object [см. МЭК 61158-4:2003 (тип 2)].

С.3.1.2.3.3 TCPIPInterfaceObject

Данный элемент определяет поддерживаемые атрибуты и операции сущности объекта TCP/IP Interface Object [см. МЭК 61158-4:2003 (тип 2)].

С.3.1.2.3.4 EncapsulationProtocol (протокол инкапсуляции)

Данный элемент определяет поддерживаемые атрибуты и операции, ассоциированные с инкапсуляцией сообщений приложения в TCP/IP [см. МЭК 61158-6:2003 (тип 2)].

С.3.1.2.3.5 Ports (порты)

Данный элемент идентифицирует порты устройства, позволяющие направлять сообщения из одного канала связи в другой канал связи.

Семантика субэлемента Port элемента Ports определена в С.4.1.4.10 и С.4.2.2.2.

С.3.1.2.4 NetworkManagement (управление сетью)

С.3.1.2.4.1 NM-EtherNetlPLinkObject

Данный элемент определяет поддерживаемые атрибуты и операции класса объекта EtherNet/IP Link Object [см. МЭК 61158-4:2003 (тип 2)].

С.3.1.2.4.2 NM-TCPIPInterfaceObject

Данный элемент определяет поддерживаемые атрибуты и операции класса объекта TCP/IP Interface Object [см. МЭК 61158-4:2003 (тип 2)].

С.3.1.2.4.3 NM-ConnectionManager (NM-Менеджер соединений)

Данный элемент определяет поддерживаемые атрибуты и операции класса объекта Connection Manager Object [см. МЭК 61158-5:2003 и МЭК 61158-6:2003 (тип 2)].

С.3.1.2.4.4 NM-MessageRouter (NM-Маршрутизатор сообщений)

Данный элемент определяет поддерживаемые атрибуты и операции класса объекта Message Router Object [см. МЭК 61158-5:2003 и МЭК 61158-6:2003 (тип 2)].

С.3.1.3 Схема XML: ENet_CommNet_Profile.xsd

Примечание - Данная XML схема включает в себя файлы "MasterTemplateTypes.xsd" (см. С.2.1.3.1) и "CIPDataTypes.xsd" (см. С.2.1.3.2).

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

<!- - Target namespaces are not specified in this master template - ->

<xsd:redefine schemaLocation="MasterTemplateTypes.xsd">

<xsd:complexType name="ISO15745Reference_DataType">

<xsd:complexContent>

<xsd:restriction base="ISO15745Reference_DataType">

<xsd:sequence>

<xsd:element name="ISO15745Part" type="xsd:positivelnteger" fixed="4"/>

<xsd:element name="ISO15745Edition" type="xsd:positivelnteger" fixed="1"/>

<xsd:element name="ProfileTechnology" type="xsd:string" fixed="EtherNet/IP"/>

</xsd:sequence>

</xsd:restriction>

</xsd:complexContent>

</xsd:complexType>

</xsd:redefine>

<xsd:include schemaLocation="CIPDataTypes.xsd"/>

<xsd:element name="ISO15745Profile">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ProfileHeader"/>

<xsd:element ref="ProfileBody"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:annotation>

<xsd:documentation>* HEADER SECTION *</xsd:documentation>

</xsd:annotation>

<xsd:element name="ProfileHeader">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Profileldentification" type="xsd:string"/>

<xsd:element name="ProfileRevision" type="xsd:string"/>

<xsd:element name="ProfileName" type="xsd:string"/>

<xsd:element name="ProfileSource" type="xsd:string"/>

<xsd:element name="ProfileClasslD" type="ProfileClasslD_DataType"

fixed="CommunicationNetwork"/>

<xsd:element name="ProfileDate" type="xsd:date" minOccurs="0"/>

<xsd:element name="Additionallnformation" type="xsd:anyURI" minOccurs="0"/>

<xsd:element name="ISO15745Reference" type="ISO15745Reference_DataType"/>

<xsd:element name="IASInterfaceType" type="IASInterface_DataType" fixed="CSI"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:annotation>

<xsd:documentation>* BODY SECTION *</xsd:documentation>

</xsd:annotation>

<xsd:element name="ProfileBody">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ApplicationLayers"/>

<xsd:element ref="TransportLayers"/>

<xsd:element ref="NetworkManagement" minOccurs="0"/>

</xsd:sequence>

<xsd:attributeGroup ref="ag_FileDescription"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="ApplicationLayers">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ConnectionManager"/>

<xsd:element ref="MessageRouter"/>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="TransportLayers">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ENPhysicalLayer" minOccurs="0"/>

<xsd:element ref="EtherNetlPLinkObject" minOccurs="0"/>

<xsd:element ref="TCPIPInterfaceObject" minOccurs="0"/>

<xsd:element ref="EncapsulationProtocol" minOccurs="0"/>

<xsd:element ref="Ports" minOccurs="0"/>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="NetworkManagement">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="NM-EtherNetlPLinkObject" minOccurs="0"/>

<xsd:element ref="NM-TCPIPInterfaceObject" minOccurs="0"/>

<xsd:element ref="NM-ConnectionManager" minOccurs="0"/>

<xsd:element ref="NM-MessageRouter" minOccurs="0"/>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ConnectionManager">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ConnectionManager_lnstanceAttributes" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="OpenReqs">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalSet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="OpenFormatRejects">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalSet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="OpenResourceRejects">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalSet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="OpenOtherRejects">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalSet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="CloseReqs">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalSet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="CloseFormatRejects">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalSet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="CloseOtherRejects">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalSet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="ConnTimeouts">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalSet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="NumConnEntries">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="ConnOpenBits">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="CpuUtilization">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="MaxBuffSize">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="BufSizeRemaining">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ConnectionManager_lnstanceOperations" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Set_Attribute_All">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_List">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Set_Attribute_List">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_Single">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Set_Attribute_Single">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Forward_Close">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Unconnected_Send">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Forward_Open">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Connection_Data">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Search_Connection_Data">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Ex_Forward_Open">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Object_Owner">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element ref="ConnectionDescriptions" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element

<xsd:element name="ConnectionDescriptions">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Connection" minOccurs="0" maxOccurs="unbounded">

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="et_ConnectionType">

<xsd:attribute name="id" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:ID">

<xsd:pattern value="Connection[1-9][0-9]{0,4}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

<xsd:element name="ProxyConnect" minOccurs="0" maxOccurs="unbounded">

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="et_ConnectionType">

<xsd:attribute name="id" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:ID">

<xsd:pattern value="ProxyConnect[1-9][0-9]{0,4}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

<xsd:element name="ProxiedConnect" minOccurs="0" maxOccurs="unbounded">

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="et_ConnectionType">

<xsd:attribute name="id" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:ID">

<xsd:pattern value="ProxiedConnect[1-9][0-9]{0,4}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

<xsd:key name="ConnectionName">

<xsd:selector xpath="Connection|ProxyConnect|ProxiedConnect"/>

<xsd:field xpath="Name_String"/>

</xsd:key>

</xsd:element>

<xsd:element name="MessageRouter">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="MessageRouter_lnstanceAttributes" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Object_List">

<xsd:complexType>

<xsd:simpleContent>

<xsd:extension base="xsd:string">

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"/>

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

</xsd:element>

<xsd:element name="MaximumConnectionSupported">

<xsd:complexType>

<xsd:simpleContent>

<xsd:extension base="dt_UINT">

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"/>

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="MessageRouter_lnstanceOperations" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_List">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_Single">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ENPhysicalLayer">

<xsd:complexType>

<xsd:sequence>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:complexType>

<xsd:sequence>

<xsd:element name="EtherNetlPLinkObject_lnstanceAttributes" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="lnterfaceSpeed">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory"

use="required" fixed="Get"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="lnterfaceFlags">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory"

use="required" fixed="Get"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="PhysicalAddress">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory"

use="required" fixed="Get"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="lnterfaceCounters">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="MediaCounters">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"

use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="EtherNetlPLinkObject_lnstanceOperations" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_Single">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_and_Clear">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="TCPIPInterfaceObject">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="TCPIPInterfaceObject_lnstanceAttributes" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Status">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory"

use="required" fixed="Get"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="ConfigurationCapability">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory"

use="required" fixed="Get"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="ConfigurationControl">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory"

use="required" fixed="Set"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="PhysicalLinkObject">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory"

use="required" fixed="Get"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="lnterfaceConfiguration">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory"

use="required" fixed="Set"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="HostName">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory"

use="required" fixed="Set"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="TCPIPInterfaceObject_lnstanceOperations" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Set_Attribute_All">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_Single">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Set_Attribute_Single">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="EncapsulationProtocol">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="EncapsulationProtocol_Attributes" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ProtocolVersion" type="dt_USINT"/>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="EncapsulationProtocol_Operations" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="NOP">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="ListServices">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Listldentity">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Listlnterfaces">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="RegisterSession">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="UnRegisterSession">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="SendRRData">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="SendUnitData">

<xsd:complexType>

<xsd:attribute ref="SupportedService" fixed="true"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="lndicateStatus">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Cancel">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Ports">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Port" minOccurs="0" maxOccurs="unbounded">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="PortTypeName">

<xsd:simpleType>

<xsd:union>

<xsd:simpleType>

<xsd:restriction base="xsd:NMTOKEN">

<xsd:enumeration value="ControlNet"/>

<xsd:enumeration value="ControlNet_Redundant"/>

<xsd:enumeration value="TCP"/>

<xsd:enumeration value="DeviceNet"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="et_VendorSpecificKeyword"/>

</xsd:simpleType>

</xsd:union>

</xsd:simpleType>

</xsd:element>

<xsd:element name="PortName" type="dt_EDS_Char_Array" minOccurs="0"/>

<xsd:element name="PortObject" type="dt_EPATH" minOccurs="0"/>

<xsd:element name="PortNumber" type="dt_UINT"/>

<xsd:element name="PortSpecific">

<xsd:complexType>

<xsd:sequence>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="id" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:ID">

<xsd:pattern value="Port[1-9][0-9]{0,4}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="NM-EtherNetlPLinkObject">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="EtherNetlPLinkObject_ClassAttributes" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ObjectRevision">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" fixed="Get"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Maxlnstance">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" fixed="Get"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="EtherNetlPLinkObject_ClassOperations" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_Single">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="NM-TCPIPInterfaceObject">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="TCPIPInterfaceObject_ClassAttributes" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ObjectRevision">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" fixed="Get"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Maxlnstance">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_Mandatory" fixed="Get"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="TCPIPInterfaceObject_ClassOperations" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_Single">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="NM-ConnectionManager">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ConnectionManager_ClassAttributes" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ObjectRevision">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Maxlnstance">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalSet"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="OptionalAttributeList">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ConnectionManager_ClassOperations" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_List">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_Single">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="NM-MessageRouter">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="MessageRouter_ClassAttributes" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ObjectRevision">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="OptionalAttributeList">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="OptionalServiceList">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="MaxlDCIassAttributes">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="MaxlDlnstanceAttributes">

<xsd:complexType>

<xsd:attribute name="Access_Rule" type="at_AccessType_OptionalGet"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="MessageRouter_ClassOperations" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Get_Attribute_All">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_List">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Get_Attribute_Single">

<xsd:complexType>

<xsd:attribute ref="SupportedService"/>

</xsd:complexType>

</xsd:element>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:attribute name="SupportedService" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:boolean">

<xsd:pattern value="true|false"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

<xsd:complexType name="et_ConnectionType">

<xsd:sequence>

<xsd:element name="Trigger_Transport" type="dt_DWORD"/>

<xsd:element name="Connection_Parameters" type="dt_DWORD"/>

<xsd:element name="O-T_RPI" minOccurs="0">

<xsd:simpleType>

<xsd:union memberTypes="dt_UDINT et_ParamReference"/>

</xsd:simpleType>

</xsd:element>

<xsd:element name="O-T_Size" minOccurs="0">

<xsd:simpleType>

<xsd:union memberTypes="dt_UINT et_ParamReference"/>

</xsd:simpleType>

</xsd:element>

<xsd:element name="O-T_Format" minOccurs="0">

<xsd:simpleType>

<xsd:union memberTypes="et_ParamReference et_AssemReference"/>

</xsd:simpleType>

</xsd:element>

<xsd:element name="T-O_RPI" minOccurs="0">

<xsd:simpleType>

<xsd:union memberTypes="dt_UDINT et_ParamReference"/>

</xsd:simpleType>

</xsd:element>

<xsd:element name="T-O_Size" minOccurs="0">

<xsd:simpleType>

<xsd:union memberTypes="dt_UINT et_Param Reference"/>

</xsd:simpleType>

</xsd:element>

<xsd:element name="T-O_Format" minOccurs="0">

<xsd:simpleType>

<xsd:union memberTypes="et_ParamReference et_AssemReference"/>

</xsd:simpleType>

</xsd:element>

<xsd:element name="Config1_Size" minOccurs="0">

<xsd:simpleType>

<xsd:union memberTypes="dt_UINT et_ParamReference"/>

</xsd:simpleType>

</xsd:element>

<xsd:element name="Config1_Format" minOccurs="0">

<xsd:simpleType>

<xsd:union memberTypes="et_ParamReference et_AssemReference"/>

</xsd:simpleType>

</xsd:element>

<xsd:element name="Config2_Size" minOccurs="0">

<xsd:simpleType>

<xsd:union memberTypes="dt_UINT et_ParamReference"/>

</xsd:simpleType>

</xsd:element>

<xsd:element name="Config2_Format" minOccurs="0">

<xsd:simpleType>

<xsd:union memberTypes="et_ParamReference et_AssemReference"/>

</xsd:simpleType>

</xsd:element>

<xsd:element name="Name_String" type="dt_EDS_Char_Array"/>

<xsd:element name="Help_String" type="dt_EDS_Char_Array"/>

<xsd:element name="Path"/>

<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

C.3.2 Описание шаблона профиля коммуникационной сети - инкапсуляция XML файлов EDS

С.3.2.1 Общие положения

Файлы XML профиля коммуникационной сети, используемые для инкапсуляции файлов EDS, должны соответствовать XML схеме профиля коммуникационной сети, определенной в С.3.2.2.

Семантика субэлементов элемента ExternalProfileHandle, используемых для ссылки на существующий файл EDS, определена в таблице С.2. В зависимости от значения атрибута WrapperReference ссылка на файл EDS будет осуществляться с использованием элементов идентификации либо в самом файле EDS, либо в продукте, описанном этим EDS.

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

С.3.2.2 Схема XML: EDS_CommNet_Profile_wrapper.xsd

Примечание - Эта XML схема включает в себя файл "MasterTemplateTypes.xsd" (см. С.2.1.3.1).

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">

<!- - Target namespaces are not specified in this master template - ->

<xsd:redefine schemaLocation="MasterTemplateTypes.xsd">

<xsd:complexType name="ISO15745Reference_DataType">

<xsd:complexContent>

<xsd:restriction base="ISO15745Reference_DataType">

<xsd:sequence>

<xsd:element name="ISO15745Part" type="xsd:positivelnteger"/>

<xsd:element name="ISO15745Edition" type="xsd:positivelnteger"/>

<xsd:element name="ProfileTechnology" type="xsd:string" fixed="EDS"/>

</xsd:sequence>

</xsd:restriction>

</xsd:complexContent>

</xsd:complexType>

</xsd:redefine>

<xsd:element name="ISO15745Profile">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ProfileHeader"/>

<xsd:element ref="ProfileBody"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:annotation>

<xsd:documentation>* HEADER SECTION *</xsd:documentation>

</xsd:annotation>

<xsd:element name="ProfileHeader">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Profileldentification" type="xsd:string"/>

<xsd:element name="ProfileRevision" type="xsd:string"/>

<xsd:element name="ProfileName" type="xsd:string"/>

<xsd:element name="ProfileSource" type="xsd:string"/>

<xsd:element name="ProfileClasslD" type="ProfileClasslD_DataType"

fixed="CommunicationNetwork"/>

<xsd:element name="ProfileDate" type="xsd:date" minOccurs="0"/>

<xsd:element name="Additionallnformation" type="xsd:anyURI" minOccurs="0"/>

<xsd:element name="ISO15745Reference" type="ISO15745Reference_DataType"/>

<xsd:element name="IASInterfaceType" type="IASInterface_DataType" fixed="CSI"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:annotation>

<xsd:documentation>* BODY SECTION *</xsd:documentation>

</xsd:annotation>

<xsd:element name="ProfileBody">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ExtemalProfileHandle">

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="ProfileHandle_DataType">

<xsd:attribute name="WrapperReference" use="optional" default="FILEINFO">

<xsd:simpleType>

<xsd:restriction base="xsd:NMTOKEN">

<xsd:enumeration value="FILEINFO"/>

<xsd:enumeration value="DEVICEINFO"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

C.4 Электронная информационная таблица (EDS)

C.4.1 Общие требования к CIP EDS

C.4.1.1 Общие положения

Настоящий подраздел устанавливает требования к кодировке файла EDS, которые являются общими для всех сетей, основанных на CIP. Требования к кодировке EDS определяют стандартный формат кодировки файла для применения в продуктах CIP независимо от платформы хоста инструмента конфигурации или файловой системы.

В настоящем подразделе термин "файл" относится ко всем распознаваемым форматам файлов, ассоциированным с файловой системой инструмента конфигурации, независимо от среды хранения файлов.

Файл EDS определяется как файл ASCII, который включает в себя представление ASCII объектов в устройстве, к которым имеется доступ из сети (например, Parameter и Assembly), и некоторую дополнительную информацию, требующуюся для поддержки адресации объекта.

С.4.1.2 Содержание EDS

С.4.1.2.1 Структура EDS

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

Таблица С.3 - Структура файла CIP EDS

Имя секции

Принятый разграничитель

Размещение

Требуемый/
Опциональный

Описание файла

[File]

1

Требуемый

Описание устройства

[Device]

2

Требуемый

Классификация устройства

[Device Classification]

Опциональный

Класс параметра

[ParamClass]

Опциональный

Параметры

[Params]

Опциональный

Группы параметров

[Groups]

Опциональный

Объединение

[Assembly]

Опциональный

Характеристики соединения

[Connection Manager]

Опциональный

Порт

[Port]

Опциональный

Модульный

[Modular]

Опциональный

Определяется продавцом

[VendorlD_vendorspecifickeyword]

Последний

Опциональный

Размещение этих опциональных групп должно быть только после требуемых групп.

Содержание EDS должно быть организовано следующим образом:

- все файлы EDS должны включать в себя раздел "Описание файла", который должен быть первой секцией файла EDS и должен использовать принятый разграничитель [File];

- все файлы EDS должны включать в себя секцию Описание Устройства, которая должна быть расположена после секции Описание Файла и должна использовать принятый разграничитель [Device];

- опциональные секции, описанные в данной спецификации, могут быть представлены в любом порядке при условии, что в файле EDS отсутствуют ссылки вперед;

- опциональная(ые) секция(и), определяемая(ые) продавцом, должна(ы) использовать принятые разграничители [VendorlD_vendorspecifickeyword (ключевое слово поставщика)] согласно С.4.1.2.2.11 и должна(ы) быть помещена(ы) после всех секций, определенных в данной спецификации.

С.4.1.2.2 Правила форматирования EDS

С.4.1.2.2.1 Общие положения

Файл EDS должен состоять из секций, входов, полей, комментариев и пустых пробелов. Настоящий подраздел определяет правила, которые должны выполняться при определении EDS.

С.4.1.2.2.2 Пустой пробел в EDS

Пустой пробел может быть использован в файле EDS, но должен быть проигнорирован всеми интерпретаторами EDS, когда он располагается вне полей и наборов символов в двойных кавычках.

Интерпретатор EDS должен рассматривать указанные ниже символы как символы пустых пробелов. Эти символы, прочитанные интерпретатором, но не кодированные как читаемые человеком символы, означают присутствие в файле пустых пробелов:

- символ пробела;

- новая строка;

- возврат каретки;

- переход на новую строку;

- табуляция, вертикальная или горизонтальная;

- подача страницы;

- маркер конца файла;

- комментарии.

С.4.1.2.2.3 Символы ключевых слов

Все ключевые слова в файле EDS должны состоять из символов ASCII, входящих в следующий список:

- прописные буквы от А до Z;

- строчные буквы от а до z;

- цифры от 0 до 9;

- специальный символ подчеркивания "_";

- символ пробела.

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

С.4.1.2.2.4 Секции

Файл EDS должен быть разделен на требуемые и опциональные секции.

С.4.1.2.2.5 Разграничители секций

Каждая секция EDS должна быть правильно ограничена ключевыми словами в квадратных скобках (принятыми ограничителями). Правильные принятые разграничители должны соответствовать указанным в таблице С.З.

С.4.1.2.2.6 Ключевые слова секций

Ключевое слово секции определяется как текст между начальным ограничителем ключевого слова "[" и конечным ограничителем "]". Символы, предназначенные для использования в ключевых словах секций, определены в С.4.1.2.2.3. Существуют два типа ключевых слов секций - общие и специальные для поставщиков.

С.4.1.2.2.7 Порядок секций

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

С.4.1.2.2.8 Вход

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

С.4.1.2.2.9 Ключевые слова входа

Ключевое слово входа должно состоять из уникальной последовательности символов ключевого слова согласно определениям в С.4.1.2.2.3. Существуют два типа ключевых слов входа - общие и относящиеся к поставщику.

С.4.1.2.2.10 Общее ключевое слово

Общее ключевое слово должно быть всегда определено в спецификации CIP ответственными ассоциациями поставщиков. Общее ключевое слово никогда не должно начинаться с цифрового разряда.

С.4.1.2.2.11 Относящиеся к поставщику ключевые слова

Ключевые слова могут относиться к поставщику. Эти ключевые слова должны начинаться с идентификатора поставщика (Vendor ID) компании с последующим дополнением после символа подчеркивания (VendorlD_VendorSpecificKeyword). VendorlD должен быть представлен в виде десятичных цифр, без нулей на первых позициях. Каждый поставщик несет ответственность за поддержание и документальное оформление относящихся к поставщику ключевых слов.

С.4.1.2.2.12 Поля входа

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

С.4.1.2.2.13 Ключевые слова поля

Ключевое слово поля должно состоять из уникальной последовательности символов ключевого слова согласно определениям в С.4.1.2.2.3. Существуют два типа ключевых слов поля - общие и относящиеся к поставщику.

С.4.1.2.2.14 Составные поля данных

Некоторые поля входа должны быть определены с помощью данных, которые не могут быть установлены одним значением между разграничителями в виде запятых. Возможность дальнейшего разграничения поля входа определяется путем использования одного или более набора соответствующих символов скобок "{" и "}". Содержание между символами скобок должно рассматриваться как один объект или вход. Содержание может быть сгруппировано с помощью нескольких скобок.

С.4.1.2.2.15 Комментарии

Комментарии должны быть разграничены с помощью символа доллара ($) и символа новой строки. Интерпретатор EDS должен рассматривать все символы между разграничителями комментария как пустой пробел. Разграничитель комментария $, появляющийся внутри поля или набора символов в двойных кавычках, не должен рассматриваться как разграничитель комментария.

Пример - Некоторые примеры комментариев приведены ниже:

С.4.1.2.2.16 Пример структуры форматирования EDS

На рисунке С.1 приведен пример, поясняющий структуру EDS.


Рисунок С.1 - Пример структуры форматирования EDS (информативный)

С.4.1.2.3 Требования к наименованию файлов

Никаких соглашений по наименованию файлов EDS на дисках не существует, за исключением файлов в среде DOS/Windows: эти файлы должны иметь суффикс ".EDS", добавляемый к имени файла.

С.4.1.3 Требования к кодировке данных EDS

С.4.1.3.1 Общие положения

Настоящий подраздел устанавливает требования по кодировке данных в файлах EDS.

Информация, содержащаяся в файле EDS, может представлять собой атрибуты сущностей объектов в подлежащем конфигурации устройстве. Все данные в файле EDS должны быть текстом ASCII, тогда как класс объекта и атрибуты экземпляров объекта необязательно должны быть в виде ASCII (существующие типы данных определены в спецификации CIP). В связи с этим может быть необходимо преобразование данных в файле EDS и атрибутах объекта, это преобразование установлено в следующих подразделах.

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

Некоторые типы данных используются только в файлах EDS (см. С.4.1.3.11-С.4.1.3.14).

С.4.1.3.2 Соглашение о файлах с символами ASCII

Все данные в EDS должны быть кодированы с использованием 8-битных символов ASCII, где все ссылки на "символы ASCII" означают 8-битный формат символов ASCII (согласно определению в таблицах 1 и 2, ряд 00 ИСО/МЭК 10646-1:2000). Символы, которые не могут быть представлены на терминале ANSI, не должны использоваться в именах идентификаторов или в представлении данных. Действующие значения символов ASCII должны включать в себя новую строку, табуляцию и десятичные цифры от 32 до 126.

С.4.1.3.3 Соглашение о строке символов - EDS_Char_Array

С.4.1.3.3.1 Общие положения

Все строковые данные в файле EDS должны быть строками символов фиксированной длины, без символов конца строки, и должны быть заключены в двойные кавычки (тип данных EDS_Char_Array).

Существуют две формы преобразования строковых данных. Символы, содержащиеся между двойными кавычками, должны преобразовываться в 8-битные символы ASCII. Символы, содержащиеся между двойными кавычками, которым предшествует прописная буква L, должны преобразовываться в символы UNICODE (16-битные).

Пример 1 - "Эти результаты в строке составлены из 8-битных символов".

Пример 2 - L "Строка символов UNICODE, включая греческий символ Pi\u03C0".

Примечание - Текст \u03C0 определяет единичный 16-битный символ, значение которого - 03С0. В наборе символов UNICODE он расположен в таблице 9, ряд 3, основной греческий - символ для строчного "Pi". Описание последовательностей переключения кода символов дано в С.4.1.3.3.5.

С.4.1.3.3.2 Обработка недостаточных символов в поле строки

Интерпретатор EDS должен использовать выравнивание по правому знаку или разряду символов в поле и заполнять все неуказанные символы начальными пробелами (ASCII 0x20) на всю оставшуюся длину строки.

Пример - Если параметр имеет максимальную длину строки 8 и получает строку "123АВ", эта строка интерпретируется как "~~~123АВ", где символы тильды (~) представляют пробелы.

С.4.1.3.3.3 Обработка избыточных символов в поле строки

Если данное поле строки содержит слишком много символов, интерпретатор EDS должен обрезать символы слева направо.

Пример - Если параметр имеет максимальную длину строки 8 и получает строку "123ABCDEFG", строка обрезается и интерпретируется как "I23ABCDE".*

_______________

* Текст документа соответствует оригиналу. - .

С.4.1.3.3.4 Сцепление строк

Множественные строки, не содержащие запятых, должны быть сцеплены (соединены).

Пример 1 -

Строка:

"ABC" "123" "XYZ"

интерпретируется как:

"ABC123XYZ"

Строки могут также быть представлены в виде отдельных строк.

Пример 2 -

Следующие строки:

"ABC" $ это комментарий

"123"

"XYZ"

Интерпретируются как:

"ABC123XYZ"

В случае строки UNICODE (длинная строка) только перед первым знаком двойных кавычек должна быть прописная буква L.

Пример 3 - L "ABC" "123" "XYZ" то же самое, что и L "ABC123XYZ".

С.4.1.3.3.5 Управляющие последовательности строки

Интерпретатор EDS должен распознавать все управляющие последовательности, перечисленные в таблице С.4. Интерпретация зависит от приложения.

Таблица С.4 - Управляющие последовательности строки

Управляющая последовательность

Преобразование

\\

\

\n

Новая строка

\t

Табуляция

\v

Вертикальная табуляция

\b

Возврат

\r

Возврат каретки

\f

Подача страницы

\a

Символ BELL (0x07)

\"

"

\'

'

\xnn

Один байт, содержащий значение "nn" при шестнадцатеричном выражении

\unnnn

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

Если встречаются последовательности, не перечисленные выше, интерпретирующее устройство должно отбраковать всю строку и показать ошибку. Файлы EDS должны содержать только управляющие последовательности, определенные в таблице С.4.

С.4.1.3.4 Соглашение о строке ASCII (STRING, SHORT_STRING, STRING2)

Все типы строковых данных (STRING, SHORT_STRING, STRING2), используемые в атрибутах объектов, должны быть преобразованы в EDS_Char_Array в файле EDS.

С.4.1.3.5 STRINGI

Тип данных CIP International String (STRINGI) кодируется в файле EDS как сложное представление данных. Полное содержание входа STRINGI должно быть заключено в две скобки. За рядом элементов языка, определенных как USINT, должны следовать определения элементов языка, каждое из которых заключено в пару скобок и отделено запятой. Каждый элемент языка входа STRINGI должен быть задан в виде четырех полей. Первое поле (выбор языка) должно быть выражено в виде строки фиксированной длины из точно трех символов, заключенных в маркеры двойных кавычек - код языка согласно определению в ИСО 639-2/Т. Тип строковых данных должен быть выражен с использованием кода типа данных согласно определению в спецификации CIP для STRING, STRING2, STRINGN или SHORT_STRING. Выбор набора символов должен быть выражен в виде UINT согласно определению в IANA MIB Принтерных Кодах (RFC 1759). Часть содержания строки, относящаяся к элементу языка, должна быть выражена в виде строки или длинной строки.

С.4.1.3.6 ЕРАТН

Тип данных CIP ЕРАТН, используемый, в частности, для определения строк путей CIP, должен быть кодирован в файлах EDS с использованием базового формата, определенного в ИСО 15745-4 для EDS_Char_Array. Кроме того, содержание строк для путей CIP или других данных ЕРАТН должно состоять из групп, состоящих из двух прилегающих шестнадцатеричных символов, разделенных пробелами. Могут быть использованы символы как верхнего, так и нижнего регистра.

Пример 1 - "20 04 24 01"

Пример 2 - "20 05 24 02 30 04"

С.4.1.3.7 Соглашение о беззнаковых целых числах ASCII (USINT, UINT, UDINT, ULINT)

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

Диапазон принятых данных USINT указан ниже:

Десятичная нотация:

0 до

255

Шестнадцатеричная нотация:

0x0 до

0xFF

Диапазон принятых данных UINT указан ниже:

Десятичная нотация:

0 до

65535

Шестнадцатеричная нотация:

0x0 до

0xFFFF

Диапазон принятых данных UDINT указан ниже:

Десятичная нотация:

0 до

4294967295

Шестнадцатеричная нотация:

0x0 до

0xFFFFFFFF

Диапазон принятых данных ULINT указан ниже:

Десятичная нотация:

0 до

18446744073709551615

Шестнадцатеричная нотация:

0x0 до

0xFFFFFFFFFFFFFFFF

Ведущие нули использовать в десятичной нотации нельзя, но их можно использовать в шестнадцатеричной нотации. В шестнадцатеричной нотации допускается использование как прописных, так и строчных символов, и полное число символов должно быть ограничено 10 (0х плюс 8) или 18 (0х плюс 16) в случае типа ULINT.

Пример - Десятичное значение UINT 254 может быть представлено как 254 (десятичное), или как 0xFE (шестнадцатеричное) или как 0x000000FE (шестнадцатеричное), но 0254 (десятичное) и 0x0000000FE (шестнадцатеричное) являются неправильными.

С.4.1.3.8 Соглашение о целых числах ASCII со знаком (SINT, INT, DINT, LINT)

Типы данных SINT, INT, DINT и LINT представляют значения целых чисел со знаком. Данные целых чисел со знаком должны вводиться либо в десятичной, либо в шестнадцатеричной нотации при отсутствии пустых пробелов или запятых между символами. Если шестнадцатеричная нотация используется для представления символов целых чисел со знаком, перед символами целых значений должна быть поставлена последовательность двух символов 0х при отсутствии пустых пробелов.

Диапазон принятых данных SINT указан ниже:

Десятичная нотация:

-128 до 127

Шестнадцатеричная нотация:

0x80 до 0x7F

Диапазон принятых данных INT указан ниже:

Десятичная нотация:

-32768 до 32767

Шестнадцатеричная нотация:

0x80 до 0x7FFF

Диапазон принятых данных DINT указан ниже:

Десятичная нотация:

-2147483648 до 2147483647

Шестнадцатеричная нотация:

0x80000000 до 0X7FFFFFFF

Диапазон принятых данных LINT указан ниже:

Десятичная нотация:

-9223372036854775808 до
9223372036854775807

Шестнадцатеричная нотация:

0x8000000000000000 до
0X7FFFFFFFFFFFFFFF

Ведущие нули использовать в десятичной нотации нельзя, но их можно использовать в шестнадцатеричной нотации. В шестнадцатеричной нотации допускается использование как прописных, так и строчных символов, и полное число символов должно быть ограничено 10 (0х плюс 8) или 18 (0х плюс 16) в случае типа LINT.

Пример - Десятичное значение INT 254 может быть представлено как 254 (десятичное), или как 0xFE (шестнадцатеричное), или как 0x000000FE (шестнадцатеричное), но 0254 (десятичное) и 0x0000000FE (шестнадцатеричное) являются неправильными.

С.4.1.3.9 Соглашение о словах ASCII (BYTE, WORD, DWORD, LWORD)

Типы данных BYTE, WORD, DWORD и LWORD представляют величины с побитовой адресацией. Эти величины считаются дискретными значениями позиции двоичного разряда и не предназначены для представления целых величин со знаком или без знака. Однако эти величины должны для удобства вводиться либо в десятичной, либо в шестнадцатеричной, либо в двоичной нотации без пустых пробелов или запятых между символами. Если для представления символов величин используется шестнадцатеричная (соответственно двоичная) нотация, перед символами значения должна быть поставлена последовательность из двух символов 0х (соответственно 0b) при отсутствии пробелов.

Диапазон принятых данных BYTE указан ниже:

Десятичная нотация:

0 до 255

Шестнадцатеричная нотация:

0x0 до 0xFF

Двоичная нотация:

0b00000000 до 0b11111111

Диапазон принятых данных WORD указан ниже:

Десятичная нотация:

0 до 65535

Шестнадцатеричная нотация:

0x0 до 0xFFFF

Двоичная нотация:

0b0000000000000000 до 0b1111111111111111

Диапазон принятых данных DWORD указан ниже:

Десятичная нотация:

0 до 4294967295

Шестнадцатеричная нотация:

0x0 до 0xFFFFFFFF

Двоичная нотация:

0b00000000000000000000000000000000 до 0b11111111111111111111111111111111

Диапазон принятых данных LWORD указан ниже:

Десятичная нотация:

0 до 18446744073709551615

Шестнадцатеричная нотация:

0x0 до 0xFFFFFFFFFFFFFFFF

Двоичная нотация:

0b0000000000000000000000000000000000000000000000000000000000000000 до 0b1111111111111111111111111111111111111111111111111111111111111111

Ведущие нули использовать в десятичной нотации нельзя, но их можно использовать в шестнадцатеричной и двоичной нотации. В шестнадцатеричной нотации допускается использование как прописных, так и строчных символов, и полное число символов должно быть ограничено 10 (0х плюс 8) или 18 (0х плюс 16) в случае типа LWORD.

Пример - Десятичное значение WORD 254 может быть представлено как 254 (десятичное), или как 0xFE (шестнадцатеричное), или как 0x000000FE (шестнадцатеричное), но 0254 (десятичное) и 0x0000000FE (шестнадцатеричное) являются неправильными.

С.4.1.3.10 Соглашение по ASCII с плавающей точкой (REAL, LREAL)

Типы данных REAL и LREAL представляют двоичные величины с плавающей точкой. Внутреннее представление этих форматов данных описано в стандарте IEEE 754. Этот стандарт описывает как числовые величины, так и двоичные последовательности, которые интепретируются как "нечисловые" (NaN) символьные величины и положительная и отрицательная бесконечность. Величины с плавающей запятой могут вводиться либо как значения целых чисел, либо как величины, основанные на десятичном представлении с плавающей точкой, или величины, вводимые в "научной" нотации с использованием базовой величины и сдвига в экспоненциальной форме. Значения целых чисел те же самые, что и в типах данных INT, DINT или LINT. Эти значения не могут быть использованы для представления дробных величин. Десятичные с плавающей точкой величины те же, что и величины, включающие в себя целую и дробную компоненту. Целочисленная величина и дробные компоненты разделяются десятичной точкой "." или знаком точкой-разделителем. Экспоненциальная (научная) форма нотации величины - то же самое, что и представление дробной величины, но с добавлением экспоненциальной компоненты. Экспонента всегда представляет собой целую со знаком десять в степени, умноженную на базовую величину.

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

Диапазон принятых данных REAL (единый IEEE, 32-битный формат) основан на формуле

,

где - значение бита знака;

- 8-битная экспонента. Эта экспонента допускает диапазон экспоненты от минус 126 до плюс 127;

- нормализованная 24-битная мантисса (23 внутренних для хранения плюс один скрытый бит). Это допускает диапазон значений мантиссы от 0 до 16777215.

Комбинация е и m допускает приближенный абсолютный диапазон значений от 0 до 3,4028е.

EDS использует для данных REAL следующие нотации величин с плавающей точкой:

целочисленная (фиксированная) нотация:

- 16777215 до 16777215

десятичная (с плавающей точкой) нотация:

0.0 до ±9999999999999999

Полное число разрядов не должно превышать 16 дополнительно к символам десятичной точки и знака. Как символ десятичной точки, так и символ знака могут быть пропущены (подразумевается знак "+", если символ знака пропущен).

Научная нотация: 0.0 до ±nn.nnnnnnnnnE±xxxx:

Полное число разрядов мантиссы не превышает 11 (дополнительно к символу десятичной точки и символу знака), а число разрядов экспоненты не должно превышать 4 (дополнительно к символу "Е" и символу знака). Десятичная точка может быть помещена в мантиссе где угодно. Как символ десятичной точки, так и символ знака могут быть опущены в мантиссе (знак "+" подразумевается, если символ знака опущен).

Диапазон допустимых данных LREAL (двойной IEEE, 64-битный формат) основан на формуле

,

где - значение бита знака;

- 11-битная экспонента. Эта экспонента допускает диапазон между -1022 и +1023;

- нормализованная 53-битная мантисса (52 внутренних в памяти плюс один скрытый бит). Это допускает диапазон значений мантиссы между 0 и 9007199254740991.

Комбинация е и m допускает приближенную абсолютную величину диапазона от 0 до 1,7976е.

EDS использует для данных LREAL следующие нотации величин с плавающей точкой:

- целая (фиксированная) нотация: - 9007199254740991 до 9007199254740991,

- десятичная (с плавающей точкой) нотация: 0.0 до ±9999999999999999.

Полное число разрядов не превышает 16 в дополнение к символам десятичной точки и знака. Как символ десятичной точки, так и символ знака могут быть опущены (знак "+" подразумевается, если символ знака опущен).

Научная нотация: 0.0 до ±nnnn.nnnnnnnnnnnnE±xxxx.

Полное число разрядов мантиссы не превышает 16 (дополнительно к символу десятичной точки и символу знака), а число разрядов экспоненты не должно превышать 4 (дополнительно к символу "Е" и символу знака). Десятичная точка может быть помещена в мантиссе где угодно. Как символ десятичной точки, так и символ знака могут быть опущены в мантиссе (знак "+" подразумевается, если символ знака опущен).

Дополнительно к указанным выше величинам ввода представление с плавающей запятой допускает два вида "нечислового" или NaN символического ввода и две формы бесконечности. Существуют два типа NaN; сигнальный (Signaling) NaN и тихий (Quiet) NaN. Формат также допускает представление величин положительной и отрицательной бесконечности. Для этих случаев зарезервированы специальные указанные ниже слова, которые должны использоваться для представления ввода соответствующих символов с плавающей запятой:

- тихий нечисловой:

QUIET-NAN

- сигнальный нечисловой:

SIGNAL-NAN

- положительная бесконечность:

INFINITY (или +INFINITY)

- отрицательная бесконечность:

- INFINITY

С.4.1.3.11 EDS_Date

Тип данных EDS_Date должен иметь формат mm-dd-yyyy, где mm - месяц, dd - день месяца и уууу - год. Правильные значения частей месяц, день и год в mm-dd-yyyy должны быть следующими:

- mm - от 01 до 12;

- dd - от 01 до 31 (в зависимости от месяца и года);

- уууу - от 1996 до 9999.

Может быть использовано двузначное представление года, в этом случае тип данных EDS_Date должен иметь формат mm-dd-yy, где mm - месяц, dd - день месяца и уу - год. Две цифры года подразумевают впереди 19, так что уу=96 будет соответствовать 1996 году. Правильные значения месяца, дня и года в mm-dd-yy должны быть следующими:

- mm - от 01 до 12;

- dd - от 01 до 31 (в зависимости от месяца и года);

- уу - от 96 до 99 (подразумевается 19 впереди).

Примечание - Использование двузначного представления года не рекомендуется.

С.4.1.3.12 EDS_Time_Of_Day

Тип данных EDS_Time_Of_Day должен иметь формат hh:mm:ss, где hh - часы, mm - минуты и ss - секунды. Правильные значения часов, минут и секунд должны быть следующими:

- hh - от 00 до 23;

- mm - от 00 до 59;

- ss - от 00 до 59.

С.4.1.3.13 EDS_Revision

Тип данных EDS_Revision должен иметь формат Major_Revision.Minor_Revision со следующими правильными значениями:

- Major_Revision - от 0 до 9;

- Minor_Revision - от 0 до 9.

EDS_Revision со значением 0.0 неправильна.

Пример - EDS_Revision со значением 1.4 соответствует большой проверке со значением 1 и малой проверке со значением 4.

С.4.1.3.14 Унифицированный указатель информационного ресурса EDS_URL

Все ссылки на EDS_URL в рамках требований EDS предназначены для получения формализованной информации, необходимой для поиска и получения ресурсов путем использования Интернета. EDS_URL должен быть закодирован в файлах EDS с использованием базового формата, определенного в ИСО 15745-4 для EDS_Char_Array. Кроме того, содержание строки для EDS_URL должно быть в формате, определенном Рабочей Группой по сети Интернет RFC 1738 "Унифицированный указатель информационного ресурса (URL)". В спецификациях файла EDS EDS_URL должно быть ограничено одной из следующих форм:

- http;

- ftp;

- file.

С.4.1.4 Основные требования к файлу EDS

С.4.1.4.1 Обзор

В настоящем подразделе описаны основные секции EDS, которые являются общими для ряда основанных на CIP сетей, и установлены соответствующие требования при использовании.

В таблице С.5 приведено расположение подразделов, содержащих определения этих секций.

Таблица С.5 - Определение основных секций

Секции EDS

Определение

Секция описания файлов

С.4.1.4.2

Секция описания устройств

С.4.1.4.3

Секция классификации устройств

С.4.1.4.4

Секция классов параметров

С.4.1.4.5

Секция параметров

С.4.1.4.6

Секция групп параметров

С.4.1.4.7

Секция объединений

С.4.1.4.8

Секция менеджера соединения

С.4.1.4.9

Секция порта

С.4.1.4.10

Секция модулей

С.4.1.5.2

С.4.1.4.2 Секция описания файлов

Секция описания файлов должна содержать административную информацию о файле EDS. Инструмент конфигурации должен считывать эту информацию, форматировать ее и показывать пользователю. Пользователь может также получить доступ в эту секцию для просмотра текста файла и показа неформатированной информации. Эта секция не требует выполнения модификации, если только пользователь не выполняет модификацию файла вручную. Секция описания файла должна содержать входы, показанные в таблице С.6.

Таблица С.6 - Формат описания файла

Имя входа

Ключевое слово входа

Номер поля

Тип данных

Требуемое/
Опциональное

Текст описания файла

DescText

1

EDS_Char_Array

Требуемое

Дата создания файла

CreateDate

1

EDS_Date

Требуемое

Время создания файла

CreateTime

1

EDS_Time_Of_Day

Требуемое

Дата последней модификации

ModDate

1

EDS_Date

Условное

Время последней модификации

ModTime

1

EDS_Time_Of_Day

Условное

EDS Версия

Версия

1

EDS_Revision

Требуемое

Домашний URL

HomeURL

1

EDS_URL

Опциональное

Входы в секции описания файла должны предоставлять информацию, указанную в таблице С.7.

Таблица С.7 - Входы описания файлов

Входы

Описание

Текст описания файла

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

Дата создания файла

Дата создания EDS, присвоенная разработчиком EDS. Предоставленная только для удобства, эта дата может быть использована для получения информации о версии файла. Инструмент конфигурации не должен использовать эту информацию для какого-либо контроля версии, но он может показывать содержимое

Время создания файла

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

Дата последней модификации

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

Данный вход требуется, если:

- файл EDS модифицирован с помощью программного инструмента;

- имеется вход времени последней модификации

Время последней модификации

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

Версия EDS

Версия EDS. Версия EDS не должна иметь взаимосвязь с версией продукта, это просто версия самого файла EDS

Домашний URL

Унифицированный указатель информационного ресурса мастер файла EDS, файла иконки и других файлов, относящихся к EDS. Домашний URL должен указывать полный точный URL для ссылки на мастер-версию файла EDS. Кроме того, область ссылки (без указания спецификации имени файла) используется для указания области, где находятся другие файлы, относящиеся к устройству, описанному данным EDS

На рисунке С.2 приведен пример, показывающий типичную секцию [File].


Рисунок С.2 - Пример секции [File - Файл] (информативный)

С.4.1.4.3 Секция описания устройства

Секция описания устройства должна содержать информацию изготовителя относительно устройства, включая некоторые из таких величин, как Identity Object устройства. Секция описания устройства должна включать входы, указанные в таблице С.8.

Таблица С.8 - Формат описания устройства

Имя входа

Ключевое слово входа

Номер поля

Тип данных

Требуемое/
Опциональное

Vendor Id (идентификатор продавца)

VendCode

1

UINT

Требуемое

Vendor Name (имя продавца)

VendName

1

EDS_Char_Array

Требуемое

Device Type (тип устройства)

ProdType

1

UINT

Требуемое

Device Type String (строка типа устройства)

ProdTypeStr

1

EDS_Char_Array

Требуемое

Product Code (код продукта)

ProdCode

1

UINT

Требуемое

Major Revision (большая проверка)

MajRev

1

USINT

Требуемое

Minor Revision (малая проверка)

MinRev

1

USINT

Требуемое

Product Name (имя продукта)

ProdName

1

EDS_Char_Array

Требуемое

Catalog Number (номер каталога)

Catalog

1

EDS_Char_Array

Опциональное

Exclude from Adapter Rack Connection (исключить из адаптера соединения стенда)

ExcludeFromAdapterRackConnection

1

EDS_Char_Array

Опциональное

Icon File Name (имя файла иконки)

Icon

1

EDS_Char_Array

Опциональное

Данный вход представляет атрибут Identity Object (объект идентичности).

Данный вход используется для согласования EDS с конкретным продуктом/версией.

Данный вход представляет атрибут Identity Object (объект идентичности), хотя тип данных может незначительно отличаться.

Имя входа для поля описания устройства описывает уникальный номер строки ввода данных.

Инструмент конфигурации должен использовать требуемые входы в секции описания устройства для согласования EDS с конфигурируемым устройством. Входы секции описания устройства должны предоставлять информацию, показанную в таблице С.9.

Таблица С.9 - Входы описания устройства

Входы

Описание

Vendor ID (идентификатор продавца)

Числовой идентификатор продавца, определенный в Identity Object, атрибут 1

Vendor Name (имя продавца)

Текстовое имя продавца. При представлении на дисплее может быть обрезано для соответствия дисплею

Device Type (тип устройства)

Числовой идентификатор устройства, определенный в Identity Object, атрибут 2

DeviceType String (строка устройство-тип)

Текстовое описание типа устройства точно согласно определению в соответствующем профиле устройства CIP. Индивидуальные поставщики могут выбирать строки для конкретных типов устройств поставщика

Product Code (код продукта)

Присвоенный поставщиком числовой код идентификатора продукта, определенный в Identity Object, атрибут 3. Каждый код продукта должен иметь свой собственный EDS

Major Revision (большая проверка)

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

Minor Revision (малая проверка)

Присвоенный продавцом номер малой проверки, определен в Identity Object, атрибут 4. Номер малой проверки должен быть использован для идентификации изменений продукта, не оказывающих влияния на выбор конфигурации пользователя (ошибки программно-аппаратных средств, дополнительные LED, внутренние изменения аппаратных средств). Изменения при малых проверках не должны использоваться инструментом конфигурации для приведения устройства в соответствие с EDS

Product Name (имя продукта)

Текстовое имя продукта, определенное в Identity Object, атрибут 7. При представлении на дисплее может быть обрезано для соответствия дисплею

Catalog Number (номер каталога)

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

Примечание - В случае нескольких номеров каталога полезно предоставлять как можно больше номеров. Например, 1438-ВАС7хх, где 'хх' представляет варианты номеров каталога, поддерживаемых кодом/EDS данного продукта

ExcludeFromAdapterRackConnection (исключить из адаптера соединения стенда)

Это поле используется для описания, должно ли быть установленное на стенде устройство исключено из соединения переходного стенда. Если значение поля - строка "Да", этот модуль должен быть исключен из соединения переходного стенда путем переустановки соответствующих битов щелевой маски (ввода, вывода и конфигурации). Если значение поля - строка "Нет" или это необязательное поле пропущено, соответствующие биты щелевой маски могут быть установлены

Icon File Name (имя файла иконки)

Имя файла иконки указывает файл, содержащий графическое представление устройства. Файл должен иметь формат *.ICO MSWindows и должен, как минимум, содержать иконку 16x16. Файл может также содержать иконки 32x32, 48x48 и 64x64. Расположение файла иконки представляет собой комбинацию места, указанного ключевым словом HomeURL (без компоненты имени файла HomeURL), и имени файла, указанного этим ключевым словом. Это ключевое слово должно быть, только когда имеется ключевое слово HomeURL

На рисунке С.3 приведен пример типичной Секции Устройства.


Рисунок С.3 - Пример секции [Device - Устройство] (информативный)

С.4.1.4.4 Секция Device Classification (классификация устройства)

Секция классификации устройств должна производить классификацию устройств, описанных в EDS, по одной или более категориям устройств. Ключевое слово всех классов должно состоять из набора символов "Class" ("класс"), скомбинированных с десятичным числом. Числа должны начинаться с 1 для первого класса и увеличиваться для каждого следующего класса.

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

- ControlNet;

- DeviceNet;

- EtherNetIP;

- ключевое слово поля поставщика.

Ключевое слово поля поставщика должно начинаться с идентификатора поставщика Vendor ID компании с дополнением через черту снизу специального поля поставщика VendorlD_VendorSpecificField. Идентификатор поставщика VendorlD должен быть выражен в виде десятичной цифры, не содержащей нулей на передних разрядах. Каждый поставщик несет ответственность за поддержание и документальное оформление ключевого слова для поля поставщика.

С.4.1.4.5 Секция Parameter Class (класс параметров)

Секция Класс Параметров должна определить общие атрибуты параметров конфигурации, описанных в EDS, соответствующие подмножеству атрибутов класса Parameter Object согласно описанию в библиотеке объектов CIP.

Секция Класс Параметров должна содержать входы, указанные в таблице С.10.

Таблица С.10 - Формат класса параметров

Имя входа

Ключевое слово входа

Номер поля

Тип данных

Требуемый/
Опциональный

Max Instances (макс. сущности)

Maxlnst

1

UINT

Требуемый

Parameter Class Descriptor (дескриптор класса параметров)

Descriptor

1

WORD

Требуемый

Configuration Assembly Instance (сущность объединения конфигураций)

CfgAssembly

1

UINT

Требуемый

Входы секции Класс Параметров должны предоставлять информацию, указанную в таблице С.11.

Таблица С.11 - Входы класса параметров

Входы

Описание

Max Instances (макс. сущности)

Определяет полное число параметров конфигурации, содержащихся в устройстве, ассоциированном с EDS

Parameter Class Descriptor (дескриптор класса параметров)

Содержит битовые флажки, описывающие поведение объектов параметр устройства

Configuration Assembly Instance (сущность объединения конфигураций)

Определяет номер сущности Assembly Object, содержащей данные о конфигурации устройства

Вход Parameter Class Descriptor должен содержать биты, предназначенные для описания характеристик параметров, согласно определению в таблице С.12. Биты, не определенные в таблице С.12, не должны использоваться и должны быть установлены на нуль (0).

Таблица С.12 - Значения битов дескриптора класса параметров

Бит

Имя

Значение бита и его смысл

0

Поддержка отдельного доступа к параметру

0 = НЕТ параметр не может быть индивидуально доступен. Используется только объединение конфигураций.

1 = Параметр может быть индивидуально доступен

1

Поддержка всех атрибутов

0 = Только текущее значение параметра доступно в устройстве.

1 = Все данные конфигурации для параметра доступны внутри самого устройства

2

Команда постоянного сохранения

0 = Параметры сохраняются автоматически.

1 = Параметры не сохраняются автоматически. Необходима команда выполнить постоянное сохранение, когда желательные параметры необходимо сохранить в постоянной памяти

3

Параметры сохраняются в постоянной памяти

0 = Параметры не сохраняются в постоянной памяти.

1 = Все параметры полностью сохраняются в постоянной памяти

На рисунке С.4 приведен пример типичной секции Класс Параметра


Рисунок С.4 - Пример секции Класса Параметров ParamClass (информативный)

С.4.1.4.6 Секция параметров

Секция параметров должна определять параметры конфигурации в устройстве. Ключевое слово входа должно быть одним из следующих наборов символов "Param", "ProxyParam", "ProxiedParam", скомбинированных с номером сущности параметра (десятичным) для устройства, например "Param1". Сущность объекта параметр может, но необязательно должна применяться в устройстве, но все сущности объекта параметр имеют соответствующий вход "ParamN" в EDS. Однако если сущность объекта параметр существует внутри узла и параметр описан в EDS, то значение "N" в "ParamN" должно быть равно сущности объекта параметр.

Каждый вход должен содержать форматированные поля, показанные в таблице С.13. Ключевые слова "ProxyParam" и "ProxiedParam" определены в С.4.1.5.3.1 в качестве части требований модульного EDS.

Таблица С.13 - Формат параметров

Имя поля

Номер поля

Тип данных

Требуемое/
Опциональное

Зарезервировано

1

USINT

Требуемое

Link Path Size (размер маршрута связи)

2

USINT

Опционально

Link Path (маршрут связи)

3

ЕРАТН

Опционально

Descriptor (дескриптор)

4

WORD

Требуемое

Data Type (тип данных)

5

USINT/EPATH

Требуемое

Data Size (размер данных)

6

USINT

Требуемое

Parameter Name (имя параметра)

7

EDS_Char_Array

Требуемое

Units String (единичная строка)

8

EDS_Char_Array

Требуемое

Help String (вспомогательная строка)

9

EDS_Char_Array

Требуемое

Minimum Value (минимальное значение)

10

тип данных

Условно

Maximum Value (максимальное значение)

11

тип данных

Условно

Default Value (значение по умолчанию)

12

тип данных

Требуемое

Scaling Multiplier (множитель масштабирования)

13

UINT

Опционально

Scaling Divider (делитель масштабирования)

14

UINT

Опционально

Scaling Base (база масштабирования)

15

UINT

Опционально

Scaling Offset (сдвиг масштабирования)

16

INT

Опционально

Multiplier Link (множительная связь)

17

UINT

Опционально

DivИCOr Link (делительная связь)

18

UINT

Опционально

Base Link (базовая связь)

19

UINT

Опционально

Offset Link (связь со сдвигом)

20

UINT

Опционально

Decimal Precision (десятичная точность)

21

USINT

Опционально

International Parameter Name (международное имя параметра)

22

STRINGI

Опционально

International Engineering Units (международные технические единицы)

23

STRINGI

Опционально

International Help String (международная строка помощи)

24

STRINGI

Опционально

Параметры указаны в таблице С.17.

Входы в секции параметров должны предоставлять информацию, указанную в таблицах С.14 и С.18.

Поля параметров, перечисленные в таблице С.14, являются общими для всех параметров.

Таблица С.14 - Общие поля параметров

Поле

Описание

Зарезервировано

Это первое поле должно содержать нуль

Link Path Size (размер маршрута связи)

Число байтов, используемых для представления пути. Если размер связи не согласуется с числом байтов в поле "Link Path", то "Link Path" должен быть проигнорирован. Если этот параметр не адресуется из связи, то это поле должно быть пустым. Если это поле пустое, "Link Size" должен быть равен числу байтов в поле "Link Path"

Link Path (маршрут связи)

Путь CIP к атрибуту объекта из места, где значение параметра извлечено. Путь должен вводиться как набор символов, используя нотацию пути, описанную в МЭК 61158-6:2003 (тип 2), и с форматом, указанным в А.4.1.3.6. Если параметр, описанный этим входом ParamN, не адресуемый прямо из сети, это поле должно быть пустым. Если это поле содержит нулевую строку, "", параметр, описанный этим входом ParamN, должен быть адресуем как атрибут данных (атрибут сущности 1) N-й сущности объекта Parameter (например, используя путь 20 0F 24 N 30 01)

Descriptor (дескриптор)

Параметр дескриптор. Содержит битовые флажки, описывающие поведение отдельных параметров (см. таблицу С.15)

Data Type (тип данных)

Идентификатор типа данных согласно определению в МЭК 61158-6:2003 (Тип 2: Data Type Reporting - Сообщение Типа Данных). Этот идентификатор должен быть кодирован либо как USINT, либо как ЕРАТН.

Примечание - Старые версии файлов EDS могут использовать идентификаторы типа данных USINT согласно таблице С.16, но это в настоящее время устарело. Они предоставлены здесь по причинам совместимости

Data Size (размер данных)

Числовая величина размера данных. Для строковых и ЕРАТН типов данных это поле устанавливает число байтов на символ или вход. Следовательно, в случае типов данных STRING и ЕРАТН эта величина должна быть установлена равной 1. В случае типа данных STRING2 она должна быть установлена равной 2. Для типа данных STRINGN она должна быть установлена равной "N"

Parameter Name (имя параметра)

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

Units String (единичная строка)

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

Help String (вспомогательная строка)

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

Minimum Value (минимальное значение)

Значения и требования, основанные на типе данных параметров, см. в таблице С.17.

Maximum Value (максимальное значение)

Значения и требования, основанные на типе данных параметров, см. в таблице С.17

Default Value (значение по умолчанию)

Числовые значения по умолчанию, присвоенные величине данных параметра

International Parameter Name (международное имя параметра)

Имя параметра, выраженное в нотации STRINGI

International Engineering Name (международное техническое наименование)

Технические единицы, выраженные в нотации STRINGI

International Help String (международная вспомогательная строка)

Вспомогательная строка, выраженная в нотации STRINGI

Биты поля Дескриптор должны соответствовать определениям в таблице С.15.

Таблица С.15 - Определение битов полей дескриптора

Бит

Определение

Значение бита и его смысл

0

Поддерживает аппаратную установку пути

0 = Путь связи не может быть установлен.

1 = Путь связи может быть установлен

1

Поддержка пронумерованных строк

0 = Пронумерованные строки не поддерживаются.

1 = Пронумерованные строки поддерживаются и могут быть прочитаны

2

Поддержка масштабирования

0 = Масштабирование не поддерживается.

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

3

Поддерживаются связи с масштабированием

0 = Связи с масштабированием не поддерживаются.

1 = Значения атрибутов масштабирования могут быть извлечены из других параметров

4

Только считывание параметра

0 = Значение параметра может быть записано (установлено) и считано (получено).

1 = Значение параметра может быть только считано (получено), но не установлено

5

Мониторинг параметра

0 = Значение параметра не обновляется устройством в реальном времени.

1 = Значение параметра обновляется устройством в реальном времени

6

Поддержка повышенной точности масштабирования

0 = Повышенная точность масштабирования не поддерживается.

1 = Повышенная точность масштабирования должна использоваться, и значения представляются пользователю в технических единицах

7

Поддержка непоследовательной нумерации строк

0 = Непоследовательная нумерация строк не поддерживается.

1 = Непоследовательная нумерация строк поддерживается

8

Допускается как нумерация, так и отдельные значения

0 = Как нумерация, так и отдельные значения не поддерживаются.

1 = Как нумерация, так и отдельные значения поддерживаются

9-15

Зарезервировано

Эти биты зарезервированы и должны быть установлены на 0

Старые версии файлов EDS могут использовать идентификаторы типа данных, указанные в таблице С.16.

Таблица С.16 - Идентификаторы типа данных (устаревшие)

Идентификатор типа данных

Определение

Описание типа данных

1

WORD

16-битное слово

2

UINT

16-битное целое число без знака

3

INT

16-битное целое число со знаком

4

BOOL

Булево

5

SINT

Короткое целое число

6

DINT

Двойное целое число

7

LINT

Длинное целое число

8

USINT

Короткое целое число без знака

9

UDINT

Двойное целое число без знака

10

ULINT

Длинное целое число без знака

11

REAL

Формат с одной плавающей точкой (IEEE 754)

12

LREAL

Формат с двойной плавающей точкой (IEEE 754)

13

ITIME

Длительность (короткая)

14

TIME

Длительность

15

FTIME

Длительность (высокое разрешение)

16

LTIME

Длительность (длинная)

17

DATE

Дата

18

TIME_OF_DAY

Время дня

19

DATE_AND_TIME

Дата и время

20

STRING

Строка 8 бит на символ

21

STRING2

Строка 16 бит на символ

22

STRINGN

Строка N байт на символ

23

SHORT_STRING

Короткая строка N-байт на символ

24

BYTE

8-битная строка

25

DWORD

32-битная строка

26

LWORD

64-битная строка

В таблице С.17 установлены смысл и специальные требования для входов с минимальными и максимальными значениями на основании типов данных параметров.

Таблица С.17 - Семантика входов с минимальным и максимальным значениями

Тип данных

Описание и семантика

Семантика минимальных значений

Семантика максимальных значений

Требуемое/
Опциональное/
Недопустимое

BYTE

Битовая строка - длина 8 бит

Минимальные и максимальные значения этих типов данных не определены и не должны устанавливаться в файле EDS

Недопустимое

WORD

Битовая строка - длина 16 бит

DWORD

Битовая строка - длина 32 бита

LWORD

Битовая строка - длина 64 бита

STRING

Строка (индикатор длины 2 байта, 1 байт на символ)

Минимальная длина строки

Максимальная длина строки

Требуемое

STRING2

Строка (индикатор длины 2 байта, 2 байта на символ)

Минимальная длина строки

Максимальная длина строки

Требуемое

STRINGN

Строка (индикатор длины 2 байта, N байт на символ)

Минимальная длина строки

Максимальная длина строки

Требуемое

SHORT_STRING

Символьная строка (индикатор длины 1 байт, символы 1 байт)

Минимальная длина строки

Максимальная длина строки

Требуемое

EPATH

Пронумерованный путь

Минимальная длина строки

Максимальная длина строки

Опциональное

Все другие типы данных

Минимальное числовое значение, которое может быть присвоено величине данных

Максимальное числовое значение, которое может быть присвоено величине данных

Опциональное

Типы данных STRING, STRING2, STRINGN, SHORT_STRING и ЕРАТН не имеют спецификации минимального или максимального значения. Поля минимального и максимального значений используются для представления минимальной и максимальной длины строки или пути. В этих случаях параметр Data Size используется для представления числа байтов, требующихся на символ или кодирование входа.

Если минимальное и/или максимальное значения не установлены, то минимальное и/или максимальное значения величины данных параметра определены в МЭК 61158-5:2003 (тип 2) исходя из типа данных параметра.

Поля параметра, перечисленные в таблице С.18, являются необязательными и значащими, только когда они используются со следующими типами данных: SINT, INT, DINT, LINT, USINT, UINT, UDINT, ULINT, REAL и LREAL. Спецификация этих полей с любым другим типом данных запрещена.

Таблица С.18 - Поля параметров, зарезервированные для типов числовых данных

Поля

Описание

Scaling Multiplier (умножитель масштабирования)

Числовое значение множителя, применяемое к текущему значению данных параметра

Scaling Divider (делитель масштабирования)

Числовое значение делителя, применяемое к текущему значению данных параметра

Scaling Base (база масштабирования)

Числовое значение базы, применяемое к текущему значению данных параметра

Scaling Offset (сдвиг масштабирования)

Числовое значение сдвига, применяемое к текущему значению данных параметра

Multiplier Link (множительная связь)

Номер параметра, указывающий на сущность Parameter Object или другой атрибут объекта, содержащий числовое значение множителя, применяемое к текущему значению данных параметра

Divisor Link (делительная связь)

Номер параметра, указывающий на сущность Parameter Object или другой атрибут объекта, содержащий числовое значение делителя, применяемое к текущему значению данных параметра

Base Link (базовая связь)

Номер параметра, указывающий на сущность Parameter Object или другой атрибут объекта, содержащий числовое значение базы, применяемое к текущему значению данных параметра

Offset Link (связь со сдвигом)

Номер параметра, указывающий на сущность Parameter Object или другой атрибут объекта, содержащий числовое значение сдвига, применяемое к текущему значению данных параметра

Decimal Precision (десятичная точность)

Числовое значение точности, применяемое к текущему значению данных параметра

Масштабирование должно выполняться не устройством, содержащим параметр, а средствами дисплея. Если масштабирование поддерживается, средства дисплея должны использовать уравнение, показанное на рисунке С.5, для определения технического значения параметра (т.е величины на дисплее) исходя из реального значения параметра. Если масштабирование не поддерживается, то значение параметра должно быть представлено на дисплее без изменений.

Если расширенное масштабирование не поддерживается, эта формула должна применяться при десятичной точности = 0.

Рисунок С.5 - Формула масштабирования параметра

В секции [Params] возможно также наличие второго ключевого слова. Это ключевое слово должно быть использовано для предоставления списка нумерации вариантов параметра пользователю. Ключевое слово входа для всех пронумерованных параметров должно состоять из набора символов, "Enum", объединенного с десятичным числом из соответствующего входа Param. Каждый вход Enum должен состоять из пар целых чисел и строк.

Пример на рисунке С.6 показывает типичную секцию Parameter (Параметр).


Рисунок С.6 - Пример секции [Params]

С.4.1.4.7 Секция Parameter Group

Секция группы параметров должна определять все группы параметров в устройстве. Каждая группа параметров должна содержать список параметров в группе. Ключевое слово входа каждой группы должно состоять из комбинации набора символов, "Group" и номера группы параметров (десятичного), например "Group1". Десятичные номера должны начинаться с единицы и увеличиваться на единицу.

Фактический вариант объекта Parameter Group может, но необязательно, применяться в устройстве. Напротив не требуется, чтобы все варианты объекта Parameter Group имели соответствующий вход "GroupN" в EDS. Однако если вариант объекта Parameter Group существует в узле и если эта Группа Параметров описана также в EDS, то значение "N" в "GroupN" должно быть равно варианту объекта Parameter Group.

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

Таблица С.19 - Формат группы параметров

Имя поля

Номер поля

Тип данных

Требуемое/
Опциональное

Строка имени группы

1

EDS_Char_Array

Требуемое

Число членов

2

UINT

Требуемое

Параметр

3 и более (число членов + 2)

UINT

Требуемое

На рисунке С.7 приведен пример типичной секции Parameter Group.


Рисунок С.7 - Пример секции [Groups]

С.4.1.4.8 Секция Assembly

Секция Assembly описывает структуру блока данных. Часто этот блок представляет собой атрибут данных объекта Assembly; однако эта секция EDS может быть использована для описания любых сложных структур. Описание этого блока данных является параллельным механизму, который объект Assembly использует для описания списка своих членов.

Ключевое слово входа "Revision" должно иметь одно 16-битное поле целого числа, которое должно соответствовать версии (атрибут класса 1) объекта Assembly внутри устройства. Если этот опциональный вход пропущен, версия объекта Assembly должна быть 2.

Ключевое слово для всех объединений должно состоять из одного из следующих наборов символов: "Assem", "ProxyAssem", "ProxiedAssem", скомбинированных с номером варианта объекта Assembly (десятичным) для данного устройства, например "Assem1". Если конкретный вариант объекта Assembly адресуем из связи, то должна быть парность один к одному между номером Assem в файле EDS и номером варианта Assembly в устройстве. Ключевые слова "ProxyAssem" и "ProxiedAssem" определяются в С.4.1.5.3.2 как часть требований модульного EDS.

Каждый вход должен содержать форматированные поля, показанные в таблице С.20.

Таблица С.20 - Формат ключевого слова AssemN

Имя поля

Номер поля

Тип данных

Требуемое/
Опциональное

Имя

1

EDS_Char_Array

Опциональное

Путь

2

EDS_Char_Array

Опциональное

Размер

3

UINT

Условное

Описание

4

WORD

Опциональное

Зарезервировано

5, 6

Пустой

-

Размер элемента

7, 9, 11 ...

UINT

Условное

Ссылка на элемент

8, 10, 12 ...

AssemN, ProxyAssemN, ParamN, ProxyParamN UDINT или ЕРАТН

Условное

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

Второе поле "Path" должно быть строкой, определяющей логический путь. Этот путь должен указывать адрес блока данных в устройстве. Если блок, описанный этим входом AssemN, не адресуем прямо из связи, это поле должно быть пустым. Если это поле - нулевая строка, " ", блок данных должен быть адресуемым как атрибут данных (атрибут варианта 3) N-го варианта объекта Assembly.

Третье поле "Size" должно представлять собой размер блока данных в байтах. Если ни это поле, ни поля "Member Size" / "Member Reference" не присутствуют, размер блока данных должен быть равен 0. Оба этих поля могут присутствовать, однако поскольку они оба устанавливают размер блока, установленные обоими способами размеры должны быть согласованы.

Четвертое поле "Descriptor" должно быть битовым полем, которое описывает некоторые характеристики Assembly. Биты этого поля следует интерпретировать согласно таблице С.21.

Таблица С.21 - Определение бита поля дескриптора Assembly

Бит

Имя

Значение

0

Разрешение редактировать значение

Если этот бит установлен (1), содержание полей ссылок члена объединения, определенное в виде значений, можно редактировать

Если восстановлен (0), содержание полей ссылок этих членов нельзя редактировать

Если это поле пустое, значение по умолчанию должно быть установлено на (0)

Ссылки на члены, считающиеся значениями, это те, которые устанавливают либо константу UDINT, либо путь, состоящий из сегментов данных Data Segments

1-15

Зарезервированы

Поля 5 и 6 должны быть зарезервированными и пустыми.

Остальные поля должны быть парными (например, поле "Member Size" составляет пару с полем "Member Reference"), что требует четное полное число полей. Число пар полей на каждом входе должно быть переменным. Эти пары должны соответствовать списку членов объекта Assembly.

Допустимые значения поля "Ссылка Элемента" должны быть одним из следующих:

- ссылка ParamN или ProxyParamN из секции [Params];

- ссылка AssemN или ProxyAssemN из секции [Assembly];

- строка, представляющая путь (ЕРАТН);

- константа UDINT;

- пустое поле;

- дополнительные значения согласно определению для модульного EDS в С.4.1.5.3.2.

Если поле "Member Reference" пустое, число битов, установленное в поле "Member Size", должно быть использовано в качестве заполнителя незначащей информацией в Assembly. Поле "Member Reference", содержащее нулевую строку, должно рассматриваться как пустое поле. Поле "Member Reference" и ему соответствующее поле "Member Size" не должны быть оба пустыми. Если поле "Member Reference" указывает ЕРАТН, этот путь должен состоять либо из логических сегментов (путь к объекту внутри устройства), либо из сегментов данных.

Поле "Member Size" должно иметь единицы битов. Если поле "Member Size" пустое, следует использовать заданный размер, соответствующий полю "Member Reference". Заданный размер входа "Param" должен быть приведен в его 6-м поле (размер). Заданный размер входа "Assem" должен быть приведен в его 3-м поле (размер).

Элементы должны быть помещены в блок данных, начиная с младшего бита, как это делается в объекте Assembly. Если поле "Member Size" меньше, чем заданный размер соответствующего поля "Member Reference", должны быть использованы младшие биты соответствующего поля "Member Reference". Если поле "Member Size" больше, чем заданный размер соответствующего поля "Member Reference", за полным элементом должно следовать заполнение нулями до расширения элемента на весь "Member Size". Представленный блок данных должен быть целым числом байтов. Сумма размеров всех элементов должна быть равна полю Размер AssemN (при выражении в битах).

На рисунке С.8 приведен пример, показывающий типичную секцию Assembly. В этом примере Assem5 имеет длину 1 байт и имеет значение по умолчанию 0x21.


Рисунок С.8 - Пример секции [Assembly]

Примечание - Ключевое слово "Variant", скомбинированное с десятичным числом (например, "Variant1"), зарезервировано для будущего определения новых типов входов в секции Assembly.

С.4.1.4.9 Раздел Connection Manager

С.4.1.4.9.1 Содержание

Раздел менеджера соединений Connection Manager должен содержать информацию, касающуюся числа типов соединений приложений, которые поддерживают устройство. Этот раздел моделируется как Connection Manager Object. Многие использованные здесь термины описаны в МЭК 61158-5:2003 и МЭК 61158-6:2003 (тип 2). Ключевое слово каждого входа должно быть одним из следующего набора символов: "Connection", "ProxyConnect", "ProxiedConnect", объединенных с числом (десятичным), например "Connection1", "ProxyConnect1" или "ProxiedConnect1". Десятичные числа должны начинаться с 1 и увеличиваться для каждого дополнительного входа "ProxyConnect", "ProxiedConnect". Ключевые слова "ProxyConnect" и "ProxiedConnect" определены в С.4.1.5.3.3 в качестве части требований к модульному EDS.

Каждый вход должен содержать форматированные поля, указанные в таблице С.22.

Таблица С.22 - Формат Connection Manager

Имя поля

Номер поля

Тип данных

Требуемое/
Опциональное

Переключение и транспорт

1

DWORD

Требуемое

Параметры соединения

2

DWORD

Требуемое

О=>Т RPI

3

UDINT или ParamN, или ProxyParamN

Опциональное

О=>Т размер

4

UINT или ParamN, или ProxyParamN

Условное

О=>Т формат

5

ParamN или ProxyParamN, или AssemN, или ProxyAssemN

Условное

Т=>О RPI

6

UDINT или ParamN, или ProxyParamN

Опциональное

Т=>О размер

7

UINT, или ParamN, или ProxyParamN

Условное

Т=>О формат

8

ParamN или ProxyParamN, или AssemN, или ProxyAssemN

Условное

Конфиг #1 размер

9

UINT или ParamN, или ProxyParamN

Опциональное

Конфиг #1 формат

10

ParamN или ProxyParamN, или AssemN, или ProxyAssemN

Опциональное

Конфиг #2 размер

11

UINT или ParamN, или ProxyParamN

Опциональное

Конфиг #2 формат

12

ParamN или ProxyParamN, или AssemN, или ProxyAssemN

Опциональное

Строка имени соединения

13

EDS_Char_Array

Требуемое

Вспомогательная строка

14

EDS_Char_Array

Требуемое

Путь

15

EDS_Char_Array

Требуемое

С.4.1.4.9.2 Маска переключения и транспорта

Присвоение битов в маске переключения и транспорта должно соответствовать показанному в таблице С.23. Бит должен быть установлен на 1 (включено) для каждого режима переключения, который поддерживает соединение. Все другие биты должны быть установлены на 0 (выключено). Для бита клиент/сервер: 0=клиент, 1=сервер. Только один из типов транспорта должен быть установлен на 1 (включено).

Таблица С.23 - Присвоение битов в маске переключения и транспорта

Бит

Определение бита

0

Класс 0: нуль

1

Класс 1: повторное детектирование

2

Класс 2: подтверждение

3

Класс 3: проверка

4

Класс 4: отсутствие блокировки

5

Класс 5: отсутствие блокировки, фрагментирование

6

Класс 6: групповая адресация, фрагментирование

7-15

Класс: зарезервировано

16

Переключатель: циклический

17

Переключатель: изменение состояния

18

Переключатель: приложение

19-23

Переключатель: зарезервировано

24

Тип транспорта: только ожидание

25

Тип транспорта: только ввод

26

Тип транспорта: исключительный владелец

27

Тип транспорта: резервный владелец

28-30

Зарезервировано

31

Клиент = 0 / сервер = 1

С.4.1.4.9.3 Параметры соединения

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

Таблица С.24 - Присвоение битов параметров соединения

Бит

Определение бита

0

О=>Т поддержка фиксированного размера

1

О=>Т поддержка переменного размера

2

Т=>О поддержка фиксированного размера

3

Т=>О поддержка переменного размера

4-5

О=>Т число байтов на слот в О=>Т пакете данных в реальном времени для соединений блока переходников:

0 = 1 байт

1 = 2 байта

2 = 4 байта

3 = 8 байт

6-7

Т=>О число байтов на слот в Т=>О пакете данных в реальном времени для соединений блока переходников:

0 = 1 байт

1 = 2 байта

2 = 4 байта

3 = 8 байт

8-10

О=>Т Формат передачи в реальном времени:

0 = соединение для констант и безрежимное

1 = использование пакета данных нулевой длины для указания холостого режима

2 = зарезервировано

3 = тактовый импульс

4 = 32-битный прогон/заголовок холостого хода

5-7 зарезервированы

11

зарезервировано

12-14

Т=>О Формат передачи в реальном времени

0 = соединение для констант и безрежимное

1 = использование пакета данных нулевой длины для указания холостого режима

2 = зарезервировано

3 = тактовый импульс

4 = 32-битный прогон/заголовок холостого хода

5-7 зарезервированы

15

Зарезервировано

16

О=>Т тип соединения: NULL (НЕОПРЕДЕЛЕННЫЙ)

17

О=>Т тип соединения: MULTICAST (МНОГОАДРЕСНЫЙ)

18

О=>Т тип соединения: POINT2POINT

19

О=>Т тип соединения: зарезервировано

20

Т=>О тип соединения: NULL (НЕОПРЕДЕЛЕННЫЙ)

21

Т=>О тип соединения: MULTICAST (МНОГОАДРЕСНЫЙ)

22

Т=>О тип соединения: POINT2POINT

23

Т=>О тип соединения: зарезервировано

24

О=>Т приоритет: LOW (НИЗКИЙ)

25

О=>Т приоритет: HIGH (ВЫСОКИЙ)

26

О=>Т приоритет: SCHEDULED (ПЛАНОВЫЙ)

27

О=>Т приоритет: зарезервировано

28

Т=>О приоритет: LOW (НИЗКИЙ)

29

Т=>О приоритет: HIGH (ВЫСОКИЙ)

30

Т=>О приоритет: SCHEDULED (ПЛАНОВЫЙ)

31

Т=>О приоритет: зарезервировано

С.4.1.4.9.4 О=>T RPI (Requested Packet Interval)

О=>T RPI должно быть числом микросекунд интервала запрашиваемого пакета. О=>Т RPI должно быть UDINT или Param, или ProxyParam входом из секции [Params], который определяется в UDINT. Если это поле пустое, никакие ограничения не накладываются на О=>Т RPI.

С.4.1.4.9.5 О=>Т размер

О=>Т размер должен быть числом байтов, предоставляемых для целевого транспорта. Он не должен включать счет последовательности транспорта. О=>Т размер должен быть UINT или Param, или ProxyParam входом из секции [Params], который определяется в UINT. Если это поле пустое, заданный размер формата О=>Т должен использоваться после добавления опционального размера заголовка прогона/холостого хода.

С.4.1.4.9.6 О=>Т формат

Формат входа О=>Т должен определять структуру буфера потребителя для этого соединения. Правильные дескрипторы формата должны быть идентификаторами в файле EDS, включая следующее:

- Param или ProxyParam вход из секции [Params];

- Assem или ProxyAssem вход из секции [Assembly].

Это поле может быть пустым, показывая, что формат потребителя не установлен. Это поле не должно быть пустым, если поле О=>Т размер пустое. Формат О=>Т не должен включать в себя 32-битный заголовок, если он присутствует.

C.4.1.4.9.7 T=>O RPI

Т=> О RPI должно быть числом микросекунд интервала запрашиваемого пакета. Т=> О RPI должно быть UDINT или Param, или ProxyParam входом из секции [Params], который определяется в UDINT. Если это поле пустое, никакие ограничения не накладываются на Т=> О RPI.

С.4.1.4.9.8 Т=>О размер

Т=> О размер должен быть числом байтов, предоставляемых для целевого транспорта. Он не должен включать в себя счет последовательности транспорта. Т=> О размер должен быть UINT или Param, или ProxyParam входом из секции [Params], который определяется в UINT. Если это поле пустое, заданный размер формата Т=> О должен использоваться после добавления опционального заголовка прогона/ холостого хода.

С.4.1.4.9.9 Т=>О формат

Формат входа Т=> О должен определять структуру буфера потребителя для этого соединения. Правильные дескрипторы формата должны быть идентификаторами в файле EDS, включая следующее:

- Param или ProxyParam вход из секции [Params];

- Assem или ProxyAssem вход из секции [Assembly].

Это поле может быть пустым, показывая, что создаваемый формат не установлен. Это поле не должно быть пустым, если поле Т=> О размер пустое. Формат должен включать в себя заголовок статуса, если он присутствует.

С.4.1.4.9.10 Конфигурация

Размеры Config #1 и Config #2 должны устанавливать размер сегмента опциональных данных, которые присоединяются к пути Forward_Open. Сегмент данных должен быть конкатенацией двух буферов в соответствии с форматами Config #1 и Config #2. Размеры должны измеряться определенным числом байтов и принадлежать входам UINT или Param, или ProxyParam секции [Params], которые определяются в UINT. Если одно из полей Config пустое, должен быть использован по умолчанию размер формата соответствующего поля Config.

Действительные поля, устанавливающие формат конфигурации Config должны иметь идентификаторами в файле EDS:

- Param или ProxyParam вход из секции [Params];

- Assem или ProxyAssem вход из секции [Assembly].

Эти поля могут быть пустыми, показывая, что формат конфигурации не установлен. Если оба поля конфигурации размера и конфигурации формата пустые, никакие сегменты данных не добавляются к пути Forward_Open.

С.4.1.4.9.11 Строка имени соединения

Инструмент может показывать строку имени соединения (набор символов). Строка имени соединения должна быть уникальной среди всех входов Соединения (Connection) в рамках EDS.

С.4.1.4.9.12 Вспомогательная строка

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

С.4.1.4.9.13 Путь

Путь содержит ссылку на целевой объект. Путь должен вводиться как Путь CIP (ЕРАТН) с использованием заполняющей путь нотации, описанной в МЭК 61158-6:2003 (тип 2), и в формате, установленном в С.4.1.3.6. Дополнительно к формату, установленному в С.4.1.3.6, поле пути может также содержать другие приведенные ниже ссылки:

- Param или ProxyParam входы из секции [Params];

- ключевое слово SLOT;

- ключевое слово SYMBOL_ANSI;

- ключевое слово SLOT_MINUS_ONE.

Входы Param/ProxyParam должны обозначаться согласно USINT, UINT или UDINT. Значение Param/ ProxyParam должно использоваться с обратным порядком байтов для вставки в путь. Ссылки Param/ProxyParam в пути могут быть заключены в скобки, как показано на рисунке С.9. Если значение Param/ProxyParam заключено в скобки, оно используется локально для пути - тот же самый вход Param/ProxyParam может иметь другое значение где-либо в EDS. Если Param/ProxyParam не заключено в скобки, значение должно быть одинаковым в EDS везде.

Ключевое слово SLOT должно всегда определяться в USINT. Значения, подставляемые в ключевое слово SLOT, должны соответствовать позиции модуля в панели.

Ключевое слово SLOT_MINUS_ONE должно всегда определяться в USINT. Значения, подставляемые в ключевое слово SLOT_MINUS_ONE, должны соответствовать позиции модуля в панели минус 1.

Ключевое слово SYMBOL_ANSI должно определяться согласно расширенному символьному сегменту [см. МЭК 61158-6:2003 (тип 2)], введенному через интерфейс пользователя. Расширенный символьный сегмент должен быть расширенным символом ANSI (тип пути CIP = 0x91). Например, строка "CAB" должна определяться следующим расширенным символьным сегментом (заполненным): 0x91 0x03 0x43 0x41 0x42 0x00.

С.4.1.4.9.14 Пример секции Connection Manager (информативный)

На рисунке С.9 приведен пример, показывающий типичную секцию Connection Manager (Менеджер Соединения).


Рисунок С.9 - Пример секции [Connection Manager]

С.4.1.4.10 Секция Port

Секция Port должна описывать порты, имеющие маршруты CIP и доступные внутри устройства. Каждый имеющий CIP маршрутизацию порт должен иметь соответствующий вход в этой секции. Ключевое слово входа для всех портов должно состоять из набора символов "Port", скомбинированного с десятичным числом, соответствующим сущности объекта порт. Например, Port1 является сущностью 1 Port Object.

Примечание - Маршрутизируемый согласно CIP порт - это порт, способный обмениваться сообщениями CIP с другим портом CIP, соединенным с другой связью CIP.

Каждый вход должен содержать форматированные поля, показанные в таблице С.25.

Таблица С.25 - Формат входа в порт

Имя поля

Номер поля

Тип данных

Требуемое/
Опциональное

Port Type Name

1

Ключевое слово поля

Требуемое

Port Name

2

EDS_Char_Array

Опциональное

Port Object

3

EDS_Char_Array

Опциональное

Port Number

4

UINT

Требуемое

Reserved

5, 6

Пусто

Не используется

Port Specific

7, 8, ...

Специфичное для порта

Специфичное для порта

Первое поле, называемое "Port Type Name", должно быть одним из следующих ключевых слов поля:

- ControlNet;

- ControlNet_Redundant;

- TCP (для указания имеющего возможности EtherNet/IP TCP порта);

- DeviceNet;

- Зависящее от поставщика ключевое слово поля, начинающееся с идентификатора поставщика Vendor ID устройства и символа подчеркивания ('65535_').

Опциональное поле "Port Name" должно быть строкой, содержащей имя порта, и может быть использовано в интерфейсе пользователя. Поле "Port Object" должно быть путем ЕРАТН, который указывает на определенный объект связи сети, ассоциированный с портом.

Порт номер 1 должен соответствовать порту объединительной панели. Устройства с объединительной панелью, которые не могут определять маршрут сообщений CIP, не должны иметь порт номер 1.

На рисунке С.10 приведен пример, показывающий типичную секцию Port.


Рисунок С.10 - Пример секции [Port]

С.4.1.5 Требования к файлу модульного EDS

С.4.1.5.1 Общие положения

В настоящем подразделе дано описание концепции и содержания модульного EDS и установлены требования по применению.

С.4.1.5.2 Модульная секция

С.4.1.5.2.1 Содержание

[Modular] секция должна описывать систему на основе стойки. Должны существовать два типа модульных устройств:

- стойки;

- модуль.

С.4.1.5.2.2 Устройство стойки

Секция [Modular], описывающая стойку, должна содержать требуемое ключевое слово "DefineSlotslnRack". Единственное поле этого входа должно быть 16-битным беззнаковым целым числом (UINT), указывающим число слотов в стойке. Даже если электронный ключ определен для этой стойки, она необязательно будет адресуемой из связи. Ключевое слово SLOT, использованное в определениях пути в секции [Connection Manager], должно иметь диапазон от 0 до числа слотов минус 1.

Ключевое слово "SlotDisplayRule" необязательно. Единственное поле этого входа должно быть параметром из секции [Params] (только ParamN), которое определяет преобразование между внутренним и внешним номером слота.

На рисунке С.11 приведен пример, показывающий EDS для устройства стойки, включая секцию Modular.


Рисунок С.11 - Модульная секция [Modular], описывающая стойки

С.4.1.5.2.3 Модульное устройство (основные входы)

[Modular] секция, описывающая модуль, должна содержать входы "Width (ширина)" и "Rack (блок)".

Требуемый вход с ключевым словом "Width" должен иметь одно поле, показывающее, сколько слотов стойки используется модулем. Это поле должно быть 16-битным беззнаковым целым числом (UINT).

Ключевое слово входа для всех стоек, в которые модуль может быть установлен, должно состоять из набора символов, "Rack", скомбинированного с десятичным числом. Числа должны начинаться с 1 для первой стойки и должны повышаться для каждой дополнительной стойки. Поля для входов "Rack" должны быть такими, как показано в таблице С.26.

Таблица С.26 - Формат входа Rack

Имя поля

Номер поля

Тип данных

Требуемое/ Опциональное

Vendor ID

1

UINT

Требуемое

Product Type

2

UINT

Требуемое

Product Code

3

UINT

Требуемое

Major Revision

4

USINT

Требуемое

Minor Revision

5

USINT

Требуемое

Reserved

6, 7, 8

Пустые

Не используется

Legal Slot

9, 10, 11...

UINT

Требуемое

Поля "Vendor ID", "Product Type", "Product Code", "Major Revision" и "Minor Revision" должны идентифицировать электронный ключ стойки, в которые может быть установлен модуль. Резервное поле должно быть пустым. Поля "Legal Slot" должны указывать слоты, в которые может быть установлен модуль. EDS для модуля должен содержать один вход "Rack" для каждой стойки, в которые данный модуль может быть установлен.

На рисунке С.12 приведен пример, показывающий типичную модульную секцию [Modular].


Рисунок С.12 - Пример [Modular] секции

С.4.1.5.2.4 Модульное устройство (дополнительные входы)

Обзор

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

Для этой цели модульные устройства обычно подразделяются на две категории:

- модули, имеющие соединение связи CIP, соответствующий адресуемый из связи объект идентификации, и помещаемые в слот 0 (например, связные адаптеры);

- модули, которые не имеют соединения связи CIP или адресуемого объекта идентификации и, следовательно, не могут быть помещены в слот 0 (например, модули ввода/вывода).

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

Входы для модуля, не имеющего адресуемого из связи объекта идентичности

Секция [Modular], описывающая модуль, не имеющий адресуемого из связи объекта идентичности, может содержать ключевое слово "ExternallD (Внешняя идентичность)". Ключевое слово должно иметь одно поле. Это поле должно быть байтовой строкой, идентифицирующей модуль. Эта байтовая строка должна иметь кодировку с использованием такого же формата, который установлен для ЕРАТН.

На рисунке С.13 приведен пример, показывающий типичную Модульную секцию [Modular], описывающую модуль, не имеющий адресуемый из связи объект идентичности.


Рисунок С.13 - Пример модульной секции [Modular] (модуль, не имеющий адресуемый из связи объект идентичности)

Входы для модулей, имеющих соединение связи и помещаемых в слот 0

Модульная секция, описывающая модуль, имеющий соединение связи и помещаемый в слот 0, может содержать любое из указанных ниже ключевых слов входа или их комбинацию.

Ключевое слово "GenericID" должно иметь одно поле. Это поле должно быть байтовой строкой, которая должна быть включена в сегмент данных для соединения модуля вместо ExternallD, когда кодирование нежелательно. Эта байтовая строка должна иметь кодировку с использованием такого же формата, который установлен для ЕРАТН.

Ключевое слово "ExternlDExactMatch" должно иметь одно поле со значением "Да" или "Нет". Да должно показывать, что ExternallD устанавливает одно конкретное устройство, "Нет" должно показывать, что ExternallD устанавливает одно из набора совместимых устройств. Если ключевое слово "ExternlDExactMatch" пропущено, то условие по умолчанию должно быть такое, что ExternallD устанавливает одно конкретное устройство.

Ключевое слово "Query" должно иметь четыре поля. Первое поле должно быть путем, указывающим адресуемый связью атрибут, содержащий набор внешних идентификаторов, по одному для каждого слота стойки, за исключением слота 0. Второе поле должно быть сервисом для использования путем запроса (т.е. 1 - получить все атрибуты или 14 - получить один атрибут). Третье поле должно быть целым числом, которое определяет число байтов, используемых для идентификации каждого модуля, и должно быть в диапазоне 1-16. Если модуль с двойными слотами имеется в стойке, внешний идентификатор для этого модуля должен появляться дважды в наборе, возвращаемом в ответе на запрос. Запрос должен адресоваться только на модуль в слоте 0. Четвертое поле должно быть ExternallD, возвращаемое, когда существует пустой слот, с кодировкой такого же формата, который установлен для ЕРАТН.

На рисунке С.14 приведен пример, показывающий типичную [Modular] секцию, описывающую модуль, имеющий соединение связи, помещенный в слот 0.


Рисунок С.14 - Пример модульной секции [Modular] (модуль с соединением связи в слоте 0)

С.4.1.5.3 Модульные дополнения к основным секциям EDS

С.4.1.5.3.1 Дополнения к секции Parameter

Для описания параметров, которые ретранслируются адаптерным устройством EtherNet/IP на другое устройство, которое не поддерживает протокол CIP, необходимо использовать ключевые слова "ProxyParam" и "ProxiedParam". Примером этого является адаптерный модуль EtherNet/IP (устройство, выполняющее функции доступа к соединению) в блоке с многими слотами ввода/вывода для модуля с аналоговыми вводом/выводом (устройство для которого реализуются функции proxy).

"ProxyParam" должен существовать в EDS для устройства, которое выполняет функции proxy.

Ключевое слово "ProxiedParam" должно существовать в EDS для устройства, для которого выполняются функции proxy.

Информация в модульной секции [Modular] должна быть использована для создания ассоциации файлов EDS, содержащих ключевые слова "ProxyParam", с файлами EDS, содержащими ключевые слова "ProxiedParam". Эта ассоциация должна существовать, когда оба файла EDS указывают соответствующие входы Rack.

Десятичное число, комбинируемое с "ProxyParam" и "ProxiedParam", должно быть использовано для указания соответствия между "ProxyParam" и "ProxiedParam". Значения поля соответствующих пар "ProxyParam" и "ProxiedParam" должны быть скомбинированы для составления такой же информации значения поля, которая существует в одном входе "Param". Эта комбинация должна быть выполнена путем использования значения поля из "ProxyParam", если только это значение поля не является ключевым словом "Module". Когда значение поля, указанное в "ProxyParam", - "Module", следует использовать значение поля, указанное в "ProxiedParam". Необходимо также указывать значения поля для входов "ProxiedParam" в том случае, если поле в "ProxyParam" не принимает значения "Module", однако эти значения не должны использоваться, их следует отмечать только для документации.

В секции [Params] может также существовать другое ключевое слово. Это ключевое слово должно быть использовано для предоставления минимального, максимального и по умолчанию значений, которые следует добавлять к минимальным, максимальным и по умолчанию значениям "ProxyParam". Это ключевое слово входа должно быть "ProxyParamSizeAdder", скомбинированное с десятичным числом из соответствующего входа "ProxyParam". Каждый вход "ProxyParam" должен состоять из полей Minimum Value, Maximum Value Default Value (по умолчанию). Определение этих полей соответствует определениям "Param". Ключевое слово "ProxyParamSizeAdder" предоставляет средства для адаптера соединения модуля (например, "ProxyConnect"), позволяющие добавлять данные адаптера к данным модуля и возвращать комбинированные данные по соединению.

В секции [Param] может также существовать другое ключевое слово, которое соответствует "ProxyParam", "ProxyEnum". "ProxyEnum" имеет такое же определение, как "Enum", за исключением того, что оно ассоциировано с "ProxyParam" вместо "Param". В секции [Param] может также существовать второе ключевое слово, которое соответствует "ProxiedParam", "ProxiedEnum". "ProxiedEnum" имеет такое же определение, как "Enum", за исключением того, что оно ассоциировано с "ProxiedParam" вместо "Param".

С.4.1.5.3.2 Дополнения к секции Assembly

Дополнительные ключевые слова входа

Ключевые слова "ProxyAssem" и "ProxiedAssem" должны быть использованы для описания функциональных блоков, которые выполняют функцию proxy с помощью адаптерного устройства CIP для другого устройства, которое не поддерживает протокол CIP. Примером этого является адаптерный модуль EtherNet/IP (устройство для осуществления proxying соединения) в блоке с множественными слотами входа/выхода, соединяющий его с аналоговым модулем входа/выхода (устройство, на соединении с которым выполняется функция proxy).

Ключевое слово "ProxyAssem" должно существовать в EDS для устройства, выполняющего функцию proxy; ключевое слово "ProxiedAssem" должно существовать в EDS для устройства, для которого выполняется функция proxy.

Информация в Модульной секции [Modular] должна использоваться для создания ассоциации содержащих ключевые слова "ProxyAssem" файлов EDS с файлами EDS, содержащими ключевые слова "ProxiedAssem". Такая ассоциация должна существовать, когда оба файла EDS указывают соответствующий вход Rack.

Десятичное число (которое комбинируется с "ProxyAssem" и "ProxiedAssem") должно быть использовано для указания соответствия между "ProxyAssem" и "ProxiedAssem". Значения поля соответствующих пар "ProxyAssem" и "ProxiedAssem" должны быть скомбинированы для составления такой же информации значения поля, которая существует в одном входе "Assem". Эта комбинация должна быть выполнена путем использования значения поля из "ProxyAssem", если только это значение поля не является одним из ключевых слов "Module" или "ModuleMemberList". Когда значение поля, указанное в "ProxyAssem", - "Module", следует использовать значение поля, указанное в "ProxiedAssem". Значение поля "Module" не должно использоваться для полей "Member Size" или "Member Reference". "ModuleMemberList" должен использоваться только вместо пары полей "Member Size" и "Member Reference". Когда значение поля, установленное в "ProxyAssem", - "ModuleMemberList", должны быть использованы все поля "Member Size" и "Member Reference", указанные в "ProxiedAssem". Следует обычно указывать значения поля для входов "ProxiedAssem", соответствующие которым значения поля в "ProxyAssem" не "Module", однако эти значения поля не должны использоваться, их следует отмечать только для документации.

Дополнительные ключевые слова поля

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

Указанные ниже ключевые слова являются дополнительными значениями, разрешенными для поля "Member Reference" в секции Assembly, которые указывают специальные цели, предусмотренные при использовании данных, определенных элементом объединения:

- ExternallD;

- InputSlotMask0 или InputSlotMask1;

- OutputSlotMask0 или OutputSlotMask1;

- ConfigSlotMask0 или ConfigSlotMask1.

Ключевое слово "ExternallD" указывает, что этот член объединения должен содержать либо значение "ExternallD" модульного устройства, если желательно наличие ключа устройства, либо значение "GenericID", определенное в EDS адаптера, если ключ нежелателен.

Ключевое слово "ExternallD", скомбинированное с десятичным числом (например ExtemallD2), должно использоваться для разрешения применения ключа отдельного устройства для соединений с адаптерным блоком. Десятичное (положительное) число N в "ExternallDN" указывает слот N в блоке. Ключевое слово "ExternallDN" указывает, что этот элемент объединения должен содержать либо значение "ExternallD" модульного устройства для слота N, если желательно применение ключа устройства на данном слоте, либо значение "GenericID", определенное в EDS адаптера, если применение ключа модуля на данном слоте нежелательно.

Примечание - Ключ для слота 0 отсутствует.

Ключевые слова "InputSlotMask0" или "InputSlotMask1" должны показывать расположение входной маски слота в объединении. Входная маска слота представляет собой набор битов, представляющих включение или исключение целевых данных создателем модуля в соединении адаптерного блока. Если используется ключевое слово "InputSlotMask0", бит 0 в этом наборе представляет слот 0, бит 1 представляет слот 1 и т.д. Если используется ключевое слово "InputSlotMask1", бит 0 в этом наборе представляет слот 1, бит 1 представляет слот 2 и т.д. "InputSlotMask0" и "InputSlotMask1" не должны быть использованы оба в одном и том же объединении. Должно требоваться предшествующее поле "Member size".

Ключевые слова "OutputSlotMask0" или "OutputSlotMask1" должны указывать расположение маски слота вывода в объединении. Выходная маска слота представляет собой набор битов, представляющих включение или исключение целевых данных создателем модуля в соединении адаптерного блока. Если используется ключевое слово "OutputSlotMask0", бит 0 в этом наборе представляет слот 0, бит 1 представляет слот 1 и т.д. Если используется ключевое слово "OutputSlotMask1", бит 0 в этом наборе представляет слот 1, бит 1 представляет слот 2 и т.д. "OutputSlotMask0" и "OutputSlotMask1" не должны быть использованы оба в одном и том же объединении. Должно требоваться предшествующее поле "Member size".

Ключевые слова "ConfigSlotMask0" или "ConfigSlotMask1" должны указывать расположение маски слота конфигурации в объединении. Маска слота конфигурации представляет собой набор битов, представляющих включение или исключение данных конфигурации модуля при определении сервиса соединения с помощью адаптерного блока. Если используется ключевое слово "ConfigSlotMask0", бит 0 в этом наборе представляет слот 0, бит 1 представляет слот 1 и т.д. Если используется ключевое слово "ConfigSlotMask1", бит 0 в этом наборе представляет слот 1, бит 1 представляет слот 2 и т.д. "ConfigSlotMask0" и "ConfigSlotMask1" не должны быть использованы оба в одном и том же объединении. Должно требоваться предшествующее поле "Member size (Размер элемента)".

С.4.1.5.3.3 Дополнения к секции Connection Manager

Ключевые слова "ProxyConnect" и "ProxiedConnect" должны быть использованы для описания соединений, на которых выполняется функция proxy с помощью адаптерного устройства CIP, с другим устройством, которое не поддерживает протокол CIP. Примером этого является адаптерный модуль EtherNet/IP (устройство для осуществления proxy соединения) в блоке с множественными слотами входа/выхода, соединяющий его с аналоговым модулем входа/выхода (устройство, на соединении с которым выполняется функция proxy).

Ключевое слово "ProxyConnect" должно существовать в EDS для устройства, выполняющего функцию proxy. В примере выше этим устройством будет адаптерный модуль EtherNet/IP.

Ключевое слово "ProxiedConnect" должно существовать в EDS для устройства, для которого выполняется функция proxy. В примере выше этим устройством будет аналоговый модуль входа/выхода.

Информация в секции [Modular] должна использоваться для создания ассоциации содержащих ключевые слова "ProxyConnect" файлов EDS с файлами EDS, содержащими ключевые слова "ProxiedConnect". Такая ассоциация должна существовать, когда оба файла EDS указывают соответствующий вход Rack.

Десятичное число (которое комбинируется с "ProxyConnect" и "ProxiedConnect") должно быть использовано для указания соответствия между "ProxyConnect" и "ProxiedConnect". Значения поля соответствующих пар "ProxyConnect" и "ProxiedConnect" должны быть скомбинированы для составления такой же информации значения поля, которая существует в одном входе "Connection". Эта комбинация должна быть выполнена путем использования значений поля из "ProxyConnect", за исключением тех полей, где значение равно ключевому слову "Module". В этих случаях должно быть использовано значение поля, установленное в ассоциированном "ProxiedConnect". Следует обычно указывать значения поля для входов "ProxiedConnect", соответствующие которым значения поля в "ProxyConnect" не "Module", однако эти значения поля не должны использоваться, их следует отмечать только для документации. Значение поля для поля "ProxyConnect" "строка имени соединения" не должно быть "Module", "ProxyConnect" должен всегда указывать "строку имени соединения".

С.4.1.5.3.4 Примеры расширенной секции EDS (информативные)

На рисунках С.15 и С.16 приведены примеры, показывающие использование модульных расширений EDS для секций Parameter, Assembly и Connection Manager.


Рисунок С.15 - Пример входов ProxyParam и ProxyAssem


Рисунок С.16 - Пример соответствующих входов ProxiedParam и ProxiedAssem

С.4.2 Специальные требования к EDS в EtherNet/IP

С.4.2.1 Содержание EDS в EtherNet/IP

Данный подраздел устанавливает требования к кодировке в Электронном бланке данных (EDS) в сетях EtherNet/IP.

В таблице С.27 приведена в обобщенном виде структура секций, которые могут быть представлены в EtherNet/IP EDS, соответствующие принятые разграничители секций и порядок этих секций в EDS. Некоторые из этих секций являются общими для ряда основанных на CIP сетей, и их специальное применение в EtherNet/IP указано в С.4.2.2, если это необходимо. Другие секции, специфические для EtherNet/IP, рассмотрены в С.4.2.4.

Таблица С.27 - Структура файла EDS в EtherNet/IP

Имя секции

Принятый разграничитель

Размещение

Требуемый/ Опциональный

File Description (описание файла)

[File]

1

Требуемый

Device Description (описание устройства)

[Device]

2

Требуемый

Device Classification (классификация устройства)

[Device Classification]

Требуемый

Parameter Class (класс параметра)

[ParamClass]

Опциональный

Parameters (параметры)

[Params]

Опциональный

Parameter Groups (группы параметров)

[Groups]

Опциональный

Assembly (объединение)

[Assembly]

Опциональный

Connection Characteristics (характеристики соединения)

[Connection Manager]

Условный

Port (порт)

[Port]

Опциональный

Modular (модульный)

[Modular]

Опциональный

Vendor Specific (относящийся к поставщику)

[VendorlD_vendorspecifickeyword]

Последний

Опциональный

Размещение этих групп должно быть только после секций Описание устройства и Классификация устройства.

Эти секции необходимы, если применяются соответствующие функциональные характеристики, иначе они могут быть пропущены.

Содержание EtherNet/IP EDS должно быть далее организовано следующим образом:

- все файлы EtherNet/IP EDS должны включать в себя секцию Device Classification, в которой должен использоваться принятый разграничитель [Device Classification] и которая может быть помещена где-либо после секции File Description;

- опциональные и условные секции, описанные в данной спецификации, могут быть представлены в любом порядке при условии, что опережающие ссылки в файле EDS отсутствуют.

С.4.2.2 Выполнение общих требований CIP

С.4.2.2.1 Секция Device Classification

В случае любого соответствующего EtherNet/IP устройства секция классификации устройства в относящемся к нему файле EDS должна включать в себя хотя бы один вход с ключевым словом ClassN, где первое поле установлено на EtherNet/IP. Дальнейшая подклассификация классификации EtherNet/IP должна быть зарезервирована.

С.4.2.2.2 Секция Port

В секции Port файла EDS вход PortN, соответствующий применяемому в EtherNet/IP порту, должен быть установлен следующим образом:

- поле "Port Type Name" должно иметь значение "TCP";

- опциональное поле "Port Object" должно быть установлено на путь объекта интерфейс TCP/IP для этого порта;

- никакие дополнительные требования, кроме указанных в общем подразделе CIP (см. С.4.1.4.10), не помещаются в поля "Port Name" и "Port Number".

Примечание - EDS для устройства EtherNet/IP не должно содержать прямую ссылку на объект связи для порта EtherNet/IP (например, объект Link EtherNet/IP), поскольку ссылка может осуществляться через объект TCP/IP Interface для этого порта.

С.4.2.3 Дополнительные требования к кодировке данных

Никакие дополнительные требования к кодировке данных файлов EtherNet/IP EDS не существуют.

С.4.2.4 Дополнительные требования к файлам

Никаких дополнительных требований к файлам для файлов EtherNet/IP EDS не существует.

Приложение D
(справочное)

Шаблоны профиля PROFINET

D.1 Обзор

PROFINET представляет собой основанную на Ethernet сеть, соответствующую МЭК 61784-1 (издание 1) СР 3/3.

Сеть PROFINET использует описание профиля, основанное на ИСО 15745-1. Имя технологии профиля - GSDML (Generic Station Description Markup Language - Язык разметки для общего описания станции).

В цели формата GSDML не входит описание технологических функций или графического интерфейса пользователя в устройстве. Для этой цели уже установлены рекомендуемые концепции [например, Язык описания электронных устройств - Electronic Device Description Language (EDDL) в соответствии с МЭК 61804-2].

Путем использования GSDML создается файл GSD (Generic Station Description - Общее описание станции). В целях указания отличий от формата PROFIBUS GSD, описанного в ИСО 15745-3:2003 (приложение В), в настоящем стандарте использован термин "основанный на GSDML файл".

_______________

PROFIBUS - торговая марка PROFIBUS International (PI). Эта информация предоставлена для удобства пользователей комплекса стандартов ИСО 15745 и не означает подтверждения со стороны ИСО торговой марки или какой-либо продукции. Для соответствия настоящему профилю не требуется использование торговой марки PROFIBUS. Применение торговой марки PROFIBUS требует разрешения PROFIBUS International.

Основанный на GSDML файл может содержать более чем одну точку доступа в устройство - Device Access Points (DAP). DAP представляет собой специальный модуль, соединяющий устройство с сетью. Это позволяет построить один файл для семейства устройств, совместно использующих одни и те же модули (см. D.4.4.1 и D.4.5).

D.2 Типы данных

В таблице D.1 дано описание типов данных, используемых в GSDML. Используемые регулярные выражения определены в REC-xml-20001006.

Таблица D.1 - Типы данных

Имя

Схема определения

Описание

Булев

https://www.w3.org/2001/XMLCxeмa

См. REC-xmlschema-2-20010502

Перечисление

GSDML-DeviceProfile-v1.0.xsd

Строка с определенным содержанием

IdT

GSDML-Примитив-v1.0.xsd

Используется для идентификации объекта. Список значений должен соответствовать следующему регулярному выражению: (\S(.)*\S)|\S

NormalizedString (нормализованная строка)

https://www.w3.org/2001/XMLSchema

См. REC-xmlschema-2-20010502

Токен

https://www.w3.org/2001/XMLSchema

См. REC-xmlschema-2-20010502

RefldT

GSDML-Примитивы-v1.0.xsd

Используется для ссылки на объект

Unsigned8

GSDML-Примитивы-v1.0.xsd

Беззнаковое целое число в диапазоне 0..255

Unsigned16

GSDML-Примитивы-v1.0.xsd

Беззнаковое целое число в диапазоне 0..65535

Unsigned32

GSDML-Примитивы-v1.0.xsd

Беззнаковое целое число в диапазоне 0..4294967295

ValueList (список значений)

GSDML- Примитивы-v1.0.xsd

Базовый тип для списка, включающего в себя диапазоны величин без знака. Список величин должен соответствовать следующему регулярному выражению:

((\-?\d+\.\.\-?\d+)|(\-?\d+))(( \-?\d+\.\.\-?\d+)|( \-?\d+))*

Если диапазон определен, значение слева из ".." должно быть меньше, чем значение справа из ".." (см. пример 1)

SignedValueList (список значений со знаком)

GSDML-Примитивы-v1.0.xsd

Базовый тип для списка, включающего в себя диапазоны величин со знаком. Список величин должен соответствовать следующему регулярному выражению:

((\-?\d+\.\.\-?\d+)|(\-?\d+))(( \-?\d+\.\.\-?\d+)|( \-?\d+))*

Если диапазон определен, значение слева из ".." должно быть меньше, чем значение справа из ".." (см. пример 2)

Пример 1 -

Правильный ValueList содержит: 12 3 4

512211

0..6

5..12

0..34 36 38

Пример 2 -

Правильный SignedValueList содержит:

12 3 4

-12 5 12211

0..6

-5..12

0..34 36 38

D.3 Общие правила

D.3.1 Контроль версии

Если файл на основе GSDML уже выпущен, важно сохранять неизменной идентификацию объектов. Следовательно, содержание атрибутов, соответствующих указанным ниже выражениям для XPath (см. REC-xpath-19991116), нельзя изменять в новой версии основанного на GSDML файла:

//DeviceAccessPointltem/@ID

//ModuleList/Moduleltem/@ID

//VirtualSubmoduleltem/@ID//Valueltem/@ID

//Graphicltem/@ID

//CategoryItem/@ID

D.3.2 Правила для имени основанных на GSDML файлов

Имя основанного на GSDML файла должно быть составлено из шести указанных ниже полей в следующем порядке:

- "GSDML";

- ID версии в формате Vx.y, где х и у - беззнаковые целые числа. ID версии относится к ID использованной схемы GSDML;

- имя поставщика;

- имя семейства устройств;

- дата выпуска основанного на GSDML файла в формате yyyymmdd;

- ".xml" (расширение файла).

В качестве разграничителей между полями должен использоваться символ тире "-"(ASCII 45 десятичное).

Пример - "GSDML-V1.0-Lieferant-ET200X- 20030818.xml"

Уже выпущенные файлы нельзя изменять без изменения имени файла. При построении новой версии основанного на GSDML файла дата выпуска должна быть изменена.

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

D.3.3 Расположение схемы в основанном на GSDML файле

Для системы проверки допустимости XML схемы необходима информация о расположении выбранного файла схемы. Следовательно, должен быть указан атрибут xsi:schemaLocation корневого элемента профиля ИСО 15745.

Для использования одного и того же расположения для всех основанных на GSDML файлов необходимо использовать для файлов схемы относительный путь "..\xsd".

D.3.4 Идентификация объектов

Некоторые элементы GSDML схемы могут быть адресованы с помощью идентификатора. Этот идентификатор является атрибутом с именем "ID". По вопросу правильного диапазона этого атрибута см. D.3.2.

Идентификация объектов должна поддерживаться уникальной для всех элементов одной и той же категории согласно описанию в приведенной ниже таблице (например, вся идентификация объектов для объектов типа "Moduleltem" должна быть уникальной.)

Уникальность идентификаторов ID по всему документу необязательна.

В таблице D.2 показаны адресуемые элементы. В правой графе указаны все те объекты, на которые ссылаются элементы в левой графе. Эти ссылки используют соответствующие идентификаторы ID в качестве средства адресации.

Таблица D.2 - Идентификация объекта

Тип

Ссылочные элементы

DeviceAccessPointltem

Зарезервировано для будущего использования

Moduleltem

Атрибут ModuleltemTarget элемента UseableModules/ModuleltemRef (см. D.4.5.5)

VirtualSubmoduleltem

Зарезервировано для будущего использования

Valueltem

Атрибут ValueltemTarget всех элементов Ref

Categoryltem

Атрибуты CategoryRef и SubCategory1 Ref элемента Modulelnfo (см D.4.8.1)

Graphicltem

Производится ссылка из элемента Graphics/GraphicltemRef (см. D.4.8.10)

D.3.5 Поддержка языка

Поддержка языка основана на концепциях XML. Зависящие от языка строки могут поддерживаться в основанных на GSDML файлах или выбранных строках в других файлах. Обе стратегии могут комбинироваться.

Другие строки помещаются внутри GSDML в виде словарей. Каждый зависящий от языка текст должен иметь атрибут "Textld", имеющий ссылку на вход в словаре.

Пример 1 -

<ChannelDiagltem ErrorType="19">
<Text Textld="ID_COMM_ERROR"/>
</ChannelDiagltem>
<ExternalTextList>
<PrimaryLanguage>
< Text Textld="ID_COMM_ERROR" Value ="Communication error"/>
</PrimaryLanguage>
<Language xml:lang="de">
< Text Textld="ID_COMM_ERROR" Value ="Kommunikationsfehler"/>
</Language>
<Language xml:lang="fr">
< Text Textld="ID_COMM_ERROR" Value ="Erreur de communication"/>
</Language>
</ExternalTextList>

ExtemalTextList должен иметь элемент PrimaryLanguage. Используются текстовые строки, определенные в элементе PrimaryLanguage, если текстовая строка в выбранном словаре утеряна. В основанных на GSDML файлах первичный язык должен быть английским.

Элементы Language в ExtemalTextList должны иметь атрибут "xml:lang" для идентификации выбранного языка. Код для представления имени языка должен соответствовать ИСО 639-1:2002.

Кроме того, строки могут присутствовать во внешних файлах - никакие изменения не являются необходимыми в самих основанных на GSDML файлах для поддержки нового языка. Имя внешнего файла должно быть построено по имени соответствующего основанного на GSDML файла путем присоединения строки "-Text-" и соответствующего ИСО 639-1:2002 двухбуквенного кода.

Пример 2 - "GSDML-V1.0-Lieferant-ET200X- 20030818-Text-fr.xml"

Внешние файлы должны располагаться по отношению к основанному на GSDML файлу в подкаталоге. Имя подкаталога должно быть построено из двухбуквенного кода языка внешнего файла (ИСО 639-1:2002).

Кодировка XML файла (например, UTF-8) не определяется в GSDML. Допускается любая кодировка, соответствующая правилам спецификации XML.

D.3.6 Нотация элементов и атрибутов для расширений схемы

В расширениях GSDML схемы имена элементов и атрибутов должны быть составлены следующим образом:

- первый символ должен быть либо десятичным числом ("0"-"9"), либо прописной буквой в диапазоне от "А" до "Z";

- последующие символы должны быть из диапазонов от "0" до "9" или от "а" до "z". Прописные буквы в диапазоне от "А" до "Z" также могут быть использованы для улучшения читаемости;

- аббревиатуры должны использоваться в виде прописных букв, за которыми следует символ "_", когда следом идут один или несколько символов;

- первый символ после символа "_" должен быть или десятичным числом ("0"-"9"), или прописной буквой в диапазоне от "А" до "Z".

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

D.4 Описание элемента

D.4.1 Общие положения

Используются регулярные выражения согласно определению REC-xml-20001006.

D.4.2 Относящиеся к идентичности устройства элементы

D.4.2.1 Deviceldentity

Содержит общую информацию об устройстве.

Каждый элемент должен включать в себя атрибуты согласно таблице D.3.

Таблица D.3 - Атрибуты элемента Deviceldentity

Имя

Тип

Применение

Описание

VendorlD

NormalizedString

Требуемое

Содержит определяемую поставщиком часть DeviceldentNumber.

Значение должно соответствовать следующему регулярному выражению: 0x[0-9,a-f,A-F]{1,4}.

VendorlD присваивает ассоциация поставщиков. Изготовители устройств должны подавать заявление на VendorlD в соответствующую ассоциацию поставщиков. В случае PROFINET ответственная ассоциация, присваивающая уникальный VendorlD, - владелец торговой марки.

DevicelD

NormalizedString

Требуемое

Содержит зависящую от устройства часть DeviceldentNumber. DevicelD является уникальным ID для всех устройств поставщика. Поставщик должен поддерживать данный ID уникальным.

Значение должно соответствовать следующему регулярному выражению: 0x[0-9,a-f,A-F]{1,4}

D.4.2.2 Deviceldentity/lnfoText

Содержит читаемую человеком дополнительную текстовую информацию об устройстве.

Применение: требуется.

Каждый элемент должен включать в себя не менее чем один атрибут согласно таблице D.4.

Таблица D.4 - Атрибуты элемента InfoText

Имя

Тип

Применение

Описание

Textld

Токен

Требуемое

Содержит ID текста как ссылку на ExtemalTextList (Внешний ТекстСписок) (см. D.4.4.24)

D.4.2.3 Deviceldentity/VendorName

Содержит имя поставщика устройства.

Применение: требуется.

Каждый элемент должен содержать атрибут согласно таблице D.5.

Таблица D.5 - Атрибут элемента VendorName

Имя

Тип

Применение

Описание

Value

Токен

Требуемое

Содержит имя поставщика устройства

D.4.3 Относящиеся к функции устройства элементы

D.4.3.1 DeviceFunction

Элемент DeviceFunction должен содержать элемент "Family".

Применение: требуется.

Атрибуты: нет.

D.4.3.2 DeviceFunction/Family

Устройству должен быть присвоен класс функции. Помимо основного семейства устройству может быть присвоено зависящее от поставщика семейство продуктов.

Каждый элемент должен включать в себя не менее чем один атрибут согласно таблице D.6.

Таблица D.6 - Атрибуты элемента Family

Имя

Тип

Применение

Описание

MainFamily

Enumeration

Требуемое

Содержит назначение класса функции.

Разрешается одно из следующих значений:

0: "Общее"

1: "Приводы"

2: "Переключающие устройства"

3: "Ввод/вывод"

4: "Вентили"

5: "Контроллеры"

6: "HMI (Интерфейс человек- машина)"

7: "Кодировщики"

8: "NC/RC (Сетевой компьютер/Дистанционный концентратор)"

9: "Шлюз"

10: "Программируемые логические контроллеры"

11: "Системы идентификации"

12: "PROFIBUS PA Profile"

ProductFamily

xsd:строка

Опциональное

Содержит установленное поставщиком присваивание устройства семейству продуктов

D.4.4 Относящиеся к процессу приложения элементы

D.4.4.1 DeviceAccessPointList

GSDML должен содержать информацию относительно одной или более различных точек доступа в одном семействе. Этот элемент содержит список установленных DAP.

Применение: требуется.

Атрибуты: нет.

D.4.4.2 ModuleList

Данный список содержит все модули, описанные в основанном на GSDML файле.

Применение: требуется.

Атрибуты: нет.

D.4.4.3 ModuleList/Moduleltem

Данный элемент содержит субэлементы для описания характеристик модуля.

Применение: один или более.

Каждый элемент должен содержать атрибуты согласно таблице D.7.

Таблица D.7 - Атрибуты элемента Moduleltem

Имя

Тип

Применение

Описание

ID

IdT

Требуемое

Содержит уникальный ID для ссылки из элемента UseableModules/ModuleltemRef (см. D.4.5.5)

Должен быть совместимым вверх от GSD (см. ИСО 15745-3:2003, приложение В). Значение ID должно быть таким же, как параметр Module_Reference ключевого слова Module в GSD (см. ИСО 15745-3:2003, приложение В)

ModuleldentNumber

NormalizedString

Требуемое

Содержит Номер Идентификации Модуля для Модуля. Значение должно соответствовать следующему регулярному выражению: 0x[0-9,a-f,A-F]{1,8}

D.4.4.4 ModuleList/Moduleltem/Modulelnfo

См. D.4.7.

D.4.4.5 ModuleList/Moduleltem/VirtualSubmoduleList

См. D.4.6.

D.4.4.6 ModuleList/Moduleltem/Graphics

См. D.4.7.

D.4.4.7 ValueList

Элемент ValueList содержит элементы для присваивания значений текстовым строкам.

Пример: ValueList см. в D.4.7.4.

Применение: опциональное.

Атрибуты: нет.

D.4.4.8 ValueList/Valueltem

Элемент Valueltem группирует все объекты значений, и на него может производиться ссылка из элемента "UserDataltem/Data".

Применение: один или более.

Каждый элемент должен содержать атрибуты согласно таблице D.8.

Таблица D.8 - Атрибуты элемента Valueltem

Имя

Тип

Применение

Описание

ID

IdT

Требуемое

Содержит ID элемента Valueltem, на который производится ссылка из атрибута TextTarget элемента Ref

D.4.4.9 ValueList/Valueltem/Help

Элемент Help содержит дополнительную вспомогательную информацию о параметре Valueltem.

Применение: опциональное.

Каждый элемент должен содержать не менее одного атрибута согласно таблице D.9

Таблица D.9 - Атрибут элемента Help

Имя

Тип

Применение

Описание

Textld

Токен

Требуемое

Содержит ID текста в качестве ссылки на ExternalTextList (см. D.4.4.24).

D.4.4.10 ValueList/Valueltem/Assignments

Данный элемент содержит неограниченное число элементов "Assign".

Применение: опциональное.

Атрибуты: нет.

D.4.4.11 ValueList/Valueltem/Assignments/Assign

Элемент Assign содержит присваивание от содержания параметра до текстового представления.

Применение: один или более.

Каждый элемент должен содержать атрибуты согласно таблице D.10.

Таблица D.10 - Атрибуты элемента Assign

Имя

Тип

Применение

Описание

Content

NormalizedString

Требуемое

Содержит значение для присваивания текстовой ссылке.

Значение должно соответствовать следующему регулярному выражению: \-?[\d+]{1,20}.

Внутри элемента Assignments атрибут Content всех дочерних элементов Assign должен быть уникальным

Textld

Токен

Требуемое

Содержит ID зависящего от языка текста в ExternalTextList (см. D.4.4.24).

Внутри элемента Assignments атрибут Textld всех дочерних элементов Assign должен быть уникальным

D.4.4.12 ChannelDiagList

Устанавливает список специфических для канала - текстов ошибок.

Примечание - Используется для вспомогательной информации.

Применение: опциональное.

Атрибуты: нет.

D.4.4.13 ChannelDiagList/ChannelDiagltem

ChannelDiagltem содержит атрибуты для определения типа ошибок конкретного канала.

Применение: один или более.

Каждый элемент должен содержать атрибуты согласно таблице D.11.

Таблица D.11 - Атрибуты элемента ChannelDiagltem

Имя

Тип

Применение

Описание

ErrorType

Unsigned16

Требуемое

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

D.4.4.14 ChannelDiagList/ChannelDiagltem/Name

Содержит зависящую от языка текстовую информацию.

Применение: требуемое.

Каждый элемент должен содержать атрибуты согласно таблице D.12.

Таблица D.12 - Атрибуты элемента Name

Имя

Тип

Применение

Описание

Textld

Токен

Требуемое

Содержит ID текста в качестве ссылки на ExternalTextList (см. D.4.4.24).

D.4.4.15 ChannelDiagList/ChannelDiagltem/Help

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

Применение: опциональное.

Каждый элемент должен содержать атрибуты согласно таблице D.13.

Таблица D.13 - Атрибуты элемента Help

Имя

Тип

Применение

Описание

Textld

Токен

Требуемое

Содержит ID текста в качестве ссылки на ExternalTextList (см. D.4.4.24)

D.4.4.16 UnitDiagTypeList

UnitDiagTypeList присваивает диагностические значения специальным сообщениям изготовителя о статусе и ошибках.

Применение: опциональное.

Атрибуты: нет.

D.4.4.17 UnitDiagTypeList/UnitDiagTypeltem

Применение: один или более.

Каждый элемент должен содержать атрибуты согласно таблице D.14.

Таблица D.14 - Атрибуты элемента UnitDiagTypeltem

Имя

Тип

Применение

Описание

UserStructureldentifier

Unsigned16

Требуемое

Описывает UserStructureldentifier блока запроса тревоги. UserStructureldentifier должен быть в диапазоне от "0" до "32767". Внутри UnitDiagTypeList (см. D.4.4.16) UserStructureldentifier должен быть уникальным

D.4.4.18 UnitDiagTypeList/UnitDiagTypeltem/Ref

Элемент Ref содержит информацию об элементе диагностических данных в объекте данные тревоги.

Этот элемент должен иметь такие же атрибуты, как определенные в D.4.7.4.

Атрибут "ByteOffset" этого элемента ссылается на блок "additional alarm info" в PDU запроса тревоги - информация заголовка не включена.

D.4.4.19 GraphicsList

Данный элемент содержит список Graphicltems (см. D.4.4.20).

Применение: опциональное.

Атрибуты: нет.

D.4.4.20 GraphicsList/Graphicltem

Graphicltem содержит информацию по символическому представлению Устройства, Модуля или Субмодуля.

Применение: один или более.

Каждый элемент должен содержать атрибуты согласно таблице D.15.

Таблица D.15 - Атрибуты элемента Graphicltem

Имя

Тип

Применение

Описание

ID

IdT

Требуемое

Содержит ID элемента Graphicltem, на который производится ссылка из элемента Graphics/GraphicltemRef (см. D.4.8.10)

GraphicFile

Строка

Требуемое

Содержит имя файла без расширения. Формат зависит от типа Graphicltem, который определяется атрибутом Туре элемента GraphicltemRef

D.4.4.21 GraphicsList/Graphicltem/Embedded

Данный элемент используется для описания графической информации внутри основанного на GSDML файла в формате SVG (см. REC-svg-20030114).

Примечание - Масштабируемая векторная графика (SVG) представляет собой язык для описания двумерной векторной и смешанной векторно/растровой графики в XML.

Применение: опциональное. Атрибуты: нет.

D.4.4.22 CategoryList

Данный элемент содержит список элементов Categoryltem (см. D.4.4.23).

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

Примечание 2 - Присвоение категории модуля не влияет на характеристики времени выполнения модуля или субмодуля.

Применение: опциональное.

Атрибуты: нет.

D.4.4.23 CategoryList/Categoryltem

Categoryltem определяет информацию внутри одной категории.

Применение: один или более.

Каждый элемент должен содержать атрибуты согласно таблице D.16.

Таблица D.16 - Атрибуты элемента Categoryltem

Имя

Тип

Применение

Описание

ID

IdT

Требуемое

Содержит ID элемента Categoryltem, на который производится ссылка из атрибута CategoryRef или SubCategory1 Ref элемента Modulelnfo (см. D.4.8.1)

Textld

Токен

Требуемое

Содержит ID текста в качестве ссылки на ExtemalTextList (см. D.4.4.24)

D.4.4.24 ExtemalTextList

ExtemalTextList содержит зависящие от языка текстовые строки.

Применение: требуемое.

Атрибуты: нет.

D.4.4.25 ExternalTextList/PrimaryLanguage

Элемент PrimaryLanguage содержит текстовые определения первичного языка, который должен использоваться, если текст на выбранном языке недоступен. В случае GSDML первичным языком является английский.

Применение: требуемое.

Атрибуты: нет.

D.4.4.26 ExternalTextList/PrimaryLanguage/Text

Элемент PrimaryLanguage.

Применение: требуемое.

Атрибуты: см. таблицу D.17.

Таблица D.17 - Атрибуты элемента Text

Имя

Тип

Применение

Описание

Textld

xsd:string

Требуемое

Содержит уникальный идентификатор ID для ссылки на текст. Textld должен поддерживаться уникальным внутри родительского элемента PrimaryLanguage или Language

Value

xsd:string

Требуемое

Содержит зависящий от языка текст

D.4.4.27 ExternalTextList/Language

Элемент Language содержит текстовое определение указанного языка.

Применение: один для каждого языка.

Атрибуты: см. таблицу D.18.

Таблица D.18 - Атрибуты элемента Language

Имя

Тип

Применение

Описание

xml:lang

xsd:language

Требуемое

Определяет язык текста в субэлементах Text/@Value

D.4.4.28 ExternalTextList/ Language/Text

Элемент Language.

Применение: требуемое.

Атрибуты: см. таблицу D.17.

D.4.5 Элементы, относящиеся к DeviceAccessPoint

D.4.5.1 DeviceAccessPointltem

Данный элемент описывает характеристики DAP.

Применение: один для каждого DAP.

Каждый элемент должен содержать атрибуты согласно таблице D.19.

Таблица D.19 - Атрибуты элемента DeviceAccessPointltem

Имя

Тип

Применение

Описание

ID

ID

Требуемое

Содержит ID элемента

PhysicalSlots

ValueList

Требуемое

Данный список описывает, какие слоты поддерживаются DAP. Слотномер DAP сам должен быть частью списка

ModuleldentNumber

NormalizedString

Требуемое

Содержит Module Ident Number модуля.

Его значение должно соответствовать следующему регулярному выражению: 0x[0-9,a-f,A-F]{1,8}

MinDevicelnterval

Unsigned16

Требуемое

Данное время устанавливает минимальный интервал для посылки циклических данных ввода-вывода (IO).

Базовый такт часов равен 31,25 микросекунды.

Значение этого элемента содержит множитель базового такта часов (см. пример)

ImplementationType

NormalizedString

Опциональное

Содержит описание стандартного выполнения в DAP, например решения в виде стандартного программного обеспечения, контроллера или ASIC (Специальной интегральной схемы приложения)

DNS_CompatibleName

NormalizedString

Требуемое

Описывает имя по умолчанию устройства в соответствии с правилами для Системы имен доменов (DNS) согласно RFC 1101 (см. примечание)

ExtendedAddressAssignmentSupported

Boolean

Опциональное

Для PROFINET IO каждое устройство IO должно выполнять Discovery и Configuration protocol (DCP) при назначении адресов IP. Если DAP поддерживает другой способ назначения адресов IP типа Dynamic Host Configuration Protocol (Протокол динамической конфигурации хоста) (DHCP) согласно RFC 2131, этот атрибут должен быть установлен на "истина".

По умолчанию: "ложь"

AllowedlnSlots

ValueList

Опциональное

Определяет, на какие слоты DAP могут быть поставлены. Если не определено, DAP не может быть поставлено на другие слоты, кроме указанных в атрибуте "FixedlnSlots"

FixedlnSlots

ValueList

Требуемое

Определяет номер слота в DAP, когда устройство конфигурируется в инженерном инструменте.

Для нерезервных DAP только один номер слота разрешается в списке. Рекомендуется использовать "0" как слотномер.

Если атрибут "AllowedlnSlots" используется, определенные в "FixedlnSlots" слоты должны быть подмножеством слотов, определенных атрибутом "AllowedlnSlots"

ObjectUUID_Locallndex

Unsigned16

Требуемое

Устанавливает поле Instance объекта UUID

Пример - MinDevicelnterval=32 означает, что устройство способно посылать /получать данные каждую миллисекунду.

Примечание - Атрибут DNS_CompatibleName может быть использован инженерной системой для построения уникального имени станции.

D.4.5.2 Modulelnfo

См. D.4.8.1.

D.4.5.3 lOConfigData

Данный элемент содержит информацию о количестве данных IO.

Применение: требуемое.

Каждый элемент должен содержать атрибуты согласно таблице D.20.

Таблица D.20 - Атрибуты элемента lOConfigData

Имя

Тип

Применение

Описание

MaxInputLength

Unsigned16

Требуемый

Содержит максимальную длину данных в октетах, которая может быть передана из Устройства IO в Контроллер IO. Эта длина определяется как сумма входных данных всех используемых субмодулей, соответствующего статуса IO производителя и статуса IO потребителя используемых выходных субмодулей

MaxOutputLength

Unsigned16

Требуемый

Содержит максимальную длину данных в октетах, которая может быть передана из Контроллера IO в Устройство IO. Эта длина определяется как сумма выходных данных всех используемых субмодулей, соответствующего статуса IO производителя и статуса IO потребителя, используемых входных субмодулей

MaxDataLength

Unsigned16

Опциональный

Содержит максимальную длину выходных и входных данных в октетах. MaxDataLength должна быть не меньше, чем наибольшая величина MaxInputLength или MaxOutputLength. Она не должна быть больше, чем сумма MaxInputLength и MaxOutputLength. Если ключевое слово не предоставлено, максимальная длина равна сумме MaxInputLength и MaxOutputLength

D.4.5.4 UseableModules

Элемент UseableModules содержит список модульных ссылок, ссылающихся на модули элемента ModuleList. Только модули из этого списка совместимы с DAP.

Инженерный инструмент не должен производить конфигурацию других модулей для данного DAP.

Применение: требуемое.

Атрибуты: нет.

D.4.5.5 UseableModules/ModuleltemRef

Данный элемент ссылается на модуль в ModuleList, совместимый с DAP.

Применение: один или более.

Каждый элемент должен содержать атрибуты согласно таблице D.21.

Таблица D.21 - Атрибуты элемента ModuleltemRef

Имя

Тип

Применение

Описание

ModuleltemTarget

RefldT

Требуемое

Ссылки на элемент ModuleList/Moduleltem (см. D.4.4.3)

AllowedlnSlots

ValueList

Опциональное

Определяет, в какие слоты модуль может быть помещен. Если этот атрибут не определен, модуль может быть помещен в любой слот

UsedlnSlots

ValueList

Опциональное

Определяет, в какие слоты модуль помещается по умолчанию.

Эти встроенные модули могут быть удалены с помощью инженерного инструмента.

Если используется атрибут AllowedlnSlots, слоты, определенные в UsedlnSlots, должны быть подмножеством слотов, определенных атрибутом AllowedlnSlots

FixedlnSlots

ValueList

Опциональное

Определяет, в какие слоты модуль помещается по умолчанию.

Эти встроенные модули не могут быть удалены с помощью инженерного инструмента.

Если используется атрибут AllowedlnSlots, слоты, определенные в FixedlnSlots, должны быть подмножеством слотов, определенных атрибутом AllowedlnSlots

D.4.5.6 VirtualSubmoduleList

Данный элемент содержит список элементов VirtualSubmoduleltem (см. D.4.6.1).

Применение: требуемое.

Атрибуты: нет.

D.4.5.7 VirtualSubmoduleList/VirtualSubmoduleltem

См. D.4.6.1.

D.4.5.8 Graphics

См. D.4.7.

D.4.5.9 Graphics/GraphicltemRef

См. D.4.7.

D.4.5.10 ApplicationRelations

Данный элемент содержит информацию относительно отношений приложений, выполняемых с помощью Устройства IO.

Атрибуты Versionlnformation необходимы для проверки, соответствует или нет структура соединения PDU (iPNIO_D_Connect-REQ-PDU) функциональным характеристикам Устройства IO. Инженерный инструмент должен заполнить информацию о версии по соединению PDU с помощью этого атрибута.

Применение: опциональное.

Каждый элемент должен содержать атрибуты согласно таблице D.22.

Таблица D.22 - Атрибуты элемента ApplicationRelations

Имя

Тип

Применение

Описание

AR_BIockVersion

Unsigned16

Требуемый

Содержит информацию о версии блока AR

lOCR_BIockVersion

Unsigned16

Требуемый

Содержит информацию о версии относительно блока IO взаимосвязей коммуникаций (CR), называемых блоком CR

AlarmCR_BIockVersion

Unsigned16

Требуемый

Содержит информацию о версии блока тревожной сигнализации

SubmoduleDataBlockVersion

Unsigned16

Требуемый

Содержит информацию о версии блока данных субмодуля

D.4.5.11 ApplicationRelations/TimingProperties

Данный элемент описывает временное поведение при посылке циклических данных IO.

Применение: опциональное.

Каждый элемент должен содержать атрибуты согласно таблице D.23.

Таблица D.23 - Атрибуты элементов TimingProperties

Имя

Тип

Применение

Описание

SendClock

ValueList

Опциональное

Поддерживает список времени циклов, поддерживаемых DAP при посылке циклических данных.

Базовый такт часов равен 31,25 микросекунды. Каждое значение этого элемента содержит множитель базового такта часов и может быть в диапазоне от "1" до "128" (см. пример). По умолчанию - "32"

ReductionRatio

ValueList

Опциональное

Интервал часов при посылке может быть уменьшен путем сжатия. Этот атрибут описывает поддерживаемые значения коэффициентов сжатия DAP.

Каждое значение этого элемента должно быть в диапазоне от "1" до "16384"

Пример - SendClock="16, 32, 64" означает, что DAP способен посылать циклические данные с интервалом 500 мкс, 1 мс или 2 мс.

D.4.6 Элементы подмодулей

D.4.6.1 VirtualSubmoduleltem

Данный элемент описывает характеристики подмодуля в качестве части модуля.

Применение: требуемое.

Каждый элемент должен содержать атрибуты согласно таблице D.24.

Таблица D.24 - Атрибуты элемента VirtualSubmoduleltem

Имя

Тип

Применение

Описание

ID

IdT

Требуемое

Содержит ID элемента

SubmoduleldentNumber

NormalizedString

Требуемое

Содержит SubmoduleldentNumber для целей идентификации. При выпуске GSDML значение должно быть установлено равным "0x00000000"

D.4.6.2 VirtualSubmoduleltem/IOData

Данный элемент определяет характеристики данных IO субмодуля.

Применение: требуемое.

Каждый элемент должен содержать атрибуты согласно таблице D.25.

Таблица D.25 - Атрибуты элемента lOData

Имя

Тип

Применение

Описание

IOPS_Length

Unsigned8

Опциональный

Содержит Длину IO статуса производителя в октетах в качестве части объекта IO данные.

По умолчанию: 1 октет

IOCS_Length

Unsigned8

Опциональный

Содержит Длину IO статуса потребителя в октетах в качестве части объекта IO данные.

По умолчанию: 1 октет

D.4.6.3 VirtualSubmoduleltem/IOData/lnput

Определяет входные характеристики субмодуля. Если входные данные имеются, этот элемент имеет элементы Dataltem (см. D.4.6.4).

Применение: опциональное.

Каждый элемент должен содержать атрибуты согласно таблице D.26.

Таблица D.26 - Атрибуты элемента Input

Имя

Тип

Применение

Описание

Consistency

Enumeration

Опционально

Если данный атрибут установлен на совместимость Item (элемента), совместимость устанавливается только в Dataltem. Если данный атрибут установлен на "совместимость всех элементов", тогда субмодуль обеспечивает совместимость для всех элементов данных.

По умолчанию "совместимость элемента"

D.4.6.4 VirtualSubmoduleltem/IOData/lnput/Dataltem

Элемент Dataltem содержит информацию относительно одного Dataltem.

Применение: один для каждого Dataltem.

Каждый элемент должен содержать атрибуты согласно таблице D.27.

Таблица D.27 - Атрибуты элемента Dataltem

Имя

Тип

Применение

Описание

Data Type

Enumeration

Требуемое

Определяет тип данных элемента данных.

Разрешается одно из следующих значений:

"Integer8"

"Integer16"

"Integer32"

"Integer64"

"Unsigned8"

"Unsigned16"

"Unsigned32"

"Unsigned64"

"Float32"

"Float64"

"Date"

"TimeOfDay with date indication"

"TimeOfDay without date indication"

"TimeDifference with date indication"

"TimeDifference without date indication"

"NetworkTime"

"NetworkTimeDifference"

"VisibleString"

"OctetString"

Length

Unsigned16

Опциональное

Этот атрибут должен быть использован, если атрибут Data Type установлен на "VisibleString" или "OctetString".

Этот атрибут устанавливает длину элемента Dataltem в октетах.

Если этот атрибут использован для типов данных с заданием фиксированной длины, длина должна соответствовать определению в МЭК 61158-5

UseAsBits

Булев

Опциональное

Если атрибут установлен на "истина", инженерная система должна отобразить элемент данных в битовом представлении.

По умолчанию "ложь"

Textld

Токен

Требуемое

Содержит ID текста в качестве ссылки на "ExtemalTextList" (см. D.4.4.24)

Это необходимо, поскольку эти типы данных имеют переменную длину.

D.4.6.5 VirtualSubmoduleltem/IOData/Output

Элемент вывода устанавливают характеристики вывода подмодуля. Если данные вывода имеются, этот элемент содержит элементы Dataltem (см. D.4.6.6).

Применение: опциональное.

Атрибуты: см. D.4.6.3.

D.4.6.6 VirtualSubmoduleltem/IOData/Output/Dataltem

Элемент Dataltem содержит информацию относительно одного Dataltem.

Применение: один для каждого Dataltem.

Атрибуты: см. D.4.6.4.

D.4.6.7 VirtualSubmoduleltem/RecordDataList

Данный элемент содержит список ParameterRecordDataltem (см. D.4.7.1).

Атрибуты: нет.

D.4.6.8 VirtualSubmoduleltem/Modulelnfo

См. D.4.8.1.

D.4.6.9 VirtualSubmoduleltem/Graphics

См. D.4.8.9.

D.4.7 Элементы, относящиеся к RecordDataList

D.4.7.1 ParameterRecordDataltem

Элемент ParameterRecordDataltem описывает структуру данных объекта данных регистрации параметра.

Примечание - Все параметры в ParameterRecordDataltems будут переданы в субмодуль в ходе процедуры запуска устройства IO.

Применение: один или более.

Каждый элемент должен содержать атрибуты согласно таблице D.28.

Таблица D.28 - Атрибуты элемента ParameterRecordDataltem

Имя

Тип

Применение

Описание

Index

Unsigned16

Требуемый

Содержит уникальный ID объекта регистрации данных, который используется для адресации объекта с помощью PROFINET IO Дистанционного вызова процедур (RPC)

Length

Unsigned32

Требуемый

Содержит длину объекта регистрации данных в октетах

TransferSequence

Unsigned16

Опциональный

Данный атрибут контролирует последовательность передачи объектов ParameterRecordData в течение запуска. Атрибут TransferSequence должен быть уникальным в субмодуле. Первый передаваемый объект Parameter-Record-Data должен иметь установку этого атрибута на "1", следующие объекты должны иметь эти атрибуты, увеличивающиеся в прямой последовательности (без пропусков). Если данный атрибут установлен на "0" (что по умолчанию), то последовательность передачи не определена

Пример 1 -

Правильная конфигурация:

TransferSequence (Передача Последовательность)

Первый объект: 1

Второй объект: 2

Третий объект: 3

Пример 2 -

Неправильные конфигурации:

2, 3, 4: Не начинается с "1"

1, 2, 4: Число "3" пропущено

1, 2, 2: Многократное использование числа "2"

D.4.7.2 RecordDataltem/Name

Элемент Name дает объекту регистрации данных читаемое человеком имя.

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

Применение: требуемое.

Каждый элемент должен содержать атрибуты согласно таблице D.29.

Таблица D.29 - Атрибуты элемента Name

Имя

Тип

Применение

Описание

Textld

Токен

Требуемое

Содержит ID текста в качестве ссылки на ExternalTextList (см. D.4.4.24)

D.4.7.3 RecordDataltem/Const

Элемент Const используется для инициализации содержания объекта данных регистрации. Если определение Const не описывает полное содержание объекта данных регистрации, неопределенные поля должны быть установлены на нуль.

Если элемент Const пропущен, объект данных регистрации инициализируется с помощью октетов, установленных на нуль.

Если определен более чем один элемент Const, перекрытие между определениями не допускается.

Применение: нуль или более.

Каждый элемент должен содержать атрибуты согласно таблице D.30.

Таблица D.30 - Атрибуты элемента Const

Имя

Тип

Применение

Описание

ByteOffset

Unsigned32

Опциональное

Содержит сдвиг в октетах объекта ссылочных данных от начала объекта данных регистрации.

По умолчанию: "0".

Длина определения Const должна быть меньше или равна атрибуту Length элемента RecordDataltem

Data

NormalizedString

Требуемое

Содержит контент данных объекта данных регистрации, начиная от "ByteOffset" (см. пример).

Строка разделена на шестнадцатеричные лексемы и должна выполнять правила следующего регулярного выражения: (0x[0-9,a-f,A-F][0-9,a-f,A-F],?){1,}

Пример - 0x10, 0xff, 0x4A

D.4.7.4 VirtualSubmoduleltem/RecordDataList/RecordDataltem/Ref

Данный элемент ссылается на объект данных в блоке данные регистрации.

Так как этот элемент может описывать тот же самый объект, как элемент "const", может возникнуть перекрытие. В этом случае необходимо использовать определение "Ref".

Применение: нуль или более.

Каждый элемент должен содержать атрибуты согласно таблице D.31.

Таблица D.31 - Атрибуты элемента Ref

Имя

Тип

Применение

Описание

ValueltemTarget

RefldT

Опциональное

Ссылки на элемент ValueDataltem, содержащий имя и диапазон значений объекта данные

ByteOffset

Unsigned32

Требуемое

Содержит сдвиг в октетах ссылочного объекта данные от начала объекта данные регистрации

BitOffset

NormalizedString

Опциональное

Содержит сдвиг в битах ссылочного объекта данные от начала ссылочного октета.

Правильный диапазон: 0..7.

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

Может быть использован только в связи с типом данных "Bit" или "BitArea"

BitLength

Unsigned8

Опциональное

Если тип этого объекта данных "BitArea", этот атрибут устанавливает длину этого поля.

Атрибут игнорируется, если используется другой тип данных.

По умолчанию:"1".

BitLength должен быть в диапазоне от "1" до "15"

Data Type

Enumeration

Требуемое

Устанавливает тип объекта данные. Используется одно из следующих значений:

"Bit"

"BitArea" (см. примечание)

"Integer8"

"Integer16"

"Integer32"

"Signed64"

"Unsigned8"

"Unsigned16"

"Unsigned32"

"Unsigned64"

DefaultValue

NormalizedString

Требуемое

Содержит значение по умолчанию для параметра. Это значение должно соответствовать следующему регулярному выражению:

\-?[\d+]{1,20}

AllowedValues

SignedValueList

Опциональное

Устанавливает возможные значения этого параметра. Если этот атрибут не используется, должны применяться следующие правила:

- если используется атрибут ValueltemTarget, диапазон значений параметра определяется атрибутом Content элемента Assignments ссылочного Valueltem;

- если атрибут ValueltemTarget не используется или ссылочный Valueltem не содержит элементы Assignments, диапазон значений параметра определяется типом данных, определенным атрибутом Data Type;

- если атрибуты AllowedValues и ValueltemTarget используются оба, атрибут AllowedValues должен содержать только значения, определенные как атрибут Content элементов Assignments ссылочного Valueltem;

- если Valueltem не содержит элементы Assignments, правильными являются все значения в диапазоне значений типа данных для AllowedValues

Changeable

Булев

Опциональное

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

По умолчанию ="истина"

Visible

Булев

Опциональное

Если данный атрибут установлен на "ложь", этот параметр не будет отображаться в инженерном инструменте. Установка "ложь" не имеет смысла в комбинации с "Changeable" ="истина". Схема не способна воспринимать это взаимное исключение.

По умолчанию: "истина"

Textld

Токен

Требуемое

Содержит ID текста в качестве ссылки на ExternalTextList (см. D.4.4.24)

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

В следующем примере показано применение различных списков для описания модуля с объектом регистрации данных одного параметра и двух параметров:

D.4.8 Глобально используемые элементы

D.4.8.1 Modulelnfo

Данный элемент содержит общую информацию о модуле или субмодуле.

Каждый элемент должен содержать атрибуты согласно таблице D.32.

Таблица D.32 - Атрибуты элемента ModuleInfo

Имя

Тип

Применение

Описание

CategoryRef

RefldT

Опциональное

Содержит категорию модуля. Значение CategoryRef должно содержать ID элемента CategoryList/Categoryltem (см. D.4.4.23)

SubCategory1 Ref

RefldT

Опциональное

Внутри категории могут быть созданы субкатегории. Значение CategoryRef должно содержать элемент CategoryList/ Categoryltem (см. D.4.4.23)

D.4.8.2 Modulelnfo/Name

Элемент Name содержит зависящее от языка имя модуля или субмодуля.

Применение: требуемое.

Каждый элемент должен содержать атрибуты согласно таблице D.33.

Таблица D.33 - Атрибуты элемента Name

Имя

Тип

Применение

Описание

Textld

Токен

Требуемое

Содержит ID текста в качестве ссылки на ExtemalTextList (см. D.4.4.24)

D.4.8.3 Modulelnfo/lnfoText

Элемент Info Text содержит читаемую человеком текстовую информацию о модуле или субмодуле.

Применение: требуемое.

Каждый элемент должен содержать атрибуты согласно таблице D.34.

Таблица D.34 - Атрибуты элемента Info Text

Имя

Тип

Применение

Описание

Textld

Токен

Требуемое

Содержит ID текста в качестве ссылки на ExtemalTextList (см. D.4.4.24)

D.4.8.4 Modulelnfo/VendorName

Элемент VendorName содержит имя продавца устройства. Если этот элемент отсутствует, следует использовать имя поставщика в элементе "Devicelnfo/Vendorname".

Применение: опциональное.

Каждый элемент должен содержать атрибуты согласно таблице D.35.

Таблица D.35 - Атрибуты элемента VendorName

Имя

Тип

Применение

Описание

Значение

Токен

Требуемое

Содержит имя продавца устройства

D.4.8.5 Modulelnfo/OrderNumber

Элемент OrderNumber содержит номер заказа модуля или субмодуля.

Применение: опциональное.

Каждый элемент должен содержать атрибуты согласно таблице D.36.

Таблица D.36 - Атрибуты элемента OrderNumber (Номер Заказа)

Имя

Тип

Применение

Описание

Значение

Токен

Требуемое

Содержит номер заказа модуля или субмодуля

D.4.8.6 Modulelnfo/HardwareRelease

Элемент HardwareRelease содержит выпуск аппаратуры модуля или субмодуля.

Применение: опциональное.

Каждый элемент должен содержать атрибуты согласно таблице D.37.

Таблица D.37 - Атрибуты элемента HardwareRelease

Имя

Тип

Применение

Описание

Значение

Токен

Требуемое

Содержит выпуск аппаратуры модуля или субмодуля.

D.4.8.7 Modulelnfo/SoftwareRelease

Содержит выпуск программного обеспечения модуля/субмодуля.

Применение: опциональное.

Каждый элемент должен содержать атрибуты согласно таблице D.38.

Таблица D.38 - Атрибуты элемента SoftwareRelease

Имя

Тип

Применение

Описание

Значение

Токен

Требуемое

Содержит выпуск программного обеспечения модуля или субмодуля

D.4.8.8 Modulelnfo/Family

См. D.4.3.2.

D.4.8.9 Graphics

Элемент Graphics содержит список GraphicltemRef (см. D.4.8.10).

Применение: опциональное.

Атрибуты: нет.

D.4.8.10 Graphics/GraphicltemRef

Элемент GraphicltemRef дает ссылку на графическую информацию о модуле или субмодуле устройства.

Применение: один или более.

Каждый элемент должен содержать атрибуты согласно таблице D.39.

Таблица D.39 - Атрибуты элемента GraphicltemRef

Имя

Тип

Применение

Описание

Тип

Нумерация

Требуемое

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

"DeviceSymbol"; "Devicelcon".

Внутри одного элемента "Graphics" должна использоваться только одна ссылка GraphicltemRef одного типа.

Если используется тип "DeviceSymbol", присвоенный элемент Graphicltem должен быть растровым файлом в формате DIB [70x40 пикселей (ширинавысота), 16 цветов].

В случае DeviceAccessPointltem элемент Graphicltem должен представлять устройство. Для модулей и субмодулей элемент Graphicltem должен представлять модуль или субмодуль.

Если используется тип "Devicelcon", присвоенный элемент Graphicltem должен быть файлом в формате иконки

GraphicltemTarget

RefldT

Требуемое

Ссылка на элемент GraphicsList/Graphicltem (см. D.4.4.20).

D.5 Схемы GSDML шаблона профиля устройства

D.5.1 Общие положения

Примечание - Приведенные ниже определения схемы используют xml.xsd. Этот файл схемы предоставлен World Wide Web Consortium. W3C предлагает загрузить этот файл, используя идентификатор пространства имен в качестве URL.

D.5.2 Схема GSDML профиля устройства (GSDML-DeviceProfile-v1.0.xsd)

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema targetNamespace="//www.profibus.com/GSDML/2003/11/DeviceProfile"

xmlns="//www.profibus.com/GSDML/2003/11/DeviceProfile"

xmlns:xsd="https://www.w3.org/2001/XMLSchema"

xmlns:base="//www.profibus.com/GSDML/2003/11/Primitives"

elementFormDefault="qualified"

attributeFormDefault="unqualified" version="1.0">

<xsd:import namespace="https://www.w3.org/XML/1998/namespace"

schemaLocation="xml.xsd"/>

<xsd:import namespace="//www.profibus.com/GSDML/2003/11/Primitives"

schemaLocation="GSDMLPrimitives-

v1.0.xsd"/>

<!- -___________________________________________________________- ->

<!- - *** ISO 15745 Profile definition ***- ->

<xsd:element name="ISO15745Profile">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ProfileHeader"/>

<xsd:element ref="ProfileBody"/>

</xsd:sequence>

</xsd:complexType>

<xsd:key name="ExternalText_ID">

<xsd:selector xpath=".//*/PrimaryLanguage/Text"/>

<xsd:field xpath="@Textld"/>

</xsd:key>

<xsd:key name="DeviceAccessPointltem_ID">

<xsd:selector xpath=".//*/DeviceAccessPointList/DeviceAccessPointltem"/>

<xsd:field xpath="@ID"/>

</xsd:key>

<xsd:key name="Moduleltem_ID">

<xsd:selector xpath=".//*/ModuleList/Moduleltem"/>

<xsd:field xpath="@ID"/>

</xsd:key>

<xsd:key name="SubModuleltem_ID">

<xsd:selector xpath=".//*/VirtualSubmoduleList/VirtualSubmoduleltem"/>

<xsd:field xpath="@ID"/>

</xsd:key>

<xsd:key name="Valueltem_ID">

<xsd:selector xpath=".//*/ValueList/Valueltem"/>

<xsd:field xpath="@ID"/>

</xsd:key>

<xsd:key name="Graphicltem_ID">

<xsd:selector xpath=".//*/GraphicsList/Graphicltem"/>

<xsd:field xpath="@ID"/>

</xsd:key>

<xsd:key name="Categoryltem_ID">

<xsd:selector xpath=".//*/CategoryList/Categoryltem"/>

<xsd:field xpath="@ID"/>

</xsd:key>

<xsd:keyref name="UseableModuleltemRef" refer="Moduleltem_ID">

<xsd:selector xpath=".//*/ModuleltemRef"/>

<xsd:field xpath="@ModuleltemTarget"/>

</xsd:keyref>

<xsd:keyref name="GraphicsRef" refer="Graphicltem_ID">

<xsd:selector xpath=".//*/GraphicltemRef"/>

<xsd:field xpath="@GraphicltemTarget"/>

</xsd:keyref>

<xsd:keyref name="CategoryRef" refer="Categoryltem_ID">

<xsd:selector xpath=".//*/Modulelnfo"/>

<xsd:field xpath="@CategoryRef"/>

</xsd:keyref>

<xsd:keyref name="ValueltemRef" refer="Valueltem_ID">

<xsd:selector xpath=".//*/Ref"/>

<xsd:field xpath="@ValueltemTarget"/>

</xsd:keyref>

<xsd:keyref name="TextRef" refer="ExtemalText_ID">

<xsd:selector xpath=".//Deviceldentity/*"/>

<xsd:field xpath="@Textld"/>

</xsd:keyref>

<xsd:keyref name="TextRef1" refer="ExternalText_ID">

<xsd:selector xpath=".//DeviceFunction/*"/>

<xsd:field xpath="@Textld"/>

</xsd:keyref>

<xsd:keyref name="TextRef2" refer="ExternalText_ID">

<xsd:selector

xpath=".//DeviceAccessPointList/*|.//ModuleList/*|.//ValueList/*|.//ChannelDiagList/*|.//UnitDiagType

List/*|.//GraphicsList/*|.//CategoryList/*"/>

<xsd:field xpath="@Textld"/>

</xsd:keyref>

</xsd:element>

<!- -___________________________________________________________- ->

<!- - *** ProfileHeader ***- ->

<xsd:element name="ProfileHeader">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Profileldentification" type="xsd:string"/>

<xsd:element name="ProfileRevision" type="xsd:string"/>

<xsd:element name="ProfileName" type="xsd:string"/>

<xsd:element name="ProfileSource" type="xsd:string"/>

<xsd:element name="ProfileClasslD" type="ProfileClasslD_DataType"/>

<xsd:element name="ProfileDate" type="xsd:date" minOccurs="0"/>

<xsd:element name="Additionallnformation" type="xsd:anyURI" minOccurs="0"/>

<xsd:element name="ISO15745Reference" type="ISO15745Reference_DataType"/>

<xsd:element name="IASInterfaceType" type="IASInterface_DataType" minOccurs="0"

maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<!- -___________________________________________________________- ->

<!- - *** ProfileBody ***- ->

<xsd:element name="ProfileBody">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Deviceldentity" minOccurs="0"/>

<xsd:element ref="DeviceManager" minOccurs="0"/>

<xsd:element ref="DeviceFunction" maxOccurs="unbounded"/>

<xsd:element ref="ApplicationProcess" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element name="ExternalProfileHandle" type="ProfileHandle_DataType" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<!- -___________________________________________________________- ->

<!- - *** Deviceldentity related ***- ->

<xsd:element name="Deviceldentity">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="lnfoText" type="base:LocalizableTextParameterT"/>

<xsd:element name="VendorName" type="base:TokenParameterT"/>

</xsd:sequence>

<xsd:attribute name="VendorlD" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:normalizedString">

<xsd:pattern value="0x[0-9,a-f,A-F]{1,4}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

<xsd:attribute name="DevicelD" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:normalizedString">

<xsd:pattern value="0x[0-9,a-f,A-F]{1,4}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:complexType>

</xsd:element>

<!- -___________________________________________________________- ->

<!- - *** DeviceManager related ***- ->

<xsd:element name="DeviceManager"/>

<!- -___________________________________________________________- ->

<!- - *** DeviceFunction related ***- ->

<xsd:element name="DeviceFunction">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Family" type="base:FamilyT"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<!- -___________________________________________________________- ->

<!- - *** Application Process related ***- ->

<xsd:element name="ApplicationProcess">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="DeviceAccessPointList"/>

<xsd:element ref="ModuleList"/>

<xsd:element ref="ValueList" minOccurs="0"/>

<xsd:element ref="ChannelDiagList" minOccurs="0"/>

<xsd:element ref="UnitDiagTypeList" minOccurs="0"/>

<xsd:element ref="GraphicsList" minOccurs="0"/>

<xsd:element ref="CategoryList" minOccurs="0"/>

<xsd:element ref="ExtemalTextList"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="DeviceAccessPointList">

<xsd:complexType>

<xsd:annotation>

<xsd:documentation>Defines an AccessPoint list of a device.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element ref="DeviceAccessPointltem" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ModuleList">

<xsd:complexType>

<xsd:annotation>

<xsd:documentation>Defines a module list of a device.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element ref="Moduleltem" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ValueList">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Valueltem" maxOccurs="unbounded">

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="base:ObjectT">

<xsd:sequence>

<xsd:element name="Help" type="base:LocalizableTextParameterT"

minOccurs="0"/>

<xsd:element name="Assignments" minOccurs="0">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Assign" maxOccurs="unbounded">

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="base:LocalizableTextParameterT">

<xsd:attribute name="Content" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:normalizedString">

<xsd:pattern value="\-?[\d+]{1,20}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ChannelDiagList">

<xsd:complexType>

<xsd:annotation>

<xsd:documentation>Specifies a list of channel type specific error text with help

information.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="ChannelDiagltem" maxOccurs="unbounded">

<xsd:complexType mixed="true">

<xsd:annotation>

<xsd:documentation>Defines a channel type specific error text with help

information.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="Name" type="base:LocalizableTextParameterT"/>

<xsd:element name="Help" type="base:LocalizableTextParameterT" minOccurs="0"/>

</xsd:sequence>

<xsd:attribute name="ErrorType" type="base:unsigned16T" use="required"/>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="UnitDiagTypeList">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="UnitDiagTypeltem" maxOccurs="unbounded">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Ref" type="ValueltemReferenceT" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="UserStructureldentifier" type="base:unsigned16T"

use="required"/>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="GraphicsList">

<xsd:complexType>

<xsd:annotation>

<xsd:documentation>Contains a list of graphic items, which can contain either external

references to graphic files or embedded graphic information.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="Graphicltem" maxOccurs="unbounded">

<xsd:complexType mixed="true">

<xsd:annotation>

<xsd:documentation>Contains information about a graphic. An external reference

to a graphics file and optionally embedded graphics information can be given.</xsd:documentation>

</xsd:annotation>

<xsd:sequence minOccurs="0">

<xsd:element name="Embedded">

<xsd:annotation>

<xsd:documentation>Contains embedded graphics information in SVG

format.</xsd:documentation>

</xsd:annotation>

<xsd:complexType mixed="true">

<xsd:annotation>

<xsd:documentation>This parameter enables embedding graphic

information into the XML document.</xsd:documentation>

</xsd:annotation>

<xsd:complexContent mixed="true">

<xsd:restriction base="xsd:anyType">

<xsd:sequence>

<xsd:any namespace="##any" processContents="lax" minOccurs="0"

maxOccurs="unbounded">

<xsd:annotation>

<xsd:documentation>This element contains graphics

information in SVG (Scalable Vector Graphics) format.</xsd:documentation>

</xsd:annotation>

</xsd:any>

</xsd:sequence>

</xsd:restriction>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="ID" type="base:ldT" use="required"/>

<xsd:attribute name="GraphicFile" type="xsd:string" use="required"/>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="CategoryList">

<xsd:complexType>

<xsd:annotation>

<xsd:documentation>Defines a list of text definitions for catalog categories for modules

and submodules.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="Categoryltem" maxOccurs="unbounded">

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="base:ObjectT">

<xsd:attribute name="Textld" type="xsd:token" use="required"/>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="ExtemalTextList">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="PrimaryLanguage">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Text" type="ExtemalTextT" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Language" minOccurs="0" maxOccurs="unbounded">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Text" type="ExtemalTextT" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute ref="xml:lang"/>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<!- -___________________________________________________________- ->

<!- - *** Globally defined elements ***- ->

<xsd:element name="DeviceAccessPointltem">

<xsd:complexType>

<xsd:annotation>

<xsd:documentation>Represents the Device Access Point for PROFINET IO

Devices.</xsd:documentation>

</xsd:annotation>

<xsd:complexContent>

<xsd:extension base="base:ObjectT">

<xsd:sequence>

<xsd:element name="Modulelnfo" type="ModulelnfoT"/>

<xsd:element name="IOConfigData">

<xsd:complexType>

<xsd:annotation>

<xsd:documentation>Contains general device specific IO data

definitions.</xsd:documentation>

</xsd:annotation>

<xsd:attribute name="MaxlnputLength" type="base:unsigned16T"

use="required"/>

<xsd:attribute name="MaxOutputLength" type="base:unsigned16T"

use="required"/>

<xsd:attribute name="MaxDataLength" type="base:unsigned16T" use="optional"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="UseableModules">

<xsd:complexType>

<xsd:annotation>

<xsd:documentation>Contains a list of module references which can be used

with this access point.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="ModuleltemRef" maxOccurs="unbounded">

<xsd:complexType>

<xsd:attribute name="ModuleltemTarget" type="xsd:string"

use="required"/>

<xsd:attribute name="AllowedlnSlots" type="base:ValueListT"

use="optional"/>

<xsd:attribute name="UsedlnSlots" type="base:ValueListT"

use="optional"/>

<xsd:attribute name="FixedlnSlots" type="base:ValueListT"

use="optional"/>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="VirtualSubmoduleList" type="VirtualSubmoduleListT"/>

<xsd:element name="Graphics" type="GraphicsReferenceT" minOccurs="0"/>

<xsd:element ref="ApplicationRelations" minOccurs="0"/>

</xsd:sequence>

<xsd:attribute name="PhysicalSlots" type="base:ValueListT" use="required"/>

<xsd:attribute name="ModuleldentNumber" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:normalizedString">

<xsd:pattern value="0x[0-9,a-f,A-F]{1,8}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

<xsd:attribute name="MinDevicelnterval" type="base:unsigned16T" use="required"/>

<xsd:attribute name="lmplementationType" type="xsd:normalizedString" use="optional"/>

<xsd:attribute name="DNS_CompatibleName" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:normalizedString">

<xsd:pattern value="([0-9,a-z,A-Z]|[0-9,a-z,A-Z]-)*[0-9,a-z,A-Z]"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

<xsd:attribute name="ExtendedAddressAssignmentSupported" type="xsd:boolean"

use="optional" default="false"/>

<xsd:attribute name="AllowedlnSlots" type="base:ValueListT" use="optional">

<xsd:annotation>

<xsd:documentation>lf the Device AccessPoint can be placed into more than one

slot, this parameter specifies the possible slots.</xsd:documentation>

</xsd:annotation>

</xsd:attribute>

<xsd:attribute name="FixedlnSlots" type="base:ValueListT" use="required"/>

<xsd:attribute name="ObjectUUID_Locallndex" type="base:unsigned16T" use="required"/>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

<xsd:element name="ApplicationRelations">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="TimingProperties" minOccurs="0">

<xsd:complexType>

<xsd:attribute name="SendClock" type="base:ValueListT" use="optional"

default="32">

<xsd:annotation>

<xsd:documentation>Defines the minimal clock for sending cyclic data. Basic

clock is 31,25 mircoseconds. The value of this element contains the factor of the basic

clock.</xsd:documentation>

</xsd:annotation>

</xsd:attribute>

<xsd:attribute name="ReductionRatio" type="base:ValueListT" use="optional">

<xsd:annotation>

<xsd:documentation>Contains a list of Values, describing the supported

reduction ratios of an access point </xsd:documentation>

</xsd:annotation>

</xsd:attribute>

</xsd:complexType>

</xsd:element>

</xsd:sequence>
<xsd:attribute name="AR_BlockVersion" type="base:unsigned16T" use="required"/>
<xsd:attribute name="IOCR_BlockVersion" type="base:unsigned16T" use="required"/>
<xsd:attribute name="AlarmCR_BlockVersion" type="base:unsigned16T" use="required"/>
<xsd:attribute name="SubmoduleDataBlockVersion" type="base:unsigned16T" use="required"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Moduleltem">

<xsd:annotation>

<xsd:documentation>Defines the contents of a module in GSDML Device

Description.</xsd:documentation>

</xsd:annotation>

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="base:ObjectT">

<xsd:sequence>

<xsd:element name="Modulelnfo">

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="ModulelnfoT"/>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

<xsd:element name="VirtualSubmoduleList" type="VirtualSubmoduleListT">

<xsd:annotation>

<xsd:documentation>Only contains virtual submodules.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="Graphics" type="GraphicsReferenceT" minOccurs="0"/>

</xsd:sequence>

<xsd:attribute name="ModuleldentNumber" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:normalizedString">

<xsd:pattern value="0x[0-9,a-f,A-F]{1,8}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

<xsd:element name="VirtualSubmoduleltem">

<xsd:annotation>

<xsd:documentation>Defines the contents of a submodule in GSDML Device

Description.</xsd:documentation>

</xsd:annotation>

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="base:ObjectT">

<xsd:sequence>

<xsd:element name="IOData">

<xsd:complexType>

<xsd:annotation>

<xsd:documentation>Defines the input and output data items for a

submodule.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="lnput" minOccurs="0">

<xsd:complexType mixed="true">

<xsd:annotation>

<xsd:documentation>Contains the Dataltems used to describe the

input data.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="Dataltem" maxOccurs="unbounded">

<xsd:complexType mixed="true">

<xsd:complexContent mixed="true">

<xsd:extension base="DataltemT"/>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="Consistency"

type="base:IODataConsistencyEnumT" use="optional" default="ltem consistency"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Output" minOccurs="0">

<xsd:complexType mixed="true">

<xsd:annotation>

<xsd:documentation>Contains the Dataltems used to describe the

output data.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="Dataltem" maxOccurs="unbounded">

<xsd:complexType mixed="true">

<xsd:complexContent mixed="true">

<xsd:extension base="DataltemT"/>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="Consistency"

type="base:IODataConsistencyEnumT" use="optional" default="ltem consistency"/>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="IOPS_Length" type="base:unsigned16T" use="optional"

default="1">

<xsd:annotation>

<xsd:documentation>Length of the IO producer status within an io data

object.</xsd:documentation>

</xsd:annotation>

</xsd:attribute>

<xsd:attribute name="IOCS_Length" type="base:unsigned16T" use="optional"

default="1">

<xsd:annotation>

<xsd:documentation>Length of the IO consumer status within an io data

object.</xsd:documentation>

</xsd:annotation>

</xsd:attribute>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

<xsd:element name="VirtualSubmoduleltem">

<xsd:annotation>

<xsd:documentation>Defines the contents of a submodule in GSDML Device

Description.</xsd:documentation>

</xsd:annotation>

<xsd:complexType>

<xsd:complexContent>

<xsd:extension base="base:ObjectT">

<xsd:sequence>

<xsd:element name="IOData">

<xsd:complexType>

<xsd:annotation>

<xsd:documentation>Defines the input and output data items for a

submodule.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="lnput" minOccurs="0">

<xsd:complexType mixed="true">

<xsd:annotation>

<xsd:documentation>Contains the Dataltems used to describe the

input data.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="Dataltem" maxOccurs="unbounded">

<xsd:complexType mixed="true">

<xsd:complexContent mixed="true">

<xsd:extension base="DataltemT"/>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="Consistency"

type="base:IODataConsistencyEnumT" use="optional" default="ltem consistency"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="Output" minOccurs="0">

<xsd:complexType mixed="true">

<xsd:annotation>

<xsd:documentation>Contains the Dataltems used to describe the

output data.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="Dataltem" maxOccurs="unbounded">

<xsd:complexType mixed="true">

<xsd:complexContent mixed="true">

<xsd:extension base="DataltemT"/>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="Consistency"

type="base:IODataConsistencyEnumT" use="optional" default="ltem consistency"/>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="IOPS_Length" type="base:unsigned16T" use="optional"

default="1">

<xsd:annotation>

<xsd:documentation>Length of the IO producer status within an io data

object.</xsd:documentation>

</xsd:annotation>

</xsd:attribute>

<xsd:attribute name="IOCS_Length" type="base:unsigned16T" use="optional"

default="1">

<xsd:annotation>

<xsd:documentation>Length of the IO consumer status within an io data

object.</xsd:documentation>

</xsd:annotation>

</xsd:attribute>

</xsd:complexType>

</xsd:element>

<xsd:element name="RecordDataList" minOccurs="0">

<xsd:complexType>

<xsd:annotation>

<xsd:documentation>Defines a list of Data Records in a

submodule.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element ref="ParameterRecordDataltem" minOccurs="0"

maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Modulelnfo" type="ModulelnfoT" minOccurs="0"/>

<xsd:element name="Graphics" type="GraphicsReferenceT" minOccurs="0"/>

</xsd:sequence>

<xsd:attribute name="SubmoduleldentNumber" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:normalizedString">

<xsd:pattern value="0x[0-9,a-f,A-F]{1,8}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

</xsd:element>

<!- -___________________________________________________________- ->

<!- - *** RecordData related ***- ->

<xsd:complexType name="ParameterRecordDataT" mixed="true">

<xsd:sequence>

<xsd:element name="Name" type="base:LocalizableTextParameterT"/>

<xsd:element name="Const" minOccurs="0" maxOccurs="unbounded">

<xsd:complexType mixed="true">

<xsd:attribute name="ByteOffset" type="base:unsigned32T" use="optional" default="0"/>

<xsd:attribute name="Data" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:normalizedString">

<xsd:pattern value="(0x[0-9,a-f,A-F][0-9,a-f,A-F],?){1 ,}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:complexType>

</xsd:element>

<xsd:element name="Ref" type="ValueltemReferenceT" minOccurs="0"

maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="lndex" type="base:unsigned16T" use="required"/>

<xsd:attribute name="Length" type="base:unsigned32T" use="required"/>

<xsd:attribute name="TransferSequence" type="base:unsigned16T" use="optional"

default="0"/>

</xsd:complexType>

<xsd:element name="ParameterRecordDataltem" type="ParameterRecordDataT">

<xsd:annotation>

<xsd:documentation>This defines a ParameterRecordData element.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<!- -___________________________________________________________- ->

<!- - *** Multiply used types ***- ->

<xsd:complexType name="ValueltemReferenceT">

<xsd:attribute name="ValueltemTarget" type="xsd:string" use="optional"/>

<xsd:attribute name="ByteOffset" type="base:unsigned32T" use="required"/>

<xsd:attribute name="BitOffset" use="optional" default="0">

<xsd:simpleType>

<xsd:restriction base="xsd:normalizedString">

<xsd:pattern value="[0-7]"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

<xsd:attribute name="BitLength" type="base:unsigned8T" use="optional" default="1"/>

<xsd:attribute name="DataType" type="base:DataTypeEnumT" use="required"/>

<xsd:attribute name="AllowedValues" type="base:SignedValueListT" use="optional"/>

<xsd:attribute name="DefaultValue" use="required">

<xsd:simpleType>

<xsd:restriction base="xsd:normalizedString">

<xsd:pattern value="\-?[\d+]{1,20}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

<xsd:attribute name="Changeable" type="xsd:boolean" use="optional" default="true"/>

<xsd:attribute name="Visible" type="xsd:boolean" use="optional" default="true"/>

<xsd:attribute name="Textld" type="xsd:token" use="required"/>

</xsd:complexType>

<xsd:complexType name="GraphicsReferenceT">

<xsd:annotation>

<xsd:documentation>This type is used for as a reference to one or more items of the global graphics list.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="GraphicltemRef" maxOccurs="unbounded">

<xsd:complexType>

<xsd:attribute name="Type" type="base:GraphicsTypeEnumT" use="required"/>

<xsd:attribute name="GraphicltemTarget" type="xsd:string" use="required"/>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="ModulelnfoT">

<xsd:annotation>

<xsd:documentation>Contains general information about a Module.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="Name" type="base:LocalizableTextParameterT"/>
<xsd:element name="lnfoText" type="base:LocalizableTextParameterT"/>
<xsd:element name="Family" type="base:FamilyT" minOccurs="0"/>
<xsd:element name="VendorName" type="base:TokenParameterT" minOccurs="0"/>
<xsd:element name="OrderNumber" type="base:TokenParameterT" minOccurs="0"/>
<xsd:element name="HardwareRelease" type="base:TokenParameterT" minOccurs="0"/>
<xsd:element name="SoftwareRelease" type="base:TokenParameterT" minOccurs="0"/>

</xsd:sequence>

<xsd:attribute name="CategoryRef type="xsd:string" use="optional"/>

<xsd:attribute name="SubCategory1Ref type="xsd:string" use="optional"/>

</xsd:complexType>

<xsd:complexType name="VirtualSubmoduleListT">

<xsd:annotation>

<xsd:documentation>Defines a submodule list used in the module.</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element ref="VirtualSubmoduleltem"/>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="DataltemT" mixed="true">

<xsd:annotation>

<xsd:documentation>Represents the Dataltem used to define the input or output data of a submodule.</xsd:documentation>

</xsd:annotation>

<xsd:attribute name="DataType" type="base:DataltemTypeEnumT" use="required"/>

<xsd:attribute name="Length" type="base:unsigned16T" use="optional"/>

<xsd:attribute name="UseAsBits" type="xsd:boolean" use="optional" default="false"/>

<xsd:attribute name="Textld" type="xsd:token" use="required"/>

</xsd:complexType>

<xsd:complexType name="ExternalTextT">

<xsd:attribute name="Textld" type="xsd:string" use="required"/>

<xsd:attribute name="Value" type="xsd:string" use="required"/>

</xsd:complexType>

<!- -___________________________________________________________- ->

<!- - *** Profile Header Data Types ***- ->

<xsd:simpleType name="ProfileClasslD_DataType">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="AIP"/>

<xsd:enumeration value="Process"/>

<xsd:enumeration value="lnformationExchange"/>

<xsd:enumeration value="Resource"/>

<xsd:enumeration value="Device"/>

<xsd:enumeration value="CommunicationNetwork"/>

<xsd:enumeration value="Equipment"/>

<xsd:enumeration value="Human"/>

<xsd:enumeration value="Material"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="ISO15745Reference_DataType">

<xsd:sequence>

<xsd:element name="ISO15745Part" type="xsd:positivelnteger"/>

<xsd:element name="ISO15745Edition" type="xsd:positivelnteger"/>

<xsd:element name="ProfileTechnology" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<xsd:simpleType name="IASInterface_DataType">

<xsd:union>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="CSI"/>

<xsd:enumeration value="HCI"/>

<xsd:enumeration value="ISI"/>

<xsd:enumeration value="API"/>

<xsd:enumeration value="CMI"/>

<xsd:enumeration value="ESI"/>

<xsd:enumeration value="FSI"/>

<xsd:enumeration value="MTI"/>

<xsd:enumeration value="SEI"/>

<xsd:enumeration value="USI"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="4"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:union>

</xsd:simpleType>

<! - -___________________________________________________________- ->

<!- - *** DeviceProfile Data Types ***- ->

<xsd:complexType name="ProfileHandle_DataType">

<xsd:sequence>

<xsd:element name="Profileldentification" type="xsd:string"/>

<xsd:element name="ProfileRevision" type="xsd:string"/>

<xsd:element name="ProfileLocation" type="xsd:anyURI" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

D.5.3 Схема GSDML профиля сети коммуникаций GSDML-CommNetwork-v1.0.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="//www.profibus.com/GSDML/2003/11/CommNetworkProfile"
xmlns:xsd="https://www.w3.org/2001/XMLSchema"
xmlns="//www.profibus.com/GSDML/2003/11/CommNetworkProfile" version="1.0">

<!- -___________________________________________________________- ->

<!- - *** ISO 15745 Profile definition ***- ->

<xsd:element name="ISO15745Profile">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ProfileHeader"/>

<xsd:element ref="ProfileBody"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<!- -___________________________________________________________- ->

<!- - *** ProfileHeader ***_>

<xsd:element name="ProfileHeader">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Profileldentification" type="xsd:string"/>

<xsd:element name="ProfileRevision" type="xsd:string"/>

<xsd:element name="ProfileName" type="xsd:string"/>

<xsd:element name="ProfileSource" type="xsd:string"/>

<xsd:element name="ProfileClasslD" type="ProfileClasslD_DataType"/>

<xsd:element name="ProfileDate" type="xsd:date" minOccurs="0"/>

<xsd:element name="Additionallnformation" type="xsd:anyURI" minOccurs="0"/>

<xsd:element name="ISO15745Reference" type="ISO15745Reference_DataType"/>

<xsd:element name="IASInterfaceType" type="IASInterface_DataType" minOccurs="0"

maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<!- -___________________________________________________________- ->

<!- - *** ProfileBody ***- ->

<xsd:element name="ProfileBody">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="ApplicationLayers"/>

<xsd:element ref="TransportLayers"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<!--___________________________________________________________- ->

<!- - *** Application Layer related *** - ->

<xsd:element name="ApplicationLayers"/>

<!- -___________________________________________________________- ->

<!- - *** Transport Layer related *** - ->

<xsd:element name="TransportLayers"/>

<!- -___________________________________________________________- ->

<!- - *** Profile Header Data Types ***- ->

<xsd:simpleType name="ProfileClasslD_DataType">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="AIP"/>

<xsd:enumeration value="Process"/>

<xsd:enumeration value="lnformationExchange"/>

<xsd:enumeration value="Resource"/>

<xsd:enumeration value="Device"/>

<xsd:enumeration value="CommunicationNetwork"/>

<xsd:enumeration value="Equipment"/>

<xsd:enumeration value="Human"/>

<xsd:enumeration value="Material"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="ISO15745Reference_DataType">

<xsd:sequence>

<xsd:element name="ISO15745Part" type="xsd:positivelnteger"/>

<xsd:element name="ISO15745Edition" type="xsd:positivelnteger"/>

<xsd:element name="ProfileTechnology" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<xsd:simpleType name="IASInterface_DataType">

<xsd:union>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="CSI"/>

<xsd:enumeration value="HCI"/>

<xsd:enumeration value="ISI"/>

<xsd:enumeration value="API"/>

<xsd:enumeration value="CMI"/>

<xsd:enumeration value="ESI"/>

<xsd:enumeration value="FSI"/>

<xsd:enumeration value=""MTI"/>

<xsd:enumeration value="SEI"/>

<xsd:enumeration value="USI"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:length value="4"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:union>

</xsd:simpleType>

</xsd:schema>

D.5.4 Схема GSDML примитивов (GSDML-Primitives-v1.0.xsd)

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="//www.profibus.com/GSDML/2003/11/Primitives"
xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns="//www.profibus.com/GSDML/2003/11/Primitives"
version="1.0">
<xsd:import namespace="https://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<!- -___________________________________________________________- ->

<!- - *** Base Data Types for GSDML Device Description ***- ->

<!--______________________________________________________________- ->

<!- - *** Object definition for GSDML ***- ->

<xsd:complexType name="ObjectT">

<xsd:annotation>

<xsd:documentation>Base definition for objects which can be

referred.</xsd:documentation>

</xsd:annotation>

<xsd:attribute name="ID" type="ldT" use="required"/>

</xsd:complexType>

<xsd:simpleType name="ldT">

<xsd:annotation>

<xsd:documentation> Base type for object IDs. Any string without whitespaces at the

beginning and end is allowed.</xsd:documentation>

</xsd:annotation>

<xsd:restriction base="xsd:string">

<xsd:pattern value="(\S(.)*\S)|\S"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="ValueListT">

<xsd:annotation>

<xsd:documentation>Base type for a list including ranges of unsigned

values</xsd:documentation>

</xsd:annotation>

<xsd:restriction base="xsd:string">

<xsd:pattern value="((\d+\.\.\d+)|(\d+))(( \d+\.\.\d+)|( \d+))*"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="SignedValueListT">

<xsd:annotation>

<xsd:documentation>Base type for a list including ranges of signed

values</xsd:documentation>

</xsd:annotation>

<xsd:restriction base="xsd:string">

<xsd:pattern value="((\-?\d+\.\.\-?\d+)|(\-?\d+))(( \-?\d+\.\.\-?\d+)|( \-?\d+))*"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:complexType name="TokenParameterT">

<xsd:annotation>

<xsd:documentation/>

</xsd:annotation>

<xsd:attribute name="Value" type="xsd:token" use="required"/>

</xsd:complexType>

<!--___________________________________________________________- ->

<!- - *** Specialized Data Types from Primitives schema ***- ->

<xsd:complexType name="LocalizableTextParameterT">

<xsd:attribute name="Textld" type="xsd:token" use="required"/>

</xsd:complexType>

<!- -___________________________________________________________- ->

<!- - *** Data Type aliases to map former GSD Datatypes ***- ->

<xsd:simpleType name="unsigned8T">

<xsd:restriction base="xsd:unsignedByte"/>

</xsd:simpleType>

<xsd:simpleType name="unsigned16T">

<xsd:restriction base="xsd:unsignedShort"/>

</xsd:simpleType>

<xsd:simpleType name="unsigned32T">

<xsd:restriction base="xsd:unsignedlnt"/>

</xsd:simpleType>

<!- -___________________________________________________________- ->

<!- - *** Data Type for enumerations ***- ->

<xsd:complexType name="FamilyT">

<xsd:annotation>

<xsd:documentation>Sets the Device family for identification purpose.</xsd:documentation>

</xsd:annotation>

<xsd:attribute name="MainFamily" type="FamilyEnumT" use="required"/>

<xsd:attribute name="ProductFamily" type="xsd:normalizedString" use="optional"/>

</xsd:complexType>

<xsd:simpleType name="FamilyEnumT">

<xsd:annotation>

<xsd:documentation>Defines the possible settings for Family/MainFamily.</xsd:documentation>

</xsd:annotation>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="General"/>

<xsd:enumeration value="Drives"/>

<xsd:enumeration value="Switching Devices"/>

<xsd:enumeration value="l/O"/>

<xsd:enumeration value="Valves"/>

<xsd:enumeration value="Controllers"/>

<xsd:enumeration value="HMI"/>

<xsd:enumeration value="Encoders"/>

<xsd:enumeration value="NC/RC"/>

<xsd:enumeration value="Gateway"/>

<xsd:enumeration value="PLCs"/>

<xsd:enumeration value="ldent Systems"/>

<xsd:enumeration value="PA Profiles"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="GraphicsTypeEnumT">

<xsd:annotation>

<xsd:documentation>This is a list of possible types of a graphic representation of a module

or submodule.</xsd:documentation>

</xsd:annotation>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="DeviceSymbol"/>

<xsd:enumeration value="Devicelcon"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="DataltemTypeEnumT">

<xsd:annotation>

<xsd:documentation>Defines the possible Datatypes for Dataltems</xsd:documentation>

</xsd:annotation>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="lnteger8"/>

<xsd:enumeration value="lnteger16"/>

<xsd:enumeration value="lnteger32"/>

<xsd:enumeration value="lnteger64"/>

<xsd:enumeration value="Unsigned8"/>

<xsd:enumeration value="Unsigned16"/>

<xsd:enumeration value="Unsigned32"/>

<xsd:enumeration value="Unsigned64"/>

<xsd:enumeration value="Float32"/>

<xsd:enumeration value="Float64"/>

<xsd:enumeration value="Date"/>

<xsd:enumeration value="TimeOfDay with date indication"/>

<xsd:enumeration value="TimeOfDay without date indication"/>

<xsd:enumeration value="TimeDifference with date indication"/>

<xsd:enumeration value="TimeDifference without date indication"/>

<xsd:enumeration value="NetworkTime"/>

<xsd:enumeration value="NetworkTimeDifference"/>

<xsd:enumeration value="VisibleString"/>

<xsd:enumeration value="OctetString"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="IODataConsistencyEnumT">

<xsd:annotation>

<xsd:documentation>Specifies the consistency behaviour </xsd:documentation>

</xsd:annotation>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="ltem consistency"/>

<xsd:enumeration value="AII items consistency"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="DataTypeEnumT">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="Bit"/>

<xsd:enumeration value="BitArea"/>

<xsd:enumeration value="lnteger8"/>

<xsd:enumeration value="lnteger16"/>

<xsd:enumeration value="lnteger32"/>

<xsd:enumeration value="lnteger64"/>

<xsd:enumeration value="Unsigned8"/>

<xsd:enumeration value="Unsigned16"/>

<xsd:enumeration value="Unsigned32"/>

<xsd:enumeration value="Unsigned64"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:schema

Приложение ДА
(справочное)


Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации

Таблица ДА.1

Обозначение ссылочного международного стандарта

Степень соответствия

Обозначение и наименование соответствующего национального стандарта

ИСО 639-1:2002

*

ИСО 639-2:1998

*

ИСО 15745-1:2003

*

ИСО/МЭК 7984-4:1989

*

ИСО/МЭК 8802-3:2000

*

ИСО/МЭК 10646-1:2000

*

МЭК 61158 (все части)

*

ИСО 15745-3:2003

*

ИСО 3166-1:1997

*

ИСО 11898:1993

*

ИСО/МЭК 11578:1996

*

МЭК 61784-1:2003

*

МЭК 62026-3:2000

*

* Соответствующий национальный стандарт отсутствует. До его утверждения рекомендуется использовать перевод на русский язык данного международного стандарта. Перевод данного международного стандарта находится в Федеральном информационном фонде технических регламентов и стандартов.

Библиография

[1]

МЭК/ТО 13283:1998

Промышленная автоматизация. Критичные по времени архитектуры сообщений. Требования потребителей и сетевое управление для систем сообщений, критичных по времени

(ISO/TR 13283:1998)

(Industrial automation. Time-critical communications architectures. User requirements and network management for time-critical communications systems)

[2]

МЭК/PAS 61499-1:2000

Блоки функциональные для систем измерения и управления производственными процессами. Часть 1. Архитектура

(IEC/PAS 61499-1:2000)

(Function blocks for industrial-process measurement and control systems. Part 1: Architecture)

[3]

МЭК/ТС 61915:2003

Комплектные распределительные устройства низковольтные. Принципы разработки приборных профилей для сетевых промышленных устройств

(IEC/TS 61915:2003)

(Function blocks for industrial-process measurement and control systems. Part 1: Architecture)

[4]

MSTC/JOP 1101:1999

Specification Autonimous Decentralised Protocol R3.0

[5]

ODVA/CI EtherNet/IP:2001

EtherNet/IP Specification (Release 1/0)

[6]

МЭК 61131-8:2003

Контроллеры программируемые. Часть 8. Руководящие указания по применению и реализации языков программирования

(IEC 61131-8:2003)

(Programmable controllers - Part 8: Guidelines for the application and implementation of programming languages)

[7]

МЭК/PAS 61804-2:2002

Блоки функциональные (FB) для управления процессом. Часть 2. Спецификация концепции FB и языка описания электронного устройства (EDDL)

(IEC/PAS 61804-2:2002)

[Function blocks (FB) for process control - Part 2: Specification of FB concept and Electronic Device Description Language (EDDL)]

[8]

ИСО 2382 (все части)

Информационные технологии - Словарь

(ISO 2382 (all parts)

(Information technology - Vocabulary)

[9]

ISO/AFNOR Dictionary of Computer Science (1997)

Электронный текст документа

и сверен по:

, 2013