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

ValveUnit — клапан с командами открытия и закрытия

ValveUnit открывает и закрывает клапан по команде программы или оператора. Он проверяет крайние положения, выдерживает паузу перед реверсом и сообщает, если клапан не успел пройти полный ход.

Выбирайте его для привода с двумя дискретными выходами «открыть» и «закрыть». Для плавного регулирования таким приводом нужен PiddValveUnit, а для привода с аналоговым заданием — CtrlValveUnit.

Как устроен узел

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

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

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

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

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

Клапан V101 должен открываться, когда разрешена подача воды. bWaterSupply — команда подачи, bV101Open и bV101Closed — концевые выключатели, qV101Open и qV101Close — выходы привода. Замените эти имена переменными своего проекта.

1. Подключите привод

Параметр Значение для примера
Id V101
Comment Клапан подачи воды
Parent CabinetController_Inst
StartCmd bWaterSupply
ValveStateOpen bV101Open
ValveStateClose bV101Closed
ValveOpenOut qV101Open
ValveCloseOut qV101Close
ValveLocal false
ValveRemote true

У неиспользуемых аварийных и предупредительных каналов оставьте ID пустыми.

2. Задайте время хода

Для примера привод проходит полный ход за 60 секунд; на контроль отведём 70 секунд.

Настройка Значение для примера
Conf.V101_Valve_diFullTime 70
Conf.V101_Valve_bFullTimeCtrlBypass false
Conf.V101_Valve_bEnableCheckState true
Conf.V101_Valve_diChangeStateDelay 1
Conf.V101_Valve_bNO false
Conf.V101_Valve_bEnableFaultCtrl false

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

В автоматическом режиме bWaterSupply = TRUE открывает клапан, FALSE — закрывает. При достижении соответствующего концевого выключателя команда движения снимается. Перед сменой направления выдерживается заданная пауза.

В ручном режиме оператор выбирает открытие или закрытие с панели. Для остановки между крайними положениями снимите обе команды. Если одновременно заданы обе, движения не будет.

Нормальное положение и авария

В автоматическом режиме StartCmd переводит клапан в рабочее положение. При снятии команды клапан возвращается в нормальное положение, заданное bNO.

Настройка StartCmd = FALSE StartCmd = TRUE
bNO = false — нормально закрытый Закрыть Открыть
bNO = true — нормально открытый Открыть Закрыть

В ручном режиме направление выбирают кнопками открытия и закрытия. Настройка bNO также определяет положение при разрешённом аварийном переводе.

Событие Поведение
Авария и bEnableFaultCtrl = false Обе команды движения снимаются
Авария и bEnableFaultCtrl = true Клапан направляется в положение, заданное bNO, если есть питание и режим не «Отключен»
Экстренный останов или нет питания Обе команды снимаются, аварийный перевод тоже запрещён
Причина аварии исчезла Записанная авария остаётся до сброса

Чтобы разрешить закрытие при внешней аварии в примере, установите bEnableFaultCtrl = true, сохранив bNO = false.

Если нет концевых выключателей

Задайте ValveStateOpen = false, ValveStateClose = false и отключите bEnableCheckState. При включённом контроле полного хода отсутствие концевого положения приведёт к аварии по времени. Если подтверждения в принципе нет, оставьте bFullTimeCtrlBypass = true и учитывайте, что узел не сможет подтвердить фактическое достижение положения.

Состояния и связь с каскадом

Крайнее положение берётся из V101_Valve_Inst.out_iState. Признак работы в CascadeUnit означает, что клапан разрешён для автоматического управления и есть команда StartCmd; он не подтверждает открытие концевым выключателем.

Если клапан включён в группу, укажите его ID в Cascade, а команду соответствующего места передайте в StartCmd. Наработка клапана учитывает движение привода, а не всё время нахождения в открытом положении. Подробности — в Valve.

Состав узла

Эти части уже соединены внутри компонента; добавлять их повторно не нужно.

Экземпляр для примера Описание части Для чего нужен
V101_Flts_SgnlsFltr_Inst SignalsFilter Обрабатывает аварийные причины.
V101_Wrns_SgnlsFltr_Inst SignalsFilter Обрабатывает предупреждения.
V101_CascadeUnit_Inst CascadeUnit Связывает механизм с группой и передаёт сбросы.
V101_Valve_Inst Valve Управляет движением клапана и проверяет полный ход.

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

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

Для каждого нужного канала укажите обозначение, понятное название и сигнал неисправности. Выберите, когда проверять сигнал и нужен ли сброс оператором. TRUE на входе означает неисправность; если контакт работает наоборот, используйте NOT. У ненужных каналов оставьте ID пустым. Если первый канал тоже не нужен, удалите его заготовки _ID_ и _DI_.

Поля канала Что указать
FltIdN, WrnIdN ID причины: например, VFD_FAULT или SERVICE
FltCommentN, WrnCommentN Понятное название причины
FltInN, WrnInN Сигнал причины: TRUE — авария или предупреждение присутствует
FltEnableN, WrnEnableN Когда проверять канал; для постоянного контроля — true
FltAutoResetN, WrnAutoResetN false — сохранить до сброса; true — снять после исчезновения причины

N — номер от 1 до 8. У обычного первого аварийного канала начальные значения: _ID_, авария, _DI_, true, false. У первого предупредительного: _ID_, предупреждение, _DI_, true, true. Остальные обычные каналы пустые; при добавлении заполните все пять полей.

Задержка, шунт и сброс

Задержка отсекает кратковременный сигнал. Шунт исключает отдельный канал из проверки и сразу снимает его срабатывание. Сам механизм при этом может сохранять свою аварию до сброса.

При AutoReset = false сообщение остаётся после исчезновения неисправности. Оператор должен выполнить сброс. Он сработает, когда неисправность устранена или проверка канала запрещена. Одного снятия разрешения проверки для очистки такого сообщения недостаточно.

Сброс аварий выполняйте только через встроенный CascadeUnit: команда передаётся и фильтрам, и механизму. Через него же выполняется сброс наработки всего узла.

Например, для Id = V101, FltId1 = VFD_FAULT и WrnId1 = SERVICE создаются:

Настройка Тип Начальное значение Назначение
Conf.V101_Flts_SgnlsFltr_VFD_FAULT_diDelay DINT 0 Задержка срабатывания, с
Conf.V101_Flts_SgnlsFltr_VFD_FAULT_bBypass BOOL false TRUE — шунт канала
Conf.V101_Wrns_SgnlsFltr_SERVICE_diDelay DINT 0 Задержка срабатывания, с
Conf.V101_Wrns_SgnlsFltr_SERVICE_bBypass BOOL false TRUE — шунт канала

У всех объявленных каналов создаётся такая пара настроек. В имени Conf используется ID причины, а в имени результата — номер места: например, V101_Flts_SgnlsFltr_Inst.out_Signal1_bQ. Один выход фильтра можно использовать в нескольких компонентах. Подробности — в SignalsFilter.

Индивидуальные и общие настройки

Чтобы у механизма были свои настройки, оставьте поля выбора общего набора пустыми. Если нескольким механизмам нужны одинаковые настройки, укажите в этих полях одно имя, например Common. Изменение общей настройки будет действовать на каждый из них. В таблице показано, какие настройки можно объединить.

Поле Params Раздел Пример при пустом поле Пример при значении Common
ValveConf Valve Conf.V101_Valve_diFullTime Conf.Common_Valve_diFullTime

Шунт полного хода всегда индивидуальный: Conf.V101_Valve_bFullTimeCtrlBypass. Его имя и комментарий относятся к конкретному клапану, даже при общем ValveConf.

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

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

Поля аварийных и предупредительных каналов приведены в разделе «Аварии и предупреждения».

Параметр По умолчанию Назначение
Id _ID_ ID узла. По нему создаются имена его состояний, команд и индивидуальных настроек.
Comment Комментарий Название конкретного насоса, клапана или группы.
Parent CabinetController_Inst Компонент общего управления шкафом. Передаёт питание, экстренный останов и сбросы.
StartCmd false Команда автоматической работы узла: TRUE — работать, FALSE — остановить. Смысл для данного узла показан в примере выше.
$CasUnit Элемент каскада Название раздела параметров; также используется в комментариях.
Power 0.0 Мощность или частота для каскада. Если контроль нагрузки не нужен, оставьте 0.0.
$Valve Клапан Название раздела параметров; также используется в комментариях.
ValveConf Пусто ID набора настроек этого раздела. Пусто — использовать Id узла; одинаковый ID — общие настройки.
ValveConfComment Пусто Название набора настроек. При пустом поле используется название узла и, где предусмотрено, раздела.
ValveLocal false Признак местного управления клапаном. Имеет приоритет над дистанционным.
ValveRemote true Разрешение дистанционного управления клапаном.
ValveStateOpen _DI_ Концевой выключатель: TRUE — клапан полностью открыт.
ValveStateClose _DI_ Концевой выключатель: TRUE — клапан полностью закрыт.
ValveOpenOut _DO_OPEN_ Дискретный выход открытия клапана.
ValveCloseOut _DO_CLOSE_ Дискретный выход закрытия клапана.
$Flts Аварии Название раздела параметров; также используется в комментариях.
FltComment аварии Общее название группы аварий в комментариях каналов.
$Wrns Предупреждения Название раздела параметров; также используется в комментариях.
WrnComment предупреждения Общее название группы предупреждений в комментариях каналов.

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

Полные имена приведены для Id = V101 и пустых полей выбора общих настроек. В таблице указаны начальные значения. Для примера выше задайте значения из шагов подключения.

Настройка Тип Начальное значение Единицы Назначение
Conf.V101_Valve_bNO BOOL false — Нормальное положение: FALSE — закрыт, TRUE — открыт. Применение при останове описано выше.
Conf.V101_Valve_bEnableFaultCtrl BOOL false — TRUE — при аварии двигаться в нормальное положение; FALSE — снять обе команды движения.
Conf.V101_Valve_bEnableCheckState BOOL true — TRUE — учитывать концевые выключатели крайних положений.
Conf.V101_Valve_diChangeStateDelay DINT 1 с Пауза перед сменой направления движения.
Conf.V101_Valve_diFullTime DINT 1 с Допустимое время полного хода клапана.
Conf.V101_Valve_bFullTimeCtrlBypass BOOL true — TRUE — отключить проверку времени полного хода. Настройка индивидуальная.

Команды оператора — View

Тег Тип Действие
View.V101_CascadeUnit_Inst_inout_bFaultReset BOOL Сброс аварий всего узла, включая фильтры: установить TRUE.
View.V101_CascadeUnit_Inst_inout_bWorktimeReset BOOL Сброс наработки: установить TRUE; команда сбрасывается после обработки.
View.V101_Valve_Inst_inout_iRemoteMode INT Выбор режима: 2 — ручной, 3 — автоматический.
View.V101_Valve_Inst_inout_bOpen BOOL Открытие: TRUE — команда есть, FALSE — команда снята.
View.V101_Valve_Inst_inout_bClose BOOL Закрытие: TRUE — команда есть, FALSE — команда снята.

Состояния и результаты для программы

Поле экземпляра Тип Назначение
V101_Valve_Inst.out_iMode INT Режим: 0 — отключён, 1 — местный, 2 — ручной, 3 — автоматический.
V101_Valve_Inst.out_bEnableAutoControl BOOL Механизм доступен для автоматического управления.
V101_Valve_Inst.out_bBlocked BOOL Обычное управление заблокировано.
V101_Valve_Inst.out_bFault BOOL Зафиксированная авария механизма.
V101_Valve_Inst.out_diWorktime DINT Наработка, ч.
V101_Valve_Inst.out_iState INT Состояние клапана; расшифровка и крайние положения — в описании Valve.
V101_CascadeUnit_Inst.out_bEnable BOOL Узел доступен группе.
V101_CascadeUnit_Inst.out_bState BOOL Состояние работы, передаваемое группе; смысл описан выше.
V101_Flts_SgnlsFltr_Inst.out_bQ BOOL Есть хотя бы одна сработавшая аварийная причина.
V101_Wrns_SgnlsFltr_Inst.out_bQ BOOL Есть хотя бы одно предупреждение.
V101_Flts_SgnlsFltr_Inst.out_Signal1_bQ BOOL Результат аварийного канала 1; для других каналов Signal2 … Signal8.
V101_Wrns_SgnlsFltr_Inst.out_Signal1_bQ BOOL Результат предупредительного канала 1; для других каналов Signal2 … Signal8.

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

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

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

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

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

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