Задание 6. Мигание лампы (туториал)
Задание
Вам поступил заказ от компании, производящей лампы. Лампы из каждой партии нужно проверять в трех режимах: горит постоянно, мигает с различной частотой, выключена. Вам необходимо разработать стенд для автоматизации процесса тестирования ламп.
Описание техпроцесса

Алгоритм:
шаг 1: нажать зеленую кнопку, лампа включается
шаг 2: нажать на желтую кнопку, лампа мигает с частотой 1Гц
шаг 3: нажать на красную кнопку, лампа выключается, -> шаг 1
Создаем программу, язык - SFC.
Добавляем список глобальных переменных FIO.
Собираем графсет с условиями, но пока без действий:

Если во всей программе лампа должна только гореть/не гореть, то действие можно писать, как и раньше, просто:

НО, если хотя бы на одном шаге лампа должна мигать, то вся работа с ней простыми действиями НЕВОЗМОЖНА.
В таком случае на каждую лампу нужно создавать (как минимум) 3 сложных действия:
действие включения actLampaOn
действие выключения actLampaOff
действие мигания (на каждую частоту свое действие) actLampa1Hz, actLampa2Hz, actLampa05Hz и так далее
Чтобы создать сложное действие нажимаем правой кнопкой мыши на PLC_PRG -> добавление объекта -> добавить действие:


Первое действие для включения лампы actLampaOn - просто true -> присвоение на нужную лампу:

Второе действие для выключения лампы actLampaOff - false -> присвоение на нужную лампу:

Для последнего действия - мигания лампы - нужен блок мигания BLINK. Он находится в библиотеке, которая по умолчанию отключена. Значит, нужно ее подключить. Нажимаем в меню слева дважды на "Менеджер библиотек". Затем в открывшемся окне сверху на кнопку "Добавить библиотеку"

В новом открывшемся окне ищем библиотеку Util и нажимаем ОК:

После этого можно создавать последнее действие actLamp1Hz и добавлять элемент и называть его BLINK (не забудьте нажать enter, чтобы сохранилось название в списке переменных!):

Ножки этого блока подключаются так:

Насчет времени: во-первых, время TIMELOW и TIMEHIGH пишем всегда одинаковое. Во-вторых, обычно в задании дана частота в Герцах (Гц). Чтобы рассчитать нужное количество секунд, делим:
Наоборот тоже работает:
Итак, если у нас задана частота 1 Гц, то время на TIMELOW и TIMEHIGH будет равно 1 сек.
Получается такое действие:

Теперь в основном коде (в графсете) можно указать, какие действия на каких шагах включаются:

Готово, можно проверять.
Last updated