Помочь не сложно, надо, чтобы вы сами хоть что-то сделали. Где предыдущий проект светофора ?
Вид для печати
Как вложить программу с функциональным блоком?
https://disk.yandex.ru/d/gQzs6UU1ZbJf6A Помогите пожалуйста выполнить задание.
Задание 1
Для выполнения сегодняшнего задания используйте проект с прошлого занятия по заданию состояния светофора.
Продолжите работать с этим проектом на языке ST.
Вам нужно осуществить в этом домашнем задании автоматическую работу светофора с возможностью ручного выбора режима.
В окне визуализации, кроме индикации светофора, теперь понадобятся три кнопки без фиксации для выбора режима:
«Дежурный ночной» - мигающий желтый,
«Нормальный дневной» - обычный режим работы с разными выдержками времени на отдельные состояния,
«Едет депутат» - машинам зеленый, пешеходам – красный.
Также предусмотрите переключатель «Работа-Стоп». К этим элементам привяжите отдельные булевы переменные (не массив!!!).
Вашей задачей будет обеспечить работу светофора в выбранном режиме, а также – его включение и выключение.
При помощи оператора IF, в зависимости от состояния кнопок и переключателя, предусмотрите присвоение интовой переменной «Режим» значений от 0 до 3. (0 – светофор отключен, 1-3 – один из режимов работы)
Работу в каждом из четырех возможных режимов реализуйте при помощи оператора CASE. При этом переключение состояния светофора выполняйте за счет вызова функционального блока, созданного на прошлом уроке, с присвоением необходимого значения его входной переменной.
Три режима работы «Отключено», «Дежурный ночной» и «Едет депутат» не должны у Вас вызвать затруднений.
Рассмотрим подробнее оставшийся режим - «Нормальный дневной». В этом режиме Вам нужно использовать несколько вариантов состояния светофора с разной длительностью. Задайте самостоятельно длительность каждого из состояний – но не менее 2с каждое. Посчитайте общую длительность всех фаз. Осуществите вызов таймера типа TON с заданием времени по входу и используйте его выход ET для отсчета интервалов времени для каждой фазы. При этом в каждой фазе осуществляйте вызов функционального блока, созданного на прошлом уроке, с присвоением необходимого значения его входной переменной. После окончания одного полного цикла работы светофора (это можно определить по состоянию выхода таймера Q) произведите сброс счетчика.
Работу над этим проектом также начните с составления блок-схемы.
Задание 2
Выполните небольшую модификацию Задания 1 в трех вариантах.
Булевые переменные для кнопок «Дежурный ночной», «Нормальный дневной» и «Едет депутат» реализуйте в виде массива из трех элементов. А для обработки их состояния и присвоение интовой переменной «Режим» нужного значеня используйте цикл WHILE, REPEAT или FOR – один для каждой из модификаций.
Вот вариант Универсальный диспетчер для Modbus.lib
И где тут язык ST, кроме не работающего ФБ ?
Начните с переписывания проекта на язык ST, это не сложно.
Тут готовый светофор, 3 вариант с кнопками выбора режима, только немного исправить под ваши хотелки.
https://owen.ru/forum/showthread.php...F2%EE%F4%EE%F0
Спасибо за подсказку.
Злые вы. Как будто вы сами сразу стали программистом и всё сразу получалось. Преподавателя рядом нет. Учусь на дистанционных курсах. Материала мало преподают.
Я лично не злой. Но я не поверю что преподаватель не дал никакой литература. В крайнем случае простой пример всегда даёт. Сам преподавал 10 лет. Вы тоже с него спрашивайте, чего бояться? Он на то и преподаватель, чтоб научить тех, кто хочет. Если человек не хочет учиться, то никакая помощь не поможет.
Просто согласно вашего задания решение должно основываться на предыдущем результате работ, а как я понял их тоже нет. Если честно, то вот это задание на пол часа работы. Суть разобраться с if и массивами. Такой громадный текст лишь для того, чтоб научить студентов читать и понимать.