Tekvel Magic
Загрузка...
Поиск...
Не найдено
Класс GOOSEPublisher

Класс GOOSEPublisher для имитации отправки сообщений GOOSE. Подробнее...

Граф наследования:GOOSEPublisher:

Открытые члены

def __init__ (self, ServerSimulator ss=None, Subnetwork sn=None, goCbRef=None, sim=True, **kwargs)
 Инициализация экземпляра GOOSEPublisher. Подробнее...
 
None disable_all (cls)
 
ServerSimulator ss (self)
 Получить экземпляр ServerSimulator, связанный с GOOSEPublisher. Подробнее...
 
Subnetwork sn (self)
 Получить экземпляр Subnetwork, связанный с GOOSEPublisher. Подробнее...
 
def gocbref (self)
 Получить ссылку на блок управления GOOSE. Подробнее...
 
None enable (self)
 Включить GOOSEPublisher. Подробнее...
 
None disable (self)
 Отключить GOOSEPublisher. Подробнее...
 
def get_fcda_ref_list (self, ref_type=ReferenceType.ObjectReference)
 Возвращает список ссылок на атрибуты данных из набора данных, на который ссылается указанный блок управления передачей GOOSE. Подробнее...
 

Статические открытые данные

list instances = []
 

Подробное описание

Класс GOOSEPublisher для имитации отправки сообщений GOOSE.

Класс GOOSEPublisher используется для имитации отправки сообщений GOOSE в рамках определенной подсети. Каждый экземпляр связан с объектами ServerSimulator и Subnetwork. Класс гарантирует, что только один экземпляр GOOSEPublisher будет создан для конкретной ссылки на управляющий блок GOOSE. Если Subnetwork или ServerSimulator не предоставлены, создаются новые экземпляры. Этот класс особенно полезен для тестирования GOOSE-коммуникаций в контролируемой среде.

Заметки
При использовании этого класса убедитесь, что ссылки (такие как stVal_ref и q_ref) правильно определены в соответствии с используемой моделью данных.

Пример использования класса GOOSEPublisher:

try:
gp1 = GOOSEPublisher()
TestEngine.log(f"{gp1.ss.ied_name} - {gp1.ss.ap_name}")
gp1.enable()
Dialog.show_message(f"{gp1} успешно включен")
gp2 = GOOSEPublisher()
TestEngine.log(f"{gp2.ss.ied_name} - {gp2.ss.ap_name}")
gp2.enable()
Dialog.show_message(f"{gp2} успешно включен")
gp3 = GOOSEPublisher()
TestEngine.log(f"{gp3.ss.ied_name} - {gp3.ss.ap_name}")
gp3.enable()
TestEngine.log(f"Ссылки на данные для {gp1}:")
fcda_ref_list_gp1 = gp1.get_fcda_ref_list()
TestEngine.bulk_log(fcda_ref_list_gp1)
TestEngine.log(f"Ссылки на данные для {gp2}:")
fcda_ref_list_gp2 = gp2.get_fcda_ref_list()
TestEngine.bulk_log(fcda_ref_list_gp2)
TestEngine.log(f"Ссылки на данные для {gp3}:")
fcda_ref_list_gp3 = gp3.get_fcda_ref_list()
TestEngine.bulk_log(fcda_ref_list_gp3)
continue_loop = UserSelection.YES
stVal = Dbpos()
q = Quality()
while continue_loop == UserSelection.YES:
stVal_ref = "W1G_Y001_1A1_AD_LD/XCBR1.Pos.stVal"
q_ref = "W1G_Y001_1A1_AD_LD/XCBR1.Pos.q"
stVal.cycle()
gp2.ss.set_val(stVal_ref, stVal, val_type="Dbpos")
TestEngine.log(f"Изменено {stVal_ref} на {stVal} ({stVal._position})")
continue_loop = Dialog.yes_no("Хотите изменить данные снова?")
del gp1
del gp2
del gp3
TestEngine.set_result(Result.SUCCESS)
except Exception as err:
TestEngine.log(f"Тест провален: {err}")
TestEngine.set_result(Result.FAIL)

Конструктор(ы)

◆ __init__()

def __init__ (   self,
ServerSimulator  ss = None,
Subnetwork  sn = None,
  goCbRef = None,
  sim = True,
**  kwargs 
)

Инициализация экземпляра GOOSEPublisher.

Инициализирует объект GOOSEPublisher, который имитирует отправку сообщений GOOSE. Если ServerSimulator или Subnetwork не предоставлены, создаются новые. Метод также проверяет наличие ссылок на управляющие блоки для выбранного IED и AccessPoint.

Аргументы
ssОбъект ServerSimulator, используемый для GOOSEPublisher.
snОбъект Subnetwork, соединяющий GOOSEPublisher.
goCbRefСсылка на управляющий блок GOOSE.
simБулевый флаг, указывающий, будет ли установлен флаг симуляция в сообщении (по умолчанию True).
kwargsДополнительные аргументы (например, scl, mms_port), используемые для настройки симулятора.
Исключения
AttributeErrorВыбрасывается, если ServerSimulator равен None и goCbRef предоставлен.
ExceptionВыбрасывается, если не найдены управляющие блоки GOOSE для указанного IED и AccessPoint.
ExceptionВыбрасывается, если ссылка на управляющий блок не найдена в модели данных IED.

Методы

◆ disable()

None disable (   self)

Отключить GOOSEPublisher.

Этот метод предназначен для отключения GOOSEPublisher, но он еще не реализован. При реализации он деактивирует GOOSEPublisher и установит флаг _enabled в значение False.

◆ disable_all()

None disable_all (   cls)

◆ enable()

None enable (   self)

Включить GOOSEPublisher.

Этот метод включает GOOSEPublisher, запуская связанный ServerSimulator и устанавливая блок управления GOOSE как активный. Если ServerSimulator еще не создан или не запущен, он создается и запускается перед активацией GOOSEPublisher.

◆ get_fcda_ref_list()

def get_fcda_ref_list (   self,
  ref_type = ReferenceType.ObjectReference 
)

Возвращает список ссылок на атрибуты данных из набора данных, на который ссылается указанный блок управления передачей GOOSE.

Аргументы
ref_typeМассив строк, где каждая строка - это ссылка на атрибут данных, определяемый элементом FCDA набора данных, на который ссылается блок управления передачей GOOSE.
См. также
ReferenceType, SCL

◆ gocbref()

def gocbref (   self)

Получить ссылку на блок управления GOOSE.

Это свойство возвращает ссылку на блок управления GOOSE (GoCBRef), связанный с GOOSEPublisher.

Возвращает
Ссылка на блок управления GOOSE, связанный с GOOSEPublisher.

◆ sn()

Subnetwork sn (   self)

Получить экземпляр Subnetwork, связанный с GOOSEPublisher.

Это свойство возвращает экземпляр Subnetwork, связанный с GOOSEPublisher.

Возвращает
Экземпляр Subnetwork, связанный с GOOSEPublisher.

◆ ss()

ServerSimulator ss (   self)

Получить экземпляр ServerSimulator, связанный с GOOSEPublisher.

Это свойство возвращает экземпляр ServerSimulator, связанный с GOOSEPublisher. Если ServerSimulator не был назначен, возникает исключение AttributeError.

Исключения
AttributeErrorВыбрасывается, если экземпляр ServerSimulator не был назначен GOOSEPublisher.
Возвращает
Экземпляр ServerSimulator, связанный с GOOSEPublisher.

Данные класса

◆ instances

list instances = []
static