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

PiddEngineUnit — двигатель с командами «больше/меньше»

PiddEngineUnit запускает двигатель и регулирует процесс двумя дискретными командами: увеличить и уменьшить. Он подходит оборудованию, у которого есть отдельный вход пуска и входы изменения скорости или мощности. Числового аналогового задания узел не выдаёт.

Если ПЧ принимает частоту аналоговым сигналом, выбирайте PidEngineUnit. Если нужен только пуск и останов, достаточно EngineUnit.

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

PiddEngineUnit: Все части внутри рамки уже входят в узел. Общие сигналы подключите через Parent. Сброс аварий и наработки выполняйте только через встроенный CascadeUnit. Sensor добавляется отдельно; укажите его ID в SensId.
В рамке — состав компонента, снаружи — подключения проекта. Нажмите на схему, чтобы открыть её крупнее.

Все части внутри рамки уже входят в узел. Общие сигналы подключите через Parent. Сброс аварий и наработки выполняйте только через встроенный CascadeUnit. Sensor добавляется отдельно; укажите его ID в SensId.

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

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

Вентилятор K31 поддерживает давление по PT101. Его привод принимает «пуск», «увеличить» и «уменьшить». Sensor PT101 настроен в паскалях. Зададим уставку 300 Па.

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

Параметр Значение для примера
Id K31
Comment Вентилятор поддержания давления
Parent CabinetController_Inst
StartCmd bVentilationDemand
EngState bK31Running
EngStartOut qK31Start
SensId PT101
PIDDUpOut qK31Increase
PIDDDownOut qK31Decrease

bVentilationDemand — команда вентиляции, остальные имена — сигналы вашего привода. Замените их именами переменных своего проекта. Оставьте EngLocal = false, EngRemote = true, если местное управление не нужно.

Ошибка PT101 уже предусмотрена в аварийном канале 8. Неиспользуемые обычные каналы отключите пустыми ID.

2. Настройте контроль и уставку

Настройка Значение для примера
Conf.K31_Engine_bStateControlBypass false
Conf.K31_Engine_diStateControlTime 5 с
Conf.K31_PIDD_fSP 300.0 Па
Conf.K31_PIDD_fDB 20.0 Па
Conf.K31_PIDD_fSR 3.0 с

При положительном Kp низкое давление вызывает команду увеличения, высокое — уменьшения. Kp, Ti и Td подберите по реакции оборудования. В PIDD показано, как длительность импульсов зависит от расчёта регулятора.

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

После команды вентиляции узел выдаёт пуск и ждёт подтверждения работы. В автоматическом режиме работающего двигателя регулятор подаёт импульсы увеличения или уменьшения. Вблизи уставки корректирующие команды прекращаются.

При снятии запроса двигатель останавливается. Узел снимает выходы «больше/меньше», но не выдаёт отдельную команду вернуть скорость или мощность к нулю. Начальное задание и поведение после останова определяются самим приводом.

Ручное управление

С панели доступны ручной пуск и останов двигателя. Регулятор в этом режиме не выдаёт импульсы. Отдельных ручных команд «больше/меньше» в PiddEngineUnit нет. Если они нужны оператору, их следует предусмотреть в управлении самим приводом.

Аварии и подтверждение запуска

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

Канал 8 контролирует ошибку Sensor в автоматическом режиме. Его срабатывание останавливает двигатель и импульсное регулирование. После восстановления датчика сбросьте узел через CascadeUnit.

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

Участие в группе

CascadeUnit уже встроен. Чтобы группа выбирала этот агрегат, укажите его ID в Cascade и передайте соответствующую команду группы в StartCmd. Значение Power может сообщать группе фактическую нагрузку, если она нужна для выбора числа агрегатов.

Состав узла

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

