Интернет-магазин

Просмотр корзины
В корзине:

товаров - 0 шт.



Статьи / KA068 / Laurent-5/5G: программируемая логика CAT + Ke-скрипты



§ 68. Laurent-5/5G: программируемая логика CAT + Ke-скрипты

Дмитрий Иванов, 25 Апреля 2023



Задача



Есть два события CAT по входным линиям IN_1 и IN_2. Возможно ли при срабатывании события по IN_2 прерывать (игнорировать) обработку события на IN_1 на некоторое определенное время (например, 10 секунд)?




Что имеем на старте?



Итак, имеем два CAT события, которые оба управляют реле RELE_1 (в частности, переключают его в противоположенное состояние). См. описание Ke-команды $KE,REL.

Программируемая логика CAT


Если на входе IN_1 или IN_2 появится сигнал (переход 0 → 1) - то реле RELE_1 изменит свое состояние.


А нужно сделать так что бы если сработало CAT событие под номером 2 первое CAT событие должно стать неактивным на 10 секунд (перестать реагировать на появление сигнала по IN_1).





Решение: Ke-скрипты




В качестве решения можно использовать команду активации / деактивации CAT события $KE,CAT,SET. Однако, возникает вопрос - как организовать задержку по времени в 10 сек? Одним из путей решения такой задачи является использование Ke-скриптов. Рассмотрим на примере.


В WEB интерфейсе модуля заходим в раздел "Ke-скрипты".

Ke-скрипты



В модуле можно создать до 10 шт так называемых "Ke-скриптов". Скрипт состоит из списка обычных Ke-команд и дополнительных служебных команд, в частности, управляющих задержкой выполнения Ke-команд из списка.

Сохраненный скрипт можно запустить на выполнение с помощью Ke-команды. Скрипты выполняются в отдельном потоке не связанном с выполнением команд из события CAT. Т.е. задержка не будет блокировать выполнение других задач.

Если создать Ke-скрипт со следующим содержимым:

$KE,CAT,1,SET,OFF
wait 10
$KE,CAT,1,SET,ON

То при запуске скрипта сначала будет выключено CAT событие с ID=1, далее интерпретатор скрипта сделает паузу на 10 секунд (служебная команда WAIT) и потом снова включит (активирует) CAT событие с ID=1.

Создание Ke-скрипта с задержками


В конце следует нажать на кнопку "Сохранить" что бы скрипт был записан в энергонезависимую память модуля.




Доработаем реакцию на CAT событие ID=2 добавив Ke-команду запуска только что созданного Ke-скрипта:

$KE,SCR,1,RUN

Теперь список CAT событий должен выглядеть следующим образом:

CAT событие с Ke-скриптом




Что же теперь произойдет если сработает 2-ое событие CAT? Помимо управления реле мы запустим выполнение Ke-скрипта который тут же деактивирует 1-ое CAT событие (иконка статуса станет красной с надписью OFF).

Контроллер с программируемой логикой с управляемой задержкой



Если теперь попробовать подать сигнал на линию IN_1 - то модуль обнаружит сигнал но 1-ое CAT событие будет "молчать", т.к. оно выключено. После паузы в 10 секунд (служебная команда wait 10) будет исполнена последняя команда в скрипте, а именно включение 1-го CAT события. Теперь появление сигнала на IN_1 приведет к срабатыванию события и управлению реле.


© Дмитрий Иванов
25 Апреля 2023
https://kernelchip.ru



© KERNELCHIP 2006 - 2024