Tekvel Magic
|
Общий класс для работы с SCL-файлами. Подробнее...
Открытые члены | |
def | from_artifact (cls, str artifact_id) |
Загружает содержимое SCL-документа из Артифакта. Подробнее... | |
def | __init__ (self, file_path=None, edition=None, init_empty=False) |
def | detect_edition (self, raise_on_unknown=False) |
Определить редакцию SCL-документа Подробнее... | |
def | to_string (self, pretty_print=True) |
Возвращает содержимое объекта SCL в виде строки. Подробнее... | |
def | toString (self, pretty_print=True) |
Псевдоним для функции to_string. Подробнее... | |
def | load_from_string (self, scl_str) |
Загружает SCL-документ из строки. Подробнее... | |
def | load_from_artifact (self, artifact_str) |
Загружает SCL-документ из строки полученной из Артифакта. Подробнее... | |
def | write_to_file (self, save_path) |
Записать содержимое SCL в файл Подробнее... | |
def | get_string_snippet_by_line_num (self, line_num, neighbours=0, mark_line=False) |
Получить текстовую строку оригинального SCL по номеру строки Подробнее... | |
def | validate (self, override_edition=None) |
Валидация SCL-файла Подробнее... | |
def | get_ld_by_ldname (self, ldName) |
Получить элемент LDevice по ldName. Подробнее... | |
def | get_ldevice_by_ldname (self, ldName) |
Псевдоним функции SCL.get_ld_by_ldname() Подробнее... | |
def | get_iedName_by_ldName (self, ldName) |
Получить атрибут IED.name по заданному ldName. Подробнее... | |
def | get_ldInst_by_ldName (self, ldName) |
Получить атрибут LDevice.inst по заданному ldName. Подробнее... | |
def | get_ied_by_name (self, iedName, dom=None) |
Получить элемент IED по его атрибуту name. Подробнее... | |
def | get_ln_element_by_ref (self, str ln_ref) |
Получить элемент LN/LN0 по ссылке LN Reference. Подробнее... | |
def | add_new_type_to_templates (self, str str_element) |
Добавляет новый тип в список DataTypeTemplates. Подробнее... | |
int | add_new_object_to_LnType (self, ln_path, str_element) |
Добавление нового типа объекта в существующий тип логического узла. Подробнее... | |
int | add_new_node_to_any_ln (self, str ln_path, str str_element) |
Добавление объекта данных в существующий логический узел. Подробнее... | |
def | get_dai_by_ref (self, object_reference) |
Получает элемент DAI по ссылке на него. Подробнее... | |
def | get_doi_by_ref (self, str object_reference) |
Получает элемент DOI по ссылке на него. Подробнее... | |
def | get_doType_by_doiRef (self, str object_reference) |
Возвращает элемент DOType по запросу пути (ObjectReference) к DOI. Подробнее... | |
def | get_daType_by_daiRef (self, str object_reference) |
Возвращает элемент DAType по запросу пути (ObjectReference) к DAI. Подробнее... | |
str | get_btype_by_dai_ref (self, str object_reference) |
def | get_attributes_with_values (self) |
Получить список атрибутов данных с установленными значениями Подробнее... | |
def | get_da_val_regex_by_daiRef (self, object_reference) |
Возвращает регулярное выражение для проверки значения атрибута данных по ссылке на него. Подробнее... | |
def | get_Substation_list (self) |
Получить список элементов Substation. Подробнее... | |
def | get_ied_list (self, bool server_only=False, bool with_gse_only=False, bool with_smv_only=False) |
Получить список элементов IED. Подробнее... | |
def | get_ied_name_list (self, bool server_only=False, bool with_gse_only=False, bool with_smv_only=False) |
Получить список имен IED. Подробнее... | |
str | get_ied_name (self, int ied_num=0) |
Возвращает IED.name по номеру IED в файле. Подробнее... | |
def | get_ied_access_point_list (self, str ied_name, bool with_server_only=False, allow_serverat=False) |
Возвращает список элементов AccessPoint для IED с заданным ied_name. Подробнее... | |
def | get_ied_access_point_name_list (self, str ied_name, bool with_server_only=False, allow_serverat=False) |
Возвращает лист имён AccessPoint для IED с заданным ied_name. Подробнее... | |
def | get_ied_access_point_server (self, str ied_name, str ap_name) |
Получить элемент Server для указанного IED и AccessPoint. Подробнее... | |
def | get_ied_access_point_server_tuple (self, str ied_name, str ap_name) |
Получить имена IED и AccessPoint в виде кортежа для указанного элемента Server. Подробнее... | |
def | get_connected_ap_by_access_point (self, access_point) |
Получить элемент ConnectedAP, соответствующий заданному access_point. Подробнее... | |
def | get_connected_ap_subnetwork (self, connected_ap) |
Возвращает элемент SubNetwork, к которому подключена connected_ap. Подробнее... | |
def | get_connected_ap_subnet (self, connected_ap) |
Псевдоним для get_connected_ap_subnetwork(). Подробнее... | |
def | get_ap_with_ip_list (self) |
Получить список элементов ConnectedAP с IP-адресами. Подробнее... | |
def | get_context_object (self, str ied_name=None, str ap_name=None, str ld_inst=None, str ln_name=None) |
Получить элемент etree.Element в зависимости от выбранного контекста поиска: IED, LDevice, LN (LN0). Подробнее... | |
def | get_dataset_list (self, str ied_name=None, str ap_name=None, str ld_inst=None, str ln_name=None) |
Получить список элементов DataSet. Подробнее... | |
def | get_dataset_names_list (self, ied_name=None, ap_name=None, ld_inst=None, ln_name=None, ref_type=ReferenceType.ObjectReference) |
Получить лист ObjectReference для элементов DataSet в заданном контексте поиска. Подробнее... | |
def | get_urcb_list (self, ied_name=None, ap_name=None, ld_inst=None, ln_name=None) |
Получить лист элементов Unbuffered ReportControl blocks. Подробнее... | |
def | get_brcb_list (self, ied_name=None, ap_name=None, ld_inst=None, ln_name=None) |
Получить лист элементов Buffered ReportControl blocks. Подробнее... | |
def | get_rcb_list (self, ied_name=None, ap_name=None, ld_inst=None, ln_name=None) |
Получить лист элементов ReportControl. Подробнее... | |
def | get_rcb_dataset (self, rcb) |
Получить элемент DataSet для заданного ReportControl. Подробнее... | |
def | get_urcb_dataset (self, urcb) |
Псевдоним для get_rcb_dataset(). Подробнее... | |
def | get_brcb_dataset (self, brcb) |
Псевдоним для get_rcb_dataset(). Подробнее... | |
def | get_lcb_list (self, ied_name=None, ap_name=None, ld_inst=None, ln_name=None) |
Получить лист элементов LogControl. Подробнее... | |
def | get_gocb_list (self, ied_name=None, ap_name=None, ld_inst=None) |
Возвращает лист элементов GSEControl. Подробнее... | |
def | get_gocb_dataset (self, gocb) |
Возвращает элемент DataSet для заданного gocb. Подробнее... | |
def | get_msvcb_list (self, ied_name=None, ap_name=None, ld_inst=None) |
Получить лист элементов Multicast SampledValueControl. Подробнее... | |
def | get_msvcb_dataset (self, msvcb) |
Получить элемент DataSet для заданного MSVCB. Подробнее... | |
def | get_cb_refs_list (self, cb_type, ied_name=None, ap_name=None, ld_inst=None, ln_name=None, ref_type=ReferenceType.ObjectReference) |
Получить список ссылок для указанного типа блока управления (CB). Подробнее... | |
def | get_urcb_refs_list (self, ied_name=None, ap_name=None, ld_inst=None, ln_name=None, ref_type=ReferenceType.ObjectReference) |
Получить лист путей (ObjectReference) к ReportControl buffered="false". Подробнее... | |
def | get_brcb_refs_list (self, ied_name=None, ap_name=None, ld_inst=None, ln_name=None, ref_type=ReferenceType.ObjectReference) |
Получить лист путей (ObjectReference) к ReportControl buffered="true". Подробнее... | |
def | get_lcb_refs_list (self, ied_name=None, ap_name=None, ld_inst=None, ln_name=None, ref_type=ReferenceType.ObjectReference) |
Получить массив путей (ObjectReference) к LogControl. Подробнее... | |
def | get_gocb_refs_list (self, ied_name=None, ap_name=None, ld_inst=None, ref_type=ReferenceType.ObjectReference) |
Получить массив путей (ObjectReference) к GSEControl. Подробнее... | |
def | get_msvcb_refs_list (self, ied_name=None, ap_name=None, ld_inst=None, ref_type=ReferenceType.ObjectReference) |
Получить лист путей (ObjectReference) к Multicast SampledValueControl. Подробнее... | |
def | get_dataset_by_ref (self, dataset_reference) |
Получить элемент DataSet по ссылке на него. Подробнее... | |
def | get_cb_by_ref (self, cb_type, cb_reference) |
Получить элемент блока управления (CB) по его типу и ссылке. Подробнее... | |
def | get_gocb_by_ref (self, cb_reference) |
Получить блок управления GSEControl по ссылке cb_reference. Подробнее... | |
def | get_msvcb_by_ref (self, cb_reference) |
Получить блок управления Multicast SampledValueControl по ссылке cb_reference. Подробнее... | |
def | get_ld_name_list (self, ied_name=None) |
Получить лист строк LDName. Подробнее... | |
def | get_ln_element_list (self, str ied_name=None, str ld_inst=None, str ld_name=None, bool exclude_ln0=False) |
Получить список элементов LN. Подробнее... | |
def | get_ln_ref_list (self, ld_name) |
Получить список ссылок на логические узлы. Подробнее... | |
def | get_type_definition_recursive (self, element, parent_path="") |
Получить структуру типа данных для элемента в виде путей MMS ObjectReference. Подробнее... | |
def | get_da_mms_ref_list (self, ln_ref) |
Получить список атрибутов данных в формате MMS-ссылок для заданного логического узла. Подробнее... | |
def | get_full_datamodel_mms_refs (self, ied_name=None) |
Получить полную модель данных устройства в формате переменных MMS. Подробнее... | |
def | get_inputs_extref_list (self) |
Получить все элементы Inputs/ExtRef. Подробнее... | |
def | get_fcda_from_mmsref (self, mms_ref) |
Получить элемент FCDA по ссылке MMS. Подробнее... | |
def | get_gse_for_gocb (self, gocb) |
Получить элемент GSE раздела Communications для заданного GSEControl. Подробнее... | |
def | get_smv_for_mscvb (self, msvcb) |
Получить элемент SMV раздела Communications для заданного SampledValueControl. Подробнее... | |
def | get_subnetwork_list (self) |
Получить список элементов SubNetwork. Подробнее... | |
def | get_subnetwork_by_name (self, str name) |
Получить элемент Subnetwork по имени. Подробнее... | |
def | get_subnetwork_name_list (self) |
Получить список имен SubNetwork. Подробнее... | |
def | get_subnetwork_connected_ap_list (self, subnetwork_name=None, subnetwork=None) |
Получить список элементов ConnectedAP для Subnetwork. Подробнее... | |
def | get_subnetwork_connected_server_list (self, subnetwork_name=None, subnetwork=None) |
Получить список подключенных серверов в Subnetwork. Подробнее... | |
def | get_subnetwork_connected_server_ap_tuple_list (self, subnetwork_name=None, subnetwork=None) |
Получить список кортежей, содержащих имена IED и имена точек доступа подключенных серверов в Subnetwork. Подробнее... | |
def | select_ied (self, **kwargs) |
Выбор IED на основе указанных критериев. Подробнее... | |
def | append_scl (self, scl) |
Добавить файл CID в текущий SCD. Подробнее... | |
def | remove_gocb (self, go_cb_ref, preserve_communications=False) |
Удалить элемент GSEControl по ссылке. Подробнее... | |
def | remove_msvcb (self, msv_cb_ref, preserve_communications=False) |
Удалить элемент SampledValueControl по ссылке. Подробнее... | |
def | move_gse_smv_elements (self, str iedName, str srcApName, str trgtApName) |
Перемещает элементы GSE и SMV между ConnectedAP. Подробнее... | |
def | check_ldNs_defined (self) |
Проверка наличия объекта данных NamPlt.ldNs во всех LLN0. Подробнее... | |
def | check_lnNs_defined (self) |
Проверка наличия объекта данных NamPlt.ldNs во всех LLN0. Подробнее... | |
def | check_dataNs_defined (self) |
Проверка корректности задания dataNs. Подробнее... | |
def | check_cdcNs_defined (self) |
Проверка корректности задания cdcNs. Подробнее... | |
def | check_originalSclVersion_is (self, originalSclVersion) |
Проверка правильности задания атрибута originalSclVersion. Подробнее... | |
def | check_originalSclRevision_is (self, originalSclRevision) |
Проверка правильности задания атрибута originalSclRevision. Подробнее... | |
def | check_xmlns_is (self, xmlns) |
Проверка значения атрибута xmlns корневого элемента SCL. Подробнее... | |
def | check_xsi_is (self, xsi) |
Проверка значения атрибута xmlns:xsi корневого элемента SCL. Подробнее... | |
def | check_lln0_configRev_defined (self) |
Проверка наличия атрибута (DAI) configRev во всех LLN0.NamPlt. Подробнее... | |
def | check_value_list_match_type (self, dai_value_reference_list) |
Проверяет соответствие значения атрибута его типу. Подробнее... | |
def | validate_xml_declaration (self) |
Проверяет, содержит ли файл корректную XML декларацию в соответствии со стандартными требованиями. Подробнее... | |
def | validate_utf8_encoding (self) |
Выполнить проверку кодировки, чтобы убедиться, что файл закодирован в UTF-8. Подробнее... | |
def | check_datasets_consistency (self) |
Проверка всех наборов данных. Подробнее... | |
def | get_fcda_by_extref (self, et_extref) |
Поиск соответствующего FCDA для ExtRef. Подробнее... | |
def | check_ied_has_preconfigured_urcb (self) |
Проверка наличия предварительно сконфигурированных блоков управления передачей небуферизируемых в ICD. Подробнее... | |
def | check_ied_has_preconfigured_brcb (self) |
Проверка наличия предварительно сконфигурированных блоков управления передачей буферизируемых в ICD. Подробнее... | |
def | check_ied_has_preconfigured_lcb (self) |
Проверка наличия предварительно сконфигурированных блоков управления журналов событий (LogControl) в ICD. Подробнее... | |
def | check_ied_has_preconfigured_gocb (self) |
Проверка наличия предварительно сконфигурированных блоков управления передачей GOOSE в ICD. Подробнее... | |
def | check_ied_has_preconfigured_msvcb (self) |
Проверка наличия предварительно сконфигурированных блоков управления передачей мультикаст SV в ICD. Подробнее... | |
Открытые атрибуты | |
file_path | |
dom | |
namespaces | |
default_namespace | |
original_string | |
edition | |
Статические открытые данные | |
dictionary | BTYPE_REGEX_DICT |
int | iterations = 0 |
Общий класс для работы с SCL-файлами.
Класс SCL предоставляет множество функций для манипуляций с SCL-файлами. Специфичные классы, такие как SSD, ICD и SCD, наследуются от SCL и предлагают функции, специфичные для файлов этих типов.
Обычно экземпляр класса SCL инициализируется с использованием существующего SCL-файла, который можно загрузить с указанного пути, как показано в примере ниже:
Пример использования класса SCL:
По умолчанию, класс SCL использует редакцию 2 стандарта SCL. Если требуется работа с SCL-файлами других редакций, таких как редакция 1 или 2.1, укажите номер редакции при инициализации класса. Обратите внимание, что номер редакции передается в виде строки, а не числа.
Для выбора SCL-файла из файловой системы через графический интерфейс можно воспользоваться функциями класса Dialog, как показано ниже:
Для получения дополнительной информации о диалогах, связанных с SCL, обратитесь к документации класса Dialog.
Одновременно можно создавать несколько экземпляров класса SCL для работы с различными SCL-файлами, включая сравнение файлов.
def __init__ | ( | self, | |
file_path = None , |
|||
edition = None , |
|||
init_empty = False |
|||
) |
int add_new_node_to_any_ln | ( | self, | |
str | ln_path, | ||
str | str_element | ||
) |
Добавление объекта данных в существующий логический узел.
Эта функция добавляет объект данных в существующий логический узел. Она сопоставляет путь логического узла с помощью регулярного выражения, извлекает элемент логического узла и добавляет новый объект, если условия выполняются. Положение нового объекта в логическом узле определяется на основе предопределенных списков элементов.
ln_path | Путь логического узла. |
str_element | Строковая переменная добавляемого элемента. |
Exception | Вызывается, если ссылка на логический узел неверна, элемент логического узла не найден или указанный объект уже определен в файле SCL. |
int add_new_object_to_LnType | ( | self, | |
ln_path, | |||
str_element | |||
) |
Добавление нового типа объекта в существующий тип логического узла.
Эта функция добавляет новый тип объекта в существующий тип логического узла. Она сопоставляет путь логического узла с помощью регулярного выражения, извлекает элемент логического узла и добавляет новый элемент, если условия выполняются.
ln_path | Путь логического узла. |
str_element | Строковая переменная добавляемого типа. |
Exception | Вызывается, если ссылка на логический узел неверна, элемент логического узла не найден или тип логического узла не найден в DataTypeTemplates. |
def add_new_type_to_templates | ( | self, | |
str | str_element | ||
) |
Добавляет новый тип в список DataTypeTemplates.
Эта функция пытается добавить новый тип (LNodeType, DOType, DAType, EnumType) в список DataTypeTemplates. Сначала проверяется, существует ли элемент уже в списке. Если нет, добавляет новый тип и возвращает 1
. Если элемент уже существует, возвращает 0
. Если возникает ошибка во время добавления, возвращает -1
.
str_element | Строковая переменная добавляемого элемента. |
def append_scl | ( | self, | |
scl | |||
) |
Добавить файл CID в текущий SCD.
Эта функция добавляет файл CID в текущий SCD. Она выполняет несколько проверок и операций, включая проверку наличия в CID файле только одного IED, обеспечение отсутствия в SCD IED с таким же именем, проверку совместимости версии/ревизии SCL, переименование типов данных и копирование типов данных, IED и подсетей.
scl | Файл CID для добавления. |
SclElementNotFound | Вызывается, если в CID файле нет IED. |
TooManySclElements | Вызывается, если в CID файле содержится более одного IED. |
DuplicateSclElement | Вызывается, если в файле SCD уже содержится IED с таким же именем. |
NotSupported | Вызывается, если файл CID имеет другую версию/ревизию SCL, чем SCD. |
def check_cdcNs_defined | ( | self | ) |
Проверка корректности задания cdcNs.
Эта функция проверяет корректность задания cdcNs. Она извлекает все значения cdcNs из документа и проверяет их на соответствие стандартным пространствам имен CDC.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_dataNs_defined | ( | self | ) |
Проверка корректности задания dataNs.
Эта функция проверяет корректность задания dataNs. Она рассматривает все логические узлы, пропуская те, которые находятся вне стандартного пространства имен, и гарантирует, что каждый объект данных либо соответствует стандарту NSD, либо имеет корректное значение dataNs.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_datasets_consistency | ( | self | ) |
Проверка всех наборов данных.
Эта функция проверяет, что все атрибуты FCDA в рамках каждого набора данных ссылаются на существующие в модели устройства элементы DO/SDO, DA/BDA.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_ied_has_preconfigured_brcb | ( | self | ) |
Проверка наличия предварительно сконфигурированных блоков управления передачей буферизируемых в ICD.
Эта функция проверяет наличие предварительно сконфигурированных блоков управления передачей буферизируемых (BRCB) в ICD. Она проверяет наличие любых ссылок на BRCB и записывает сообщения в журнал.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_ied_has_preconfigured_gocb | ( | self | ) |
Проверка наличия предварительно сконфигурированных блоков управления передачей GOOSE в ICD.
Эта функция проверяет наличие предварительно сконфигурированных блоков управления передачей GOOSE (GoCB) в ICD. Она проверяет наличие любых ссылок на GoCB и записывает сообщения в журнал.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_ied_has_preconfigured_lcb | ( | self | ) |
Проверка наличия предварительно сконфигурированных блоков управления журналов событий (LogControl) в ICD.
Эта функция проверяет наличие предварительно сконфигурированных блоков управления журналов событий (LCB) в ICD. Она проверяет наличие любых ссылок на LCB и записывает сообщения в журнал.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_ied_has_preconfigured_msvcb | ( | self | ) |
Проверка наличия предварительно сконфигурированных блоков управления передачей мультикаст SV в ICD.
Эта функция проверяет наличие предварительно сконфигурированных блоков управления передачей мультикаст SV (MSVCB) в ICD. Она проверяет наличие любых ссылок на MSVCB и записывает сообщения в журнал.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_ied_has_preconfigured_urcb | ( | self | ) |
Проверка наличия предварительно сконфигурированных блоков управления передачей небуферизируемых в ICD.
Эта функция проверяет наличие предварительно сконфигурированных блоков управления передачей небуферизируемых (URCB) в ICD. Она проверяет наличие любых ссылок на URCB и записывает сообщения в журнал.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_ldNs_defined | ( | self | ) |
Проверка наличия объекта данных NamPlt.ldNs во всех LLN0.
def check_lln0_configRev_defined | ( | self | ) |
Проверка наличия атрибута (DAI) configRev во всех LLN0.NamPlt.
Эта функция проверяет наличие атрибута configRev (DAI) во всех элементах LLN0.NamPlt. Она проверяет, что атрибут существует и имеет ненулевое значение во всех логических устройствах.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_lnNs_defined | ( | self | ) |
Проверка наличия объекта данных NamPlt.ldNs во всех LLN0.
Эта функция проверяет наличие объекта данных NamPlt.ldNs во всех элементах LLN0 в логических устройствах. Она записывает сообщения и ошибки на основе результатов и возвращает объект TestResult
, указывающий на успех или неудачу теста.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках. def check_originalSclRevision_is | ( | self, | |
originalSclRevision | |||
) |
Проверка правильности задания атрибута originalSclRevision.
Эта функция проверяет правильность задания атрибута originalSclRevision для всех элементов IED в документе. Она проверяет, что значение атрибута соответствует указанной ревизии.
originalSclRevision | Ожидаемое значение атрибута originalSclRevision. |
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_originalSclVersion_is | ( | self, | |
originalSclVersion | |||
) |
Проверка правильности задания атрибута originalSclVersion.
Эта функция проверяет правильность задания атрибута originalSclVersion для всех элементов IED в документе. Она проверяет, что значение атрибута соответствует указанной версии.
originalSclVersion | Ожидаемое значение атрибута originalSclVersion. |
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_value_list_match_type | ( | self, | |
dai_value_reference_list | |||
) |
Проверяет соответствие значения атрибута его типу.
Эта функция проверяет, соответствуют ли значения атрибутов их указанным типам, используя регулярные выражения. Она перебирает список ссылок на значения атрибутов, проверяет каждое значение в соответствии с его типом и записывает сообщения и ошибки на основе результата.
dai_value_reference_list | Список словарей, содержащих ключи 'value' и 'reference', представляющих значения атрибутов и их ссылки. |
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_xmlns_is | ( | self, | |
xmlns | |||
) |
Проверка значения атрибута xmlns корневого элемента SCL.
Эта функция проверяет, соответствует ли значение атрибута xmlns корневого элемента SCL указанному значению. Она записывает сообщения и ошибки на основе результата сравнения.
xmlns | Ожидаемое значение атрибута xmlns. |
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def check_xsi_is | ( | self, | |
xsi | |||
) |
Проверка значения атрибута xmlns:xsi корневого элемента SCL.
Эта функция проверяет, соответствует ли значение атрибута xmlns:xsi корневого элемента SCL указанному значению. Она записывает сообщения и ошибки на основе результата сравнения.
xsi | Ожидаемое значение атрибута xmlns:xsi. |
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def detect_edition | ( | self, | |
raise_on_unknown = False |
|||
) |
Определить редакцию SCL-документа
Автоматически определяет редакцию загруженного SCL-файла
raise_on_unknown | Булевый флаг, указывающий, следует ли выбросить исключение для неизвестных редакций (по умолчанию: False) |
Exception | Выбрасывается, если редакция SCL файла неизвестна и raise_on_unknown установлено в True |
def from_artifact | ( | cls, | |
str | artifact_id | ||
) |
Загружает содержимое SCL-документа из Артифакта.
Этот метод загружает содержимое SCL-документа из строки, полученной через Артефакт, который определяется идентификатором artifact_id
. Метод инициализирует экземпляр класса SCL содержимым артефакта и парсит его как XML-документ.
artifact_id | Идентификатор Артифакта, из которого будет загружен SCL-документ. |
def get_ap_with_ip_list | ( | self | ) |
Получить список элементов ConnectedAP с IP-адресами.
Эта функция получает список элементов ConnectedAP, у которых есть IP-адреса. Она ищет в объектной модели документа (DOM) элементы P с атрибутом type, равным "IP", а затем собирает их родительские элементы ConnectedAP.
def get_attributes_with_values | ( | self | ) |
Получить список атрибутов данных с установленными значениями
Возвращает список атрибутов, для которых существует элемент Val. Если объектная модель документа (DOM) не построена, он инициализирует DOM. Затем функция находит все элементы Val и собирает их значения и ссылки в список.
def get_brcb_dataset | ( | self, | |
brcb | |||
) |
Псевдоним для get_rcb_dataset().
Эта функция является псевдонимом для get_rcb_dataset()
. Она возвращает элемент DataSet для заданного блока Buffered ReportControl (BRCB).
brcb | Элемент блока Buffered ReportControl (BRCB). |
def get_brcb_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None , |
|||
ln_name = None |
|||
) |
Получить лист элементов Buffered ReportControl blocks.
Эта функция возвращает список элементов Buffered ReportControl blocks. Сначала она строит DOM, если он еще не построен, затем получает контекстный объект на основе предоставленных имен IED, LDevice и LN (LN0). Наконец, она ищет элементы ReportControl в контекстном объекте, используя XPath, фильтруя по атрибуту buffered, установленному в "true".
ied_name | Имя IED. |
ld_inst | Экземпляр LDevice. |
ln_name | Имя LN (LN0). |
def get_brcb_refs_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None , |
|||
ln_name = None , |
|||
ref_type = ReferenceType.ObjectReference |
|||
) |
Получить лист путей (ObjectReference) к ReportControl buffered="true".
Эта функция возвращает список ObjectReference для блоков управления отчетами с буферизацией (BRCB) в заданном контексте IED, LDevice и LN (LN0). Она использует метод get_cb_refs_list
для генерации списка ссылок.
ied_name | Имя IED. |
ld_inst | Экземпляр LDevice. |
ln_name | Имя LN (LN0). |
ref_type | Тип ссылки, по умолчанию ReferenceType.ObjectReference. |
str get_btype_by_dai_ref | ( | self, | |
str | object_reference | ||
) |
def get_cb_by_ref | ( | self, | |
cb_type, | |||
cb_reference | |||
) |
Получить элемент блока управления (CB) по его типу и ссылке.
Эта функция возвращает элемент блока управления (CB) на основе его типа и ссылки. Она анализирует ссылку, чтобы извлечь LDName, LNName и cbName, а затем получает соответствующий элемент CB.
cb_type | Тип блока управления (CB), который может быть "RCB", "BRCB", "URCB", "GoCB", "MSVCB", "LCB" или "DataSet". |
cb_reference | Ссылка на блок управления. |
def get_cb_refs_list | ( | self, | |
cb_type, | |||
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None , |
|||
ln_name = None , |
|||
ref_type = ReferenceType.ObjectReference |
|||
) |
Получить список ссылок для указанного типа блока управления (CB).
Эта функция возвращает список ссылок для указанного типа блока управления (CB) в заданном контексте IED, LDevice и LN (LN0). Она получает список элементов CB на основе предоставленного типа и контекста, а затем генерирует ссылки для каждого элемента CB.
cb_type | Тип блока управления (CB), который может быть "BRCB", "URCB", "GoCB", "MSVCB" или "LCB". |
ied_name | Имя IED. |
ap_name | Имя AccessPoint. |
ld_inst | Экземпляр LDevice. |
ln_name | Имя LN (LN0). |
ref_type | Тип ссылки, по умолчанию ReferenceType.ObjectReference. |
def get_connected_ap_by_access_point | ( | self, | |
access_point | |||
) |
Получить элемент ConnectedAP, соответствующий заданному access_point.
Эта функция возвращает элемент ConnectedAP, соответствующий заданному элементу AccessPoint. Она извлекает имя AccessPoint и его родительского IED, а затем ищет в объектной модели документа (DOM) элемент ConnectedAP с совпадающими атрибутами iedName и apName.
access_point | Элемент AccessPoint в составе IED. |
Exception | Вызывается, если искомый элемент ConnectedAP не обнаружен. |
AttributeError | Вызывается, если у элемента AccessPoint отсутствует атрибут name. |
def get_connected_ap_subnet | ( | self, | |
connected_ap | |||
) |
Псевдоним для get_connected_ap_subnetwork().
Эта функция является псевдонимом для get_connected_ap_subnetwork()
. Она возвращает элемент SubNetwork, к которому подключен заданный элемент ConnectedAP, извлекая его родительский элемент.
connected_ap | Элемент ConnectedAP (etree.Element). |
def get_connected_ap_subnetwork | ( | self, | |
connected_ap | |||
) |
Возвращает элемент SubNetwork, к которому подключена connected_ap.
Эта функция возвращает элемент SubNetwork, к которому подключен заданный элемент ConnectedAP, извлекая его родительский элемент.
connected_ap | Элемент ConnectedAP (etree.Element). |
def get_context_object | ( | self, | |
str | ied_name = None , |
||
str | ap_name = None , |
||
str | ld_inst = None , |
||
str | ln_name = None |
||
) |
Получить элемент etree.Element в зависимости от выбранного контекста поиска: IED, LDevice, LN (LN0).
Эта функция возвращает элемент etree.Element в зависимости от заданного контекста поиска, который может быть IED, LDevice или LN (LN0). Сначала она строит DOM, если он еще не построен, а затем переходит по DOM на основе предоставленных параметров контекста.
ied_name | Имя IED. |
ld_inst | Экземпляр LDevice. |
ln_name | Имя LN (LN0). |
def get_da_mms_ref_list | ( | self, | |
ln_ref | |||
) |
Получить список атрибутов данных в формате MMS-ссылок для заданного логического узла.
Эта функция возвращает список атрибутов данных в формате MMS-ссылок для заданного логического узла. Она получает элемент логического узла по его ссылке, а затем использует метод get_type_definition_recursive
для создания списка MMS-ссылок.
ln_ref | Ссылка на логический узел. |
def get_da_val_regex_by_daiRef | ( | self, | |
object_reference | |||
) |
Возвращает регулярное выражение для проверки значения атрибута данных по ссылке на него.
Эта функция получает элемент типа атрибута данных (DAType) по ссылке на экземпляр атрибута данных (DAI), а затем определяет соответствующее регулярное выражение для проверки значения на основе базового типа (bType
) DAType. Если bType
равен 'Enum', она получает соответствующий EnumType и регулярное выражение для него. Если bType
находится в предопределенном словаре типов, возвращает соответствующее регулярное выражение. В противном случае возвращает "UNKNOWN TYPE".
object_reference | Ссылка на DAI в формате: LDName/LNName.DOI [.SDIseq].DAI. |
def get_dai_by_ref | ( | self, | |
object_reference | |||
) |
Получает элемент DAI по ссылке на него.
Эта функция получает элемент экземпляра атрибута данных (DAI) по ссылке в формате LDName/LNName.DOI[.SDIseq].DAI
. Она использует регулярное выражение для разбора ссылки, а затем проходит по иерархической структуре, чтобы найти указанный элемент DAI.
object_reference | Ссылка на атрибут в формате: LDName/LNName.DOI [.SDIseq].DAI. |
Exception | Вызывается, если формат ссылки на объект не соответствует ожидаемому шаблону. |
def get_dataset_by_ref | ( | self, | |
dataset_reference | |||
) |
Получить элемент DataSet по ссылке на него.
Эта функция возвращает элемент DataSet, соответствующий предоставленной ссылке. Она использует метод get_cb_by_ref
для получения элемента DataSet.
dataset_reference | Ссылка на DataSet. |
def get_dataset_list | ( | self, | |
str | ied_name = None , |
||
str | ap_name = None , |
||
str | ld_inst = None , |
||
str | ln_name = None |
||
) |
Получить список элементов DataSet.
Эта функция возвращает список элементов DataSet. Сначала она строит DOM, если он еще не построен, затем получает контекстный объект на основе предоставленных имен IED, LDevice и LN (LN0). Наконец, она ищет элементы DataSet в контекстном объекте, используя XPath.
ied_name | Имя IED. |
ap_name | Имя AccessPoint |
ld_inst | Экземпляр LDevice. |
ln_name | Имя LN (LN0). |
def get_dataset_names_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None , |
|||
ln_name = None , |
|||
ref_type = ReferenceType.ObjectReference |
|||
) |
Получить лист ObjectReference для элементов DataSet в заданном контексте поиска.
Эта функция возвращает список ObjectReference для элементов DataSet в заданном контексте поиска ied_name, ld_inst и ln_name. Если указано только ied_name, она возвращает все ссылки DataSet в указанном IED. Если указаны ied_name и ld_inst, контекст ограничивается конкретным LDevice в IED. Если также указано ln_name, контекст дополнительно ограничивается конкретным LN/LN0.
ied_name | Имя IED. |
ld_inst | Экземпляр LDevice. |
ln_name | Имя LN (LN0). |
ref_type | Тип ссылки, по умолчанию ReferenceType.ObjectReference. |
def get_daType_by_daiRef | ( | self, | |
str | object_reference | ||
) |
Возвращает элемент DAType по запросу пути (ObjectReference) к DAI.
Эта функция возвращает элемент типа атрибута данных (DAType) по ссылке на экземпляр атрибута данных (DAI). Она использует регулярное выражение для разбора ссылки, а затем проходит по иерархической структуре, чтобы найти указанный элемент DAType.
object_reference | Ссылка на DAI в формате: LDName/LNName.DOI[.SDIseq].DAI. |
Exception | Вызывается, если формат ссылки на объект не соответствует ожидаемому шаблону. |
def get_doi_by_ref | ( | self, | |
str | object_reference | ||
) |
Получает элемент DOI по ссылке на него.
Эта функция получает элемент экземпляра объекта данных (DOI) по ссылке в формате LDName/LNName.DOI
. Она использует регулярное выражение для разбора ссылки, а затем проходит по иерархической структуре, чтобы найти указанный элемент DOI.
object_reference | Ссылка на атрибут в формате: LDName/LNName.DOI. |
Exception | Вызывается, если формат ссылки на объект не соответствует ожидаемому шаблону. |
def get_doType_by_doiRef | ( | self, | |
str | object_reference | ||
) |
Возвращает элемент DOType по запросу пути (ObjectReference) к DOI.
Эта функция возвращает элемент типа объекта данных (DOType) по ссылке на экземпляр объекта данных (DOI). Она использует регулярное выражение для разбора ссылки, а затем проходит по иерархической структуре, чтобы найти указанный элемент DOType.
object_reference | Ссылка на DAI в формате: LDName/LNName.DOI[.SDIseq]. |
Exception | Вызывается, если формат ссылки на объект не соответствует ожидаемому шаблону. |
def get_fcda_by_extref | ( | self, | |
et_extref | |||
) |
Поиск соответствующего FCDA для ExtRef.
Эта функция выполняет поиск соответствующего FCDA (Функциональный Ограничивающий Атрибут Данных) для заданного ExtRef (Внешняя Ссылка). Она создает запрос XPath на основе атрибутов ExtRef и извлекает соответствующий элемент FCDA.
et_extref | Элемент, представляющий ExtRef. |
def get_fcda_from_mmsref | ( | self, | |
mms_ref | |||
) |
Получить элемент FCDA по ссылке MMS.
Эта функция возвращает элемент FCDA для заданной ссылки MMS. Она анализирует ссылку, чтобы извлечь LDName, LNName, DOName, DAName и функциональное ограничение (FC), затем соответственно создает элемент FCDA.
mms_ref | Ссылка MMS в формате LDName/ObjectReference. |
def get_full_datamodel_mms_refs | ( | self, | |
ied_name = None |
|||
) |
Получить полную модель данных устройства в формате переменных MMS.
Эта функция возвращает полную модель данных устройства в формате переменных MMS. Она получает список имен логических устройств для указанного IED, затем для каждого логического устройства получает список ссылок на логические узлы и создает модель данных, используя метод get_type_definition_recursive
.
ied_name | Имя IED. Если None, получает модель данных для всех IED. |
Переопределяется в RSD.
def get_gocb_by_ref | ( | self, | |
cb_reference | |||
) |
Получить блок управления GSEControl по ссылке cb_reference.
Эта функция возвращает блок управления GSEControl на основе предоставленной ссылки. Она использует метод get_cb_by_ref
для получения элемента GSEControl.
cb_reference | Ссылка на блок управления в формате SCL-ссылки (IEDnameLDinst/LLN0.GoCBname). |
def get_gocb_dataset | ( | self, | |
gocb | |||
) |
Возвращает элемент DataSet для заданного gocb.
Эта функция возвращает элемент DataSet для заданного элемента GSEControl. Она получает DataSet, используя приватный метод _get_cb_dataset
.
gocb | Элемент GSEControl. |
IndexError | Вызывается, если DataSet с указанным именем не найден. |
def get_gocb_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None |
|||
) |
Возвращает лист элементов GSEControl.
Эта функция возвращает список элементов GSEControl. Она получает контекстный объект на основе предоставленных имен IED и LDevice. Наконец, она ищет элементы GSEControl в контекстном объекте, используя XPath.
ied_name | Имя IED. |
ap_name | The name of the AccessPoint |
ld_inst | Экземпляр LDevice. |
def get_gocb_refs_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None , |
|||
ref_type = ReferenceType.ObjectReference |
|||
) |
Получить массив путей (ObjectReference) к GSEControl.
Эта функция возвращает список ObjectReference для блоков управления GOOSE (GoCB) в заданном контексте IED и LDevice. Она использует метод get_cb_refs_list
для генерации списка ссылок.
ied_name | Имя IED. |
ld_inst | Экземпляр LDevice. |
ref_type | Тип ссылки, по умолчанию ReferenceType.ObjectReference. |
def get_gse_for_gocb | ( | self, | |
gocb | |||
) |
Получить элемент GSE раздела Communications для заданного GSEControl.
Эта функция возвращает элемент GSE раздела Communications для заданного GSEControl. Она использует метод _get_communication_params_for_cb
для получения элемента GSE.
gocb | Элемент GSEControl. |
Exception | Вызывается, если блок управления не является SampledValueControl или GSEControl. |
def get_ied_access_point_list | ( | self, | |
str | ied_name, | ||
bool | with_server_only = False , |
||
allow_serverat = False |
|||
) |
Возвращает список элементов AccessPoint для IED с заданным ied_name.
Эта функция возвращает список элементов AccessPoint для IED с заданным именем. Она использует XPath для поиска элементов AccessPoint внутри IED.
ied_name | Имя IED. |
with_server_only | Флаг, позволяющий выбрать только AccessPoint с элементом Server. |
allow_serverat | Флаг, добавляющий в массив также точки доступа, в которых есть элемент ServerAt. |
Exception | Вызывается, если IED с заданным именем не обнаружен. |
def get_ied_access_point_name_list | ( | self, | |
str | ied_name, | ||
bool | with_server_only = False , |
||
allow_serverat = False |
|||
) |
Возвращает лист имён AccessPoint для IED с заданным ied_name.
Эта функция возвращает список имен AccessPoint для IED с заданным именем. Сначала она получает список элементов AccessPoint, а затем извлекает атрибут "name" из каждого элемента.
ied_name | Имя IED. |
with_server_only | Флаг, позволяющий выбрать только AccessPoint с элементом Server. |
allow_serveat | Флаг, добавляющий в поиск помимо элемента Server также элементы ServerAt |
Exception | Вызывается, если IED с заданным именем не обнаружен. |
AttributeError | Вызывается, если атрибут "name" не найден у элемента AccessPoint. |
def get_ied_access_point_server | ( | self, | |
str | ied_name, | ||
str | ap_name | ||
) |
Получить элемент Server для указанного IED и AccessPoint.
Извлекает элемент Server для заданных имени IED и AccessPoint. Если элемент Server не найден напрямую, выполняется попытка найти Server через элемент ServerAt.
ied_name | Имя IED. |
ap_name | Имя AccessPoint. |
Exception | Выбрасывается, если элемент ServerAt ссылается на AccessPoint без сервера. |
def get_ied_access_point_server_tuple | ( | self, | |
str | ied_name, | ||
str | ap_name | ||
) |
Получить имена IED и AccessPoint в виде кортежа для указанного элемента Server.
Функция извлекает элемент Server для заданных имени IED и AccessPoint, а затем возвращает имена IED и AccessPoint в виде кортежа. Если элемент Server не найден напрямую, выполняется попытка найти Server через элемент ServerAt.
ied_name | Имя IED. |
ap_name | Имя AccessPoint. |
Exception | Выбрасывается, если элемент ServerAt ссылается на AccessPoint без сервера. |
def get_ied_by_name | ( | self, | |
iedName, | |||
dom = None |
|||
) |
Получить элемент IED по его атрибуту name.
Возвращает элемент IED (etree.Element) по заданному атрибуту iedName
.
dom
является устаревшим и не должен использоваться в этом контексте. Параметр сохранен для обратной совместимости и будет удален в будущих версиях.iedName | имя элемента IED, соответствующего его атрибуту name |
dom | DOM-объект SCL. По умолчанию используется DOM самого экземпляра SCL. |
def get_ied_list | ( | self, | |
bool | server_only = False , |
||
bool | with_gse_only = False , |
||
bool | with_smv_only = False |
||
) |
Получить список элементов IED.
Эта функция получает список всех элементов IED из объектной модели документа (DOM) с использованием XPath.
server_only | Флаг, позволяющий выводить список только IED, у которых есть элемент Server. По-умолчанию = False |
with_gse_only | Флаг, позволяющий выводить список только IED, у которых есть элемент GSEControl. По-умолчанию = False |
with_smv_only | Флаг, позволяющий выводить список только IED, у которых есть элемент SampledValueControl. По-умолчанию = False |
str get_ied_name | ( | self, | |
int | ied_num = 0 |
||
) |
Возвращает IED.name по номеру IED в файле.
Эта функция возвращает имя IED на основе его положения (номера) в файле. Сначала получает список имен IED, а затем возвращает имя по указанному индексу.
ied_num | Положение (номер) IED в файле. По умолчанию 0. |
def get_ied_name_list | ( | self, | |
bool | server_only = False , |
||
bool | with_gse_only = False , |
||
bool | with_smv_only = False |
||
) |
Получить список имен IED.
Эта функция получает список всех имен IED, сначала получая список элементов IED, а затем извлекая атрибут "name" из каждого элемента.
server_only | Флаг, позволяющий выводить список только IED, у которых есть элемент Server. По-умолчанию = False |
def get_iedName_by_ldName | ( | self, | |
ldName | |||
) |
Получить атрибут IED.name по заданному ldName.
Возвращает атрибут name
элемента IED по заданному наименованию ldName.
ldName | имя логического устройства (сцепка атрибутов IED.name и LDevice.inst) |
name
элемента IED def get_inputs_extref_list | ( | self | ) |
Получить все элементы Inputs/ExtRef.
Эта функция возвращает все элементы Inputs/ExtRef в документе. Она использует XPath для поиска всех элементов ExtRef внутри Inputs.
def get_lcb_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None , |
|||
ln_name = None |
|||
) |
Получить лист элементов LogControl.
Эта функция возвращает список элементов LogControl. Она получает контекстный объект на основе предоставленных имен IED, LDevice и LN (LN0). Наконец, она ищет элементы LogControl в контекстном объекте, используя XPath.
ied_name | Имя IED. |
ap_name | The name of the AccessPoint |
ld_inst | Экземпляр LDevice. |
ln_name | Имя LN (LN0). |
def get_lcb_refs_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None , |
|||
ln_name = None , |
|||
ref_type = ReferenceType.ObjectReference |
|||
) |
Получить массив путей (ObjectReference) к LogControl.
Эта функция возвращает список ObjectReference для блоков управления журналом (LCB) в заданном контексте IED, LDevice и LN (LN0). Она использует метод get_cb_refs_list
для генерации списка ссылок.
ied_name | Имя IED. |
ld_inst | Экземпляр LDevice. |
ln_name | Имя LN (LN0). |
ref_type | Тип ссылки, по умолчанию ReferenceType.ObjectReference. |
def get_ld_by_ldname | ( | self, | |
ldName | |||
) |
Получить элемент LDevice по ldName.
Возвращает элемент логического устройств LDevice из SCL опреденного параметром ldName
. Обратите внимание, что параметр ldName
в соответствии с МЭК 61850 является сцепкой атрибутов iedName
и ldInst
.
ldName | имя логического устройства (сцепка атрибутов IED.name и LDevice.inst) |
def get_ld_name_list | ( | self, | |
ied_name = None |
|||
) |
Получить лист строк LDName.
Эта функция возвращает список строк LDName. Если указано имя IED, она получает список элементов LDevice в указанном IED. Если имя IED не указано, она получает все элементы LDevice в DOM. Затем она создает строки LDName, объединяя имя IED и экземпляр LDevice.
ied_name | Имя IED. Если None, получает все элементы LDevice. |
def get_ldevice_by_ldname | ( | self, | |
ldName | |||
) |
Псевдоним функции SCL.get_ld_by_ldname()
ldName | Имя логического устройства |
def get_ldInst_by_ldName | ( | self, | |
ldName | |||
) |
Получить атрибут LDevice.inst по заданному ldName.
Возвращает атрибут inst
элемента LDevice по заданному наименованию ldName
ldName | имя логического устройства (сцепка атрибутов IED.name и LDevice.inst) |
inst
элемента LDevice def get_ln_element_by_ref | ( | self, | |
str | ln_ref | ||
) |
Получить элемент LN/LN0 по ссылке LN Reference.
Возвращает элемент LN или LN0 по ссылке заданной параметром ln_ref
ln_ref | Ссылка на объект LN/LN0 в следующем формате: ldName/LLN0 или ldName/prefixCLSSinst (eg. AAA1PROT/OcpPTOC1). |
Exception | Некорректная ссылка, если `ln_ref` не соответствует формате _LNREF_REGEX |
def get_ln_element_list | ( | self, | |
str | ied_name = None , |
||
str | ld_inst = None , |
||
str | ld_name = None , |
||
bool | exclude_ln0 = False |
||
) |
Получить список элементов LN.
Функция позволяет получить список элементов LN из SCL-файла в виде элементов etree.Element. Она позволяет получать элементы LN на основе предоставленного имени IED, экземпляра LDevice и имени LDevice. Опционально может исключать элементы LN0.
ied_name | Имя IED. |
ld_inst | Экземпляр LDevice. |
ld_name | Имя LDevice. |
exclude_ln0 | Логическое значение для исключения элементов LN0 из списка. |
Exception | Вызывается, если параметры определены неправильно. |
def get_ln_ref_list | ( | self, | |
ld_name | |||
) |
Получить список ссылок на логические узлы.
Эта функция возвращает список ссылок на логические узлы в указанном параметром ld_name
логическом устройстве. Она получает логическое устройство по его имени и затем собирает ссылки для элементов LN0 и LN.
ld_name | Имя логического устройства. |
def get_msvcb_by_ref | ( | self, | |
cb_reference | |||
) |
Получить блок управления Multicast SampledValueControl по ссылке cb_reference.
Эта функция возвращает блок управления Multicast SampledValueControl на основе предоставленной ссылки. Она использует метод get_cb_by_ref
для получения элемента Multicast SampledValueControl.
cb_reference | Ссылка на блок управления в формате SCL-ссылки (IEDnameLDinst/LLN0.SVControlName). |
def get_msvcb_dataset | ( | self, | |
msvcb | |||
) |
Получить элемент DataSet для заданного MSVCB.
Эта функция возвращает элемент DataSet для заданного элемента Multicast Sampled Values Control Block (MSVCB). Она получает DataSet, используя приватный метод _get_cb_dataset
.
msvcb | Элемент SampledValueControl, представляющий MSVCB. |
IndexError | Вызывается, если DataSet с указанным именем не найден. |
def get_msvcb_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None |
|||
) |
Получить лист элементов Multicast SampledValueControl.
Эта функция возвращает список элементов SampledValueControl, представляющих Multicast Sampled Values Control Blocks (MSVCB). Она получает контекстный объект на основе предоставленных имен IED и LDevice. Наконец, она ищет элементы SampledValueControl с атрибутом multicast, установленным в "true" или отсутствующим, в контекстном объекте, используя XPath.
ied_name | Имя IED. |
ld_inst | Экземпляр LDevice. |
def get_msvcb_refs_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None , |
|||
ref_type = ReferenceType.ObjectReference |
|||
) |
Получить лист путей (ObjectReference) к Multicast SampledValueControl.
Эта функция возвращает список ObjectReference для блоков управления дискретными значениями (MSVCB) в заданном контексте IED и LDevice. Она использует метод get_cb_refs_list
для генерации списка ссылок.
ied_name | Имя IED. |
ld_inst | Экземпляр LDevice. |
ref_type | Тип ссылки, по умолчанию ReferenceType.ObjectReference. |
def get_rcb_dataset | ( | self, | |
rcb | |||
) |
Получить элемент DataSet для заданного ReportControl.
Эта функция возвращает элемент DataSet для заданного элемента ReportControl. Она получает DataSet, используя приватный метод _get_cb_dataset
.
rcb | Элемент ReportControl. |
IndexError | Вызывается, если DataSet с указанным именем не найден. |
def get_rcb_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None , |
|||
ln_name = None |
|||
) |
Получить лист элементов ReportControl.
Эта функция возвращает список элементов ReportControl. Сначала она строит DOM, если он еще не построен, затем получает контекстный объект на основе предоставленных имен IED, LDevice и LN (LN0). Наконец, она ищет элементы ReportControl в контекстном объекте, используя XPath.
ied_name | Имя IED. |
ld_inst | Экземпляр LDevice. |
ln_name | Имя LN (LN0). |
def get_smv_for_mscvb | ( | self, | |
msvcb | |||
) |
Получить элемент SMV раздела Communications для заданного SampledValueControl.
Эта функция возвращает элемент SMV раздела Communications для заданного SampledValueControl. Она использует метод _get_communication_params_for_cb
для получения элемента SMV.
msvcb | Элемент SampledValueControl. |
Exception | Вызывается, если блок управления не является SampledValueControl или GSEControl. |
def get_string_snippet_by_line_num | ( | self, | |
line_num, | |||
neighbours = 0 , |
|||
mark_line = False |
|||
) |
Получить текстовую строку оригинального SCL по номеру строки
Возвращает текстовый блок из оригинального SCL-файла по номеру строки и ещё neighbours строк вперёд и назад. Если передан флаг mark_line, то строка по номеру line_num помечается символами ">>"
line_num | Номер запрашиваемой строки. |
neighbours | (default = 0) Количество соседних строк, которые необходимо показать. |
mark_line | (default = False) Необходимо поставить отметку на строке. |
def get_subnetwork_by_name | ( | self, | |
str | name | ||
) |
Получить элемент Subnetwork по имени.
Извлекает элемент Subnetwork с указанным именем.
name | Имя Subnetwork для извлечения. |
def get_subnetwork_connected_ap_list | ( | self, | |
subnetwork_name = None , |
|||
subnetwork = None |
|||
) |
Получить список элементов ConnectedAP для Subnetwork.
Извлекает список элементов ConnectedAP для указанного Subnetwork. Должен быть предоставлен либо subnetwork_name, либо subnetwork.
subnetwork_name | Имя Subnetwork. |
subnetwork | Элемент Subnetwork. |
AttributeError | Выбрасывается, если не предоставлены ни subnetwork_name, ни subnetwork. |
def get_subnetwork_connected_server_ap_tuple_list | ( | self, | |
subnetwork_name = None , |
|||
subnetwork = None |
|||
) |
Получить список кортежей, содержащих имена IED и имена точек доступа подключенных серверов в Subnetwork.
Извлекает список кортежей, где каждый кортеж содержит имя IED и имя точки доступа для серверов, подключенных к указанной Subnetwork. Поиск можно выполнить либо по имени Subnetwork, либо по самому элементу Subnetwork.
subnetwork_name | Имя Subnetwork (опционально, если указан subnetwork). |
subnetwork | Элемент Subnetwork (опционально, если указано subnetwork_name). |
def get_subnetwork_connected_server_list | ( | self, | |
subnetwork_name = None , |
|||
subnetwork = None |
|||
) |
Получить список подключенных серверов в Subnetwork.
Извлекает список серверов, подключенных к указанной Subnetwork. Эта функция ищет серверы, подключенные к Subnetwork, либо по имени Subnetwork, либо по самому элементу Subnetwork.
subnetwork_name | Имя Subnetwork (если не указан subnetwork). |
subnetwork | Элемент Subnetwork (если не указан subnetwork_name). |
def get_subnetwork_list | ( | self | ) |
Получить список элементов SubNetwork.
Извлекает все элементы SubNetwork из файла SCL.
def get_subnetwork_name_list | ( | self | ) |
Получить список имен SubNetwork.
Извлекает имена всех элементов SubNetwork из файла SCL.
def get_Substation_list | ( | self | ) |
Получить список элементов Substation.
Эта функция получает список всех элементов Substation из объектной модели документа (DOM) с использованием XPath.
def get_type_definition_recursive | ( | self, | |
element, | |||
parent_path = "" |
|||
) |
Получить структуру типа данных для элемента в виде путей MMS ObjectReference.
Эта функция возвращает структуру типа данных для заданного элемента в виде списка путей в формате MMS ObjectReference. Она рекурсивно обрабатывает элемент и его дочерние элементы, создавая пути на основе типа и атрибутов элемента.
element | Элемент, для которого необходимо получить структуру типа данных. |
parent_path | Базовый путь для создания путей ObjectReference. |
Переопределяется в RSD.
def get_urcb_dataset | ( | self, | |
urcb | |||
) |
Псевдоним для get_rcb_dataset().
Эта функция является псевдонимом для get_rcb_dataset()
. Она возвращает элемент DataSet для заданного блока Unbuffered ReportControl (URCB).
urcb | Элемент блока Unbuffered ReportControl (URCB). |
def get_urcb_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None , |
|||
ln_name = None |
|||
) |
Получить лист элементов Unbuffered ReportControl blocks.
Эта функция возвращает список элементов Unbuffered ReportControl blocks. Сначала она строит DOM, если он еще не построен, затем получает контекстный объект на основе предоставленных имен IED, LDevice и LN (LN0). Наконец, она ищет элементы ReportControl в контекстном объекте, используя XPath, фильтруя по атрибуту buffered, установленному в "false".
ied_name | Имя IED. |
ap_name | The name of the AccessPoint |
ld_inst | Экземпляр LDevice. |
ln_name | Имя LN (LN0). |
def get_urcb_refs_list | ( | self, | |
ied_name = None , |
|||
ap_name = None , |
|||
ld_inst = None , |
|||
ln_name = None , |
|||
ref_type = ReferenceType.ObjectReference |
|||
) |
Получить лист путей (ObjectReference) к ReportControl buffered="false".
Эта функция возвращает список ObjectReference для блоков управления отчетами без буферизации (URCB) в заданном контексте IED, LDevice и LN (LN0). Она использует метод get_cb_refs_list
для генерации списка ссылок.
ied_name | Имя IED. |
ld_inst | Экземпляр LDevice. |
ln_name | Имя LN (LN0). |
ref_type | Тип ссылки, по умолчанию ReferenceType.ObjectReference. |
def load_from_artifact | ( | self, | |
artifact_str | |||
) |
Загружает SCL-документ из строки полученной из Артифакта.
Загрузить содержимое SCL-файла из текстовой строки полученной из Артифакта заданной параметром artifact_str
.
artifact_str | файл SCL в виде текстовой строки полученной из Артифакта. |
def load_from_string | ( | self, | |
scl_str | |||
) |
Загружает SCL-документ из строки.
Загрузить содержимое SCL-файла из текстовой строки заданной параметром scl_str
.
scl_str | файл SCL в виде текстовой строки. |
def move_gse_smv_elements | ( | self, | |
str | iedName, | ||
str | srcApName, | ||
str | trgtApName | ||
) |
Перемещает элементы GSE и SMV между ConnectedAP.
Эта функция перемещает элементы GSE и SMV из исходного ConnectedAP в целевой ConnectedAP в рамках одного IED. Элементы GSE и SMV передаются путем обновления структуры XML файла SCL. Если исходные или целевые элементы ConnectedAP не найдены, операция прерывается без внесения изменений.
iedName | Имя IED, в котором находятся исходный и целевой ConnectedAP. |
srcApName | Имя AccessPoint исходного ConnectedAP. |
trgtApName | Имя AccessPoint целевого ConnectedAP. |
def remove_gocb | ( | self, | |
go_cb_ref, | |||
preserve_communications = False |
|||
) |
Удалить элемент GSEControl по ссылке.
Эта функция удаляет элемент GSEControl по указанной ссылке. Также можно опционально сохранить соответствующий элемент GSE в разделе Communications.
go_cb_ref | Ссылка на блок управления GOOSE в формате SCL. |
preserve_communications | Логическое значение, указывающее на необходимость сохранить (не удалять) элемент GSE в разделе Communications. |
Exception | Вызывается, если блок управления GOOSE не найден. |
AttributeError | Вызывается, если атрибут name или inst не найден у GSEControl, LDevice, AccessPoint или IED. |
def remove_msvcb | ( | self, | |
msv_cb_ref, | |||
preserve_communications = False |
|||
) |
Удалить элемент SampledValueControl по ссылке.
Эта функция удаляет элемент SampledValueControl по указанной ссылке. Также можно опционально сохранить соответствующий элемент SMV в разделе Communications.
msv_cb_ref | Ссылка на блок управления Sampled Value в формате SCL. |
preserve_communications | Логическое значение, указывающее на необходимость сохранить (не удалять) элемент SMV в разделе Communications. |
Exception | Вызывается, если блок управления SampledValueControl не найден. |
AttributeError | Вызывается, если атрибут name или inst не найден у SampledValueControl, LDevice, AccessPoint или IED. |
def select_ied | ( | self, | |
** | kwargs | ||
) |
Выбор IED на основе указанных критериев.
Функция позволяет пользователю выбрать IED из файла SCL на основе указанных критериев, таких как только сервер, с GSE или с SMV. Если подходящие IED не найдены, возбуждается исключение. Пользователю предоставляется диалоговое окно для выбора IED из доступного списка.
server_only | Логический флаг для фильтрации IED, работающих только как серверы. |
with_gse_only | Логический флаг для фильтрации IED с функцией GSE. |
with_smv_only | Логический флаг для фильтрации IED с функцией SMV. |
SclElementNotFound | Возбуждается, если в файле SCL не найдены IED, соответствующие заданным критериям. |
CancelledByUser | Возбуждается, если пользователь отменяет операцию, не выбрав IED. |
def to_string | ( | self, | |
pretty_print = True |
|||
) |
def toString | ( | self, | |
pretty_print = True |
|||
) |
Псевдоним для функции to_string.
Предоставляет псевдоним для функции to_string для поддержания согласованности в именах методов.
pretty_print | Булев флаг, указывающий, должен ли вывод быть в удобочитаемом формате (по умолчанию: True) |
def validate | ( | self, | |
override_edition = None |
|||
) |
Валидация SCL-файла
Функция позволяет выполнить валидацию файла, ассоциированного с экземпляром класса SCL. По умолчанию валидация выполняется с использованием XML-схемы, назначенной в соответствии с редакцией файла, выбранной при инициализации класса SCL.
Валидация может быть также выполнена относительно схемы, отличной от редакции по умолчанию. В этом случае в функцию должен быть передан параметр override_edition.
override_edition | передает редакцию стандарта для выбора XML-схемы для валидации. Допустимые значения: "1", "2", "2.1". |
def validate_utf8_encoding | ( | self | ) |
Выполнить проверку кодировки, чтобы убедиться, что файл закодирован в UTF-8.
Эта функция проверяет, закодирован ли файл в UTF-8. Она читает файл в бинарном режиме и использует функцию find_utf8_errors
для обнаружения ошибок кодировки.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def validate_xml_declaration | ( | self | ) |
Проверяет, содержит ли файл корректную XML декларацию в соответствии со стандартными требованиями.
Эта функция проверяет, соответствует ли XML декларация в файле одному из стандартных требований. Она проверяет первую строку файла по списку допустимых XML деклараций.
TestResult
, содержащий результат теста, сообщения журнала и сообщения об ошибках.def write_to_file | ( | self, | |
save_path | |||
) |
|
static |
default_namespace |
dom |
edition |
file_path |
|
static |
namespaces |
original_string |