Загрузка данных
{
"method_definition": {
"identity_and_governance": {
"standard_id": "ГОСТ_Р_52247-2021",
"method_code": "А",
"revision": "Изменение № 2",
"title": "Нефть. Методы определения хлорорганических соединений (метод А)",
"target_substance": "Массовая доля органических хлоридов в нефти",
"status": "approved_for_production",
"scope": {
"standardization_object": "Нефть (сырая нефть)",
"oks_code": "75.040",
"applicability_range": {
"min": 1.0,
"unit": "млн⁻¹",
"data_type": "number"
}
},
"version_control": {
"previous_standard_id": "ГОСТ Р 52247-2004",
"equivalence_status": "modified",
"verification_requirement": "experiment_required"
}
},
"controlled_vocabulary": {
"properties": [
{
"id": "prop_mass",
"label": "Масса",
"unit": "г",
"data_type": "float"
},
{
"id": "prop_volume",
"label": "Объем",
"unit": "см³",
"data_type": "float"
},
{
"id": "prop_qualitative",
"label": "Качественная реакция",
"data_type": "enum"
}
],
"enumerations": [
{
"id": "enum_presence_absence",
"label": "Наличие/Отсутствие примесей по п. 7.4.3 ГОСТ",
"items": [
{ "id": "отсутствует", "label": "Реакция отсутствует" },
{ "id": "белый_осадок", "label": "Появление белого осадка (Неорганинические хлориды)" },
{ "id": "желтый_осадок", "label": "Появление желтого осадка (Иод, бром)" },
{ "id": "потемнение", "label": "Потемнение раствора (Наличие сероводорода)" },
{ "id": "черно_коричневый", "label": "Черно-коричневый осадок (Щелочная среда)" }
]
}
],
"equipment_roles": [
{
"id": "isp",
"label": "Аппарат для разгонки нефти (для получения нафты)",
"category": "TEST_EQUIPMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
},
{
"id": "vsp",
"label": "Колбонагреватель (для получения нафты)",
"category": "AUXILIARY_EQUIPMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
},
{
"id": "vsp3",
"label": "Криотермостат",
"category": "AUXILIARY_EQUIPMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
},
{
"id": "T",
"label": "Термометр (для получения нафты)",
"category": "MEASURING_INSTRUMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
},
{
"id": "Si1",
"label": "Термометр для определения температуры вокруг приёмного цилиндра",
"category": "MEASURING_INSTRUMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
},
{
"id": "SI",
"label": "Микробюретка (при отсутствии автоматического титратора)",
"category": "MEASURING_INSTRUMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
},
{
"id": "eq_cylinder_nef",
"label": "Цилиндр (объем нефти)",
"category": "MEASURING_INSTRUMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
},
{
"id": "eq_cylinder_naft",
"label": "Цилиндр (объем нафты)",
"category": "MEASURING_INSTRUMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
},
{
"id": "eq_timer",
"label": "Секундомер",
"category": "MEASURING_INSTRUMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
},
{
"id": "eq_balance_oil",
"label": "Весы для нефти",
"category": "MEASURING_INSTRUMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
},
{
"id": "eq_balance_naft",
"label": "Весы для нафты",
"category": "MEASURING_INSTRUMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
},
{
"id": "eq_titrator",
"label": "Титратор автоматический потенциометрический",
"category": "MEASURING_INSTRUMENT",
"metadata_schema": {
"type": "string",
"serial_number": "string",
"next_calibration_date": "string"
}
}
]
}
}
"observation_definitions": {
"system_fields": [
{
"field": "record_date",
"source": "system.current_date",
"label": "Дата проведения испытания"
},
{
"field": "sample_id",
"source": "system.sample_id",
"label": "Номер образца"
},
{
"field": "operator_name",
"source": "system.current_user",
"label": "Исполнитель (ФИО)"
}
],
"inputs": {
"hide": {
"label": "ГСО требует отгона нафты?",
"data_type": "string",
"is_mandatory": false,
"allow_zero": true
},
"Vr": {
"label": "Вода для промывки нафты",
"data_type": "string",
"is_mandatory": false,
"allow_zero": true
},
"Solution": {
"label": "Партия раствора нитрата серебра 0,01 моль/дм³",
"data_type": "string",
"is_mandatory": true
},
"K": {
"label": "Действующее значение поправочного коэффициента",
"data_type": "float",
"unit": "безразмерная",
"resolution": 0.00001,
"is_mandatory": true,
"allow_zero": false
},
"S1": {
"label": "Результат качественной реакции на наличие неорганических хлоридов",
"is_mandatory": true,
"data_type": "enum",
"enum_ref": "enum_presence_absence",
"data_source": "MEASUREMENT"
},
"S2": {
"label": "Результат качественной реакции на наличие сероводорода",
"is_mandatory": true,
"data_type": "enum",
"enum_ref": "enum_presence_absence",
"data_source": "MEASUREMENT"
}
},
"primary_measurements": {
"Vn": {
"label": "Объем нефти",
"data_type": "float",
"unit": "см³",
"resolution": 1.0,
"is_mandatory": true,
"allow_zero": false
},
"m1": {
"label": "Масса пустой круглодонной колбы",
"data_type": "float",
"unit": "г",
"resolution": 0.1,
"is_mandatory": true,
"allow_zero": false
},
"m2": {
"label": "Масса круглодонной колбы с нефтью",
"data_type": "float",
"unit": "г",
"resolution": 0.1,
"is_mandatory": true,
"allow_zero": false
},
"m3": {
"label": "Масса пустого приемного цилиндра",
"data_type": "float",
"unit": "г",
"resolution": 0.1,
"is_mandatory": true,
"allow_zero": false
},
"tv": {
"label": "Скорость перегонки",
"data_type": "float",
"unit": "см³/мин",
"resolution": 1.0,
"is_mandatory": true,
"allow_zero": true
},
"V": {
"label": "Объем отогнанной нафты",
"data_type": "float",
"unit": "см³",
"resolution": 1.0,
"is_mandatory": true,
"allow_zero": true
},
"m4": {
"label": "Масса приемного цилиндра с нафтой",
"data_type": "float",
"unit": "г",
"resolution": 0.1,
"is_mandatory": true,
"allow_zero": false
},
"m6": {
"label": "Масса емкости с образцом нафты",
"data_type": "float[]",
"is_array": true,
"unit": "г",
"resolution": 0.1,
"is_mandatory": true,
"allow_zero": false
},
"m5": {
"label": "Масса емкости без нафты",
"data_type": "float[]",
"is_array": true,
"unit": "г",
"resolution": 0.1,
"is_mandatory": true,
"allow_zero": false
},
"V2": {
"label": "Объем раствора нитрата серебра на титрование пробы",
"data_type": "float[]",
"is_array": true,
"unit": "см³",
"resolution": 0.0001,
"is_mandatory": false,
"allow_zero": false
},
"V1": {
"label": "Объем раствора нитрата серебра для холостого опыта",
"data_type": "float",
"unit": "см³",
"resolution": 0.0001,
"is_mandatory": false,
"allow_zero": false
}
}
},
"process_definition": {
"operations": [
{
"operation_id": "op_qualitative_check",
"name": "Проверка на сероводород и неорганические хлориды",
"produces": [
"S1",
"S2"
]
},
{
"operation_id": "op_distillation",
"name": "Дистилляция нефти и отбор нафты",
"preconditions": [
"S1 == 'отсутствует'",
"S2 == 'отсутствует'"
],
"equipment": [
"isp",
"vsp",
"vsp3",
"T",
"Si1",
"eq_cylinder_nef",
"eq_cylinder_naft",
"eq_timer",
"eq_balance_oil",
"eq_balance_naft"
],
"inputs": [
"Vn",
"m1",
"m2"
],
"produces": [
"m3",
"m4",
"V"
]
},
{
"operation_id": "op_titration_sample",
"name": "Титрование образца нафты",
"equipment": [
"eq_titrator | SI"
],
"inputs": [
"m5",
"m6",
"Solution",
"K"
],
"produces": [
"V2"
]
},
{
"operation_id": "op_titration_blank",
"name": "Проведение холостого опыта титрования",
"equipment": [
"eq_titrator | SI"
],
"inputs": [
"Solution",
"K"
],
"produces": [
"V1"
]
}
]
},
"calculation_definition": {
"ast_nodes": [
{
"id": "mnf",
"label": "Масса нефти",
"expression": "m2 - m1",
"data_type": "float",
"unit": "г",
"resolution": 0.1,
"data_source": "CALCULATION"
},
{
"id": "m",
"label": "Масса отогнанной нафты",
"expression": "m4 - m3",
"data_type": "float",
"unit": "г",
"resolution": 0.1,
"data_source": "CALCULATION"
},
{
"id": "mn",
"label": "Масса образца нафты для титрования",
"expression": "m6 - m5",
"data_type": "float[]",
"is_array": true,
"unit": "г",
"resolution": 0.1,
"data_source": "CALCULATION"
},
{
"id": "C",
"label": "Точная концентрация раствора нитрата серебра",
"expression": "K * 0.01",
"data_type": "float",
"unit": "моль/дм³",
"resolution": 0.000001,
"data_source": "CALCULATION"
},
{
"id": "f",
"label": "Выход фракции нафты",
"expression": "m2 - m1 == 0 ? 0.0 : round((m4 - m3) / (m2 - m1), 2)",
"data_type": "float",
"unit": "безразмерная",
"resolution": 0.01,
"data_source": "CALCULATION"
},
{
"id": "X",
"label": "Массовая доля хлорорганических соединений в нафте параллельная",
"expression": "size(V2) == 0 ? 0.0 : ((V2 - V1) * C * 35460) / (m6 - m5)",
"data_type": "float[]",
"is_array": true,
"unit": "млн⁻¹",
"resolution": 0.1,
"data_source": "CALCULATION"
},
{
"id": "Xh",
"label": "Массовая доля хлорорганических соединений в нафте средняя",
"expression": "size(X) == 0 ? 0.0 : average(X)",
"data_type": "float",
"unit": "млн⁻¹",
"resolution": 0.1,
"data_source": "AGGREGATION"
},
{
"id": "Xn",
"label": "Массовая доля хлорорганических соединений в нефти параллельная",
"expression": "[x_i * (m2 - m1 == 0 ? 0.0 : round((m4 - m3) / (m2 - m1), 2)) for x_i in X]",
"data_type": "float[]",
"is_array": true,
"unit": "млн⁻¹",
"data_source": "CALCULATION"
},
{
"id": "Xhn",
"label": "Массовая доля хлорорганических соединений в нефти средняя",
"expression": "size(Xn) == 0 ? 0.0 : average(Xn)",
"data_type": "float",
"unit": "млн⁻¹",
"resolution": 0.1,
"data_source": "AGGREGATION"
},
{
"id": "calc_diff",
"label": "Результат контрольной процедуры (размах)",
"expression": "size(Xn) < 2 ? 0.0 : max(Xn) - min(Xn)",
"data_type": "float",
"unit": "млн⁻¹",
"resolution": 0.1,
"data_source": "CALCULATION"
},
{
"id": "calc_r",
"label": "Предел повторяемости по таблице Метода А",
"expression": "Xhn <= 1.0 ? 0.4 : (Xhn <= 2.0 ? 0.4 + (Xhn - 1.0) * 0.2 : (Xhn <= 3.0 ? 0.6 + (Xhn - 2.0) * 0.1 : (Xhn <= 4.0 ? 0.7 + (Xhn - 3.0) * 0.1 : (Xhn <= 5.0 ? 0.8 + (Xhn - 4.0) * 0.1 : (Xhn <= 6.0 ? 0.9 + (Xhn - 5.0) * 0.2 : (Xhn <= 8.0 ? 1.1 + (Xhn - 6.0) * 0.1 : (Xhn <= 10.0 ? 1.3 + (Xhn - 8.0) * 0.05 : (Xhn <= 12.0 ? 1.35 + (Xhn - 10.0) * 0.125 : 0.32 * pow((Xhn + 0.33), 0.644))))))))))",
"data_type": "float",
"unit": "млн⁻¹",
"resolution": 0.1,
"data_source": "CALCULATION"
},
{
"id": "calc_final_result",
"label": "Окончательный результат измерения",
"expression": "Xhn < 1.0 ? 'менее 1.0 млн⁻¹' : (size(Xn) >= 3 ? (calc_diff <= calc_r ? toString(round(Xhn, 1)) : toString(round(median(Xn), 1))) : toString(round(Xhn, 1)))",
"data_type": "string",
"unit": "млн⁻¹",
"resolution": 0.1,
"data_source": "CALCULATION"
},
{
"id": "workflow_conclusion",
"label": "Заключение по результатам контроля повторяемости по ГОСТ Р ИСО 5725-6-2002",
"expression": "size(Xn) == 2 ? (calc_diff <= calc_r ? 'Результат получен как среднее арифметическое значение 2-х измерений' : 'Метрологический допуск превышен! Требуется получить третье измерение по п. 5.2.2.2') : (size(Xn) == 3 ? (calc_diff <= calc_r ? 'Результаты получены как среднее арифметическое значение результатов 3 измерений, по ГОСТ Р ИСО 5725-6-2002 п.5.2.2.2.' : 'Результаты получены как медиана результатов 3 измерений, по ГОСТ Р ИСО 5725-6-2002 п.5.2.2.2.') : (size(Xn) == 4 ? (calc_diff <= calc_r ? 'Результаты получены как среднее арифметическое значение результатов 4 измерений, по ГОСТ Р ИСО 5725-6-2002 п.5.2.2.1.' : 'Результаты получены как медиана результатов 4 измерений, по ГОСТ Р ИСО 5725-6-2002 п.5.2.2.1.') : 'Неопределенный статус серии'))",
"data_type": "string",
"data_source": "CALCULATION"
}
]
},
"decision_workflow": {
"description": "Проверка приемлемости результатов измерений в условиях повторяемости по ГОСТ Р ИСО 5725-6-2002",
"states": [
{
"state_id": "evaluate_repeatability_2",
"name": "Первоначальное получение результатов двух измерений (п. 5.2.2.1)",
"condition": "size(Xn) == 2",
"rule": "calc_diff <= calc_r",
"on_true": "accepted_average_of_2",
"on_false": "require_measurement_3"
},
{
"state_id": "evaluate_repeatability_3",
"name": "Проверка приемлемости при получении третьего измерения (п. 5.2.2.2 b)",
"condition": "size(Xn) == 3",
"rule": "calc_diff <= calc_r",
"on_true": "accepted_average_of_3_by_52222",
"on_false": "accepted_median_of_3_by_52222"
},
{
"state_id": "evaluate_repeatability_4",
"name": "Проверка приемлемости при получении четырех измерений (п. 5.2.2.1)",
"condition": "size(Xn) == 4",
"rule": "calc_diff <= calc_r",
"on_true": "accepted_average_of_4_by_5221",
"on_false": "accepted_median_of_4_by_5221"
}
]
},
"report_profile": {
"template_id": "GOST_52247_A_REPORT",
"journal_row_mapping": [
{
"header": "Дата проведения испытания",
"source": "system_fields.record_date"
},
{
"header": "Номер образца",
"source": "system_fields.sample_id"
},
{
"header": "Исполнитель (ФИО)",
"source": "system_fields.operator_name"
},
{
"header": "Аппарат для разгонки нефти (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "concat(equipment_roles.isp.label, ' ', equipment_roles.isp.type, ', зав. № ', equipment_roles.isp.serial_number, ', дата след. работы: ', equipment_roles.isp.next_calibration_date)"
},
{
"header": "Колбонагреватель (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "concat(equipment_roles.vsp.label, ' ', equipment_roles.vsp.type, ', зав. № ', equipment_roles.vsp.serial_number, ', дата след. работы: ', equipment_roles.vsp.next_calibration_date)"
},
{
"header": "Криотермостат (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "concat(equipment_roles.vsp3.label, ' ', equipment_roles.vsp3.type, ', зав. № ', equipment_roles.vsp3.serial_number, ', дата след. работы: ', equipment_roles.vsp3.next_calibration_date)"
},
{
"header": "Термометр для разгонки (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "concat(equipment_roles.T.label, ' ', equipment_roles.T.type, ', зав. № ', equipment_roles.T.serial_number, ', дата след. работы: ', equipment_roles.T.next_calibration_date)"
},
{
"header": "Термометр приёмного цилиндра (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "concat(equipment_roles.Si1.label, ' ', equipment_roles.Si1.type, ', зав. № ', equipment_roles.Si1.serial_number, ', дата след. работы: ', equipment_roles.Si1.next_calibration_date)"
},
{
"header": "Микробюретка (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "has_value(equipment_roles.eq_titrator.serial_number) ? 'Не применяется (используется автотитратор)' : concat(equipment_roles.SI.label, ' ', equipment_roles.SI.type, ', зав. № ', equipment_roles.SI.serial_number, ', дата след. работы: ', equipment_roles.SI.next_calibration_date)"
},
{
"header": "Цилиндр для нефти (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "concat(equipment_roles.eq_cylinder_nef.label, ' ', equipment_roles.eq_cylinder_nef.type, ', зав. № ', equipment_roles.eq_cylinder_nef.serial_number, ', дата след. работы: ', equipment_roles.eq_cylinder_nef.next_calibration_date)"
},
{
"header": "Цилиндр для нафты (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "concat(equipment_roles.eq_cylinder_naft.label, ' ', equipment_roles.eq_cylinder_naft.type, ', зав. № ', equipment_roles.eq_cylinder_naft.serial_number, ', дата след. работы: ', equipment_roles.eq_cylinder_naft.next_calibration_date)"
},
{
"header": "Секундомер (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "concat(equipment_roles.eq_timer.label, ' ', equipment_roles.eq_timer.type, ', зав. № ', equipment_roles.eq_timer.serial_number, ', дата след. работы: ', equipment_roles.eq_timer.next_calibration_date)"
},
{
"header": "Весы для нефти (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "concat(equipment_roles.eq_balance_oil.label, ' ', equipment_roles.eq_balance_oil.type, ', зав. № ', equipment_roles.eq_balance_oil.serial_number, ', дата след. работы: ', equipment_roles.eq_balance_oil.next_calibration_date)"
},
{
"header": "Весы для нафты (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "concat(equipment_roles.eq_balance_naft.label, ' ', equipment_roles.eq_balance_naft.type, ', зав. № ', equipment_roles.eq_balance_naft.serial_number, ', дата след. работы: ', equipment_roles.eq_balance_naft.next_calibration_date)"
},
{
"header": "Автоматический титратор (Тип, Зав. №, Дата следующей метрологической работы)",
"source": "concat(equipment_roles.eq_titrator.label, ' ', equipment_roles.eq_titrator.type, ', зав. № ', equipment_roles.eq_titrator.serial_number, ', дата след. работы: ', equipment_roles.eq_titrator.next_calibration_date)"
},
{
"header": "Объем нефти, см³",
"source": "Vn"
},
{
"header": "Масса пустой колбы, г",
"source": "m1"
},
{
"header": "Масса круглодонной колбы с нефтью, г",
"source": "m2"
},
{
"header": "Масса нефти, г",
"source": "mnf"
},
{
"header": "Скорость перегонки, см³/мин",
"source": "tv"
},
{
"header": "Объем отогнанной нафты, см³",
"source": "V"
},
{
"header": "Масса пустого цилиндра, г",
"source": "m3"
},
{
"header": "Масса цилиндра с нафтой, г",
"source": "m4"
},
{
"header": "Масса отогнанной нафты, г",
"source": "m"
},
{
"header": "Выход фракции нафты",
"source": "f"
},
{
"header": "Результат качественной реакции на наличие неорганических хлоридов",
"source": "S1"
},
{
"header": "Результат качественной реакции на наличие сероводорода",
"source": "S2"
},
{
"header": "Масса емкости с образцом нафты, г",
"source": "m6"
},
{
"header": "Масса емкости без образца нафты, г",
"source": "m5"
},
{
"header": "Масса навески нафты для титрования, г",
"source": "mn"
},
{
"header": "Объем раствора нитрата серебра (холостой опыт), см³",
"source": "V1"
},
{
"header": "Объем раствора нитрата серебра на титрование пробы, см³",
"source": "V2"
},
{
"header": "Точная концентрация раствора нитрата серебра, моль/дм³",
"source": "C"
},
{
"header": "Массовая доля хлорорганических соединений в нафте (Среднее), млн⁻¹",
"source": "Xh"
},
{
"header": "Массовая доля хлорорганических соединений в нефти (Среднее), млн⁻¹",
"source": "Xhn"
},
{
"header": "Результат контрольной процедуры (размах), млн⁻¹",
"source": "calc_diff"
},
{
"header": "Предел повторяемости по ГОСТ, млн⁻¹",
"source": "calc_r"
},
{
"header": "Окончательный результат измерения",
"source": "calc_final_result"
},
{
"header": "Заключение по результатам контроля повторяемости",
"source": "workflow_conclusion"
}
]
}
}