юридическая фирма 'Интернет и Право'
Основные ссылки




На правах рекламы:



Яндекс цитирования





Произвольная ссылка:



Описание
Источник публикации
М.: ФГБУ "Институт стандартизации", 2025
Примечание к документу
Документ введен в действие с 01.02.2025 на период до 01.02.2028 (Приказ Росстандарта от 27.12.2024 N 125-пнст).
Название документа
"ПНСТ 994-2024 (ИСО 16400-3:2024). Предварительный национальный стандарт Российской Федерации. Умное производство. Каталоги поведения оборудования для виртуальной производственной системы. Часть 3. Руководство по созданию модели оборудования"
(утв. и введен в действие Приказом Росстандарта от 27.12.2024 N 125-пнст)

"ПНСТ 994-2024 (ИСО 16400-3:2024). Предварительный национальный стандарт Российской Федерации. Умное производство. Каталоги поведения оборудования для виртуальной производственной системы. Часть 3. Руководство по созданию модели оборудования"
(утв. и введен в действие Приказом Росстандарта от 27.12.2024 N 125-пнст)



Оглавление


Утвержден и введен в действие
Приказом Федерального агентства
по техническому регулированию
и метрологии
от 27 декабря 2024 г. N 125-пнст
ПРЕДВАРИТЕЛЬНЫЙ НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
УМНОЕ ПРОИЗВОДСТВО
КАТАЛОГИ ПОВЕДЕНИЯ ОБОРУДОВАНИЯ
ДЛЯ ВИРТУАЛЬНОЙ ПРОИЗВОДСТВЕННОЙ СИСТЕМЫ
ЧАСТЬ 3
РУКОВОДСТВО ПО СОЗДАНИЮ МОДЕЛИ ОБОРУДОВАНИЯ
Smart manufacturing. Equipment behavior catalogues
for virtual production system. Part 3. Guideline
for construction of equipment instance model
(ISO 16400-3:2024, Automation systems and integration -
Equipment behaviour catalogues for virtual production
system - Part 3: Requirements and recommendations
for construction of an equipment instance model, MOD)
ПНСТ 994-2024
(ИСО 16400-3:2024)
ОКС 25.040.01
Срок действия
с 1 февраля 2025 года
до 1 февраля 2028 года
Предисловие
1 ПОДГОТОВЛЕН Федеральным государственным автономным образовательным учреждением высшего образования "Санкт-Петербургский политехнический университет Петра Великого" (ФГАОУ ВО "СПбПУ") и Некоммерческим партнерством "Русское общество содействия развитию биометрических технологий, систем и коммуникаций" (Некоммерческое партнерство "Русское биометрическое общество") на основе собственного перевода на русский язык англоязычной версии стандарта, указанного в пункте 4
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 194 "Кибер-физические системы"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 27 декабря 2024 г. N 125-пнст
4 Настоящий стандарт является модифицированным по отношению к международному стандарту ИСО 16400-3:2024 "Системы автоматизации и интеграция. Каталоги поведения оборудования для виртуальной производственной системы. Часть 3. Руководство по созданию модели оборудования" (ISO 16400-3:2024 "Automation systems and integration - Equipment behaviour catalogues for virtual production system - Part 3: Requirements and recommendations for construction of an equipment instance model", MOD) путем изменения отдельных фраз (слов, значений показателей, ссылок), которые выделены в тексте курсивом.
Внесение указанных технических отклонений направлено на учет потребностей национальной экономики Российской Федерации.
Наименование настоящего стандарта изменено относительно наименования указанного международного стандарта для приведения в соответствие с ГОСТ Р 1.5-2012 (пункт 3.5).
Сведения о соответствии ссылочных национальных стандартов международным стандартам, использованным в качестве ссылочных в примененном международном стандарте, приведены в дополнительном приложении ДА
Правила применения настоящего стандарта и проведения его мониторинга установлены в ГОСТ Р 1.16-2011 (разделы 5 и 6).
Федеральное агентство по техническому регулированию и метрологии собирает сведения о практическом применении настоящего стандарта. Данные сведения, а также замечания и предложения по содержанию стандарта можно направить не позднее чем за 4 мес до истечения срока его действия разработчику настоящего стандарта по адресу: 115324 Москва, Овчинниковская набережная, д. 20, стр. 2, помещ. 34, e-mail: info@tc194.ru и/или в Федеральное агентство по техническому регулированию и метрологии: 123112 Москва, Пресненская набережная, д. 10, стр. 2.
В случае отмены настоящего стандарта соответствующая информация будет опубликована в ежемесячном информационном указателе "Национальные стандарты" и также будет размещена на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.rst.gov.ru)
Введение
Серия стандартов "Умное производство. Каталоги поведения оборудования для виртуальной производственной системы" определяет каталоги поведения оборудования (КПО) и требования к КПО для формирования исполнительного файла, представляющего динамическое поведение экземпляра номинального или физического оборудования. Такой исполнительный файл играет важную роль при настройке виртуальных производственных систем, используемых для моделирования и проверки проектируемых производственных процессов, а также для мониторинга текущих производственных процессов. Методология КПО обеспечит эволюцию умного производства.
КПО является эффективным и стандартизированным способом предоставить информацию о динамическом поведении единицы оборудования.
1 Область применения
В настоящем стандарте приведены рекомендации по построению модели оборудования с использованием элемента каталога поведения оборудования (КПО).
2 Нормативные ссылки
В настоящем стандарте использованы нормативные ссылки на следующие стандарты:
ПНСТ 795-2022 (ИСО 16400-1:2020) Умное производство. Каталоги поведения оборудования для виртуальной производственной системы. Часть 1. Общие положения
ПНСТ 908-2023 Умное производство. Каталоги поведения оборудования для виртуальной производственной системы. Часть 2. Формальное описание шаблона каталога
Примечание - При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный стандарт, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт, на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта с указанным выше годом утверждения (принятия). Если после утверждения настоящего стандарта в ссылочный стандарт, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, рекомендуется применять в части, не затрагивающей эту ссылку.
3 Термины и определения
В настоящем стандарте применены термины по ПНСТ 795-2022, а также следующие термины с соответствующими определениями:
3.1 руководство по построению (construction guideline): Руководство по созданию модели экземпляра оборудования из элемента КПО с использованием правил построения.
3.2 процессор построения (construction processor): Программный инструмент для создания модели экземпляра оборудования на основе элемента КПО со ссылкой на руководство по построению.
3.3 модель экземпляра оборудования (equipment instance model): Исполняемая модель, соответствующая спецификации элемента КПО.
4 Сокращения
В настоящем стандарте применены следующие сокращения:
XML - расширяемый язык разметки (eXtensible Markup Language);
XSL - расширяемый язык таблиц стилей (eXtensible Stylesheet Language);
XSLT - расширяемые преобразования языка таблиц стилей (eXtensible Stylesheet Language Transformations).
5 Функциональные требования к модели экземпляра оборудования
При создании интересующей виртуальной производственной системы модель экземпляра оборудования должна быть построена на основе соответствующего элемента КПО.
Модель экземпляра оборудования должна иметь следующие функциональные возможности:
- обрабатываемое описание потока поведения, указанного в элементе КПО.
Примечание - Поток поведения означает последовательность действий, выполняемых во время исполнения модели экземпляра оборудования;
- обрабатываемое описание формулы (формул) или математической(их) модели(ей);
- обрабатываемое описание внешних взаимодействий.
6 Обоснование необходимости руководства по построению
6.1 Связь между элементом КПО и моделью экземпляра оборудования
Производственная система создается на основе моделей экземпляра оборудования.
Модель экземпляра оборудования создается на основе соответствующего элемента КПО. Элементы КПО и шаблоны КПО регистрируются в общем репозитории (см. ПНСТ 795-2022, рисунок 4).
На рисунке 1 показаны три случая создания модели экземпляра оборудования. Все случаи должны рассматриваться в соответствии с руководством по построению.
Рисунок 1 - Три случая создания модели
экземпляра оборудования
Случай 1: если элемент КПО содержит физические данные определенного фактически существующего оборудования, строится модель экземпляра физического оборудования.
Случай 2: если элемент КПО содержит только номинальные данные, предназначенные для конкретного оборудования, но существуют конкретные физические данные, то при применении физических данных к соответствующему элементу КПО строится модель экземпляра физического оборудования.
Случай 3: если элемент КПО содержит только номинальные данные, предназначенные для определенного оборудования, строится модель экземпляра номинального оборудования.
6.2 Процессор построения
Модель экземпляра оборудования должна быть построена с использованием руководства по построению. Руководство по построению применимо к трем вышеуказанным случаям.
Процессор построения целевой среды, в которой будет выполняться модель экземпляра оборудования, принимает элемент КПО в качестве входных данных и создает модель экземпляра оборудования.
В зависимости от того, содержит элемент КПО номинальные данные или физические данные, может быть три случая, в которых модель экземпляра оборудования создается процессором с использованием руководства по построению, как показано на рисунке 2.
- процесс
- ссылка
Рисунок 2 - Создание модели экземпляра оборудования
7 Руководство по построению
7.1 Общие положения
Руководство по построению представляет собой правила построения. Правила построения подробно описаны в 7.2. Процедуры построения должны быть реализованы в процессоре построения в соответствии с руководством. Процедуры построения выполняются процессором, который принимает элемент КПО для построения модели экземпляра оборудования. На рисунке 3 показан процессор построения, основанный на руководстве по построению.
- процесс
- ссылка
Рисунок 3 - Процессор построения
7.2 Правила построения
Элемент КПО - это экземпляр шаблона КПО, который включает в себя описания заголовка, набора свойств, поведения и внешних взаимодействий. Модель экземпляра оборудования создается на основе элемента КПО и связанных данных конструкции оборудования (номинальные данные) или связанных данных отдельного оборудования (физические данные).
Правила построения модели экземпляра оборудования состоят из следующих правил:
- правило 1 - для описания общей информации в модели экземпляра оборудования используется заголовок элемента КПО;
- правило 2 - для описания свойств, которые можно обрабатывать в модели экземпляра оборудования, используется набор свойств элемента КПО;
- правило 3 - для описания состояния модели экземпляра оборудования используется каждое состояние поведения элемента КПО;
- правило 4 - для описания перехода состояния модели экземпляра оборудования используется каждый переход состояния поведения элемента КПО;
- правило 5 - для описания процедуры при состоянии и/или переходе состояния модели экземпляра оборудования используется каждое внешнее взаимодействие элемента КПО.
Требуемые функциональные возможности для модели экземпляра оборудования, описанной в разделе 5, должны быть реализованы в соответствии с правилами построения следующим образом:
- описание общей информации для модели экземпляра оборудования создается по правилу 1;
- обрабатываемое описание потока поведения создается по правилам 2, 3 и 4;
- обрабатываемое описание формулы (формул) или математической модели(ей) создается по правилам 2 и 3;
- обрабатываемое описание внешних взаимодействий создается по правилу 5.
В приложении A показаны три примера элементов КПО. В приложении B показан пример реализации процессора построения для элементов КПО в приложении A.
Приложение A
(справочное)
ПРИМЕР ЭЛЕМЕНТОВ КПО ДЛЯ ЛИНИИ ЛИТЬЯ ПОД ДАВЛЕНИЕМ
A.1 Оборудование для линии литья под давлением
Структура линии литья под давлением показана на рисунке A.1. Линия литья под давлением состоит из машины для литья под давлением, включая пресс-форму, робота для извлечения пресс-форм и контроллера температуры пресс-формы. Пример элементов КПО с использованием шаблонов КПО описан в A.2 - A.4. Эти элементы КПО используются для построения моделей экземпляров оборудования процессором построения в приложении B.
Рисунок A.1 - Структура линии литья под давлением
A.2 Элемент КПО машины для литья под давлением
ИС NORMPROD: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. В.2 ПНСТ 908-2023, а не C.2.
В ПНСТ 908-2023 (пункт C.2) представлен пример шаблона КПО машины для литья под давлением. Пример элемента КПО, использующего этот шаблон КПО, можно описать с помощью XML следующим образом.
<ebc xmlns:op="product-operation.xml" xmlns:m="/template/go.php?url=https://www.w3.org/1998/Math/MathML">
<header>
<template name="INJECTION_MOLDING_MACHINE" id="template_id_imm1"/>
</header>
<property_set>
<!-- default value setting -->
<!-- default value setting -->
<var name="equipment_id" type="String" value="imm1"/>
<var name="equipment_type" type="String" value="XXX"/>
<var name="organization" type="String" value="XYZ"/>
<var name="model_name" type="String" value="im_machine"/>
<var name="external_size_hight" type="Double" value="100" unit="cm"/>
<var name="external_size_width" type="Double" value="250" unit="cm"/>
<var name="external_size_depth" type="Double" value="100" unit="cm"/>
<var name="equipment_weight" type="Double" value="200" unit="kg"/>
<var name="startup_time" type="Double" value="20" unit="sec"/>
<var name="shutdown_time" type="Double" value="20" unit="sec"/>
<var name="electricpower_idling" type="Double" value="30" unit="kW"/>
<var name="electricpower_mold_change" type="Double" value="30" unit="kW"/>
<var name="electricpower_mold_cleanig" type="Double" value="30" unit="kW"/>
<var name="electricpower_cylinder_cleaning" type="Double" value="30" unit="kW"/>
<var name="electricpower_injection_molding" type="Double" value="30" unit="kW"/>
<var name="electricpower_opening_of_a_mold" type="Double" value="30" unit="kW"/>
<var name="electricpower_ejection_by_ejector_pins" type="Double" value="30" unit="kW"/>
<var name="electricpower_restorationof_ejector_pins" type="Double" value="30" unit="kW"/>
<!-- state data value setting -->
<var name="elapsed_time" type="Double" value="0"/>
<var name="total_energyconsumption" type="Double" value="0"/>
<!-- production operation value setting -->
<var name="op_power" type="Boolean" value="false"/>
<var name="op_cylinder_cleaning_instruction" type="Boolean" value="false"/>
<var name="op_cylinder_cleaning_time" type="Double" value="10"/>
<var name="op_injection_molding_instruction" type="Boolean" value="false"/>
<var name="op_injection_molding_time" type="Double" value="10"/>
<var name="op_mold_change_time" type="Double" value="10"/>
<var name="op_mold_cleaning_instruction" type="Boolean" value="false"/>
<var name="op_mold_cleaning_time" type="Double" value="10"/>
<var name="op_mold_id_old" type="Double" value="10"/>
<var name="op_mold_id" type="Double" value="100"/>
<var name="op_pca_id_old" type="Double" value="20"/>
<var name="op_pca_id" type="Double" value="200"/>
<var name="op_opening_mold_time" type="Double" value="10"/>
<var name="op_plan_quantity" type="Double" value="10"/>
<var name="op_product_time" type="Double" value="10"/>
<var name="op_restoration_ejector_pins_time" type="Double" value="10"/>
<var name="op_shutdown_time" type="Double" value="10"/>
<var name="op_startup_time" type="Double" value="10"/>
<var name="op_total_processing_quantity" type="Double" value="10"/>
</property_set>
<external_interaction_list>
<external_interaction id="e1" name="robot_extraction">
<send_to equipment_id="mer" message="robot_extraction_request"/>
</external_interaction>
<external_interaction id="e2" name="robot_completed_notice">
<receive_from equipment_id="mer" message="robot_completed_notice"/>
</external_interaction>
</external_interaction_list>
<behaviour>
<!-- state list -->
<state_list>
<state id="s1" name="initial" status="on"/>
<state id="s2" name="idling">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo>
<m:mi>electricpower_idling</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
</state>
<state id="s3" name="mold_change">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo>
<m:mi>electricpower_mold_change</m:mi>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>op_pca_id_old</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>op_pca_id</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
</state>
<state id="s4" name="mold_cleanig">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo>=</m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo>
<m:mi>electricpower_mold_cleanig</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
</state>
<state id="s5" name="cylinder_cleaning">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo>
<m:mi>electricpower_cylinder_cleaning</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
</state>
<state id="s6" name="injection_molding">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo>
<m:mi>electricpower_injection_molding</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
</state>
<state id="s7" name="opening_of_a_mold">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo>
<m:mi>electricpower_opening_of_a_mold</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
<external_interaction id="e1" seq="post">
<param>true</param>
</external_interaction>
</state>
<state id="s8" name="ejection_by_ejector_pins">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo>
<m:mi>electricpower_ejection_by_ejector_pins</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
</state>
<state id="s9" name="restorationof_ejector_pins">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo>
<m:mi>electricpower_restorationof_ejector_pins</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
<calculation_formula repeat="no">
<m:math>
<m:mrow>
<m:mi>op_total_processing_quantity</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>op_total_processing_quantity</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
</state>
</state_list>
<!-- state transition list -->
<state_transition_list>
<state_transition id="t1" name="power_on">
<!-- CONDITION: power on -->
<!-- CONDITION: start-up time is elapsed -->
<transition_condition>op_power? = true</transition_condition>
<transition_timeout>op_startup_time</transition_timeout>
<from_state id="s1" name="initial"/>
<to_state id="s2" name="idling"/>
</state_transition>
<state_transition id="t2" name="power_off">
<!-- CONDITION: power off -->
<!-- CONDITION: shutdown time is elapsed -->
<transition_condition>op_power? = false</transition_condition>
<transition_timeout>op_shutdown_time</transition_timeout>
<from_state id="s2" name="idling"/>
<to_state id="s1" name="initial"/>
</state_transition>
<state_transition id="t3" name="mold_change">
<!-- CONDITION: product input time reached -->
<!-- CONDITION: the mold ID is different from the previous production -->
<transition_condition>op_mold_id != op_mold_id_old</transition_condition>
<transition_timeout>op_product_time</transition_timeout>
<from_state id="s2" name="idling"/>
<to_state id="s3" name="mold_change"/>
</state_transition>
<state_transition id="t4" name="mold_change_completed">
<!-- CONDITION: mold change time is elapsed -->
<transition_timeout>op_mold_change_time</transition_timeout>
<from_state id="s3" name="mold_change"/>
<to_state id="s2" name="idling"/>
</state_transition>
<state_transition id="t5" name="mold_cleaning">
<!-- CONDITION: product input time reached -->
<!-- CONDITION: mold cleaning instruction -->
<transition_condition>op_mold_cleaning_instruction? = true</transition_
condition>
<transition_timeout>op_product_time</transition_timeout>
<from_state id="s2" name="idling"/>
<to_state id="s4" name="mold_cleanig"/>
</state_transition>
<state_transition id="t6" name="mold_cleaning_completed">
<!-- CONDITION: mold cleaning time is elapsed -->
<transition_timeout>op_mold_cleaning_time</transition_timeout>
<from_state id="s4" name="mold_cleanig"/>
<to_state id="s2" name="idling"/>
</state_transition>
<state_transition id="t7" name="cylinder_cleaning">
<!-- CONDITION: product input time reached -->
<!-- CONDITION: cylinder cleaning instruction -->
<transition_condition>op_cylinder_cleaning_instruction? = true</transition_
condition>
<transition_timeout>op_product_time</transition_timeout>
<from_state id="s2" name="idling"/>
<to_state id="s5" name="cylinder_cleaning"/>
</state_transition>
<state_transition id="t8" name="cylinder_cleaning_completed">
<!-- CONDITION: cylinder cleaning time is elapsed -->
<transition_timeout>op_cylinder_cleaning_time</transition_timeout>
<from_state id="s5" name="cylinder_cleaning"/>
<to_state id="s2" name="idling"/>
</state_transition>
<state_transition id="t9" name="product_start">
<!-- CONDITION: product input time reached -->
<transition_condition>op_injection_molding_instruction? = true</transition_
condition>
<transition_timeout>op_product_time</transition_timeout>
<from_state id="s2" name="idling"/>
<to_state id="s6" name="injection_molding"/>
</state_transition>
<state_transition id="t10" name="injection_molding_completed">
<!-- CONDITION: injection-molding time is elapsed -->
<transition_timeout>op_injection_molding_time</transition_timeout>
<from_state id="s6" name="injection_molding"/>
<to_state id="s7" name="opening_of_a_mold"/>
</state_transition>
<state_transition id="t11" name="opening_mold_completed">
<!-- CONDITION: opening-mold time is elapsed -->
<transition_timeout>op_opening_mold_time</transition_timeout>
<from_state id="s7" name="opening_of_a_mold"/>
<to_state id="s8" name="ejection_by_ejector_pins"/>
</state_transition>
<state_transition id="t12" name="robot_completed_notice">
<!-- CONDITION: reception of extraction-complete notice from robot -->
<transition_external>e2</transition_external>
<from_state id="s8" name="ejection_by_ejector_pins"/>
<to_state id="s9" name="restorationof_ejector_pins"/>
</state_transition>
<state_transition id="t13" name="ejection_pins_completed">
<!-- CONDITION: pin ejection time is elapsed -->
<!-- CONDITION: number of producing product is unachieved -->
<transition_condition>op_total_processing_quantity &gt; op_plan_quantity</transition_
condition>
<transition_timeout>op_restoration_ejector_pins_time</transition_timeout>
<from_state id="s9" name="restorationof_ejector_pins"/>
<to_state id="s6" name="injection_molding"/>
</state_transition>
<state_transition id="t14" name="order_completed">
<!-- CONDITION: all process time is elapsed -->
<!-- CONDITION: number of producing product is achieved -->
<transition_condition>op_total_processing_quantity = op_plan_quantity</transition_
condition>
<transition_timeout>op_restoration_ejector_pins_time</transition_timeout>
<from_state id="s9" name="restorationof_ejector_pins"/>
<to_state id="s2" name="idling"/>
</state_transition>
</state_transition_list>
</behaviour>
</ebc>
A.3 Элемент КПО для робота для извлечения пресс-форм
ИС NORMPROD: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. В.3 ПНСТ 908-2023, а не C.3.
В ПНСТ 908-2023 (пункт C.3) представлен пример шаблона КПО робота для извлечения пресс-форм. Пример элемента КПО, использующего этот шаблон КПО, можно описать с помощью XML следующим образом.
<ebcxmlns:op="product-operation.xml" xmlns:m="/template/go.php?url=https://www.w3.org/1998/Math/MathML">
<header>
<template name="MOLDING_EXTRACTION_ROBOT" id="template_id_mer1"/>
</header>
<property_set>
<!-- default value setting -->
<var name="equipment_id" type="String" value="mer1"/>
<var name="equipment_type" type="String" value="XXX"/>
<var name="organization" type="String" value="XYZ"/>
<var name="model_name" type="String" value="me_robot"/>
<var name="external_size_hight" type="Double" value="100" unit="cm"/>
<var name="external_size_width" type="Double" value="250" unit="cm"/>
<var name="external_size_depth" type="Double" value="100" unit="cm"/>
<var name="equipment_weight" type="Double" value="100" unit="kg"/>
<var name="startup_time" type="Double" value="20" unit="sec"/>
<var name="shutdown_time" type="Double" value="20" unit="sec"/>
<var name="electricpower_idling" type="Double" value="20" unit="kW"/>
<var name="electricpower_extraction_of_molded_part" type="Double" value="30" unit="kW"/>
<var name="electricpower_releasing_of_moded_part" type="Double" value="30" unit="kW"/>
<!-- state data value setting -->
<var name="elapsed_time" type="Double" value="0"/>
<var name="total_energyconsumption" type="Double" value="0"/>
<!-- production operation value setting -->
<var name="op_power" type="Boolean" value="false"/>
<var name="op_extraction_time" type="Double" value="10"/>
<var name="op_releasing_time" type="Double" value="10"/>
</property_set>
<external_interaction_list>
<external_interaction id="e1" name="robot_extraction">
<receive_from equipment_id="imm1" message="robot_extraction_request"/>
</external_interaction>
<external_interaction id="e2" name="robot_completed_notice">
<send_to equipment_id="imm1" message="robot_completed_notice"/>
</external_interaction>
</external_interaction_list>
<behaviour>
<!-- state list -->
<state_list>
<state id="s1" name="initial" status="on"/>
<state id="s2" name="idling">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo><!-- <m:mo>&times;</m:mo> -->
<m:mi>electricpower_idling</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
</state>
<state id="s3" name="extraction_of_molded_part">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo><!-- <m:mo>&times;</m:mo> -->
<m:mi>electricpower_extraction_of_molded_part</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
<external_interaction id="e2" seq="post">
<param>true</param>
</external_interaction>
</state>
<state id="s4" name="releasing_of_moded_part">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo><!-- <m:mo>&times;</m:mo> -->
<m:mi>electricpower_releasing_of_moded_part</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
</state>
</state_list>
<!-- state transition list -->
<state_transition_list>
<state_transition id="t1" name="power_on">
<!-- CONDITION: power on -->
<!-- CONDITION: start-up time is elapsed -->
<transition_condition>op_power? = true</transition_condition>
<transition_timeout>startup_time</transition_timeout>
<from_state id="s1" name="initial"/>
<to_state id="s2" name="idling"/>
</state_transition>
<state_transition id="t2" name="power_off">
<!-- CONDITION: power off -->
<!-- CONDITION: shutdown time is elapsed -->
<transition_condition>op_power? = false</transition_condition>
<transition_timeout>shutdown_time</transition_timeout>
<from_state id="s2" name="idling"/>
<to_state id="s1" name="initial"/>
</state_transition>
<state_transition id="t3" name="extraction_start">
<!-- CONDITION: reception of extraction-request from molding machine -->
<transition_external>e1</transition_external>
<from_state id="s2" name="idling"/>
<to_state id="s3" name="extraction_of_molded_part"/>
</state_transition>
<state_transition id="t4" name="extraction_of_molded_parts_completed">
<!-- CONDITION: extraction time is elapsed -->
<transition_timeout>op_extraction_time</transition_timeout>
<from_state id="s3" name="extraction_of_molded_part"/>
<to_state id="s4" name="releasing_of_moded_part"/>
</state_transition>
<state_transition id="t5" name="releasing_of_molded_part_completed">
<!-- CONDITION: releasing time is elapsed -->
<transition_timeout>op_releasing_time</transition_timeout>
<from_state id="s4" name="releasing_of_moded_part"/>
<to_state id="s2" name="idling"/>
</state_transition>
</state_transition_list>
</behaviour>
</ebc>
A.4 Элемент КПО контроллера температуры пресс-форм
ИС NORMPROD: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. В.4 ПНСТ 908-2023, а не C.4.
В ПНСТ 908-2023 (пункт C.4) представлен пример шаблона КПО контроллера температуры пресс-форм. Пример элемента КПО, использующего этот шаблон КПО, можно описать с помощью XML следующим образом.
<ebc
xmlns:op="product-operation.xml" xmlns:m="/template/go.php?url=https://www.w3.org/1998/Math/MathML">
<header>
<template name="MOLD_TEMPERATURE_CONTROLLER" id="template_id_mtc1"/>
</header>
<property_set>
<var name="equipment_id" type="String" value="mtc1"/>
<var name="equipment_type" type="String" value="XXX"/>
<var name="organization" type="String" value="XYZ"/>
<var name="model_name" type="String" value="mt_controller"/>
<var name="external_size_hight" type="Double" value="100" unit="cm"/>
<var name="external_size_width" type="Double" value="250" unit="cm"/>
<var name="external_size_depth" type="Double" value="100" unit="cm"/>
<var name="equipment_weight" type="Double" value="200" unit="kg"/>
<var name="startup_time" type="Double" value="20" unit="sec"/>
<var name="shutdown_time" type="Double" value="20" unit="sec"/>
<var name="heating_time" type="Double" value="60" unit="sec"/>
<var name="electricpower_heating" type="Double" value="40" unit="kW"/>
<var name="electricpower_mold_temperature_control" type="Double" value="30" unit="kW"/>
<!-- state data value setting -->
<var name="elapsed_time" type="Double" value="0"/>
<var name="total_energyconsumption" type="Double" value="0"/>
<!-- production operation value setting -->
<var name="op_power" type="Boolean" value="false"/>
</property_set>
<!-- external_interaction no difinition -->
<external_interaction_list/>
<behaviour>
<!-- state list -->
<state_list>
<state id="s1" name="initial" status="on"/>
<state id="s2" name="heating">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo>
<m:mi>electricpower_heating</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
</state>
<state id="s3" name="mold_temperature_control">
<state_data>
<elapsed_time>0</elapsed_time>
<total_energyconsumption>0</total_energyconsumption>
</state_data>
<calculation_formula>
<m:math>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> + </m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:mrow>
</m:math>
<m:math>
<m:mrow>
<m:mi>total_energyconsumption</m:mi>
<m:mo> = </m:mo>
<m:mrow>
<m:mi>elapsed_time</m:mi>
<m:mo> * </m:mo>
<m:mi>electricpower_mold_temperature_control</m:mi>
</m:mrow>
</m:mrow>
</m:math>
</calculation_formula>
</state>
</state_list>
<!-- state transition list -->
<state_transition_list>
<state_transition id="t1" name="power_on">
<!-- CONDITION: power on -->
<!-- CONDITION: start-up time is elapsed -->
<transition_condition>op_power? = true</transition_condition>
<transition_timeout>startup_time</transition_timeout>
<from_state id="s1" name="initial"/>
<to_state id="s2" name="heating"/>
</state_transition>
<state_transition id="t2" name="mold_heating_completed">
<!-- CONDITION: heating time is elapsed -->
<transition_timeout>heating_time</transition_timeout>
<from_state id="s2" name="heating"/>
<to_state id="s3" name="mold_temperature_control"/>
</state_transition>
<state_transition id="t3" name="power_off">
<!-- CONDITION: power off ->
<!-- CONDITION: shutdown time is elapsed -->
<transition_condition>op_power? = false</transition_condition>
<transition_timeout>shutdown_time</transition_timeout>
<from_state id="s3" name="mold_temperature_control"/>
<to_state id="s1" name="initial"/>
</state_transition>
</state_transition_list>
</behaviour>
</ebc>
Приложение B
(справочное)
ПРИМЕР РЕАЛИЗАЦИИ ПРОЦЕССОРА ПОСТРОЕНИЯ
На рисунке B.1 показан пример построения модели экземпляра оборудования в целевой мультиагентной среде NetLogo.
Рисунок B.1 - Построение модели экземпляра
оборудования в NetLogo
Процессор построения соответствует процессору XSLT. Процессор построения - это своего рода программное обеспечение, которое принимает элемент КПО (*.xml) в качестве входных данных, выполняет процедуру построения (*.xsl) и создает модель экземпляра оборудования (*.nlogo). Процессор построения обрабатывает определенные закономерности, описанные в правилах построения. На основе найденного шаблона процессор построения выполняет построение, связанное с совпавшим шаблоном. Полученный результат представляет собой модель экземпляра оборудования.
Процедура построения с использованием правил построения в NetLogo:
- шаг A. Модель экземпляра оборудования создается так, чтобы в элементе КПО была указана общая информация на основе правила построения 1. Процедура шага A представляет собой ту же последовательность, что и блок-схема применения правила 1, обозначенная a) и b) на рисунке B.2, и помечена как Step A в следующем коде XLST. Когда процедура шага A выполняется процессором построения, создается общая информация, такая как имя шаблона КПО и идентификатор шаблона КПО. Правило 1 состоит из следующих элементов XSL:
- элементы XSL: <xsl:value-of select>, <xsl:text>.
Рисунок B.2 - Шаг A с использованием правила 1
Следующий код XSLT является примером шага A с использованием правила 1.
;; (Step A)
;; /ebc/header/template
<xsl:text>;; EBC_template_name : </xsl:text>
<xsl:value-of select="/ebc/header/template/@name"/>
<xsl:text>&#xa;</xsl:text>
<xsl:text>;; EBC_template_id : </xsl:text>
<xsl:value-of select="/ebc/header/template/@id"/>
- шаг B. Модель экземпляра оборудования создается так, чтобы иметь обрабатываемое описание каждого элемента набора свойств, указанного в элементе КПО, на основе правила построения 2. Процедура шага B представляет собой ту же последовательность, что и блок-схема применения правила 2, обозначенная a), b), c) и d) на рисунке B.3, и отмечена как Step B в следующем коде XLST. Когда процедура шага B выполняется процессором построения, все переменные определяются и устанавливаются в качестве начальных значений или значений по умолчанию. Правило 2 состоит из следующих элементов XSL и ключевых слов NetLogo:
- ключевые слова NetLogo: to ... end, set
- элементы XSL: <xsl:for-each select>, <xsl:if test>, <xsl:value-of select>, <xsl:text>.
Рисунок B.3 - Шаг B с использованием правила 2
Следующий код XSLT является примером шага B с использованием правила 2.
;; (Step B)
to setup-'plural of equipment name'
;; /ebc/property_set/var
<xsl:for-each select="/ebc/property_set/var">
set <xsl:value-of select="@name"/>
<xsl:if test="@type='Double'">
<xsl:text>&#32;</xsl:text>
<xsl:value-of select="@value"/>
</xsl:if>
<xsl:if test="@type='Boolean'">
<xsl:text>?</xsl:text>
<xsl:text>&#32;</xsl:text>
<xsl:value-of select="@value"/>
</xsl:if>
<xsl:if test="@type='String'">
<xsl:text>&#32;</xsl:text>
<xsl:text>"</xsl:text>
<xsl:value-of select="@value"/>
<xsl:text>"</xsl:text>
</xsl:if>
<xsl:text>&#32;</xsl:text>
</xsl:for-each>
End
- шаг C. Модель экземпляра оборудования создается так, чтобы иметь обрабатываемое описание каждого состояния поведения и/или каждого внешнего взаимодействия, указанного в элементе КПО, на основе правил 3 и 5. Процедура шага C представляет собой ту же последовательность, что и блок-схема применения правила 3, обозначенная a), b), c) и i), и блок-схема применения правила 5, обозначенная буквами d), e), f), g) и h) на рисунке B.4, и отмечена как шаг C в следующем коде XLST. Когда процедура шага C выполняется процессором, реализуются все процедуры состояния поведения(й) и/или внешнего взаимодействия(й). Правила 3 и 5 состоят из следующих элементов XSL и ключевых слов NetLogo:
- ключевые слова NetLogo: to ... end, wait, if, ifelse, set
- элементы XSL: <xsl:for-each select>, <xsl:variable name>, <xsl:if test>, <xsl:valueof select>, <xsl: text>, <xsl:apply-templates select>.
Рисунок B.4 - Шаг C с использованием правил 3 и 5
Следующий код XSLT является примером шага C с использованием правил 3 и 5.
;; (Step C)
<xsl:for-each select="/ebc/behaviour/state_list/state">
;; /ebc/behaviour/state_list/state
to <xsl:for-each select="/ebc/property_set/var">
<xsl:variable name="eq_id" select="@name"/>
<xsl:if test="$eq_id = 'equipment_id'">
<xsl:value-of select="@value"/>
<xsl:text>_</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:value-of select="@name"/>
<xsl:text>&#xa;</xsl:text>
<xsl:variable name="state_id" select="@id"/>
<xsl:text>&#xa;</xsl:text>
<xsl:text>&#xa;&#32;&#32;&#32;&#32;</xsl:text>
<xsl:apply-templates select="calculation_formula/m:math"/>
<xsl:if test="external_interaction">
<xsl:variable name="tr_ex_id" select="external_interaction/@id"/>
<xsl:for-each select="/ebc/external_interaction_list/external_interaction">
<xsl:variable name="ex_id" select="@id"/>
<xsl:if test="$tr_ex_id = $ex_id">
<xsl:if test="receive_from">
<xsl:text>&#xa;&#x09;</xsl:text>
<xsl:text>if </xsl:text>
<xsl:value-of select="receive_from/@message"/>
<xsl:text>? = true</xsl:text>
</xsl:if>
<xsl:if test="send_to">
<xsl:text>&#xa;&#x09;</xsl:text>
<xsl:text>set </xsl:text>
<xsl:value-of select="send_to/@message"/>
<xsl:text>? true</xsl:text>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:if>
- шаг D. Модель экземпляра оборудования создается так, чтобы иметь обрабатываемое описание каждого перехода состояния поведения и/или каждого внешнего взаимодействия, указанного в элементе КПО, на основе правил 4 и 5. Процедура шага D представляет собой ту же последовательность, что и блок-схема применения правила 4, обозначенная a), b), c) и i), и блок-схема применения правила 5, обозначенная d), e), f), g) и h) на рисунке B.5, и отмечена как шаг D в следующем коде XLST. Когда процедура шага D выполняется процессором построения, реализуются все процедуры перехода состояний поведения(й) и/или внешнего их взаимодействия(й). Правила 4 и 5 состоят из следующих элементов XSL и ключевых слов NetLogo:
- ключевые слова NetLogo: to ... end, wait, if, ifelse, set
- элементы XSL: <xsl:for-each select>, <xsl:variable name>, <xsl:if test>, <xsl:value-of select>, <xsl: text>.
Рисунок B.5 - Шаг D с использованием правил 4 и 5
Следующий код XSLT является примером шага D с использованием правил 4 и 5.
;; (Step D)
;; /ebc/behaviour/state_transition_list/state_transition
<xsl:for-each select="/ebc/behaviour/state_transition_list/state_transition">
<xsl:variable name="tr_name" select="@name"/>
<xsl:variable name="s_id" select="from_state/@id"/>
<xsl:variable name="d_id" select="to_state/@id"/>
<xsl:if test="$state_id = $s_id">
<xsl:if test="transition_condition">
<xsl:text>&#xa;&#x09;</xsl:text>
<xsl:text>if </xsl:text>
<xsl:value-of select="transition_condition"/>
<xsl:text>&#xa;&#x09;</xsl:text>
<xsl:text>[</xsl:text>
<xsl:text>&#xa;&#x09;</xsl:text>
</xsl:if>
<xsl:if test="transition_timeout">
<xsl:text>wait </xsl:text>
<xsl:value-of select="transition_timeout"/>
<xsl:text>&#xa;&#x09;</xsl:text>
</xsl:if>
<xsl:if test="transition external">
<xsl:variable name="tr_ex_id" select="transition_external"/>
<xsl:for-each select="/ebc/external_interaction_list/external_interaction">
<xsl:variable name="ex_id" select="@id"/>
<xsl:if test="$tr_ex_id = $ex_id">
<xsl:if test="receive_from">
<xsl:text>&#xa;&#x09;</xsl:text>
<xsl:text>if </xsl:text>
<xsl:value-of select="receive_from/@message"/>
<xsl:text>? = true</xsl:text>
<xsl:text>&#xa;&#x09;</xsl:text>
<xsl:text>[</xsl:text>
<xsl:text>&#xa;&#x09;</xsl:text>
</xsl:if>
<xsl:if test="send_to">
<xsl:text>&#xa;&#x09;</xsl:text>
<xsl:text>set </xsl:text>
<xsl:value-of select="send_to/@message"/>
<xsl:text>? true</xsl:text>
<xsl:text>&#xa;&#x09;</xsl:text>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:if>
<xsl:for-each select="/ebc/property_set/var">
<xsl:variable name="eq_id" select="@name"/>
<xsl:if test="$eq_id = 'equipment_id'">
<xsl:text>set </xsl:text>
<xsl:value-of select="@value"/>
<xsl:text>_state [ -> </xsl:text>
<xsl:value-of select="@value"/>
<xsl:text>_</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:value-of select="to_state/@name"/>
<xsl:text>]</xsl:text>
<xsl:text>&#xa;&#x09;</xsl:text>
</xsl:if>
end</xsl:for-each>
</xsl:for-each>
Приложение ДА
(справочное)
СВЕДЕНИЯ О СООТВЕТСТВИИ ССЫЛОЧНЫХ НАЦИОНАЛЬНЫХ СТАНДАРТОВ
МЕЖДУНАРОДНЫМ СТАНДАРТАМ, ИСПОЛЬЗОВАННЫМ В КАЧЕСТВЕ
ССЫЛОЧНЫХ В ПРИМЕНЕННОМ МЕЖДУНАРОДНОМ СТАНДАРТЕ
Таблица ДА.1
Обозначение ссылочного национального стандарта
Степень соответствия
Обозначение и наименование ссылочного международного стандарта
ПНСТ 795-2022 (ИСО 16400-1:2020)
MOD
ISO 16400-1:2020 "Системы автоматизации и интеграция. Каталоги поведения оборудования для виртуальной производственной системы. Часть 1. Общие положения"
Примечание - В настоящей таблице использовано следующее условное обозначение степени соответствия стандарта:
- MOD - модифицированный стандарт.
УДК 67.05:006.354
ОКС 25.040.01
Ключевые слова: умное производство, виртуальная производственная система, каталоги поведения оборудования, КПО, структура КПО, шаблон КПО, элемент КПО



Вернуться в "Каталог нормативных документов"



 

Источник информации: https://internet-law.ru/documents/prod/pnst_predvaritelnyj-nacionalnyj-standart/1/pnst_34656.html

 

На эту страницу сайта можно сделать ссылку:

 


 

На правах рекламы: