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

CascadeUnit — подключение агрегата к каскаду

CascadeUnit связывает отдельный насос, котёл или другой агрегат с общей группой. Через него Cascade узнаёт, готов ли агрегат к работе, работает ли он сейчас, есть ли авария и какова его наработка. В обратную сторону передаётся команда пуска.

Сам агрегат управляется своим компонентом — например, Engine для насоса. Cascade выбирает, кому работать, а CascadeUnit связывает этот выбор с конкретным оборудованием.

В готовом узле, например EngineUnit, CascadeUnit уже входит в состав. Отдельный компонент нужен, когда вы собираете узел самостоятельно.

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

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

Сам механизм управляется отдельным компонентом. CascadeUnit передаёт его состояние каскаду и связывает его с общим управлением шкафом.

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

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

Подключим насос K31 к группе K3. Насосом уже управляет Engine с ID K31. В списке Cascade этот насос будет первым.

1. Укажите насос и его состояния

Добавьте CascadeUnit и заполните параметры:

Параметр Значение для примера Что передаём
CasUnitId K31 ID насоса
CasUnitComment Циркуляционный насос 1 Название насоса
CasUnitParent CabinetController_Inst Связь с общим управлением шкафом
CasUnitEn K31_Engine_Inst.out_bEnableAutoControl Можно ли выбирать насос для автоматической работы
CasUnitMode K31_Engine_Inst.out_iMode = ENGINEMODEAUTO Находится ли насос в автоматическом режиме
CasUnitState K31_Engine_Inst.out_iState Состояние насоса
CasUnitStateBool K31_Engine_Inst.out_bState Работает ли насос
CasUnitFault K31_Engine_Inst.out_bFault Есть ли авария
CasUnitWorktime K31_Engine_Inst.out_diWorktime Наработка насоса
CasUnitPower 0.0 В этом примере мощность не используется

По этим данным каскад сможет выбрать насос для работы или оставить его в резерве. Например, насос в ручном режиме не будет выбран: Engine снимет разрешение автоматического управления, передаваемое в CasUnitEn.

2. Соедините каскад и насос

Где заполнить Параметр Значение
Cascade группы K3 CasUnitId1 K31
CascadeUnit насоса K31 CasUnitStartCmd K3_Cascade_Inst.out_Unit1_bCmd
Engine насоса K31 EngParent K31_CascadeUnit_Inst
Engine насоса K31 EngStartCmd K31_CascadeUnit_Inst.out_bStart
Engine насоса K31 EngStopCmd NOT K31_CascadeUnit_Inst.out_bStart

Команда первого места каскада теперь приходит первому насосу. Для второго насоса используются CasUnitId2 и out_Unit2_bCmd.

Сигналы шкафа проходят по цепочке: CabinetController → CascadeUnit → Engine. Поэтому насос получает общий экстренный останов и сбросы, а также отдельные команды сброса своего CascadeUnit.

Настройка самой группы приведена в описании Cascade.

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

Когда Cascade выберет насос K31, он включит команду out_Unit1_bCmd. CascadeUnit передаст её в Engine, и тот запустит насос. После подтверждения работы Engine сообщит об этом через CascadeUnit обратно в каскад.

Когда команда будет снята, Engine получит останов. Ручное управление насосом остаётся в Engine.

Когда агрегат доступен каскаду

Агрегат доступен, если CasUnitEn = TRUE, нет аварии и нет экстренного останова от родителя. Это состояние выдаётся через out_bEnable.

Для насоса в примере разрешение берётся из Engine. При подключении другого оборудования укажите в CasUnitEn его собственное разрешение автоматической работы.

CasUnitMode сообщает о режиме, а CasUnitParent передаёт наличие питания. Сами по себе эти два сигнала не отключают готовность CascadeUnit. Если оборудование не формирует готового разрешения, автоматический режим и наличие питания нужно учесть в CasUnitEn.

