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

General — общее управление установкой

General объединяет общий пуск и останов установки, контроль питания, сброс аварий и общие аварийные сигналы. Его удобно использовать в начале проекта, когда нужно связать оборудование с кнопками и сигналами шкафа управления.

Внутри уже есть CabinetController и два фильтра: до восьми общих аварий и до восьми предупреждений. Отдельно добавлять эти блоки не нужно. Если CabinetController уже используется, для дополнительной группы сигналов возьмите FltsWrns.

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

General: General уже содержит CabinetController. Добавьте один из этих компонентов; второй CabinetController для того же проекта не нужен.
В рамке — состав компонента, снаружи — подключения проекта. Нажмите на схему, чтобы открыть её крупнее.

General уже содержит CabinetController. Добавьте один из этих компонентов; второй CabinetController для того же проекта не нужен.

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

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

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

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

1. Подключите сигналы шкафа

Добавьте General один раз и заполните параметры:

Параметр Что указать
CabCtlStart Сигнал кнопки «Пуск»
CabCtlStop Сигнал кнопки «Стоп»
CabCtlEStop Сигнал экстренного останова
CabCtlPowerOk Наличие напряжения
CabCtlFaultReset Сигнал кнопки «Сброс аварий»

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

2. Добавьте общую аварию и предупреждение

Параметр Значение для примера
FltBlockId General_Flts
FltComment Общие аварии
FltId1 LEAK
FltComment1 Протечка
FltIn1 bLeak
FltEnable1 true
FltAutoReset1 false
WrnBlockId General_Wrns
WrnComment Общие предупреждения
WrnId1 DOOR_OPEN
WrnComment1 Открыта дверь шкафа
WrnIn1 bDoorOpen
WrnEnable1 true
WrnAutoReset1 true

bLeak и bDoorOpen замените сигналами своего проекта. Входы должны быть TRUE при наличии соответствующей причины. Неиспользуемые каналы оставьте с пустыми ID. Если первая причина тоже не нужна, удалите её начальный _ID_.

3. Свяжите оборудование с общим управлением

General создаёт CabinetController_Inst. Укажите его в поле Parent готовых узлов; у отдельных Engine и Valve это поля EngParent и ValParent.

Так оборудование получает питание, экстренный останов и сбросы от шкафа. Для запуска оборудования программа использует CabinetController_Inst.out_bWorking — установка включена, либо out_bWorkAndPower — включена и есть питание. По этому признаку программа выполняет нужную последовательность и подаёт команды механизмам. Одно поле Parent эту последовательность не задаёт.

Например, после общего пуска программа открывает клапан и затем включает насос. После общего останова снимает запросы их автоматической работы.

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

После нажатия «Пуск» установка остаётся включённой до останова или блокировки. Короткое нажатие кнопки запоминается; держать её не нужно.

При протечке включается аварийный канал, General блокирует общий пуск и снимает состояние «Установка включена». После устранения протечки оператор сбрасывает аварию и снова запускает установку. Закрытие двери само снимает предупреждение; оно не блокирует общий пуск.

Пуск, останов и питание

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

При одновременном пуске и останове выполняется останов. Общая авария действует через блокировку CabinetController; она не подменяет сигнал экстренного останова и не задаёт сама реакцию ручного управления каждого механизма.

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

Внутри General сначала вызывается CabinetController, затем фильтры. Поэтому вновь сработавшая общая авария поступает в блокировку CabinetController на следующем цикле программы.

Сброс и повторный пуск

Общий сброс поступает сразу в оба фильтра General и передаётся связанному оборудованию. При FltAutoResetN = false авария сохраняется после исчезновения причины. Сброс снимает её, когда причина устранена или проверка канала запрещена. Активная причина при разрешённой проверке остаётся.

При WrnAutoResetN = true предупреждение снимается после исчезновения причины без нажатия кнопки. Способ сброса выбирается отдельно у каждого канала: авария тоже может иметь автосброс, а предупреждение — требовать ручного сброса.

Если общая авария снялась автоматически, это ещё не новое нажатие «Пуск». При начальной настройке bStartOnTrig = true установку нужно запустить снова.

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

Состав

Экземпляр при начальных ID Назначение
CabinetController_Inst Общий пуск, останов, питание и сбросы
General_Flts_SgnlsFltr_Inst Восемь общих аварий; общий выход блокирует пуск
General_Wrns_SgnlsFltr_Inst Восемь общих предупреждений

Имя CabinetController_Inst фиксировано. Не добавляйте второй General или отдельный CabinetController с тем же именем в ту же область программы. ID фильтров можно изменить в Params.

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

Параметр По умолчанию Назначение
$General Общая логика ПЛК Название группы параметров.
CabCtlStart _DI_ Общий пуск.
CabCtlStop _DI_ Общий останов.
CabCtlEStop _DI_ Экстренный останов.
CabCtlPowerOk _DI_ TRUE — напряжение есть.
CabCtlFaultReset _DI_ Общий сброс аварий.
$Flts Общие аварии Название группы параметров аварий.
FltBlockId General_Flts ID аварийного фильтра.
FltComment Общие аварии Название аварийной группы в комментариях.
$Wrns Общие предупреждения Название группы параметров предупреждений.
WrnBlockId General_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.General_Flts_SgnlsFltr_LEAK_diDelay DINT 0 Задержка срабатывания, с
Conf.General_Flts_SgnlsFltr_LEAK_bBypass BOOL false TRUE — отключить канал и снять его срабатывание
Conf.General_Wrns_SgnlsFltr_DOOR_OPEN_diDelay DINT 0 Задержка срабатывания, с
Conf.General_Wrns_SgnlsFltr_DOOR_OPEN_bBypass BOOL false TRUE — отключить канал и снять его срабатывание

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

