Просмотр полной версии : «Гирлянда» на ПР200
Здравствуйте, являюсь студентом на практике, дали задание на ПР200 в программе owen logic сделать как бы «гирлянду».
То есть:
Имеется 4 кнопки ->
1 кнопка, при нажатии которой 4 лампочки должны поочередно загораться раз в 2 секунды.
2 кнопка, при нажатии которой эти же 4 лампочки уже по две через одну должны загораться раз в 2 секунды и сменять друг друга(1 и 3 на 2 и 4)
3 и 4 кнопки (самое сложное) при нажатии на 3 должно увеличиваться время горения лампочек на 1 секунду, а при нажатии на 4 уменьшаться на 1 секунду
P.S. С 2 первыми кнопками справился, а вот с остальными 2 не могу, помогите пожалуйста 🙏
Здравствуйте, являюсь студентом на практике, дали задание на ПР200 в программе owen logic сделать как бы «гирлянду».
То есть:
Имеется 4 кнопки ->
1 кнопка, при нажатии которой 4 лампочки должны поочередно загораться раз в 2 секунды.
2 кнопка, при нажатии которой эти же 4 лампочки уже по две через одну должны загораться раз в 2 секунды и сменять друг друга(1 и 3 на 2 и 4)
3 и 4 кнопки (самое сложное) при нажатии на 3 должно увеличиваться время горения лампочек на 1 секунду, а при нажатии на 4 уменьшаться на 1 секунду
P.S. С 2 первыми кнопками справился, а вот с остальными 2 не могу, помогите пожалуйста
Приложите файл с проектом что уже наваяли
Вот файл, забыл сначала скинуть
Было бы хорошо, если без ST, но так тоже пойдёт
Вот файл, забыл сначала скинуть
Если прям чтоб правильно было - надо было бы конечно по другому делать изначально.
Но для первого раза и так нормально, добавить изменение периода можно так:
Спасибо вам огромное, очень выручили!
Если не затрудняю, могли бы вы объяснить как это работает?
Если не затрудняю, могли бы вы объяснить как это работает?
Что именно непонятно?
Для разнообразия, мой вариант
Ну и для полноты картинки на ST:
84511
function_block garland
var_input
Mode1, Mode2, Up, Dn : bool; // Кнопки
end_var
var_output
Q1, Q2, Q3, Q4 : bool; // Лампы
end_var
var
State : udint; // Состояние
Mode : bool; // Режим
TMR : SYS.TON; // Таймер импульсов переключения
TL : udint := 1000; // Период между импульсами
Mode1Set, Mode2Set : SYS.RTRIG;
UpSet, DnSet : SYS.RTRIG;
end_var
// Фиксируем переключение режима
Mode1Set(I := Mode1); Mode2Set(I := Mode2);
if Mode1Set.Q then State := 0; Mode := false; TMR(I := false); Q1 := true; end_if
if Mode2Set.Q then State := 0; Mode := true; TMR(I := false); Q1 := true; Q3 := true; end_if
// Фиксируем увеличение/уменьшение периодв с ограничением
UpSet(I := Up); DnSet(I := Dn);
if UpSet.Q and TL < 100000 then TL := TL + 1000; end_if
if DnSet.Q and TL > 2000 then TL := TL - 1000; end_if
// Фиксируем смену состояния
TMR(I := true, T := udint_to_time(TL));
if TMR.Q then // Пришло время переключиться
TMR(I := false); // Перезапуск таймера
if Not Mode then
case State of
0: Q1 := true; Q2 := false; Q3 := false; Q4 := false; State := 1;
1: Q1 := false; Q2 := true; Q3 := false; Q4 := false; State := 2;
2: Q1 := false; Q2 := false; Q3 := true; Q4 := false; State := 3;
3: Q1 := false; Q2 := false; Q3 := false; Q4 := true; State := 0;
end_case
else
case State of
0: Q1 := true; Q2 := false; Q3 := true; Q4 := false; State := 1;
1: Q1 := false; Q2 := true; Q3 := false; Q4 := true; State := 0;
end_case
end_if
end_if
end_function_block
Сергей0308
26.06.2025, 12:34
Здравствуйте, являюсь студентом на практике, дали задание на ПР200 в программе owen logic сделать как бы «гирлянду».
То есть:
Имеется 4 кнопки ->
1 кнопка, при нажатии которой 4 лампочки должны поочередно загораться раз в 2 секунды.
2 кнопка, при нажатии которой эти же 4 лампочки уже по две через одну должны загораться раз в 2 секунды и сменять друг друга(1 и 3 на 2 и 4)
3 и 4 кнопки (самое сложное) при нажатии на 3 должно увеличиваться время горения лампочек на 1 секунду, а при нажатии на 4 уменьшаться на 1 секунду
P.S. С 2 первыми кнопками справился, а вот с остальными 2 не могу, помогите пожалуйста
Если надоедят эти мигания(в глазах зарябит), их можно как-то прекратить или это будет продолжаться бесконечно?
Или лампочки придётся выкручивать?
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot