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

ControlValve — клапан с аналоговым управлением

ControlValve управляет клапаном, положение которого задаётся числом — например, от 0 до 100 %. В автоматическом режиме положение задаёт программа, в ручном — оператор. Компонент переводит это число в сигнал аналогового выхода и учитывает аварии.

Выберите ControlValve, если нужное положение клапана уже рассчитывается в программе. Для поддержания температуры или давления самим клапаном есть готовый PidCtrlValveUnit с ПИД-регулятором. Если у привода две команды «Открыть» и «Закрыть», используйте Valve.

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

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

Положение рассчитывается в программе и поступает в ControlValve готовым числом. Внутри находятся два блока управления и функция пересчёта шкалы.

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

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

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

Рассмотрим регулирующий клапан подпитки CV101. Алгоритм проекта задаёт требуемое положение от 0 до 100 %. Оператору нужно выбирать ручной режим и вводить положение самостоятельно.

1. Укажите команду, положение и выход

Сигнал Назначение
bMakeupDemand TRUE — подпитка нужна, FALSE — передать положение при выключении
fMakeupPosition Требуемое положение в автоматическом режиме, %
AO_CV101 Переменная REAL для записи задания в кодах аналогового канала

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

2. Заполните основные параметры

Параметр Значение для примера
CtrlValId CV101
CtrlValComment Клапан подпитки
CtrlValParent CabinetController_Inst
CtrlValStartCmd bMakeupDemand
CtrlValValue fMakeupPosition
OutRaw AO_CV101

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

3. Проверьте диапазон задания и выходную шкалу

Настройка Значение для примера
Conf.CV101_ControlValue_fYMin 0.0 %
Conf.CV101_ControlValue_fYMax 100.0 %
Conf.CV101_ControlValue_fOffValue 0.0 %
Conf.CV101_OUT_fRawMin Код аналогового канала для 0 %
Conf.CV101_OUT_fRawMax Код аналогового канала для 100 %

OutRawMin и OutRawMax задают начальные границы аналогового канала. По умолчанию используются ADC_4_IN_0_20 и ADC_MAX_VALUE. Укажите значения, которые соответствуют настройке вашего модуля.

В этом примере 0 % закрывает клапан, поэтому значение при выключении fOffValue равно 0. Для другого привода укажите число, которое переводит его в требуемое положение при останове.

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

При исправном приводе и наличии питания:

  1. В автоматическом режиме bMakeupDemand = TRUE разрешает передачу fMakeupPosition на выход.
  2. Задание ограничивается диапазоном 0–100 % и преобразуется в код аналогового канала.
  3. При снятии bMakeupDemand на выход передаётся fOffValue.
  4. В ручном режиме положение задаёт оператор, независимо от bMakeupDemand.

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

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

Режим Как выбирается Как формируется задание
Отключён CtrlValLocal = FALSE, CtrlValRemote = FALSE Используется fOffValue
Местный CtrlValLocal = TRUE На выходе компонента — fOffValue; местное управление обеспечивается электрической схемой привода
Ручной Дистанционное управление; оператор выбрал 2 Используется ручное задание оператора
Автоматический Дистанционное управление; оператор выбрал 3 При CtrlValStartCmd = TRUE используется CtrlValValue, иначе — fOffValue

Местный режим имеет приоритет над дистанционным. В ручном режиме компонент автоматически разрешает ввод положения: отдельная команда пуска от оператора не требуется.

При переходе в ручной режим оператор видит текущее задание клапана и может изменить его. При возврате в автоматический режим сразу используется положение из CtrlValValue; отдельного плавного перехода нет.

Аварии и отключение

Условие Автоматический режим Ручной режим
Снята команда CtrlValStartCmd На выход передаётся fOffValue Продолжает действовать ручное задание
Экстренный останов родительского компонента На выход принудительно передаётся fOffValue На выход принудительно передаётся fOffValue
Нет питания по сигналу родительского компонента На выход принудительно передаётся fOffValue На выход принудительно передаётся fOffValue
CtrlValEStopExtra = TRUE На выход принудительно передаётся fOffValue На выход принудительно передаётся fOffValue
Зафиксирована внешняя авария CtrlValExtFault На выход принудительно передаётся fOffValue до сброса аварии На выход принудительно передаётся fOffValue до сброса аварии

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

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

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

Обозначение и управление

Параметр По умолчанию Назначение
$CtrlVal Регулирующий клапан Название группы параметров
CtrlValId _ID_ ID клапана. Для CV101 создаются экземпляры CV101_CtrlValve_Inst и CV101_ControlValue_Inst
CtrlValComment Комментарий Название оборудования
CtrlValParent CabinetController_Inst Родительский компонент: наличие питания, экстренный останов, сброс аварий и наработки
CtrlValStartCmd false Логическое разрешение работы в автоматическом режиме
CtrlValValue 0.0 Автоматическое задание REAL в единицах управляющего воздействия
CtrlValEStopExtra false Дополнительный экстренный останов, логический сигнал или выражение
CtrlValLocal false Выбор местного режима
CtrlValRemote true Выбор дистанционного управления
CtrlValExtFault false Внешняя авария привода или процесса

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

Задание положения

Параметр По умолчанию Назначение
$CtrlValue Управляющее воздействие Название группы параметров задания
CtrlValueConf Пусто ID набора настроек задания. Если пусто, используется CtrlValId
CtrlValueConfComment Пусто Название набора настроек. Если пусто, комментарий составляется из CtrlValComment и $CtrlValue

Аналоговый выход

Параметр По умолчанию Назначение
$Out Аналоговый выход Название группы параметров выхода
OutConf Пусто ID набора настроек шкалы выхода. Если пусто, используется CtrlValId
OutConfComment Пусто Название настроек выхода. Если пусто, комментарий составляется из CtrlValComment и $Out
OutRaw _AO_ Переменная REAL для записи задания в кодах аналогового канала
OutRawMin ADC_4_IN_0_20 Начальное значение нижней границы шкалы аналогового канала
OutRawMax ADC_MAX_VALUE Начальное значение верхней границы шкалы аналогового канала

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

Полные имена приведены для CtrlValId = CV101, пустых CtrlValueConf и OutConf.

Настройка Тип Начальное значение Назначение
Conf.CV101_ControlValue_fYMin REAL 0.0 Нижняя граница задания
Conf.CV101_ControlValue_fYMax REAL 100.0 Верхняя граница задания
Conf.CV101_ControlValue_fOffValue REAL 0.0 Задание в выключенном состоянии, при внешней аварии и экстренном останове
Conf.CV101_OUT_fRawMin REAL Из OutRawMin Код аналогового канала для нижней границы задания
Conf.CV101_OUT_fRawMax REAL Из OutRawMax Код аналогового канала для верхней границы задания

Автоматическое и ручное задания ограничиваются диапазоном fYMin…fYMax. Нижнюю границу задавайте меньше верхней, значение останова выбирайте внутри этого диапазона.

Для общих настроек нескольких клапанов задайте одинаковый CtrlValueConf; для общей шкалы выхода — одинаковый OutConf. Например, при CtrlValueConf = Makeup и OutConf = AO420 значение останова называется Conf.Makeup_ControlValue_fOffValue, нижняя граница канала — Conf.AO420_OUT_fRawMin. Ручные задания клапанов остаются отдельными.

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

Переменная Тип Действие
View.CV101_CtrlValve_Inst_inout_iRemoteMode INT Выбор режима: 2 — ручной, 3 — автоматический
View.CV101_ControlValue_Inst_inout_fYManual REAL Ручное задание в единицах управляющего воздействия
View.CV101_CtrlValve_Inst_inout_bFaultReset BOOL Установить TRUE для сброса внешней аварии; компонент снимает команду после обработки
View.CV101_CtrlValve_Inst_inout_bWorktimeReset BOOL Установить TRUE для сброса наработки; компонент снимает команду после обработки

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

Следующие поля компонент формирует самостоятельно:

Переменная Тип Назначение
View.CV101_CtrlValve_Inst_inout_bStart BOOL Разрешение работы в ручном режиме, связанное с выбором режима
View.CV101_ControlValue_Inst_inout_bYManual BOOL Выбор ручного задания, связанный с ручным режимом клапана

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

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

Результат для примера Тип Назначение
CV101_CtrlValve_Inst.out_iMode INT 0 — отключён, 1 — местный, 2 — ручной, 3 — автоматический
CV101_CtrlValve_Inst.out_bState BOOL Состояние клапана: включён или выключен
CV101_CtrlValve_Inst.out_bStart BOOL Внутреннее разрешение работы; совпадает с out_bState
CV101_CtrlValve_Inst.out_bExternalFault BOOL Зафиксирована внешняя авария
CV101_CtrlValve_Inst.out_bBlocked BOOL Есть внешняя авария или экстренный останов
CV101_CtrlValve_Inst.out_bEnableAutoControl BOOL Выбран автоматический режим и нет блокировок
CV101_CtrlValve_Inst.out_diWorktime DINT Время включённого состояния, в целых часах
CV101_ControlValue_Inst.out_fY REAL Выбранное автоматическое или ручное задание до принудительной подстановки значения при внешней аварии или экстренном останове
AO_CV101 REAL Итоговое задание в кодах аналогового канала, с учётом внешней аварии и экстренного останова

Входы экземпляра CV101_CtrlValve_Inst.in_bStateOpen и CV101_CtrlValve_Inst.in_bStateClose не участвуют в алгоритме этого компонента. Для них нет параметров подключения концевых выключателей в Params.

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

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

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

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

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

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