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

SwitchCtrl — состояние перехода при переключении

SwitchCtrl показывает, что после включения или выключения команды ещё нужно подождать. На это время он выдаёт состояние «Переключение», а затем — «Включено» или «Выключено». Одна и та же задержка действует в обе стороны.

SwitchCtrl отсчитывает время по команде. Проверять, запустился ли двигатель на самом деле, должен Engine. Если нужно задержать только включение сигнала, используйте Delay.

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

SwitchCtrl: SwitchCtrl отсчитывает время перехода по команде. Фактическое состояние оборудования проверяется отдельно.
В рамке — состав компонента, снаружи — подключения проекта. Нажмите на схему, чтобы открыть её крупнее.

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 — включено