Просмотр полной версии : ПР100 переключение выходов по одному входу.
EvilH0mer
26.03.2024, 15:57
Добрый день. Не смог найти или не правильно сформулировал запрос. Подскажите пожалуйста, как реализовать переключение выходов ПР100 по одному входу. Подаём импульс "1" на вход I1, включается выход Q1. Подаём следующий импульс, включается выход Q2, Q1 выключается. Подаём следующий, Q2 отключается, включается Q3, при следующем импульсе отключается Q3 включается Q1 и так по кругу.
используйте счетчик и сравнение например. Вариантов на самом деле масса, этот не единственный.
EvilH0mer
26.03.2024, 16:01
Спасибо, попробую так, интересно как лучше, сделать.
Например так можно. если по кругу.
а блин... после последнего автоматом первый не включится, у вас он есть в условии. А выключить все в условии нет :)
kondor3000
26.03.2024, 16:15
Например так можно. если по кругу.
а блин... после последнего автоматом первый не включится, у вас он есть в условии. А выключить все в условии нет :)
В N записать 1 надо и всё)
SEL =>> Write to FB, запись 1 или 0 для сброса.
EvilH0mer
26.03.2024, 16:21
Да спасибо большое, так и сделал. Я входы то указал для 74727 примера, но сути не меняет, в макросе так же:) Интересны ещё варианты.
kondor3000 так при запуске программы первый вход окажется включен.
По идее надо все выключено, потом короткими нажатиями переключаем по кругу, а длинным например отключаем все.
а блин, про SEL сразу не понял. да, после первого нажатия можно в N записать 1, а для длинного нажатия запись 0 и сброс.
Была где-то тема с т-триггерами и круговым сдвигом
Еще вариант: :rolleyes:
74728
kondor3000
26.03.2024, 19:02
так при запуске программы первый вход окажется включен.
По идее надо все выключено, потом короткими нажатиями переключаем по кругу, а длинным например отключаем все.
а блин, про SEL сразу не понял. да, после первого нажатия можно в N записать 1, а для длинного нажатия запись 0 и сброс.
Сразу видно, что вы с Лоджиком не работаете, если в N записать 1 сразу, то при включении будет 0. Чтобы записать на выход 1 надо кратковременно сделать сброс.
Что и будет, сделано после каждого прохода по кругу.
А SEL нужен только для полного сброса.
EvilH0mer
26.03.2024, 19:34
Еще вариант: :rolleyes:
74728
А что это за переключатель? Что то из расширений или макрос?
kondor3000
26.03.2024, 19:36
А что это за переключатель? Что то из расширений?
Вот, переключатель на 3 выхода (можно изменить) со сбросом. 74730
А что это за переключатель? Что то из расширений или макрос?
В принципе может быть всё, что угодно, например: :rolleyes:
function_block sw
var_input
U : bool;
end_var
var_output
Q1 : bool;
Q2 : bool;
Q3 : bool;
Q4 : bool;
end_var
var
State : udint := 8;
Trig : SYS.RTRIG;
end_var
Trig(I:=U);
if Trig.Q then
State := shl(State, 1); if State.4 then State := 1; end_if
Q1:=State.0; Q2:=State.1; Q3:=State.2; Q4:=State.3;
end_if
end_function_block
EvilH0mer
26.03.2024, 19:54
Вот, переписал код на ST со скрина EFrol 74730 Переключатель на 3 выхода (можно изменить) со сбросом.
Позновательно, спасибо.
EvilH0mer
26.03.2024, 19:57
Весьма доходчиво. В ответах получил даже больше информации чем предполагал. Спасибо.
kondor3000
26.03.2024, 20:16
Весьма доходчиво. В ответах получил даже больше информации чем предполагал. Спасибо.
Скрин схемы на DTRIG выложил Dimensy , но зачем то удалил 74735
Скрин схемы на DTRIG выложил Dimensy , но зачем то удалил 74735
Да я попробовал к нему сброс прикрутить и у меня, вообще, все перестало работать, даже без сброса, поэтому удалил
Хотя, так, вроде работает
74737
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot