MetaKit Руководство по компонентам

SignalsFilter — обработка аварий и предупреждений

SignalsFilter собирает сигналы аварий и предупреждений оборудования. Для каждой причины можно задать задержку, чтобы не реагировать на короткий сигнал, и выбрать, как снимать сообщение: автоматически или после сброса оператором. Один компонент обрабатывает до восьми причин — по одной на канал.

Используйте SignalsFilter, например, для аварии преобразователя, отсутствия расхода или сигнала пожара. Если нужно только подождать перед действием, без запоминания аварии, достаточно Delay.

Состав и связи

SignalsFilter: Выход фильтра подключается к нужным блокировкам и сообщениям. Один обработанный сигнал можно использовать в нескольких компонентах.
В рамке — состав компонента, снаружи — подключения проекта. Нажмите на схему, чтобы открыть её крупнее.

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

Первое подключение

Заполняйте пример в таблице «Параметры» (Params) добавленного компонента. Как добавить компонент и где искать настройки.

Перед генерацией выберите вариант работы с MetaLab: добавить готовые сценарии или пока отключить их создание.

У нас есть насос K31 с частотным преобразователем. При его неисправности вход DI_K31_VFD_FAULT становится TRUE. Нужно игнорировать короткий сигнал, но после 2 секунд неисправности остановить насос и сохранить аварию до сброса оператором.

1. Назовите фильтр

Параметр Значение для примера
SgnlsFltrId K31_Flts
SgnlsFltrComment Насос K31. Аварии
SgnlsFltrParent CabinetController_Inst

От CabinetController фильтр получает общую команду «Сброс аварий» через out_bFaultReset.

2. Заполните первый канал

Параметр Значение для примера
SgnlsFltrSigId1 VFD_FAULT
SgnlsFltrSigComment1 Неисправность частотного преобразователя
SgnlsFltrIn1 DI_K31_VFD_FAULT
SgnlsFltrEn1 true
SgnlsFltrAutoReset1 false
SgnlsFltrFlt1 true
SgnlsFltrWrn1 Пусто
SgnlsFltrAlm1 Пусто

Каналы 2–8 оставьте незаполненными. Если исходный контакт сообщает исправность значением TRUE, в SgnlsFltrIn1 задайте инверсию, например NOT DI_K31_VFD_OK. Вход фильтра должен быть равен TRUE именно при наличии контролируемой причины.

3. Задайте задержку

Настройка Значение для примера
Conf.K31_Flts_SgnlsFltr_VFD_FAULT_diDelay 2 с
Conf.K31_Flts_SgnlsFltr_VFD_FAULT_bBypass false

4. Подключите результат к управлению

В компоненте Engine насоса K31 задайте:

Параметр Engine Значение
EngExtFault K31_Flts_SgnlsFltr_Inst.out_bQ

Если сработал любой используемый канал, общий выход фильтра становится TRUE. Для проверки только первой причины используйте K31_Flts_SgnlsFltr_Inst.out_Signal1_bQ.

Подключите исходный вход к фильтру один раз. Дальше во всех компонентах используйте выход его канала. Например, один и тот же обработанный сигнал пожара можно передать нескольким устройствам — задержка и сброс у него останутся общими.

Сначала в алгоритме должен выполняться SignalsFilter, затем компоненты, использующие его результаты.

5. Как это будет работать

  1. При появлении неисправности начинается отсчёт 2 секунд.
  2. Если вход исчезнет раньше, срабатывания не будет.
  3. Если неисправность сохраняется, включаются out_Signal1_bQ и общий out_bQ.
  4. После исчезновения исходной неисправности выходы остаются включёнными.
  5. После сброса оператором причина снимается, если неисправность устранена.

В примере насос останавливается потому, что выход фильтра подключён к EngExtFault. Одного названия «Аварии» или выбора категории сообщения для остановки недостаточно.

Как работает канал

У каждой причины свои настройки: когда её проверять, сколько ждать перед срабатыванием и нужен ли сброс оператором. При необходимости проверку можно временно отключить шунтом.

Условие Результат
Вход активен, канал разрешён, шунт выключен Начинается отсчёт задержки; после её окончания выход включается
Вход исчез до окончания задержки Отсчёт обнуляется, выход не включается
Выход уже включён, автосброс выключен Срабатывание сохраняется до допустимого сброса или включения шунта
Автосброс включён, вход исчез Выход снимается без дополнительной задержки
Канал запрещён Новые срабатывания не формируются, таймер сбрасывается
Включён шунт Выход и таймер снимаются независимо от автосброса

Ручной сброс и автосброс

Если автосброс выключен, после устранения неисправности оператор должен нажать «Сброс аварий». Сброс также сработает, если проверка этого канала уже запрещена. Пока неисправность сохраняется и канал продолжает её проверять, сброс аварию не снимет.

Если автосброс включён, сообщение исчезает само после устранения причины или выключения разрешения канала. Для такого поведения задайте SgnlsFltrAutoResetN = true. Это удобно для предупреждения, которое больше не нужно после восстановления нормального состояния.

Разрешение и шунт

Разрешение определяет, когда нужно контролировать причину. Например, падение давления можно контролировать только при работающем насосе.

Шунт временно отключает проверку и сразу убирает её срабатывание. Обычное разрешение действует иначе: если автосброс выключен, снятие разрешения прекращает проверку новых сигналов, но уже появившаяся авария остаётся до сброса.

После выключения шунта или повторного разрешения канала при активной причине начинается новый отсчёт задержки.

Имена фильтра, канала и выходного сигнала

Обозначение Значение в примере Где используется
ID фильтра SgnlsFltrId K31_Flts Имя экземпляра и префикс настроек
ID канала SgnlsFltrSigId1 VFD_FAULT Имя настроек конкретной причины
Номер канала 1 Имя выхода out_Signal1_bQ

Полные имена для примера:

Назначение Имя
Экземпляр фильтра K31_Flts_SgnlsFltr_Inst
Задержка канала Conf.K31_Flts_SgnlsFltr_VFD_FAULT_diDelay
Шунт канала Conf.K31_Flts_SgnlsFltr_VFD_FAULT_bBypass
Выход канала в алгоритме K31_Flts_SgnlsFltr_Inst.out_Signal1_bQ
Выход канала в View View.K31_Flts_SgnlsFltr_Inst_out_Signal1_bQ

Имя VFD_FAULT обозначает канал, а Signal1 — его номер в компоненте. Для следующего канала используются параметры с суффиксом 2, а выход называется out_Signal2_bQ. Всего доступны номера от 1 до 8.

ID каналов внутри одного фильтра задавайте разными, чтобы настройки причин имели отдельные имена.

Аварии и предупреждения

Задержка, шунт и фиксация работают одинаково для аварий и предупреждений. Категория сообщения выбирается отдельно параметрами SgnlsFltrFltN, SgnlsFltrWrnN и SgnlsFltrAlmN.

Задача Flt Wrn Alm
Аварийное сообщение при срабатывании true Пусто Пусто
Предупреждение при срабатывании Пусто true Пусто
Только обработка сигнала без назначения категории сообщения Пусто Пусто Пусто

Эти поля задают условия сообщений для результата канала. Для неиспользуемой категории оставьте поле пустым: значение false не заменяет пустое поле.

Например, отдельный фильтр предупреждений можно назвать K31_Wrns. Его алгоритм будет таким же; правило сброса и категории сообщений задаются для каждого канала.

Параметры компонента — Params

Общие параметры

Параметр По умолчанию Назначение
$SgnlsFltr Аварии Название группы параметров
SgnlsFltrId _ID_ ID фильтра. Для K31_Flts создаётся экземпляр K31_Flts_SgnlsFltr_Inst
SgnlsFltrComment аварии Общее название группы причин
SgnlsFltrParent CabinetController_Inst Родительский компонент, предоставляющий сброс out_bFaultReset

Параметры каждого канала

В именах ниже замените N номером от 1 до 8: например, SgnlsFltrSigIdN для третьего канала — SgnlsFltrSigId3.

