0 / 0 / 0
Регистрация: 08.10.2024
Сообщений: 5

Codesys обратное выключение светодиодов

12.05.2025, 13:02. Показов 1628. Ответов 9

Студворк — интернет-сервис помощи студентам
Первый день изучаю codesys никак не могу понять. Нужно чтобы диоды загорались с периодичностью в 1 секунду по порядку от 1 к 5 и была возможность ускорить, это сделал но не могу понять как сделать чтобы они гасли в обратном порядке от 5 к 1 после того как загорелись.
Вложения
Тип файла: zip kr2.pro.zip (11.5 Кб, 3 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2025, 13:02
Ответы с готовыми решениями:

[CoDeSys] На языке LD поставить параллельно обмотке таймер TON (включить таймер по условию)
Помогите поставить параллельно обмотке в CoDeSys таймер TON (как это сделать?)

[CoDeSys] После включения трёх входов включаются все индикаторы, а потом гаснут с задержкой
Здравствуйте! Я новичок в codesys, поэтому работаю в языке LD. Было дано задание. На входы...

[CoDeSys] Запретить на 5 минут повторное включение компрессора
Требуется написать программу LD для управления холодильной машиной. Так как только начал познавать...

9
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8663 / 4500 / 1670
Регистрация: 01.02.2015
Сообщений: 13,919
Записей в блоге: 13
12.05.2025, 14:43
Вариантов решения несколько.
Например, установите счётчик с коэффициентом счёта от 0 до 7 (всего у Вас 7 состояний включённых ламп).
По таймеру Blink отсчитывайте время.
После Blink поставьте детектор фронта R_Trig.
От фронта R_Trig переключайте счётчик.

Далее, сделайте дешифратор на IF:
- если выход счётчика равен 0 - включить первую лампу
- если выход счётчика равен 1 или 7 - вторую лампу
и т.д.

Добавлено через 5 минут
Скорость меняйте не переключением BLINK, а изменением уставок времени через SEL, т.к. у BLINK есть неприятные особенности.

Добавлено через 5 минут
Сравнение на равенство делайте при помощи EQ.

Добавлено через 40 минут
Т.е. в самом общем виде предлагаю создать переменную - номер состояния.
По значению этой переменной - вычислять состояния выходов (ламп).

Т.к. номер состояния меняется последовательно, то реализовать переменную в виде счётчика.
Изменение состояния - по таймеру генератора BLINK.
Изменение скорости - изменением уставок времени на этом BLINK.
0
0 / 0 / 0
Регистрация: 08.10.2024
Сообщений: 5
13.05.2025, 10:19  [ТС]
Вроде сделал, но почему то зависает все если нажимаю кнопку быстрее во время загорания/потухания ламп.
Вложения
Тип файла: zip kr2.pro.zip (11.8 Кб, 10 просмотров)
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8663 / 4500 / 1670
Регистрация: 01.02.2015
Сообщений: 13,919
Записей в блоге: 13
13.05.2025, 12:31
Сказать, по правде, не вижу изменений по сравнению со вчерашним кодом.

И самое главное не реализовано
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Скорость меняйте не переключением BLINK, а изменением уставок времени через SEL, т.к. у BLINK есть неприятные особенности.
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8663 / 4500 / 1670
Регистрация: 01.02.2015
Сообщений: 13,919
Записей в блоге: 13
13.05.2025, 13:23
Я бы сделал так:
- определил функцию InRange для поверки вхождения переменной в диапазон
- сделал единый код для формирования номера текущего состояния
- проверял бы вхождение номера текущего состояния в диапазон и формировал сигнал включения лампы

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

И получил программу
Pascal
1
2
3
4
5
6
7
8
FUNCTION InRange : BOOL
VAR_INPUT
    IN:INT;
    LO:INT;
    HI:INT;
END_VAR
 
InRange := (IN >= LO) AND (IN <= HI);

У меня все лампы не поместились, но там всё понятно по аналогии
0
0 / 0 / 0
Регистрация: 08.10.2024
Сообщений: 5
14.05.2025, 12:06  [ТС]
Спасибо за помощь!
0
14.05.2025, 17:48

Не по теме:


Павел уже помог, но я ради интереса попробовал открыть прикрепленный проект - не получилось ни в 15-м, ни в 17-м КодСисе - 150+ ошибок (нет бибилиотек). Странно, вроде инструкции все стандартные, а какие-то специфические библы требует..

0
14.05.2025, 19:31

Не по теме:

Видимо, в своё время (лет 10 назад) установил все библиотеки, что шли у Овен.
Здесь он просит библиотеки:
Util
STANDARD
IECSFC
ANALYZATION

Как-то смутно припоминаю, что несколько лет назад обновлял или CoDeSys или штатные библиотеки или таргет-файлы и при этом что-то сбилось в настройках среды - донастраивал директории. Но уже точно и не вспомню...

0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3421 / 2740 / 575
Регистрация: 04.09.2018
Сообщений: 8,608
Записей в блоге: 3
14.05.2025, 19:43

Не по теме:

Ага, Util я нашел (сама среда загрузила от куда-то), а остальные не хочет. Еще верещала на SysMem... У Овена поискал - не нашел.. Ну и бросил идею )


А по теме: хотел предложить вариант со смещением бита в маске туда-сюда.
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8663 / 4500 / 1670
Регистрация: 01.02.2015
Сообщений: 13,919
Записей в блоге: 13
14.05.2025, 20:12

Не по теме:

Может Овен обновляли библиотеки и их нужно установить...


В проекте ПЛК150И.М

Тоже думал о битовой маске и сдвиге, но потом понял, что потребуется ещё бит направления, определение условия заполнения младшего бита и решил сделать всё линейно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.05.2025, 20:12
Помогаю со студенческими работами здесь

[CoDeSys 2.3] Управление освещением на ПЛК (ST)
ST. Управление освещением на ПЛК На входе в квартиру установлены два датчика: один снаружи...

[CoDeSys 2.3] АСУ для трех баков: регулирование температуры, уровня
Есть 3 аппарата (емкости) нужно разработать схему автоматизации которая предусматривает: 1)...

[CoDeSys 2.3] Управление насосами: заполнение и опустошение резервуара
IL. Программа для ПЛК по управлению насосами У вихідному стані рідина в баку відсутня,...

[CoDeSys v2.3] Заполнение ёмкости, включение мешалки, опорожнение ёмкости
В исходном состоянии все клапаны закрыты. После нажатия кнопки «Пуск» открывается клапан 1 и вода...

[CoDeSys] Заполнение ёмкости, включение смесителя, опорожнение ёмкости
В исходном состоянии все клапаны закрыты, а смеситель 5 выключен. Когда аппарат пустой и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru