SwitchCtrl — состояние перехода при переключении
SwitchCtrl показывает, что после включения или выключения команды ещё нужно подождать. На это время он выдаёт состояние «Переключение», а затем — «Включено» или «Выключено». Одна и та же задержка действует в обе стороны.
SwitchCtrl отсчитывает время по команде. Проверять, запустился ли двигатель на самом деле, должен Engine. Если нужно задержать только включение сигнала, используйте Delay.
Состав и связи
SwitchCtrl отсчитывает время перехода по команде. Фактическое состояние оборудования проверяется отдельно.
Первое подключение
Заполняйте пример в таблице «Параметры» (Params) добавленного компонента. Как добавить компонент и где искать настройки.
При смене режима установки нужно подождать 5 секунд перед дальнейшими действиями. bModeRequested задаёт выбор: TRUE — включить режим, FALSE — выключить.
1. Заполните параметры
| Параметр | Значение для примера |
|---|---|
SwitchCtrlId |
ModeChange |
SwitchCtrlComment |
Переключение режима установки |
SwitchCtrlEn |
bModeRequested |
2. Задайте время перехода
| Настройка | Значение для примера |
|---|---|
Conf.ModeChange_SwitchCtrl_diDelay |
5 |
3. Используйте состояние
Состояние находится в ModeChange_SwitchCtrl_Inst.out_iState.
| Значение | Смысл |
|---|---|
0 |
Выключено |
1 |
Идёт переключение |
2 |
Включено |
При изменении команды с FALSE на TRUE результат сначала равен 1, через 5 секунд — 2. При изменении с TRUE на FALSE результат сначала равен 1, через 5 секунд — 0.
Если следующий шаг можно выполнять только после включения режима и окончания ожидания, разрешите его при ModeChange_SwitchCtrl_Inst.out_iState = 2.
Повторное изменение команды
Если команда изменилась ещё раз во время переключения, отсчёт не начинается заново. По окончании уже начатой выдержки компонент выдаёт состояние, соответствующее последнему значению команды.
Например, команда включения появилась в момент 0 с, а в момент 2 с была снята. При выдержке 5 с состояние останется 1 до момента 5 с, затем станет 0. Дополнительных 5 секунд после снятия команды не добавляется.
SwitchCtrl отсчитывает время от начала переключения. Если нужно проверить, что сигнал оставался включённым все 5 секунд без перерыва, используйте Delay.
При первом вызове с FALSE результат равен 0. При первом вызове с TRUE начинается переход к состоянию 2. Нулевая или отрицательная задержка означает переход без заданной выдержки.
Параметры компонента — Params
| Параметр | По умолчанию | Назначение |
|---|---|---|
$SwitchCtrl |
Контроль переключения |
Название группы параметров |
SwitchCtrlId |
_ID_ |
ID переключения. Для ModeChange создаётся экземпляр ModeChange_SwitchCtrl_Inst |
SwitchCtrlComment |
Комментарий |
Название переключаемого состояния |
SwitchCtrlEn |
true |
Требуемое состояние: TRUE — включено, FALSE — выключено. Изменение в любую сторону запускает переход |
SwitchCtrlConf |
Пусто | ID набора настроек. Если пусто, используется SwitchCtrlId |
SwitchCtrlConfComment |
Пусто | Название набора настроек. Если пусто, комментарий составляется из SwitchCtrlComment и $SwitchCtrl |
Настройка во время работы — Conf
Полное имя приведено для SwitchCtrlId = ModeChange и пустого SwitchCtrlConf.
| Настройка | Тип | Начальное значение | Назначение |
|---|---|---|---|
Conf.ModeChange_SwitchCtrl_diDelay |
DINT |
1 |
Продолжительность переходного состояния, с |
Одна выдержка используется в обоих направлениях. Отдельного родительского компонента и команды сброса нет.
Для общего времени перехода у нескольких экземпляров задайте одинаковый SwitchCtrlConf. Например, при SwitchCtrlConf = ModeCommon настройка называется Conf.ModeCommon_SwitchCtrl_diDelay. Состояния экземпляров остаются независимыми.
Выход компонента
| Результат для примера | Тип | Назначение |
|---|---|---|
ModeChange_SwitchCtrl_Inst.out_iState |
INT |
0 — выключено; 1 — переключение; 2 — включено |