Valve — управление клапаном
Valve открывает и закрывает клапан или задвижку с двумя командами движения. Он позволяет управлять приводом автоматически и вручную, проверяет достижение открытого и закрытого положений и сообщает, если движение заняло слишком много времени.
Для подключения такого привода используйте Valve. Если вместе с ним нужны каналы аварий и подключение к группе оборудования, выберите готовый ValveUnit.
Состав и связи
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. Как это будет работать
В автоматическом режиме при наличии питания и отсутствии блокировок:
- Появление
bWaterDemandвключает открытие клапана. - При появлении
DI_V101_bOpenкоманда открытия снимается. - Снятие
bWaterDemandзадаёт закрытие. Перед сменой направления компонент выдерживает задержку реверса. - При появлении
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 не создаются.