Задание 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/частотавремя = 1/частота

Наоборот тоже работает:

частота=1/времячастота = 1/время

Итак, если у нас задана частота 1 Гц, то время на TIMELOW и TIMEHIGH будет равно 1 сек.

Получается такое действие:

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

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

При выполнении заданий с большими алгоритмами нужно сразу, в начале, проверить, сколько ламп, и сколько из них мигает. И на все мигающие лампы сразу, еще до создания основной программы, подготовить по 3 действия, чтобы потом к этому не возвращаться

Last updated