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

VfdGroupPidCascade — группа агрегатов с общим регулятором

VfdGroupPidCascade выбирает рабочие агрегаты и рассчитывает для них общее задание частоты. Компонент предназначен для группы однотипных агрегатов с ПЧ, таких как насосы и вентиляторы. Если одного агрегата не хватает, каскад добавляет следующий. При аварии выбирает исправный резерв, а по наработке чередует оборудование.

Для каждого агрегата нужен VfdGroupEngineUnit: он управляет своим ПЧ и контролирует запуск. Этот компонент отвечает за группу целиком. Если общего регулирования частоты нет, достаточно Cascade.

Как устроен узел

VfdGroupPidCascade: Каждым насосом управляет отдельный VfdGroupEngineUnit. Группа выбирает насосы и задаёт им частоту; сброс аварий и наработки насоса выполняется через его CascadeUnit.
В рамке — состав компонента, снаружи — подключения проекта. Нажмите на схему, чтобы открыть её крупнее.

Каждым насосом управляет отдельный VfdGroupEngineUnit. Группа выбирает насосы и задаёт им частоту; сброс аварий и наработки насоса выполняется через его CascadeUnit.

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

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

В группе K3 два насоса — K31 и K32. Один работает, второй в резерве; нужно поддерживать давление 4,5 бар. Sensor PT101 уже настроен в барах.

1. Подключите группу

Параметр Значение для примера
Id K3
Comment Группа насосов повышения давления
Parent CabinetController_Inst
Enable bPressureDemand
CasPV PT101_SensFilter_Inst.out_fY
CasPVErr PT101_Sensor_Inst.out_bError
UnitId1 K31
UnitId2 K32
UnitId3 — UnitId16 Пусто

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

2. Подключите два насоса

Параметр VfdGroupEngineUnit Насос K31 Насос K32
Id K31 K32
GroupId K3 K3
StartCmd K3_Cascade_Inst.out_Unit1_bCmd K3_Cascade_Inst.out_Unit2_bCmd
RegSensorError PT101_Sensor_Inst.out_bError PT101_Sensor_Inst.out_bError
Parent CabinetController_Inst CabinetController_Inst

Каждому насосу задайте свои подтверждение работы, пусковой и аналоговый выходы по руководству VfdGroupEngineUnit. У всех ПЧ частота должна использовать одинаковые единицы. Состояние насоса возвращается в каскад через встроенный CascadeUnit.

3. Настройте один рабочий насос

Настройка Значение для примера Назначение
Conf.K3_Cascade_iWorkCount 1 Минимум один насос
Conf.K3_Cascade_iMaxWorkCount 1 Не включать второй для увеличения подачи
Conf.K3_Cascade_bPowerControlEnable false Пока не учитывать нагрузку при выборе количества
Conf.K3_PID_fSP 4.5 Требуемое давление, бар
Conf.K3_PID_fDB 0.2 Зона без изменения частоты, бар
Conf.K3_PID_fYMin / Conf.K3_PID_fYMax 0.0 / 50.0 Полный диапазон частоты, Гц
Conf.K3_PID_fYLoLimit / Conf.K3_PID_fYHiLimit 20.0 / 50.0 Рабочие пределы автоматического регулирования, Гц
Conf.K3_PID_fOffValue 0.0 Частота выключенного насоса, Гц

Коэффициенты и период PID подберите по реакции системы, как описано в PID. При положительном Kp снижение давления увеличивает частоту.

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

При включении группы каскад выберет доступный насос с меньшей наработкой и сразу выдаст ему пуск. Второй останется в резерве. Общий PID начнёт расчёт после появления хотя бы одной команды подключения; фактическую работу двигателя проверяет его VfdGroupEngineUnit.

Если рабочий насос сообщит об аварии или станет недоступен, каскад выберет готовый резерв. В автоматическом режиме все включённые насосы получают одинаковое задание общего PID.

Если одного насоса недостаточно

Разрешите максимум два насоса и задайте пороги изменения количества:

Настройка Значение для примера
Conf.K3_Cascade_iWorkCount 1
Conf.K3_Cascade_iMaxWorkCount 2
Conf.K3_Cascade_fSP 4.5 бар
Conf.K3_Cascade_fHys 0.2 бар
Conf.K3_Cascade_diConnectionDelay 10 с
Conf.K3_Cascade_diDisconnectionDelay 10 с

Давление ниже 4,3 бар в течение 10 секунд добавит второй насос. Давление выше 4,7 бар в течение 10 секунд позволит отключить один, сохранив минимум. Между порогами количество не меняется, если оно уже находится в заданных пределах.

У группы две отдельные уставки. PID_fSP задаёт давление, которое поддерживается изменением частоты. Cascade_fSP задаёт середину порогов добавления и отключения насосов. Автоматически друг за другом они не следуют; в примере обе равны 4,5 бар.

Количество выбирается по давлению и допустимому диапазону. Дополнительно можно учитывать частоту: передайте её через Power насосов, включите bPowerControlEnable и задайте пределы в герцах. Тогда обычное добавление разрешается только при высокой нагрузке основного насоса, а отключение — при низкой. Первый пуск и быстрая замена потерянного основного насоса выполняются без ожидания мощности.

Резерв и чередование

Каскад выбирает свободный готовый насос с меньшей наработкой. При равных часах предпочтение получает более раннее место списка. Основным становится последний подключённый насос; при уменьшении количества первым снимается он.

Через diSwitchPeriod часов сравнивается наработка с резервом. При подходящем резерве выполняется смена. Значение 0 отключает периодическое чередование. Общий сброс наработки от родителя начинает отсчёт заново.

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

Останов, ошибка датчика и ручное управление

При Enable = FALSE или CasPVErr = TRUE все команды каскада снимаются. В автоматическом режиме PID выдаёт fOffValue. После восстановления разрешения и исправности измерения каскад снова может выбрать доступные насосы.

Чтобы ошибка общего датчика фиксировалась в каждом насосе до сброса, подключите тот же сигнал к RegSensorError каждого VfdGroupEngineUnit. У группы нет собственного фильтра с запоминанием ошибки: CasPVErr действует, пока сигнал TRUE.

Отдельный насос в ручном режиме управляется своими пуском и частотой. Отключение Enable группы не является командой ручного останова этого насоса.

У общего PID также есть ручной режим выхода. Он задаёт одну частоту всем насосам, которые работают от группы автоматически. Сам каскад при этом продолжает выбирать количество по давлению. Ручное значение PID сохраняется и при снятом его разрешении, но команды каскада при останове группы снимаются.

Какие значения смотреть

out_iConnectedCount показывает число выданных команд пуска. out_iWorkingCount — число насосов, уже подтвердивших работу, включая ручные. Они могут различаться, например во время запуска. Минимум и максимум ограничивают число команд каскада.

Результат общего регулятора — K3_PID_Inst.out_fYS. Выход out_fY является отдельным результатом расчёта коррекции; насосы получают именно out_fYS.

Общие настройки

Через CasConf можно использовать общие настройки выбора количества и чередования для нескольких групп. Настройки PID этой группы всегда имеют её Id: например, Conf.K3_PID_fSP. Отдельного PIDConf у VfdGroupPidCascade нет.

Состав узла

Эти части уже соединены внутри компонента; добавлять их повторно не нужно.

Экземпляр для примера Описание части Для чего нужен
K3_Cascade_Inst Cascade Выбирает рабочие и резервные агрегаты.
K3_PID_Inst PID Рассчитывает числовое задание по измерению.

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

Параметр По умолчанию Назначение
Id _ID_ ID узла. По нему создаются имена его состояний, команд и индивидуальных настроек.
Comment Комментарий Название конкретного насоса, клапана или группы.
Parent CabinetController_Inst Источник out_bWorktimeReset: сбрасывает период чередования и историю расчёта PID. Питание и экстренный останов насосы получают через своих родителей.
CasPV 0.0 Измерение общего датчика: например, давление после насосов.
CasPVErr FALSE Ошибка общего измерения. TRUE снимает команды каскада и разрешение автоматического ПИД-регулирования.
Enable true Включение автоматической работы всей группы.
$Cas Каскад Название раздела параметров; также используется в комментариях.
CasConf Пусто ID набора настроек этого раздела. Пусто — использовать Id узла; одинаковый ID — общие настройки.
CasConfComment Пусто Название набора настроек. При пустом поле используется название узла и, где предусмотрено, раздела.
UnitId1 _ID_ ID насоса на месте 1. Пусто — место не используется.
UnitId2 Пусто ID насоса на месте 2. Пусто — место не используется.
UnitId3 Пусто ID насоса на месте 3. Пусто — место не используется.
UnitId4 Пусто ID насоса на месте 4. Пусто — место не используется.
UnitId5 Пусто ID насоса на месте 5. Пусто — место не используется.
UnitId6 Пусто ID насоса на месте 6. Пусто — место не используется.
UnitId7 Пусто ID насоса на месте 7. Пусто — место не используется.
UnitId8 Пусто ID насоса на месте 8. Пусто — место не используется.
UnitId9 Пусто ID насоса на месте 9. Пусто — место не используется.
UnitId10 Пусто ID насоса на месте 10. Пусто — место не используется.
UnitId11 Пусто ID насоса на месте 11. Пусто — место не используется.
UnitId12 Пусто ID насоса на месте 12. Пусто — место не используется.
UnitId13 Пусто ID насоса на месте 13. Пусто — место не используется.
UnitId14 Пусто ID насоса на месте 14. Пусто — место не используется.
UnitId15 Пусто ID насоса на месте 15. Пусто — место не используется.
UnitId16 Пусто ID насоса на месте 16. Пусто — место не используется.
$PID Регулятор Название раздела параметров; также используется в комментариях.

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

Полные имена приведены для Id = K3 и пустых полей выбора общих настроек. В таблице указаны начальные значения. Для примера выше задайте значения из шагов подключения.

Настройка Тип Начальное значение Единицы Назначение
Conf.K3_Cascade_iWorkCount INT 1 шт. Минимальное число насосов, которым каскад выдаёт команду.
Conf.K3_Cascade_iMaxWorkCount INT 1 шт. Максимальное число насосов, которым каскад выдаёт команду.
Conf.K3_Cascade_fSP REAL 0.0 ед. измерения Уставка для добавления и отключения насосов; задаётся отдельно от уставки PID.
Conf.K3_Cascade_fHys REAL 0.0 ед. измерения Расстояние от уставки до каждого порога переключения.
Conf.K3_Cascade_diConnectionDelay DINT 1 с Задержка обычного добавления насоса.
Conf.K3_Cascade_diDisconnectionDelay DINT 1 с Задержка обычного отключения насоса.
Conf.K3_Cascade_bPowerControlEnable BOOL false — Дополнительно учитывать нагрузку основного насоса при изменении количества.
Conf.K3_Cascade_fPowerLoLimit REAL 0.0 ед. Power Нижний порог нагрузки для отключения основного насоса.
Conf.K3_Cascade_fPowerHiLimit REAL 0.0 ед. Power Верхний порог нагрузки для подключения следующего насоса.
Conf.K3_Cascade_diSwitchPeriod DINT 36 ч Период сравнения наработки для чередования. 0 отключает чередование.
Conf.K3_PID_fSP REAL 0.0 ед. измерения Значение, которое нужно поддерживать.
Conf.K3_PID_fDB REAL 0.0 ед. измерения Полная ширина зоны около уставки, внутри которой регулятор не меняет задание.
Conf.K3_PID_fSR REAL 3.0 с Период расчёта, с; должен быть больше нуля.
Conf.K3_PID_fKp REAL 1.0 — Сила реакции регулятора на отклонение. Знак определяет направление регулирования.
Conf.K3_PID_fTi REAL 0.0 с Параметр усиления реакции на сохраняющееся отклонение. 0 отключает эту составляющую.
Conf.K3_PID_fTd REAL 0.0 с Реакция на изменение отклонения. 0 отключает эту составляющую.
Conf.K3_PID_fYMin REAL 0.0 ед. задания Нижняя граница задания; соответствует нижней границе аналогового выхода.
Conf.K3_PID_fYMax REAL 100.0 ед. задания Верхняя граница задания; соответствует верхней границе аналогового выхода.
Conf.K3_PID_fYLoLimit REAL 0.0 ед. задания Нижний предел задания при автоматическом регулировании.
Conf.K3_PID_fYHiLimit REAL 100.0 ед. задания Верхний предел задания при автоматическом регулировании.
Conf.K3_PID_fOffValue REAL 0.0 ед. задания Задание при отключённом автоматическом регулировании. Особенности ручного режима описаны выше.

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

Тег Тип Действие
View.K3_PID_Inst_inout_bYManual BOOL TRUE — ручное задание, FALSE — автоматическое.
View.K3_PID_Inst_inout_fYManual REAL Задание оператора в единицах выхода: например, % или Гц.

Состояния и результаты для программы

Поле экземпляра Тип Назначение
K3_Cascade_Inst.out_Unit1_bCmd BOOL Команда насосу на месте UnitId1; остальные места — out_Unit2_bCmd … out_Unit16_bCmd.
K3_Cascade_Inst.out_Unit1_bMaster BOOL Насос на месте 1 выбран основным; такие же признаки есть для мест 2–16.
K3_Cascade_Inst.out_iConnectedCount INT Количество выданных команд пуска.
K3_Cascade_Inst.out_iWorkingCount INT Количество насосов с подтверждением работы.
K3_Cascade_Inst.out_iReadyCount INT Количество доступных исправных насосов.
K3_Cascade_Inst.out_iCurMaster INT Индекс основного: 0 — место 1, 1 — место 2; −1 — не выбран.
K3_Cascade_Inst.out_iMinWorkTime INT Индекс свободного готового насоса с меньшей наработкой, кроме основного; −1 — нет.
K3_Cascade_Inst.out_iMaxWorkTime INT Индекс подключённого готового насоса с большей наработкой, кроме основного; −1 — нет.
K3_PID_Inst.out_fYS REAL Итоговое задание PID в единицах выхода.
K3_PID_Inst.out_fY REAL Отдельный результат расчёта коррекции; для задания оборудованию используется out_fYS.