FltsWrns — группа аварий и предупреждений
FltsWrns собирает аварии и предупреждения отдельного участка установки. Он проверяет до восьми аварийных и восьми предупредительных причин, выдерживает задержки и сохраняет нужные сообщения до сброса оператором.
Выбирайте его, когда общая логика шкафа уже есть, а участку нужна своя группа сигналов. Для общего пуска шкафа вместе с такими сигналами используйте General. Если достаточно одного фильтра на восемь каналов, подойдёт SignalsFilter. В готовых узлах Units оба фильтра уже включены в состав.
Состав и связи
Компонент содержит два независимых фильтра. Подключите их результаты к сообщениям и управлению оборудованием; сам FltsWrns механизмами не управляет.
Первое подключение
Заполняйте пример в таблице «Параметры» (Params) добавленного компонента. Как добавить компонент и где искать настройки.
Перед генерацией выберите вариант работы с MetaLab: добавить готовые сценарии или пока отключить их создание.
У группы насосов есть общий сигнал неисправности и предупреждение о необходимости обслуживания. Назовём группы Pumps_Flts и Pumps_Wrns.
1. Назовите группы и подключите сброс
| Параметр | Значение для примера |
|---|---|
FltBlockId |
Pumps_Flts |
FltComment |
Насосная группа. Аварии |
WrnBlockId |
Pumps_Wrns |
WrnComment |
Насосная группа. Предупреждения |
FltsWrnsParent |
CabinetController_Inst |
В поле Parent указан источник общего сброса: оба фильтра получают его сигнал out_bFaultReset. Когда проверять каждую причину, задайте отдельно в параметрах её канала.
2. Заполните причины
| Поле | Аварийный канал 1 | Предупредительный канал 1 |
|---|---|---|
| ID | FltId1 = PUMP_FAULT |
WrnId1 = SERVICE |
| Название | FltComment1 = Неисправность насосной группы |
WrnComment1 = Требуется обслуживание |
| Вход | FltIn1 = bPumpFault |
WrnIn1 = bServiceRequired |
| Разрешение | FltEnable1 = true |
WrnEnable1 = true |
| Автосброс | FltAutoReset1 = false |
WrnAutoReset1 = true |
Имена сигналов замените своими. TRUE на входе означает наличие причины. У неиспользуемых каналов ID должен быть пустым. В используемом канале заполните все пять полей.
3. Задайте задержку и используйте результат
Для аварии, которую нужно учитывать только после двух секунд непрерывного сигнала:
| Настройка | Значение |
|---|---|
Conf.Pumps_Flts_SgnlsFltr_PUMP_FAULT_diDelay |
2 с |
Conf.Pumps_Flts_SgnlsFltr_PUMP_FAULT_bBypass |
false |
В программе используйте Pumps_Flts_SgnlsFltr_Inst.out_bQ, если нужна любая авария группы, или Pumps_Flts_SgnlsFltr_Inst.out_Signal1_bQ, если нужна только причина первого канала.
Например, общий аварийный выход можно подключить к EngExtFault компонента Engine. Тогда двигатель останавливается по этой группе аварий. Без такого подключения FltsWrns только формирует результаты проверки; команды оборудованию он не выдаёт.
Исходный дискретный вход указывайте в проекте один раз. Если его проверяет FltsWrns, в остальных местах используйте выход канала. Один обработанный результат можно подключить к нескольким потребителям.
Как работает канал
| Условие | Что происходит |
|---|---|
| Причина появилась, канал разрешён | Начинается отсчёт задержки |
| Причина исчезла раньше окончания задержки | Отсчёт сбрасывается, срабатывания нет |
| Причина сохраняется всё время задержки | Включаются выход канала и общий выход его группы |
| Причина исчезла, автосброс включён | Срабатывание снимается |
| Причина исчезла, автосброс выключен | Срабатывание сохраняется до сброса |
| Включён шунт | Срабатывание и отсчёт этого канала снимаются |
Нулевая задержка означает проверку без дополнительного ожидания. Задержки аварий и предупреждений задаются в секундах, отдельно для каждой причины.
Разрешение проверки
Через FltEnableN и WrnEnableN можно проверять сигнал постоянно либо только при нужном условии. Например, отсутствие расхода — при работающем насосе.
При снятом разрешении новые срабатывания не появляются. Если автосброс выключен, ранее записанная причина остаётся до сброса. При автосбросе снятие разрешения очищает и записанное срабатывание.
Сброс
При выключенном автосбросе общий сброс снимает причину, если вход уже неактивен либо канал запрещён. Пока неисправность сохраняется и проверка разрешена, сброс её не снимает.
Шунт действует сразу: выключает проверку и очищает выход канала независимо от автосброса. После снятия шунта сохраняющаяся причина снова проходит задержку.
Аварийные и предупредительные каналы проверяются независимо. Их поведение определяют параметры; название группы само по себе не включает или не отключает запоминание. У первого аварийного канала автосброс изначально выключен, у первого предупредительного — включён.
Имена групп и каналов
| Что задаём | Пример | Где используется |
|---|---|---|
| ID аварийной группы | Pumps_Flts |
Имя экземпляра и начало имён настроек |
| ID причины | PUMP_FAULT |
Имя задержки и шунта этой причины |
| Номер канала | 1 |
Выход out_Signal1_bQ |
Полное имя задержки — Conf.Pumps_Flts_SgnlsFltr_PUMP_FAULT_diDelay. Выход той же причины — Pumps_Flts_SgnlsFltr_Inst.out_Signal1_bQ.
ID двух групп должны различаться. Внутри каждой группы задавайте разные ID причин. Это позволяет настраивать каждую причину отдельно. Для ещё одной пары групп добавьте другой FltsWrns с новыми ID групп.
Состав
| Экземпляр для примера | Назначение |
|---|---|
Pumps_Flts_SgnlsFltr_Inst |
CSignalsFilter: до восьми аварий |
Pumps_Wrns_SgnlsFltr_Inst |
CSignalsFilter: до восьми предупреждений |
Сам CabinetController в этот компонент не входит. Сначала должен отработать источник общего сброса, затем FltsWrns, затем оборудование, использующее выходы фильтров.
Параметры компонента — Params
| Параметр | По умолчанию | Назначение |
|---|---|---|
FltsWrnsParent |
CabinetController_Inst |
Родитель, от которого оба фильтра получают out_bFaultReset. |
$Flts |
Аварии |
Название группы параметров аварий. |
FltBlockId |
Flts |
ID аварийного фильтра. |
FltComment |
Аварии |
Название аварийной группы в комментариях. |
$Wrns |
Предупреждения |
Название группы параметров предупреждений. |
WrnBlockId |
Wrns |
ID предупредительного фильтра. |
WrnComment |
Предупреждения |
Название предупредительной группы в комментариях. |
Поля каждого канала
N — номер от 1 до 8. Например, FltIdN означает поля FltId1, FltId2, FltId3, FltId4, FltId5, FltId6, FltId7, FltId8. То же правило действует для остальных строк таблицы.
| Параметры | Канал 1 | Каналы 2–8 | Назначение |
|---|---|---|---|
FltIdN, WrnIdN |
_ID_ |
Пусто | ID причины. Пустой ID исключает канал |
FltCommentN |
авария |
Пусто | Название аварийной причины |
WrnCommentN |
предупреждение |
Пусто | Название предупредительной причины |
FltInN, WrnInN |
_DI_ |
Пусто | TRUE — причина присутствует |
FltEnableN, WrnEnableN |
true |
Пусто | Условие проверки канала |
FltAutoResetN |
false |
Пусто | TRUE — снимать аварию автоматически |
WrnAutoResetN |
true |
Пусто | TRUE — снимать предупреждение автоматически |
Пустые поля каналов 2–8 не являются настройками для работающего канала. При заполненном ID задайте также вход, разрешение и способ сброса.
Настройки каналов во время работы — Conf
У каждой используемой причины свои задержка и шунт. Для примера выше:
| Настройка | Тип | Начальное значение | Назначение |
|---|---|---|---|
Conf.Pumps_Flts_SgnlsFltr_PUMP_FAULT_diDelay |
DINT |
0 |
Задержка срабатывания, с |
Conf.Pumps_Flts_SgnlsFltr_PUMP_FAULT_bBypass |
BOOL |
false |
TRUE — отключить канал и снять его срабатывание |
Conf.Pumps_Wrns_SgnlsFltr_SERVICE_diDelay |
DINT |
0 |
Задержка срабатывания, с |
Conf.Pumps_Wrns_SgnlsFltr_SERVICE_bBypass |
BOOL |
false |
TRUE — отключить канал и снять его срабатывание |
Имя настройки содержит ID группы и ID причины. Настройки создаются только для каналов с заполненным ID.
Результаты фильтров
| Поле экземпляра | Тип | Назначение |
|---|---|---|
Pumps_Flts_SgnlsFltr_Inst.out_bQ |
BOOL |
Есть хотя бы одна сработавшая причина. |
Pumps_Flts_SgnlsFltr_Inst.out_bBypass |
BOOL |
Включён хотя бы один шунт группы. |
Pumps_Flts_SgnlsFltr_Inst.out_Signal1_bQ |
BOOL |
Сработал канал 1; для остальных каналов используются Signal2–Signal8. |
Pumps_Wrns_SgnlsFltr_Inst.out_bQ |
BOOL |
Есть хотя бы одна сработавшая причина. |
Pumps_Wrns_SgnlsFltr_Inst.out_bBypass |
BOOL |
Включён хотя бы один шунт группы. |
Pumps_Wrns_SgnlsFltr_Inst.out_Signal1_bQ |
BOOL |
Сработал канал 1; для остальных каналов используются Signal2–Signal8. |
Для панели те же результаты находятся в View: например, View.Pumps_Flts_SgnlsFltr_Inst_out_bQ и View.Pumps_Flts_SgnlsFltr_Inst_out_Signal1_bQ. Отдельные выходы каналов публикуются при заполненном ID. Общие выходы группы публикуются всегда.
Перед генерацией
Если сейчас нужна только программа, откройте у этого компонента область «Экспорт MetaLab» и удалите заполненные строки в своём проекте. После этого можно генерировать без сценариев.
Если будете выполнять виртуальную наладку, оставьте экспорт и импортируйте в раздел MetaLab следующие компоненты из полного архива MetaKit:
| Компонент MetaLab | Файл в архиве MetaKit |
|---|---|
SignalsFilter |
MetaLab/Lib Scenarios/SignalsFilter.yaml |
Один шаблон достаточно добавить один раз, даже если он нужен нескольким механизмам. Сохраните указанные имена: по ним MetaPlatform находит нужный сценарий. Сами значения для механизмов будут подставлены при генерации.
При заполненном экспорте отсутствие шаблона остановит генерацию. Этот шаг нужен для MetaCore, CODESYS 3.5 и Siemens TIA Portal; для CODESYS 2.3 сценарии MetaLab не создаются.