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

Valve — управление клапаном

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

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

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

Valve: Valve управляет приводом с двумя командами движения. По концевым выключателям он определяет крайние положения клапана.
В рамке — состав компонента, снаружи — подключения проекта. Нажмите на схему, чтобы открыть её крупнее.

Valve управляет приводом с двумя командами движения. По концевым выключателям он определяет крайние положения клапана.

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

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

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

Подключим клапан подачи воды V101. У него два концевых выключателя: один сообщает, что клапан полностью открыт, другой — что полностью закрыт. Когда нужна вода, клапан должен открываться; когда подача больше не нужна — закрываться. Оператор также сможет управлять им вручную.

Для примера используются следующие сигналы:

Сигнал Назначение
bWaterDemand TRUE — подача воды нужна, FALSE — клапан нужно закрыть
DI_V101_bOpen Подтверждение полностью открытого положения
DI_V101_bClose Подтверждение полностью закрытого положения
DQ_V101_bOpen Команда приводу на открытие
DQ_V101_bClose Команда приводу на закрытие

Добавьте в проект CabinetController, если его ещё нет. Через него клапан получает экстренный останов, наличие питания и общие сбросы. В параметре ValParent укажем CabinetController_Inst.

1. Добавьте Valve и заполните основные параметры

Параметр Значение для примера
ValId V101
ValComment Клапан подачи воды
ValParent CabinetController_Inst
ValOpenCmd bWaterDemand
ValCloseCmd NOT bWaterDemand
ValStateOpen DI_V101_bOpen
ValStateClose DI_V101_bClose
ValOpenOut DQ_V101_bOpen
ValCloseOut DQ_V101_bClose

Остальные параметры для этого примера оставьте по умолчанию. Дистанционное управление будет разрешено; местное управление и дополнительные внешние защиты пока не подключены.

Укажите отдельно открытие и закрытие. Если убрать команду открытия, привод перестанет открываться, но закрываться сам не начнёт. Поэтому в примере bWaterDemand открывает клапан, а NOT bWaterDemand закрывает его, когда подача воды больше не нужна.

2. Настройте контроль положения и времени

Настройка Начальное значение Что задать для примера
Контроль крайних положений Выключен Включить: при достижении концевого выключателя команда движения будет снята
Время полного хода 90 с Допустимое время достижения крайнего положения с учётом полного хода конкретного привода
Задержка реверса 1 с Оставить 1 с, если это соответствует требованиям привода
Шунт контроля полного хода Выключен Оставить выключенным, чтобы контролировать время движения
Нормально открытый клапан Нет Оставить FALSE: нормальное положение — закрыто
Управление при аварии Выключено Оставить выключенным: при аварии обе команды снимаются

Полные имена настроек приведены в разделе «Настройки во время работы — Conf».

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

В автоматическом режиме при наличии питания и отсутствии блокировок:

  1. Появление bWaterDemand включает открытие клапана.
  2. При появлении DI_V101_bOpen команда открытия снимается.
  3. Снятие bWaterDemand задаёт закрытие. Перед сменой направления компонент выдерживает задержку реверса.
  4. При появлении DI_V101_bClose команда закрытия снимается.

Если клапан не достигает требуемого положения за допустимое время, компонент формирует аварию полного хода. При настройках этого примера движение прекращается до сброса аварии.

Режимы управления

Режим Как выбирается Как работает
Отключён ValLocal = FALSE, ValRemote = FALSE Обе выходные команды сняты
Местный ValLocal = TRUE Обычные команды открытия и закрытия задаются местной электрической схемой. Компонент отслеживает положение клапана
Ручной ValRemote = TRUE, ValLocal = FALSE; выбран ручной дистанционный режим Открытие и закрытие задаёт оператор
Автоматический ValRemote = TRUE, ValLocal = FALSE; выбран автоматический дистанционный режим Открытие и закрытие определяются ValOpenCmd и ValCloseCmd

Местный режим имеет приоритет над дистанционным. Задержка реверса и настройки контроля положения и времени действуют и при ручном управлении.

Команды открытия и закрытия

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

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

Нормальное положение, аварии и блокировки

Нормальное положение задаётся настройкой bNO: FALSE — закрыто, TRUE — открыто. Оно используется при запрете автоматического управления и при аварии, если разрешено управление при аварии.

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

При движении в нормальное положение сохраняются задержка реверса и контроль крайних положений. Разрешённое управление при аварии действует также в местном режиме.

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

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

Контроль положения и времени

Крайние положения

Сигналы ValStateOpen и ValStateClose показывают фактическое положение клапана. Если включён контроль крайних положений, подтверждение открытого положения снимает команду открытия, а подтверждение закрытого — команду закрытия.

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

Время полного хода

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

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

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

Если у привода нет концевых выключателей, укажите FALSE в ValStateOpen и ValStateClose, выключите контроль крайних положений и включите шунт полного хода. Тогда длительность открытия и закрытия нужно задать в программе. По одному только времени Valve не определяет, дошёл ли клапан до крайнего положения.

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

Обозначение и общие связи

Параметр По умолчанию Назначение
$Val Клапан Название группы параметров
ValId _ID_ ID клапана. Для V101 создаётся экземпляр V101_Valve_Inst
ValComment Комментарий Название оборудования в комментариях и сообщениях
ValParent CabinetController_Inst Родительский компонент: источник наличия питания, экстренного останова, сброса аварий и наработки
ValConf Пусто ID набора настроек клапана. Если пусто, используется ValId
ValConfComment Пусто Название набора настроек. Если пусто, используется ValComment

