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

CabinetController — пуск и останов всей установки

CabinetController — центральная точка пуска и останова всей установки. К нему подключают кнопки шкафа управления, сигнал наличия напряжения и экстренный останов. Через него также выполняют общий сброс аварий и наработки оборудования.

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

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

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

CabinetController связывает оборудование с общими сигналами шкафа. Последовательность пуска отдельных механизмов задаёт программа проекта.

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

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

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

Рассмотрим шкаф с кнопками «Пуск», «Стоп», «Экстренный останов», «Сброс аварий» и реле контроля напряжения.

1. Укажите сигналы шкафа

Добавьте CabinetController и заполните его параметры. В каждом поле укажите имя соответствующего сигнала из вашего проекта.

Параметр Что подключить
CabCtlStart Кнопку «Пуск»
CabCtlStop Кнопку «Стоп»
CabCtlEStop Кнопку или цепь экстренного останова
CabCtlPowerOk Реле контроля напряжения
CabCtlFaultReset Кнопку «Сброс аварий»
CabCtlBlock Условие, запрещающее работу всей установки. Если его нет, оставьте false

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

Если сигнал уже проходит через SignalsFilter, здесь укажите выход его канала.

2. Оставьте обычный пуск от кнопки

Начальная настройка Conf.CabinetController_bStartOnTrig = true подходит для кнопки «Пуск»: нажали и отпустили — установка продолжает работать. После останова для нового запуска нужно снова нажать «Пуск».

Остальные настройки можно пока оставить начальными. Их назначение разобрано ниже.

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

Компонент создаёт блок с именем CabinetController_Inst. Укажите это имя в поле родителя у оборудования:

Компонент Параметр Значение
Engine — двигатель EngParent CabinetController_Inst
Valve — клапан ValParent CabinetController_Inst

Так двигатели и клапаны получают от шкафа информацию о питании, экстренный останов и команды сброса. Поле родителя в компонентах обозначается словом Parent.

Для общего пуска и останова используйте в программе установки признак CabinetController_Inst.out_bWorking: после «Пуска» он равен TRUE, после «Стопа» — FALSE. Если нужно одновременно учитывать наличие питания, используйте CabinetController_Inst.out_bWorkAndPower.

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

Как работают пуск и останов

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

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

Если одновременно поданы «Пуск» и «Стоп», выполняется останов. Нажатие «Пуск» при запрете не запоминается: после устранения причины нужно нажать кнопку снова.

Что происходит при пропадании напряжения

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

При этом компонент некоторое время помнит, что установка была включена. Это время задаётся настройкой Conf.CabinetController_diPowerControlFilter; начальное значение — 3 секунды.

  • Если напряжение вернулось через 1 секунду, повторное нажатие «Пуск» не требуется. Дальнейшую работу оборудования определяет программа установки.
  • Если напряжения нет 3 секунды и дольше, состояние «Включено» сбрасывается. При обычном управлении от кнопки потребуется новый пуск.

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

Сброс аварий и наработки

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

Сброс наработки выполняется отдельной командой с панели оператора. Она передаётся подключённым компонентам через out_bWorktimeReset.

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

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

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

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

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

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

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

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

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

Параметр По умолчанию Назначение
$CabCtl Контроллер шкафа управления Название группы параметров
CabCtlStart _DI_ Сигнал общего пуска
CabCtlStop _DI_ Сигнал общего останова
CabCtlEStop _DI_ Экстренный останов: TRUE — остановить
CabCtlPowerOk _DI_ Контроль напряжения: TRUE — питание в норме
CabCtlBlock false Блокировка: TRUE — работа запрещена
CabCtlFaultReset _DI_ Сигнал общего сброса аварий

Вместо _DI_ укажите сигнал из своего проекта. Если отдельной кнопки пуска, останова, экстренного останова или сброса нет, для неё можно указать false и использовать команду с панели. Сигнал наличия напряжения задаётся отдельно в CabCtlPowerOk.

Имя блока — CabinetController_Inst. Отдельного параметра ID у компонента нет.

Настройки во время работы — 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
CabinetController MetaLab/Lib Scenarios/CabinetController.yaml

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

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