Команда CasUnitStartCmd передаётся на out_bStart без изменений. Останов при аварии и проверку режима выполняет компонент оборудования, которому передана команда.

Наработка, мощность и сбросы

CascadeUnit получает наработку от оборудования и передаёт её каскаду для чередования агрегатов. Собственного счётчика наработки у него нет. Для всех участников используйте одинаковые единицы; Engine передаёт наработку в часах.

Мощность нужна, если в Cascade включён её контроль. Это может быть, например, фактическая частота ПЧ в герцах. Передавайте одну и ту же величину в одинаковых единицах для всех участников и задавайте пороги каскада в этих единицах. Если контроль выключен, можно оставить CasUnitPower = 0.0.

Общий сброс приходит от родителя. С панели можно отдельно сбросить аварии или наработку этого агрегата. В примере команды дойдут до Engine, потому что его родителем указан K31_CascadeUnit_Inst.

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

Параметр По умолчанию Назначение
$CasUnit Элемент каскада Название группы параметров
CasUnitId _ID_ ID агрегата; для K31 создаётся K31_CascadeUnit_Inst
CasUnitComment Комментарий Название агрегата
CasUnitParent CabinetController_Inst Родитель: источник питания, экстренного останова и общих сбросов
CasUnitStartCmd false Команда работы от каскада или другой части программы
CasUnitEn true Разрешение выбирать агрегат для работы
CasUnitMode true Признак автоматического режима для отображения
CasUnitState 0 Числовое состояние агрегата для отображения
CasUnitStateBool false Подтверждение работы агрегата
CasUnitFault false Общая авария агрегата
CasUnitWorktime 0 Наработка агрегата
CasUnitPower 0.0 Мощность или другая величина нагрузки для контроля в Cascade

Отдельных настроек Conf у CascadeUnit нет. Выдержки, ограничения и правила чередования задаются в компонентах оборудования и в Cascade.

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

Команда для K31 Тип Как использовать
View.K31_CascadeUnit_Inst_inout_bFaultReset BOOL Записать TRUE для сброса аварий агрегата; компонент сам вернёт FALSE
View.K31_CascadeUnit_Inst_inout_bWorktimeReset BOOL Записать TRUE для сброса наработки агрегата; компонент сам вернёт FALSE

Команда панели передаётся на соответствующий выход сброса на один цикл ПЛК. Общий сброс передаётся, пока он действует у родителя.

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

Выход для K31 Тип Что означает
K31_CascadeUnit_Inst.out_bEnable BOOL Агрегат доступен для выбора каскадом
K31_CascadeUnit_Inst.out_bPowerControl BOOL Наличие питания от родителя
K31_CascadeUnit_Inst.out_bEmergencyStop BOOL Экстренный останов от родителя
K31_CascadeUnit_Inst.out_bMode BOOL Агрегат находится в автоматическом режиме
K31_CascadeUnit_Inst.out_iState INT Числовое состояние, полученное от оборудования
K31_CascadeUnit_Inst.out_bState BOOL Оборудование работает
K31_CascadeUnit_Inst.out_bFault BOOL Авария оборудования
K31_CascadeUnit_Inst.out_bStart BOOL Команда работы
K31_CascadeUnit_Inst.out_diWorktime DINT Наработка, полученная от оборудования
K31_CascadeUnit_Inst.out_fPower REAL Мощность или величина нагрузки, полученная от оборудования
K31_CascadeUnit_Inst.out_bFaultReset BOOL Сброс аварий от родителя или панели агрегата
K31_CascadeUnit_Inst.out_bWorktimeReset BOOL Сброс наработки от родителя или панели агрегата

Для отображения состояний создаются соответствующие поля View. Например, готовность насоса — View.K31_CascadeUnit_Inst_out_bEnable, работа — View.K31_CascadeUnit_Inst_out_bState, авария — View.K31_CascadeUnit_Inst_out_bFault.