Родительский компонент должен предоставлять выходы out_bPowerControl, out_bEmergencyStop, out_bFaultReset и out_bWorktimeReset.

Команды и защиты

Параметры этой группы принимают логический сигнал или выражение.

Параметр По умолчанию Назначение
ValOpenCmd FALSE Команда открытия в автоматическом режиме
ValCloseCmd FALSE Команда закрытия в автоматическом режиме
ValEnAutoCtrlExtra TRUE Дополнительное разрешение автоматического управления. При FALSE в автоматическом режиме требуется движение в нормальное положение
ValEStopExtra FALSE Дополнительный экстренный останов. При TRUE снимаются обе выходные команды
ValPowerCtrlExtra TRUE Дополнительное разрешение силового управления. При FALSE снимаются обе выходные команды
ValExtFault FALSE Внешняя авария клапана. Запоминается до сброса

Для движения необходимы одновременно наличие питания от родительского компонента и ValPowerCtrlExtra = TRUE. Экстренный останов действует при наличии сигнала хотя бы от одного источника: родительского компонента или ValEStopExtra.

Режимы и сигналы клапана

Параметр По умолчанию Назначение
ValLocal FALSE Сигнал выбора местного управления
ValRemote TRUE Сигнал выбора дистанционного управления
ValStateOpen _DI_ Сигнал полностью открытого положения
ValStateClose _DI_ Сигнал полностью закрытого положения
ValOpenOut _DO_ Переменная, в которую записывается команда приводу на открытие
ValCloseOut _DO_ Переменная, в которую записывается команда приводу на закрытие

_ID_, _DI_ и _DO_ замените значениями проекта. Для неподключённых входов положения можно указать FALSE; особенности работы без концевых выключателей описаны выше.

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

Ниже приведены полные имена для ValId = V101 и пустого ValConf.

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

Общие настройки нескольких клапанов

Чтобы несколько клапанов использовали один набор настроек, задайте им одинаковое значение ValConf. Например, для клапанов V101 и V102 укажите ValConf = WaterValves.

Оба клапана будут использовать настройки Conf.WaterValves_Valve_bNO, Conf.WaterValves_Valve_bEnableFaultCtrl, Conf.WaterValves_Valve_bEnableCheckState, Conf.WaterValves_Valve_diChangeStateDelay и Conf.WaterValves_Valve_diFullTime.

Шунт полного хода остаётся индивидуальным: Conf.V101_Valve_bFullTimeCtrlBypass и Conf.V102_Valve_bFullTimeCtrlBypass. Команды оператора, состояния и аварии также остаются отдельными для каждого клапана.

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

Полные имена приведены для клапана V101.

Переменная Тип Действие
View.V101_Valve_Inst_inout_iRemoteMode INT Выбор дистанционного режима: 2 — ручной, 3 — автоматический
View.V101_Valve_Inst_inout_bOpen BOOL Установить TRUE для открытия в ручном режиме
View.V101_Valve_Inst_inout_bClose BOOL Установить TRUE для закрытия в ручном режиме
View.V101_Valve_Inst_inout_bFaultReset BOOL Установить TRUE для сброса аварий; компонент снимает команду после обработки
View.V101_Valve_Inst_inout_bWorktimeReset BOOL Установить TRUE для сброса наработки; компонент снимает команду после обработки

Значение дистанционного режима, отличное от 2 и 3, заменяется на 3 — автоматический режим. Выбор ручного режима действует при ValRemote = TRUE и ValLocal = FALSE.

Команды открытия и закрытия сохраняются до их снятия или изменения компонентом. Новая ручная команда снимает противоположную; для остановки движения установите обе команды в FALSE.

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

Для использования результата в алгоритме обращайтесь к экземпляру клапана. Например, V101_Valve_Inst.out_bFault — общая авария клапана.

Выход Тип Значение
out_iMode INT Режим: 0 — отключён, 1 — местный, 2 — ручной, 3 — автоматический
out_iState INT Состояние клапана; значения приведены ниже
out_bOpen BOOL Выдана команда приводу на открытие
out_bClose BOOL Выдана команда приводу на закрытие
out_bExternalFault BOOL Зафиксирована внешняя авария
out_bFullTimeFault BOOL Зафиксирована авария контроля полного хода
out_bOpenFault BOOL Зафиксирована авария открытия
out_bCloseFault BOOL Зафиксирована авария закрытия
out_bFault BOOL Общая авария клапана
out_bEnableAutoControl BOOL Выбран автоматический режим, автоматическое управление разрешено и нет блокировок
out_bBlocked BOOL Обычное управление заблокировано. При разрешённом движении в нормальное положение одна из выходных команд может оставаться активной
out_diWorktime DINT Суммарное время активности команд открытия и закрытия, в целых часах

Состояние клапана

Значение out_iState Состояние Условие
0 Положение не определено Оба концевых выключателя активны либо нет сигналов положения и команд движения
1 Закрыт Активен только сигнал закрытого положения
2 Закрывается Нет сигналов крайних положений; выдана команда закрытия
3 Открывается Нет сигналов крайних положений; выдана команда открытия
4 Открыт Активен только сигнал открытого положения

Сигналы крайних положений имеют приоритет при определении состояния. Например, после подачи команды открытия состояние остаётся «Закрыт», пока не снимется сигнал закрытого положения.

Наработка

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

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

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

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

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

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

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