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

Класс GOOSESubscriber для мониторинга GOOSE-сообщений. Подробнее...

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

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

def __init__ (self, SCL scl=None, str ied_name=None, nif_id=None, str cb_ref=None, str da_ref=None, bool autostart=True, Subnetwork sn=None)
 Инициализация экземпляра GOOSESubscriber. Подробнее...
 
def __str__ (self)
 
def get_gocb_ref (self)
 Возвращает ссылку на блоки управления передачей GOOSE на который подписывается указанный GOOSESubscriber. Подробнее...
 
def gocbref (self)
 Возвращает ссылку на блок управления передачей GOOSE на который подписывается указанный GOOSESubscriber. Подробнее...
 
Subnetwork sn (self)
 Возвращает связанный экземпляр Subnetwork. Подробнее...
 
def get_ied_name (self)
 Возвращает имя устройства, отправляющего GOOSE-сообщения. Подробнее...
 
def get_ap_name (self)
 Возвращает имя точки доступа, отправляющей GOOSE-сообщения. Подробнее...
 
def wait_for_goose (self, int timeout=10000)
 Ждать первого появления GOOSE-сообщения. Подробнее...
 
def wait_for_goose_change (self, int timeout=1000)
 Ждать изменения GOOSE-сообщения. Подробнее...
 
def wait_for_signal_change (self, int timeout=5000)
 Ждать изменения сигнала в GOOSE-сообщении. Подробнее...
 
def wait_for_signal_value (self, value, str valType="BOOLEAN", int timeout=5000)
 Ждать установки определенного значения выбранного сигнала в GOOSE-сообщении. Подробнее...
 
def destroy (self)
 Удаляет подписчик GOOSE. Подробнее...
 

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

Класс GOOSESubscriber для мониторинга GOOSE-сообщений.

Класс GOOSESubscriber позволяет подписываться на GOOSE-сообщения для запуска действий на основе полученных GOOSE-сообщений. Он поддерживает выбор конкретных атрибутов данных внутри GOOSE-сообщений или мониторинг всего сообщения. Класс использует SCL-файл для определения и подключения к соответствующему IED и управляющему блоку GOOSE.

Если определенная подсеть (Subnetwork) не указана, будет создан новый экземпляр. Этот класс гарантирует, что для каждого управляющего блока GOOSE может быть настроен только один подписчик, чтобы избежать конфликтов. Настройка подписки выполняется с использованием ссылок на управляющие блоки GOOSE, которые могут быть выбраны вручную или переданы напрямую. Подключения сетевых интерфейсов также можно управлять с помощью параметра Subnetwork.

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

◆ __init__()

def __init__ (   self,
SCL  scl = None,
str  ied_name = None,
  nif_id = None,
str  cb_ref = None,
str  da_ref = None,
bool  autostart = True,
Subnetwork  sn = None 
)

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

Этот конструктор настраивает экземпляр GOOSESubscriber, подключая его к IED и управляющему блоку GOOSE, определенному в предоставленном SCL файле. Пользователь может либо передать конкретные параметры, либо позволить классу запросить выбор. Настройка включает выбор IED, проверку управляющих блоков GOOSE и настройку сетевых интерфейсов.

Если в SCL файле присутствуют несколько IED и параметр ied_name не указан, пользователю будет предложено выбрать один из них. Аналогично, если не передана конкретная ссылка на управляющий блок GOOSE (cb_ref), будет предложен список на выбор. Класс гарантирует, что будут использоваться только допустимые конфигурации, и вызывает исключения при возникновении проблем в процессе настройки.

Сетевой интерфейс может быть указан через параметр sn, который представляет экземпляр Subnetwork, или автоматически создается новый экземпляр, если он не предоставлен.

Аргументы
sclОбъект SCL-файла, используемый для конфигурации.
ied_nameИмя IED для подключения.

xrefitem deprecated 2.

Аргументы
cb_refСсылка на управляющий блок для GOOSE-сообщения.
da_refСсылка на конкретный атрибут данных для мониторинга в GOOSE-сообщении.
autostartФлаг для автоматического запуска подписчика после настройки. По умолчанию True.
snЭкземпляр Subnetwork для задания сетевого соединения.
Исключения
ExceptionВызывается при проблемах с конфигурацией, которые мешают успешной инициализации.

Методы

◆ __str__()

def __str__ (   self)

