VfdGroupEngineUnit — механизм с ПЧ в общей группе
VfdGroupEngineUnit управляет одним механизмом с ПЧ, который получает частоту от общего регулятора группы. Он подходит для однотипных механизмов, таких как насосы и вентиляторы. Узел запускает двигатель, контролирует его запуск и выдаёт задание ПЧ. Вручную оператор может запустить механизм и задать ему собственную частоту.
Общий регулятор и выбор рабочих агрегатов находятся в VfdGroupPidCascade. Добавьте один такой компонент на группу и по одному VfdGroupEngineUnit на каждый механизм. Для механизма с собственным регулятором используйте PidEngineUnit.
Как устроен узел
Все части внутри рамки уже входят в узел. Общие сигналы подключите через Parent. Сброс аварий и наработки выполняйте только через встроенный CascadeUnit. Общий регулятор находится в VfdGroupPidCascade; у этого насоса собственного PID нет.
Первое подключение
Заполняйте пример в таблице «Параметры» (Params) добавленного компонента. Как добавить компонент и где искать настройки.
Насос K31 занимает первое место в группе K3. Группа поддерживает давление по PT101. Её PID выдаёт частоту в диапазоне 0–50 Гц.
1. Свяжите насос с группой
| Параметр | Значение для примера | Назначение |
|---|---|---|
Id |
K31 |
ID насоса |
Comment |
Насос повышения давления 1 |
Название |
Parent |
CabinetController_Inst |
Управление шкафом |
GroupId |
K3 |
Откуда брать частоту |
StartCmd |
K3_Cascade_Inst.out_Unit1_bCmd |
Откуда брать команду пуска |
RegSensorError |
PT101_Sensor_Inst.out_bError |
Ошибка общего датчика |
EngState |
bK31Running |
Подтверждение от ПЧ |
EngStartOut |
qK31Start |
Выход пуска |
OutRaw |
qK31Frequency |
Аналоговый выход частоты |
OutRawMin |
0.0 |
Нижняя граница выходного канала |
OutRawMax |
27648.0 |
Верхняя граница выходного канала |
В VfdGroupPidCascade укажите UnitId1 = K31. GroupId сам не подключает насос к списку и не задаёт его команду пуска: нужны все три связи.
Имена сигналов ПЧ замените своими, шкалу аналогового выхода — шкалой своего модуля. Для дистанционного управления оставьте EngLocal = false, EngRemote = true.
2. Настройте контроль запуска
| Настройка | Значение для примера |
|---|---|
Conf.K31_Engine_bStateControlBypass |
false |
Conf.K31_Engine_diStateControlTime |
5 с |
Conf.K31_Engine_diStateConfirmTime |
3 с |
Канал 8 оставьте для RegSensorError. В RegSensorError укажите выход ошибки общего датчика. Одного GroupId для этой связи недостаточно. Один и тот же выход ошибки можно указать у всех насосов группы. У ненужных остальных аварийных и предупредительных каналов очистите ID.
Уставка давления и диапазон 0–50 Гц задаются в K3, а не отдельно для K31. Если группе не нужен контроль нагрузки, оставьте Power = 0.0. Если нужен — передайте, например, фактическую частоту ПЧ и задайте пороги группы в герцах.
3. Как это будет работать
Группа выбирает K31 и выдаёт ему команду. Узел запускает насос; после подтверждения работы на аналоговый выход поступает задание общего PID. При отключённом состоянии двигателя на выход идёт Conf.K3_PID_fOffValue.
Если ПЧ подтверждает работу только после появления частоты, учитывайте порядок: до подтверждения этот узел выдаёт значение выключенного состояния. Начальные условия запуска задаются в соответствии с возможностями привода.
Ручная работа одного насоса
В ручном режиме оператор отдельно задаёт пуск и частоту. Этот насос перестаёт быть доступным для автоматического выбора каскадом. Остальные насосы могут продолжать работать от группы.
В автоматическом режиме поле ручной частоты следует за заданием группы. При переходе в ручной оно сохраняет последнее значение; затем оператор может его изменить. При ручном останове насос получает fOffValue, а введённая ручная частота сохраняется для следующего пуска.
На выходе частота ограничивается полным диапазоном группы fYMin–fYMax. Автоматические рабочие пределы fYLoLimit–fYHiLimit не являются отдельными пределами ручного задания насоса.
Аварии и восстановление
Авария ПЧ, ошибка запуска и ошибка общего датчика через канал 8 останавливают насос. Экстренный останов и отсутствие питания также снимают пуск. Когда Engine перестаёт показывать работу, аналоговый выход выбирает fOffValue, в том числе при ручном управлении.
После устранения записанной аварии выполните сброс узла. Ошибка общего датчика может быть записана у нескольких насосов; общий сброс шкафа доходит до каждого из них.
Где находится ручное задание частоты
Ручная частота хранится в параметре K31_VFD_fManualValue проектного компонента MetaGen, в который добавлен насос. Поэтому имя в View содержит и имя этого проектного компонента. Например, если его экземпляр называется _14_HeatingPumps_Inst, полный тег — View._14_HeatingPumps_Inst_K31_VFD_fManualValue. Для своего проекта возьмите имя из сгенерированного View.
Состав узла
Эти части уже соединены внутри компонента; добавлять их повторно не нужно.
| Экземпляр для примера | Описание части | Для чего нужен |
|---|---|---|
K31_Flts_SgnlsFltr_Inst |
SignalsFilter | Обрабатывает аварийные причины. |
K31_Wrns_SgnlsFltr_Inst |
SignalsFilter | Обрабатывает предупреждения. |
K31_CascadeUnit_Inst |
CascadeUnit | Связывает механизм с группой и передаёт сбросы. |
K31_Engine_Inst |
Engine | Управляет двигателем и проверяет запуск. |
Аварии и предупреждения
Узел может обработать до восьми аварий и до восьми предупреждений. Для каждой причины есть свой канал. Аварии передаются в управление механизмом; предупреждения только сообщают о состоянии и сами его не останавливают.
Для каждого нужного канала укажите обозначение, понятное название и сигнал неисправности. Выберите, когда проверять сигнал и нужен ли сброс оператором. TRUE на входе означает неисправность; если контакт работает наоборот, используйте NOT. У ненужных каналов оставьте ID пустым. Если первый канал тоже не нужен, удалите его заготовки _ID_ и _DI_.
| Поля канала | Что указать |
|---|---|
FltIdN, WrnIdN |
ID причины: например, VFD_FAULT или SERVICE |
FltCommentN, WrnCommentN |
Понятное название причины |
FltInN, WrnInN |
Сигнал причины: TRUE — авария или предупреждение присутствует |
FltEnableN, WrnEnableN |
Когда проверять канал; для постоянного контроля — true |
FltAutoResetN, WrnAutoResetN |
false — сохранить до сброса; true — снять после исчезновения причины |
N — номер от 1 до 8; у аварийного канала 8 вместо FltIn8 используется RegSensorError. У обычного первого аварийного канала начальные значения: _ID_, авария, _DI_, true, false. У первого предупредительного: _ID_, предупреждение, _DI_, true, true. Остальные обычные каналы пустые; при добавлении заполните все пять полей.
Канал 8 — ошибка датчика регулирования
Восьмой аварийный канал уже выделен для сигнала RegSensorError. Оставьте его для этой задачи: при срабатывании останавливается этот насос. Разрешение общего регулятора задаётся отдельно в группе. Для остальных аварий используйте места 1–7.
| Параметр | По умолчанию | Назначение |
|---|---|---|
FltId8 |
REG_SENSOR_ERROR |
ID ошибки датчика. Пустой ID отключает этот канал. |
FltComment8 |
Ошибка датчика регулирования |
Название ошибки. |
RegSensorError |
false |
Явно укажите ошибку общего датчика. По GroupId она не подставляется. |
FltEnable8 |
Пусто | Пусто — проверять в автоматическом режиме механизма. Можно задать другое условие. |
FltAutoReset8 |
false |
По умолчанию ошибка сохраняется до сброса. |
Переход в ручной режим запрещает новое срабатывание этого канала при стандартном разрешении. Уже записанную аварию он не снимает: нужен сброс.
Задержка, шунт и сброс
Задержка отсекает кратковременный сигнал. Шунт исключает отдельный канал из проверки и сразу снимает его срабатывание. Сам механизм при этом может сохранять свою аварию до сброса.
При AutoReset = false сообщение остаётся после исчезновения неисправности. Оператор должен выполнить сброс. Он сработает, когда неисправность устранена или проверка канала запрещена. Одного снятия разрешения проверки для очистки такого сообщения недостаточно.
Сброс аварий выполняйте только через встроенный CascadeUnit: команда передаётся и фильтрам, и механизму. Через него же выполняется сброс наработки всего узла.
Например, для Id = K31, FltId1 = VFD_FAULT и WrnId1 = SERVICE создаются:
| Настройка | Тип | Начальное значение | Назначение |
|---|---|---|---|
Conf.K31_Flts_SgnlsFltr_VFD_FAULT_diDelay |
DINT |
0 |
Задержка срабатывания, с |
Conf.K31_Flts_SgnlsFltr_VFD_FAULT_bBypass |
BOOL |
false |
TRUE — шунт канала |
Conf.K31_Wrns_SgnlsFltr_SERVICE_diDelay |
DINT |
0 |
Задержка срабатывания, с |
Conf.K31_Wrns_SgnlsFltr_SERVICE_bBypass |
BOOL |
false |
TRUE — шунт канала |
У всех объявленных каналов создаётся такая пара настроек. В имени Conf используется ID причины, а в имени результата — номер места: например, K31_Flts_SgnlsFltr_Inst.out_Signal1_bQ. Один выход фильтра можно использовать в нескольких компонентах. Подробности — в SignalsFilter.
Индивидуальные и общие настройки
Чтобы у механизма были свои настройки, оставьте поля выбора общего набора пустыми. Если нескольким механизмам нужны одинаковые настройки, укажите в этих полях одно имя, например Common. Изменение общей настройки будет действовать на каждый из них. В таблице показано, какие настройки можно объединить.
| Поле Params | Раздел | Пример при пустом поле | Пример при значении Common |
|---|---|---|---|
EngConf |
Engine | Conf.K31_Engine_diStateControlTime |
Conf.Common_Engine_diStateControlTime |
OutConf |
OUT | Conf.K31_OUT_fRawMin |
Conf.Common_OUT_fRawMin |
Шунт подтверждения двигателя всегда индивидуальный: Conf.K31_Engine_bStateControlBypass. Его имя и комментарий относятся к конкретному двигателю, даже при общем EngConf.
Настройки каналов аварий и предупреждений, ручные команды и состояния также остаются у каждого узла свои.
Параметры компонента — Params
Поля аварийных и предупредительных каналов приведены в разделе «Аварии и предупреждения».
| Параметр | По умолчанию | Назначение |
|---|---|---|
Id |
_ID_ |
ID узла. По нему создаются имена его состояний, команд и индивидуальных настроек. |
Comment |
Комментарий |
Название конкретного насоса, клапана или группы. |
Parent |
CabinetController_Inst |
Компонент общего управления шкафом. Передаёт питание, экстренный останов и сбросы. |
StartCmd |
false |
Команда автоматической работы узла: TRUE — работать, FALSE — остановить. Смысл для данного узла показан в примере выше. |
EStopExtra |
false |
Дополнительный экстренный останов этого двигателя; TRUE запрещает работу. |
$CasUnit |
Элемент каскада |
Название раздела параметров; также используется в комментариях. |
Power |
0.0 |
Мощность или частота для каскада. Если контроль нагрузки не нужен, оставьте 0.0. |
$Eng |
Двигатель |
Название раздела параметров; также используется в комментариях. |
EngConf |
Пусто | ID набора настроек этого раздела. Пусто — использовать Id узла; одинаковый ID — общие настройки. |
EngConfComment |
Пусто | Название набора настроек. При пустом поле используется название узла и, где предусмотрено, раздела. |
EngLocal |
false |
Признак местного управления двигателем. Имеет приоритет над дистанционным. |
EngLocalControlByPLC |
false |
FALSE — в местном режиме Engine следует за фактической работой. TRUE — использует команды пуска и останова; отдельные местные кнопки в Units не подключены. |
EngRemote |
true |
Разрешение дистанционного управления. При TRUE доступны автоматический и ручной режимы. |
EngState |
false |
Подтверждение работы двигателя от контактора или ПЧ. |
EngStartOut |
_DO_ |
Выход команды пуска двигателя. |
$GroupPID |
Групповой регулятор |
Название раздела параметров; также используется в комментариях. |
GroupId |
_ID_ |
ID группы VfdGroupPidCascade, от которой насос получает общее задание частоты. |
$Out |
Аналоговый выход |
Название раздела параметров; также используется в комментариях. |
OutConf |
Пусто | ID набора настроек этого раздела. Пусто — использовать Id узла; одинаковый ID — общие настройки. |
OutConfComment |
Пусто | Название набора настроек. При пустом поле используется название узла и, где предусмотрено, раздела. |
OutRaw |
_AO_ |
Переменная аналогового выхода, куда записывается задание после пересчёта шкалы. |
OutRawMin |
ADC_4_IN_0_20 |
Начальное значение нижней границы шкалы аналогового выхода. Задайте по настройке модуля. |
OutRawMax |
ADC_MAX_VALUE |
Начальное значение верхней границы шкалы аналогового выхода. Задайте по настройке модуля. |
$Flts |
Аварии |
Название раздела параметров; также используется в комментариях. |
FltComment |
аварии |
Общее название группы аварий в комментариях каналов. |
RegSensorError |
false |
Ошибка общего датчика регулирования. Подключается явно; GroupId не определяет этот сигнал. |
$Wrns |
Предупреждения |
Название раздела параметров; также используется в комментариях. |
WrnComment |
предупреждения |
Общее название группы предупреждений в комментариях каналов. |
Настройки во время работы — Conf
Полные имена приведены для Id = K31 и пустых полей выбора общих настроек. В таблице указаны начальные значения. Для примера выше задайте значения из шагов подключения.
| Настройка | Тип | Начальное значение | Единицы | Назначение |
|---|---|---|---|---|
Conf.K31_Engine_diStateControlTime |
DINT |
1 |
с | Допустимое отсутствие сигнала работы при запуске, во время работы и задержки останова. |
Conf.K31_Engine_diStateConfirmTime |
DINT |
3 |
с | Сколько должен непрерывно присутствовать сигнал работы для подтверждения запуска. 0 отключает это ожидание. |
Conf.K31_Engine_diStartDelayTime |
DINT |
1 |
с | Пауза перед пуском в автоматическом режиме. |
Conf.K31_Engine_diStopDelayTime |
DINT |
1 |
с | Пауза перед штатным остановом в автоматическом режиме. |
Conf.K31_Engine_bStateControlBypass |
BOOL |
true |
— | TRUE — не проверять подтверждение работы. Настройка индивидуальная. |
Conf.K31_OUT_fRawMin |
REAL |
ADC_4_IN_0_20 |
raw | Значение выходного модуля для минимального задания. |
Conf.K31_OUT_fRawMax |
REAL |
ADC_MAX_VALUE |
raw | Значение выходного модуля для максимального задания. |
Команды оператора — View
| Тег | Тип | Действие |
|---|---|---|
View.K31_CascadeUnit_Inst_inout_bFaultReset |
BOOL |
Сброс аварий всего узла, включая фильтры: установить TRUE. |
View.K31_CascadeUnit_Inst_inout_bWorktimeReset |
BOOL |
Сброс наработки: установить TRUE; команда сбрасывается после обработки. |
View._14_HeatingPumps_Inst_K31_VFD_fManualValue |
REAL |
Индивидуальная ручная частота; пример для проектного блока _14_HeatingPumps_Inst. |
View.K31_Engine_Inst_inout_iRemoteMode |
INT |
Выбор режима: 2 — ручной, 3 — автоматический. |
View.K31_Engine_Inst_inout_bStart |
BOOL |
Ручной пуск: установить TRUE. |
View.K31_Engine_Inst_inout_bStop |
BOOL |
Ручной останов: установить TRUE. |
Состояния и результаты для программы
| Поле экземпляра | Тип | Назначение |
|---|---|---|
K31_Engine_Inst.out_iMode |
INT |
Режим: 0 — отключён, 1 — местный, 2 — ручной, 3 — автоматический. |
K31_Engine_Inst.out_bEnableAutoControl |
BOOL |
Механизм доступен для автоматического управления. |
K31_Engine_Inst.out_bBlocked |
BOOL |
Обычное управление заблокировано. |
K31_Engine_Inst.out_bFault |
BOOL |
Зафиксированная авария механизма. |
K31_Engine_Inst.out_diWorktime |
DINT |
Наработка, ч. |
K31_Engine_Inst.out_bState |
BOOL |
Работа двигателя; при включённом шунте определяется без обратной связи. |
K31_CascadeUnit_Inst.out_bEnable |
BOOL |
Узел доступен группе. |
K31_CascadeUnit_Inst.out_bState |
BOOL |
Состояние работы, передаваемое группе; смысл описан выше. |
K31_Flts_SgnlsFltr_Inst.out_bQ |
BOOL |
Есть хотя бы одна сработавшая аварийная причина. |
K31_Wrns_SgnlsFltr_Inst.out_bQ |
BOOL |
Есть хотя бы одно предупреждение. |
K31_Flts_SgnlsFltr_Inst.out_Signal1_bQ |
BOOL |
Результат аварийного канала 1; для других каналов Signal2 … Signal8. |
K31_Wrns_SgnlsFltr_Inst.out_Signal1_bQ |
BOOL |
Результат предупредительного канала 1; для других каналов Signal2 … Signal8. |