Параметр Канал 1 по умолчанию Назначение
SgnlsFltrSigIdN _ID_ ID канала в именах его настроек. Пустое поле исключает канал из обработки
SgnlsFltrSigCommentN авария Название причины
SgnlsFltrInN _DI_ Исходный логический сигнал или выражение; TRUE означает активную причину
SgnlsFltrEnN true Логическое разрешение контроля канала
SgnlsFltrAutoResetN false true — снимать срабатывание автоматически; false — сохранять до допустимого сброса
SgnlsFltrFltN Пусто Условие аварийного сообщения Flt для выхода канала
SgnlsFltrWrnN Пусто Условие предупредительного сообщения Wrn для выхода канала
SgnlsFltrAlmN Пусто Условие сообщения категории Alm для выхода канала

Каналы 2–8 изначально не настроены. При добавлении канала заполните его ID, название, вход, разрешение и способ сброса; категории сообщений задайте по назначению причины. Для неиспользуемого канала оставьте ID пустым. Если первый канал не нужен, удалите его шаблонное значение _ID_.

Настройки во время работы — Conf

Для каждого используемого канала создаются две настройки. Полные имена ниже соответствуют фильтру K31_Flts и каналу VFD_FAULT.

Настройка Тип Начальное значение Назначение
Conf.K31_Flts_SgnlsFltr_VFD_FAULT_diDelay DINT 0 Задержка срабатывания, с. При 0 дополнительная выдержка не применяется
Conf.K31_Flts_SgnlsFltr_VFD_FAULT_bBypass BOOL false Шунт: при TRUE выход и таймер канала снимаются

В именах настроек используются название фильтра и название причины. Например, для другой причины вместо VFD_FAULT будет её ID. Число в Signal1 указывает только номер выхода внутри фильтра.

Выходы компонента

Результат для примера Тип Назначение
K31_Flts_SgnlsFltr_Inst.out_bQ BOOL Сработал хотя бы один канал
K31_Flts_SgnlsFltr_Inst.out_bBypass BOOL Включён шунт хотя бы одного канала
K31_Flts_SgnlsFltr_Inst.out_Signal1_bQ BOOL Результат первого канала
K31_Flts_SgnlsFltr_Inst.out_Signal2_bQ BOOL Результат второго канала
K31_Flts_SgnlsFltr_Inst.out_Signal3_bQ BOOL Результат третьего канала
K31_Flts_SgnlsFltr_Inst.out_Signal4_bQ BOOL Результат четвёртого канала
K31_Flts_SgnlsFltr_Inst.out_Signal5_bQ BOOL Результат пятого канала
K31_Flts_SgnlsFltr_Inst.out_Signal6_bQ BOOL Результат шестого канала
K31_Flts_SgnlsFltr_Inst.out_Signal7_bQ BOOL Результат седьмого канала
K31_Flts_SgnlsFltr_Inst.out_Signal8_bQ BOOL Результат восьмого канала

У SignalsFilter нет отдельной команды сброса в View: используется общий сброс от родительского компонента. Настройки задержек и шунтов относятся к отдельным каналам.

Перед генерацией

Если сейчас нужна только программа, откройте у этого компонента область «Экспорт MetaLab» и удалите заполненные строки в своём проекте. После этого можно генерировать без сценариев.

Если будете выполнять виртуальную наладку, оставьте экспорт и импортируйте в раздел MetaLab следующие компоненты из полного архива MetaKit:

Компонент MetaLab Файл в архиве MetaKit
SignalsFilter MetaLab/Lib Scenarios/SignalsFilter.yaml

Один шаблон достаточно добавить один раз, даже если он нужен нескольким механизмам. Сохраните указанные имена: по ним MetaPlatform находит нужный сценарий. Сами значения для механизмов будут подставлены при генерации.

При заполненном экспорте отсутствие шаблона остановит генерацию. Этот шаг нужен для MetaCore, CODESYS 3.5 и Siemens TIA Portal; для CODESYS 2.3 сценарии MetaLab не создаются.