◆ destroy()

def destroy (   self)

Удаляет подписчик GOOSE.

◆ get_ap_name()

def get_ap_name (   self)

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

◆ get_gocb_ref()

def get_gocb_ref (   self)

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

Возвращает
Cылка на блок управления передачей GOOSE в формате MMS-ссылки.

◆ get_ied_name()

def get_ied_name (   self)

Возвращает имя устройства, отправляющего GOOSE-сообщения.

◆ gocbref()

def gocbref (   self)

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

Возвращает
Cылка на блок управления передачей GOOSE в формате MMS-ссылки.

◆ sn()

Subnetwork sn (   self)

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

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

Возвращает
Экземпляр Subnetwork.

◆ wait_for_goose()

def wait_for_goose (   self,
int  timeout = 10000 
)

Ждать первого появления GOOSE-сообщения.

Функция позволяет задержать выполнение сценария до момента приёма подписчиком первого GOOSE-сообщения соответствующего параметрам подписки.

Заметки
Настоятельно рекомендуется выполнить указанный метод до начала фактических испытаний, чтобы гарантировать, что подписчик получил хотя бы одно сообщение до каких-либо изменений. В противном случае функции wait_for_goose_change() и wait_for_signal_change() могут работать некорректно.
Аргументы
timeoutтаймер ожидания GOOSE-сообщения в мс. Функция выбрасывает исключение если таймер превышен, а сообщение не было получено.

◆ wait_for_goose_change()

def wait_for_goose_change (   self,
int  timeout = 1000 
)

Ждать изменения GOOSE-сообщения.

Функция позволяет задержать выполнение сценария до момента изменения данных в GOOSE-сообщении на которое осуществлена подписка.

Заметки
Перед выполнением данной функции выполните функцию wait_for_goose() для того, чтобы подписчик смог зафиксировать исходного состояние данных в GOOSE-сообщении.
Аргументы
timeoutтаймер ожидания изменения GOOSE-сообщения в мс. Функция выбрасывает исключение если таймер превышен, а изменение данных не произошло.

◆ wait_for_signal_change()

def wait_for_signal_change (   self,
int  timeout = 5000 
)

Ждать изменения сигнала в GOOSE-сообщении.

Функция позволяет задержать выполнение сценария до момента изменения данных в выбранном сигнале в GOOSE-сообщении на которое осуществлена подписка.

Заметки
Перед выполнением данной функции выполните функцию wait_for_goose() для того, чтобы подписчик смог зафиксировать исходного состояние данных в GOOSE-сообщении.
Для работы данной функции ссылка da_ref на контролируемый атрибут данных в GOOSE-сообщении должна быть установлена при инициализации блока подписки, либо соответствующий сигнал должен быть выбран в режиме мастера.
Аргументы
timeoutтаймер ожидания изменения GOOSE-сообщения в мс. Функция выбрасывает исключение если таймер превышен, а изменение данных не произошло.

◆ wait_for_signal_value()

def wait_for_signal_value (   self,
  value,
str  valType = "BOOLEAN",
int  timeout = 5000 
)

Ждать установки определенного значения выбранного сигнала в GOOSE-сообщении.

Функция позволяет задержать выполнение сценария до момента установки определенного значения атрибута данных в GOOSE-сообщении на которое осуществлена подписка.

Заметки
Перед выполнением данной функции выполните функцию wait_for_goose() для того, чтобы подписчик смог зафиксировать исходного состояние данных в GOOSE-сообщении.
Для работы данной функции ссылка da_ref на контролируемый атрибут данных в GOOSE-сообщении должна быть установлена при инициализации блока подписки, либо соответствующий сигнал должен быть выбран в режиме мастера.
Аргументы
valueОжидаемое значение выбранного сигнала.
valTypeТип сигнала из следующего списка допустимых значений: [‘BOOLEAN’, ‘INT8’, ‘INT16’, ‘INT32’, ‘INT64’, ‘INT8U’, ‘INT16U’, ‘INT24U’, ‘INT32U’, ‘FLOAT32’, ‘FLOAT64’, ‘VisString32’, ‘VisString64’, ‘VisString65’, ‘VisString128’, ‘VisString255’, ‘Dbpos’]
timeoutтаймер ожидания изменения GOOSE-сообщения в мс. Функция выбрасывает исключение если таймер превышен, а изменение данных не произошло.