Результаты фильтров

Поле экземпляра Тип Назначение
General_Flts_SgnlsFltr_Inst.out_bQ BOOL Есть хотя бы одна сработавшая причина.
General_Flts_SgnlsFltr_Inst.out_bBypass BOOL Включён хотя бы один шунт группы.
General_Flts_SgnlsFltr_Inst.out_Signal1_bQ BOOL Сработал канал 1; для остальных каналов используются Signal2–Signal8.
General_Wrns_SgnlsFltr_Inst.out_bQ BOOL Есть хотя бы одна сработавшая причина.
General_Wrns_SgnlsFltr_Inst.out_bBypass BOOL Включён хотя бы один шунт группы.
General_Wrns_SgnlsFltr_Inst.out_Signal1_bQ BOOL Сработал канал 1; для остальных каналов используются Signal2–Signal8.

Для панели те же результаты находятся в View: например, View.General_Flts_SgnlsFltr_Inst_out_bQ и View.General_Flts_SgnlsFltr_Inst_out_Signal1_bQ. Отдельные выходы каналов публикуются при заполненном ID. Общие выходы группы публикуются всегда.

Другие способы управления

Пуск от переключателя

Если вместо кнопки используется переключатель с постоянным положением «Работа», задайте Conf.CabinetController_bStartOnTrig = false.

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

Снятие самого сигнала CabCtlStart не останавливает установку. Для останова нужен сигнал CabCtlStop.

Управление с панели оператора

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

Экстренный останов с панели сохраняется, пока его не снимут. Его также снимает отпускание физической кнопки экстренного останова: переход CabCtlEStop из TRUE в FALSE очищает команду панели.

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

Настройка Тип Начальное значение Назначение
Conf.CabinetController_diPowerControlFilter DINT 3 Через сколько секунд без напряжения сбросить состояние «Включено»
Conf.CabinetController_diFaultResetPulse DINT 1 Длительность включения и паузы для отдельного импульсного выхода сброса, с
Conf.CabinetController_bStartOnTrig BOOL true TRUE — пуск по новому нажатию; FALSE — также по постоянно включённому входу CabCtlStart

При нулевом или отрицательном diPowerControlFilter общий пуск сбрасывается сразу после пропадания напряжения.

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

Команда Тип Как использовать
View.CabinetController_Inst_inout_bStart BOOL Записать TRUE для пуска; компонент сам вернёт FALSE
View.CabinetController_Inst_inout_bStop BOOL Записать TRUE для останова; компонент сам вернёт FALSE
View.CabinetController_Inst_inout_bEmergencyStop BOOL Записать TRUE для экстренного останова, FALSE — для снятия команды
View.CabinetController_Inst_inout_bFaultReset BOOL Записать TRUE для сброса аварий; компонент сам вернёт FALSE
View.CabinetController_Inst_inout_bWorktimeReset BOOL Записать TRUE для сброса наработки; компонент сам вернёт FALSE

Выходы общего управления

Выход Тип Что означает
CabinetController_Inst.out_bPowerControl BOOL Напряжение присутствует
CabinetController_Inst.out_bWorking BOOL Установка включена общим пуском
CabinetController_Inst.out_bWorkAndPower BOOL Установка включена и напряжение присутствует
CabinetController_Inst.out_bEmergencyStop BOOL Подана команда экстренного останова
CabinetController_Inst.out_bFaultReset BOOL Команда общего сброса аварий
CabinetController_Inst.out_bFaultResetPulse BOOL Отдельный импульсный выход сброса аварий
CabinetController_Inst.out_bWorktimeReset BOOL Команда общего сброса наработки на один цикл ПЛК

При кратком пропадании напряжения out_bWorking ещё остаётся включённым, а out_bPowerControl и out_bWorkAndPower сразу становятся FALSE.

Два выхода сброса аварий

Обычный выход out_bFaultReset включён, пока нажата кнопка «Сброс аварий». При сбросе с панели он включается на один цикл ПЛК.

У отдельного выхода out_bFaultResetPulse другое поведение: пока кнопка нажата, он попеременно включается и выключается. При настройке diFaultResetPulse = 1 он включён одну секунду, выключен одну секунду, затем повторяет это до отпускания кнопки.

Если кнопку отпустить раньше, выход выключится сразу. Короткая команда с панели также не продлевается до одной секунды. При настройке 0 или отрицательном значении этот выход не включается. На обычный сброс такая настройка не влияет.

Сигналы для отображения на панели

Сигнал Что показывать
View.CabinetController_Inst_out_bPowerControl Наличие напряжения
View.CabinetController_Inst_out_bWorking Установка включена
View.CabinetController_Inst_out_bWorkAndPower Установка включена и есть питание
View.CabinetController_Inst_out_bEmergencyStop Экстренный останов
View.CabinetController_Inst_in_bBlock Блокировка работы

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

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

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

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

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

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