Экземпляр для примера Описание части Для чего нужен
K31_Flts_SgnlsFltr_Inst SignalsFilter Обрабатывает аварийные причины.
K31_Wrns_SgnlsFltr_Inst SignalsFilter Обрабатывает предупреждения.
K31_CascadeUnit_Inst CascadeUnit Связывает механизм с группой и передаёт сбросы.
K31_Engine_Inst Engine Управляет двигателем и проверяет запуск.
K31_PIDD_Inst PIDD Рассчитывает импульсы увеличения и уменьшения.

Аварии и предупреждения

Узел может обработать до восьми аварий и до восьми предупреждений. Для каждой причины есть свой канал. Аварии передаются в управление механизмом; предупреждения только сообщают о состоянии и сами его не останавливают.

Для каждого нужного канала укажите обозначение, понятное название и сигнал неисправности. Выберите, когда проверять сигнал и нужен ли сброс оператором. 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. У обычного первого аварийного канала начальные значения: _ID_, авария, _DI_, true, false. У первого предупредительного: _ID_, предупреждение, _DI_, true, true. Остальные обычные каналы пустые; при добавлении заполните все пять полей.

Канал 8 — ошибка датчика регулирования

Восьмой аварийный канал уже выделен для ошибки Sensor, указанного в SensId. Оставьте его для этой задачи: от него также зависит работа регулятора. Для остальных аварий используйте места 1–7.

Параметр По умолчанию Назначение
FltId8 REG_SENSOR_ERROR ID ошибки датчика. Пустой ID отключает этот канал.
FltComment8 Ошибка датчика регулирования Название ошибки.
FltIn8 Пусто Пусто — автоматически взять SensId_Sensor_Inst.out_bError. Можно указать другой сигнал ошибки.
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
PIDDConf PIDD Conf.K31_PIDD_fSP Conf.Common_PIDD_fSP

Шунт подтверждения двигателя всегда индивидуальный: 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_START_ Выход команды пуска двигателя.
$PIDD Регулятор Название раздела параметров; также используется в комментариях.
PIDDConf Пусто ID набора настроек этого раздела. Пусто — использовать Id узла; одинаковый ID — общие настройки.
PIDDConfComment Пусто Название набора настроек. При пустом поле используется название узла и, где предусмотрено, раздела.
SensId _ID_ ID компонента Sensor. Его измерение используется регулятором, а ошибка — аварийным каналом 8.
PIDDUpOut _DO_UP_ Дискретный выход увеличения мощности или скорости.
PIDDDownOut _DO_DOWN_ Дискретный выход уменьшения мощности или скорости.
$Flts Аварии Название раздела параметров; также используется в комментариях.
FltComment аварии Общее название группы аварий в комментариях каналов.
$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_PIDD_fSP REAL 0.0 ед. измерения Значение, которое нужно поддерживать.
Conf.K31_PIDD_fDB REAL 0.0 ед. измерения Полная ширина зоны около уставки, внутри которой регулятор не меняет задание.
Conf.K31_PIDD_fSR REAL 3.0 с Период расчёта и повторения импульсов, с; должен быть больше нуля.
Conf.K31_PIDD_fKp REAL 1.0 — Сила реакции регулятора на отклонение. Знак определяет направление регулирования.
Conf.K31_PIDD_fTi REAL 0.0 с Параметр усиления реакции на сохраняющееся отклонение. 0 отключает эту составляющую.
Conf.K31_PIDD_fTd REAL 0.0 с Реакция на изменение отклонения. 0 отключает эту составляющую.

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

Тег Тип Действие
View.K31_CascadeUnit_Inst_inout_bFaultReset BOOL Сброс аварий всего узла, включая фильтры: установить TRUE.
View.K31_CascadeUnit_Inst_inout_bWorktimeReset BOOL Сброс наработки: установить TRUE; команда сбрасывается после обработки.
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.
K31_PIDD_Inst.out_bUp BOOL Импульс увеличения / открытия.
K31_PIDD_Inst.out_bDown BOOL Импульс уменьшения / закрытия.