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

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

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

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

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

Открытые атрибуты

 smpSynch
 
 all_enabled
 
 enabled
 

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

list instances = []
 
bool all_enabled = False
 

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

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

Класс SVPublisher используется для имитации отправки сообщений Sampled Values (SV) в рамках определенной подсети. Каждый экземпляр связан с объектами ServerSimulator и Subnetwork. Класс гарантирует, что только один экземпляр SVPublisher будет создан для конкретной ссылки на управляющий блок SV. Если Subnetwork или ServerSimulator не предоставлены, создаются новые экземпляры. Этот класс позволяет моделировать различные состояния сигнала (например, доаварийное, аварийное и послеаварийное) с использованием класса SGSineWave для генерации сигналов и переключения между различными состояниями.

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

try:
sp1 = SVPublisher()
TestEngine.log(f"{sp1} успешно инициализирован.")
Dialog.show_message(f"{sp1} успешно инициализирован. Нажмите ОК для включения")
sgSin1 = SGSineWave(sp1.ss.ied_name, sp1.ss.ap_name, 4) # Генератор сигналов с 4 состояниями
TestEngine.log("Успешно инициализирован генератор сигналов с 4 группами")
sgSin1.set_signal_list(sp1.get_fcda_ref_list()) # Установить список сигналов для генератора
# Создание состояний (доаварийное, аварийное, послеаварийное)
state1 = SG3PhaseState(cRms=1000, vRms=10000, cScale=1000)
state2 = SG3PhaseState(cRms=10000, vRms=7000, cScale=1000)
state3 = SG3PhaseState(cRms=100, vRms=10000, cScale=1000)
sgSin1.set_state(0, state1) # Установка доаварийного состояния
sgSin1.set_state(1, state2) # Установка аварийного состояния
sgSin1.set_state(2, state3) # Установка послеаварийного состояния
sgSin1.set_state(3, state1) # Повтор доаварийного состояния
sgSin1.switch_to_state(1) # Переключение на доаварийное состояние
sp1.enabled = True # Включить симуляцию SV
TestEngine.log(f"{sp1} успешно включен")
Dialog.show_message(f"{sp1} успешно включен. Нажмите ОК для переключения на состояние 2.")
sgSin1.switch_to_state(2) # Переключение на аварийное состояние
Dialog.show_message(f"Генератор сигналов успешно переключен на состояние 2. Нажмите ОК для переключения на состояние 3.")
sgSin1.switch_to_state(3) # Переключение на послеаварийное состояние
Dialog.show_message(f"Генератор сигналов успешно переключен на состояние 3. Нажмите ОК для завершения.")
del sp1
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,
  msvCbRef = None,
  sim = True,
**  kwargs 
)

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

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

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

Методы

◆ disable()

None disable (   self)

Отключить GOOSEPublisher.

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

Исключения
NotImplementedErrorЭта функция еще не реализована.

◆ disable_all()

None disable_all (   cls)

◆ enable()

None enable (   self)

Включить SVPublisher.

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

◆ enable_all()

None enable_all (   cls)

◆ enabled() [1/2]

def enabled (   self)

◆ enabled() [2/2]

def enabled (   self,
bool  enable 
)

◆ get_fcda_ref_list()

def get_fcda_ref_list (   self,
  ref_type = ReferenceType.ObjectReference 
)

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

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

◆ msvCbRef()

def msvCbRef (   self)

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

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

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

◆ set_smpSynch()

def set_smpSynch (   self,
  smpSynch 
)

Установить флаг синхронизации симулятора SVPublisher.

Аргументы
smpSynchцелочисленный флаг синхронизации. Используйте перечисление SmpSynch для удобного задания флагов.
Уст.:
Этот метод устарел и будет удален в будущих релизах. Вместо него используйте сеттер smpSynch.
См. также
SmpSynch smpSynch

◆ smpSynch() [1/2]

def smpSynch (   self)

◆ smpSynch() [2/2]

def smpSynch (   self,
  smpSynch 
)

Установить флаг синхронизации симулятора SVPublisher.

Аргументы
smpSynchцелочисленный флаг синхронизации. Используйте перечисление SmpSynch для удобного задания флагов.
См. также
SmpSynch

◆ sn()

Subnetwork sn (   self)

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

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

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

◆ ss()

ServerSimulator ss (   self)

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

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

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

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

◆ all_enabled [1/2]

bool all_enabled = False
static

◆ all_enabled [2/2]

all_enabled

◆ enabled

enabled

◆ instances

list instances = []
static

◆ smpSynch

smpSynch