Помочь не сложно, надо, чтобы вы сами хоть что-то сделали. Где предыдущий проект светофора ?
Вид для печати
Как вложить программу с функциональным блоком?
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 и массивами. Такой громадный текст лишь для того, чтоб научить студентов читать и понимать.
Просто согласно вашего задания решение должно основываться на предыдущем результате работ, а как я понял их тоже нет.
Функциональный блок есть, написан на языке LD. И вот теперь его надо вставить в язык ST и дальше идти по заданию. По языку ST было 2 ознакомительных урока и вот это задание примеров тоже нет.
Мне бы понять как и с чего начать а дальше буду разбираться.
Вложение 75485
1. Для удобства и более... надо используемые глобально переменные перенести в модуль глобальных переменных, тогда они станут доступны из любой части программы.
2. Потом надо создать подпрограмму на языке ST в дереве проекта и вызывать её из текста основной программы.
3. Внутри этой подпрограммы реализуйте что хотите и что требуется.
Добрый день, подскажите пожалуйста 2 штуки БПС- 3 -И не могут работать на одном RS 485?
Подключаем к PLC ОВЕН- 110 на RS1 2 штуки БПС- 3 -И , задаем каждому БПС свои адреса и получается так , что один БПС глушит второй БПС (Программа не отрабатывает нам нужные действия, как только откидываем любой из двух от RS все нормально)
Если подключить один БПС к RS1 , а второй БПС к RS2 , то тоже все работает.
Или нужно какой-то параметр в codesys менять еще?
Спасибо.
У второго в комментариях указан адрес "4", а в CodeSys - какой-то 23.
Спасибо за помощь, буду дальше разбираться.
Кстати, у меня при использовании вашего проекта при изменении переменной в визуализации меньшее значение чем задано система и не даёт поставить. Или у меня глюк, или это просто глюк. Где задаётся минимум по ограничению ввода не нашёл, в 2.3 мало работаю... Пришлось вручную переменную изменять на меньшее значение.
ДмитрийЖ, в проекте ошибка, Max и Min не заданы. Надо использовать не кнопку, а типа Дисплей из прямоугольника.Вложение 75510
Ага спасибо, переделаю.
помогите реализовать эту задачку в codesys 2.3 через ftrig и rtrig, можно добавить другие триггеры, уже самому интересней с вами разобраться столько мучаюсь... Вложение 75575Вложение 75575
на оба ответа да
Q2 не выключается, просто единичка так и будет висеть
тогда, так можно
Вложение 75576
используется библиотека standart.lib
(возможно немного неправильно взвожу Q2, может надо поставить на вход SR-триггера X1 and F2)
да, она у меня есть, триггеры работают, но реализовать эту задачу все ещё не получается, может я глупый, можете как нибудь помочь
да уж, нарисовать в Paint и скинуть фото с монитора - это уже что-то...
и надо бы свой проект прикладывать.
а как мне это в коде представить?, прикол в том, что я кодом хочу это сделать и не выходит
в ответе на сообщение есть реализованная человеком граф схема, но я не понимаю как ее сделать в виде текста, как мне это описать Вложение 75580
вот так
Вложение 75581
прям на сайте ОВЕН между прочим лежитЦитата:
но я не понимаю как ее сделать в виде текста, как мне это описать
http://Вебинар «Основы программирова...х на языке ST»
Краткий обзор языка ST в CODESYS 2.3
Объявление переменных
Присвоение значений и результатов вычислений
Формирование условий
Вызов программных компонентов (POU)