PulseCtrl — импульсы с переходом на постоянное включение
PulseCtrl сначала включает команду короткими импульсами, а затем оставляет её включённой постоянно. Например, первые 10 секунд подаёт команду с паузами, после чего переходит к непрерывной работе.
Если импульсы должны повторяться всё время, используйте Pulse. Если выход нужно включить один раз после выдержки — Delay.
Состав и связи
Выход подключается к управлению механизмом. При снятии разрешения последовательность прекращается, при новом включении начинается сначала.
Первое подключение
Заполняйте пример в таблице «Параметры» (Params) добавленного компонента. Как добавить компонент и где искать настройки.
При начале подачи нужно первые 10 секунд чередовать 1 секунду работы и 1 секунду паузы. После этого подача должна идти непрерывно. bFeedDemand включает эту последовательность; при FALSE подача должна прекратиться.
1. Заполните параметры
| Параметр | Значение для примера |
|---|---|
PulseCtrlId |
FeedStart |
PulseCtrlComment |
Постепенное включение подачи |
PulseCtrlEn |
bFeedDemand |
2. Задайте время
| Настройка | Значение для примера |
|---|---|
Conf.FeedStart_PulseCtrl_diTotalTime |
10 |
Conf.FeedStart_PulseCtrl_diPulseCycle |
2 |
Conf.FeedStart_PulseCtrl_diPulseTime |
1 |
Все три значения задаются в секундах. Цикл включает импульс и паузу: при цикле 2 с и импульсе 1 с пауза составляет 1 с.
3. Используйте результат
Команду выдаёт FeedStart_PulseCtrl_Inst.out_bSignal. Подключите её к управлению оборудованием подачи.
| Время от появления запроса | Команда |
|---|---|
| От 0 до 1 с | Включена |
| От 1 до 2 с | Выключена |
| От 2 до 10 с | Повторяются импульс 1 с и пауза 1 с |
| Начиная с 10 с | Постоянно включена |
| Запрос снят | Сразу выключена; оба отсчёта сброшены |
Первый импульс начинается сразу. После снятия и повторной подачи запроса последовательность начинается заново. Окончание diTotalTime означает переход на постоянное включение, а не завершение команды.
Настройка последовательности
diTotalTime — всё время от начала последовательности до постоянного включения. Паузы тоже входят в эти 10 секунд.
При diTotalTime = 0 или отрицательном значении разрешённый выход сразу включается постоянно. Если цикл или длительность импульса неположительны, импульсов в начальной части нет; по окончании положительного diTotalTime выход всё равно включается постоянно.
Если длительность импульса равна циклу или больше него, пауз не будет. Для импульсной работы задайте 0 < diPulseTime < diPulseCycle.
Чтобы остановить последовательность, выключите PulseCtrlEn. При следующем включении она начнётся сначала. Отдельного сброса и связи с родителем у PulseCtrl нет.
Параметры компонента — Params
| Параметр | По умолчанию | Назначение |
|---|---|---|
$PulseCtrl |
Импульсное управление |
Название группы параметров |
PulseCtrlId |
_ID_ |
ID последовательности. Для FeedStart создаётся экземпляр FeedStart_PulseCtrl_Inst |
PulseCtrlComment |
Комментарий |
Название управляемого действия |
PulseCtrlEn |
true |
Запрос работы: TRUE запускает последовательность, FALSE снимает выход и сбрасывает время |
PulseCtrlConf |
Пусто | ID набора настроек. Если пусто, используется PulseCtrlId |
PulseCtrlConfComment |
Пусто | Название набора настроек. Если пусто, комментарий составляется из PulseCtrlComment и $PulseCtrl |
Настройки во время работы — Conf
Полные имена приведены для PulseCtrlId = FeedStart и пустого PulseCtrlConf.
| Настройка | Тип | Начальное значение | Назначение |
|---|---|---|---|
Conf.FeedStart_PulseCtrl_diTotalTime |
DINT |
10 |
Время от включения до перехода на постоянную команду, с |
Conf.FeedStart_PulseCtrl_diPulseCycle |
DINT |
2 |
Период повторения импульсов, включая паузу, с |
Conf.FeedStart_PulseCtrl_diPulseTime |
DINT |
1 |
Длительность одного импульса, с |
Для одинаковых выдержек нескольких последовательностей назначьте им общий PulseCtrlConf. Например, при PulseCtrlConf = FeedCommon время начальной части задаётся через Conf.FeedCommon_PulseCtrl_diTotalTime. Остальные настройки также получают ID FeedCommon; отсчёт каждого экземпляра остаётся независимым.
Выход компонента
| Результат для примера | Тип | Назначение |
|---|---|---|
FeedStart_PulseCtrl_Inst.out_bSignal |
BOOL |
Импульсная команда в начальной части; постоянная команда после её окончания |
Для отображения результата используется View.FeedStart_PulseCtrl_Inst_out_bSignal.