CascadeUnit — подключение агрегата к каскаду
CascadeUnit связывает отдельный насос, котёл или другой агрегат с общей группой. Через него Cascade узнаёт, готов ли агрегат к работе, работает ли он сейчас, есть ли авария и какова его наработка. В обратную сторону передаётся команда пуска.
Сам агрегат управляется своим компонентом — например, Engine для насоса. Cascade выбирает, кому работать, а CascadeUnit связывает этот выбор с конкретным оборудованием.
В готовом узле, например EngineUnit, 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.