Просмотр полной версии : Прошу помочь с алгоритмом
Прошу помочь с алгоритмом:
Нужен макрос:
- 5 входов (V1,V2…V5) (bool)
- 1 выход (A) (int)
Логика подобие структуры if или case:
A=0
If (V1=true) then A=1
If (V2=true) then A=2
If (V3=true) then A=3
If (V4=true) then A=4
If (V5=true) then A=5
Прошу помочь с алгоритмом:
Нужен макрос:
- 5 входов (V1,V2…V5) (bool)
- 1 выход (A) (int)
Логика подобие структуры if или case:
A=0
If (V1=true) then A=1
If (V2=true) then A=2
If (V3=true) then A=3
If (V4=true) then A=4
If (V5=true) then A=5
А если v1=true и V2 =true одновременно ?
Сергей0308
06.07.2019, 21:27
Прошу помочь с алгоритмом:
Нужен макрос:
- 5 входов (V1,V2…V5) (bool)
- 1 выход (A) (int)
Логика подобие структуры if или case:
A=0
If (V1=true) then A=1
If (V2=true) then A=2
If (V3=true) then A=3
If (V4=true) then A=4
If (V5=true) then A=5
Наверно, так:
43518
Наверно, потому что в писанине не разбираюсь, понял на уровне подсознания, если не так, пусть поправят кто понимает писанину!
Наверно, так:
43518
Наверно, потому что в писанине не разбираюсь, понял на уровне подсознания, если не так, пусть поправят кто понимает писанину!
Идеально! Именно то, что нужно.
Спасибо большое!
короче надо на форуме отдельную ветку заводить для воскресенских студентов, которые к понедельнику лабы делают!
выложу еще два варианта, не претендую на идеальность
Что то я боюсь за будущее в области кип....
Ничего страшного! Они все сейчас перепугаются и в кип не пойдут. Все норм )))))
Ну из технаря гуманитария можно сделать. А вот из гуманитария технарь не получается. Пробовал не выходит.
Доброго времени суток.
Нужна помощь с алгоритмом.
Задача такая нужно:
Если вход I1 = 1 и вход I2 = 0 то выход Q1 = 1, Q2 = 0, Q3 = 0
Если вход I1 = 0 и вход I2 = 1 то выход Q1 = 0, Q2 = 1, Q3 = 0
Если вход I1 = 0 и вход I2 = 0 то выход Q1 = 0, Q2 = 0, Q3 = 1
Как все это сделать программно в OWEN Logic.
Ревака Юрий
11.07.2019, 10:59
Доброго времени суток.
Нужна помощь с алгоритмом.
Задача такая нужно:
Если вход I1 = 1 и вход I2 = 0 то выход Q1 = 1, Q2 = 0, Q3 = 0
Если вход I1 = 0 и вход I2 = 1 то выход Q1 = 0, Q2 = 1, Q3 = 0
Если вход I1 = 0 и вход I2 = 0 то выход Q1 = 0, Q2 = 0, Q3 = 1
Как все это сделать программно в OWEN Logic.
Одногруппники подтянулись:)
Сергей0308
11.07.2019, 11:58
Доброго времени суток.
Нужна помощь с алгоритмом.
Задача такая нужно:
Если вход I1 = 1 и вход I2 = 0 то выход Q1 = 1, Q2 = 0, Q3 = 0
Если вход I1 = 0 и вход I2 = 1 то выход Q1 = 0, Q2 = 1, Q3 = 0
Если вход I1 = 0 и вход I2 = 0 то выход Q1 = 0, Q2 = 0, Q3 = 1
Как все это сделать программно в OWEN Logic.
А если оба входа активны?
Наверно так:
43583
Спасибо проверил но не то ,что надо.
Алгоритм вроде простой, но голову уже сломал что бы написать программно.
Если оба входа активны то на трех выходах 0.
Спасибо проверил но не то ,что надо.
Алгоритм вроде простой, но голову уже сломал что бы написать программно.
Если оба входа активны то на трех выходах 0.
Вы вообще о булевой логике хоть что то слышали? Хотя бы обложку учебника видели?
Да слышал и немного разбираюсь.
Спасибо то ,что надо.
Все работает в ОЛ.
Сергей0308
11.07.2019, 12:56
Спасибо проверил но не то ,что надо.
Алгоритм вроде простой, но голову уже сломал что бы написать программно.
Если оба входа активны то на трех выходах 0.
Мой вариант:
43585
Преподавателям скинули ссылку на тему? :cool:
Спасибо за вариант макроса.
Попробовал но не работает .Может не то написал в ОВ.
левая константа в воздухе висит
Спасибо . Исправил проект .
Все работает .
Сергей0308
11.07.2019, 21:31
Вот ещё вариант:
43592
До 8 входов, до 32 выходов, логика любая, какая только может в голову прийти!
Короче сразу на все случаи в жизни:
43593
Сергей0308 ты как всегда по мелочи нечего не делаешь. Спасибо.... Одельное за макрос с "тапочками"
Сергей0308
07.08.2019, 21:48
Сергей0308 ты как всегда по мелочи нечего не делаешь. Спасибо.... Одельное за макрос с "тапочками"
Да не за что! Уже смутно помню, но задача была не очень сложная, кстати самый сложный мой макрос это "очередь", в такой-то из тем выкладывал(последняя версия здесь в 18 посте: https://owen.ru/forum/showthread.php?t=31113&page=2), а ваш я думаю сейчас бы сделали проще и быстрей, если у вас такой:
43961
То сейчас у меня появились макросы RAMP_BIT которые в принципе выполняют туже функцию что и макрос DTRIG8, но скорость выполнения увеличивается до 8 раз(при 8 входах) с 8 до 1 цикла при изменении любого бита(активации-деактивации входа) и логика работы получилась более правильная(с логической точки зрения), не знаю вам такое подойдёт?
43962
43963
Да забыл сказать, приоритет у входов с большим порядковым номером, если вдруг одновременно включились, там все возможные ситуации этим разруливаются!
Сергей0308 спасибо. посмотрю вашу новую разработку.
Eldarbl4
13.08.2019, 13:01
подскажите как правильно написать макрос со статическим запоминающем устройством из двух вентилей НЕ-ИЛИ которые внутри связаны бистабильным мультивибратором! спасибо!
Василий Кашуба
13.08.2019, 16:17
Т тригер что ли?
Василий и зачем ты прогнал новичка таки страшным словом как триггер?
Eldarbl4
13.08.2019, 20:53
да именно. в макросах его не нашел.
Сергей0308
13.08.2019, 20:59
да именно. в макросах его не нашел.
По-моему есть такой в менеджере компонентов, да и много разных на форуме предлагали, чтобы не повторяться, вот новую модификацию придумал:
44073
44075
Или так, по старинке:
44077
Алексей Геннадьевич
16.08.2019, 14:17
Т тригер что ли?
Настало время разработчикам внести в базу ОЛ этот нужный элемент, чтобы колхоз прекратить.
T-trigger в базе есть, только он иначе называется - ON_OFF - Сергей0308 показал его в списке компонентов.
В базе непривычно называется схема подавления дребезга контактов. Я бы назвал Debounce, а в базе макрос назван - DI_Filt_.
Нужно постоянно работать и держать в памяти назначение компонентов.
19dimon85
03.09.2019, 20:51
Добрый вечер. Ребята очень нужна помощь в написании программы для ПР-100. Реле будет применяться в системе отопления частного дома. Я полный чайник и убил уже неделю, но все без толку. Условия работы ПР:
Есть три входа I1, I2, I3 и три соответствующих выхода Q1, Q2, Q3 . При 1 на одном из трех входов, активируется и соответствующий выход и отрабатывает пока активен соответствующий вход.
При единице на двух и более входах, соответствующие входам выходы отрабатывают по порядку по 15 минут и цикл повторяется пока активно 2 или 3 входа. Как только остается активен только один из трех входов- соответствующий выход остается активен. Кроме того, с 24.00-06.00 выход Q1 должен иметь возможность всегда включаться по сигналу от I1 независимо от активности по другим входам.
19dimon85 я бы и две недели убил если бы мне дали такое задание.
1) Это КАК? "При единице на двух и более входах, соответствующие входам выходы отрабатывают по порядку по 15 минут и цикл повторяется пока активно 2 или 3 входа. Как только остается активен только один из трех входов- соответствующий выход остается активен".
2) Что ВЫ понимаете под словом активный, отрабатывают?
I1; I2; I3- насколько я понимаю это аналоговый вход. ОН всегда что то измеряет. И "единички " там не будет там будет число с запятой(float).
Теперь Q1;Q2;Q3- выхода. что у вас будет "управлять температурой" Вашего пола?
Нужно ли отключать Q2 и Q3 после 24.00 или они могут работать в паре с Q1
Во первых напишите какое у вас оборудование кроме ПР100? В примера к ПР100 есть двух позиционный регулятор как я понимаю это Ваш вариант. Возьмите за основу и сделайте хоть что то. Не пойдет поможем.
19dimon85 я бы и две недели убил если бы мне дали такое задание.
1) Это КАК? "При единице на двух и более входах, соответствующие входам выходы отрабатывают по порядку по 15 минут и цикл повторяется пока активно 2 или 3 входа. Как только остается активен только один из трех входов- соответствующий выход остается активен".
2) Что ВЫ понимаете под словом активный, отрабатывают?
I1; I2; I3- насколько я понимаю это аналоговый вход. ОН всегда что то измеряет. И "единички " там не будет там будет число с запятой(float).
Теперь Q1;Q2;Q3- выхода. что у вас будет "управлять температурой" Вашего пола?
Нужно ли отключать Q2 и Q3 после 24.00 или они могут работать в паре с Q1
Во первых напишите какое у вас оборудование кроме ПР100? В примера к ПР100 есть двух позиционный регулятор как я понимаю это Ваш вариант. Возьмите за основу и сделайте хоть что то. Не пойдет поможем.
как то вы не правильно все восприняли, унего полностью дискретная логика: один вход замкнут, значит включен аналогичный выход, если два и более замкнутых входов, то выхода включаются последовательно по одному с периодом 15 минут пока не размкнутся входа до одного и менее
19dimon85
03.09.2019, 22:03
19dimon85 я бы и две недели убил если бы мне дали такое задание.
1) Это КАК? "При единице на двух и более входах, соответствующие входам выходы отрабатывают по порядку по 15 минут и цикл повторяется пока активно 2 или 3 входа. Как только остается активен только один из трех входов- соответствующий выход остается активен".
2) Что ВЫ понимаете под словом активный, отрабатывают?
I1; I2; I3- насколько я понимаю это аналоговый вход. ОН всегда что то измеряет. И "единички " там не будет там будет число с запятой(float).
Теперь Q1;Q2;Q3- выхода. что у вас будет "управлять температурой" Вашего пола?
Нужно ли отключать Q2 и Q3 после 24.00 или они могут работать в паре с Q1
Во первых напишите какое у вас оборудование кроме ПР100? В примера к ПР100 есть двух позиционный регулятор как я понимаю это Ваш вариант. Возьмите за основу и сделайте хоть что то. Не пойдет поможем.
Прибор, который будет управлять процессом- ПР100-230.0804.01.0. Входы и выходы- дискретные.
Постараюсь дать более развернутое пояснение. Прибор должен управлять тремя зонами электрического отопления в доме. Каждая зона имеет свой терморегулятор, который и будет давать сигнал 1 либо 0 на ПР-100. Задача исключить в дневное время суток одновременную работу двух или более отапливаемых зон и обеспечить поочередную циклическую работу зон с которых пришел сигнал на ПР-100.
Вместе с тем, разрешить в ночное время постоянную работу приоритетной зоны (к примеру, I1-Q1) по сигналу от терморегулятора. Оставшиеся выходы Q2 и Q3 в ночное время работают по тому же принципу, но в цикле уже 2 зоны при единицах на обоих оставшихся входах или при единице лишь на одном из них - активируется соответствующий выход и работает пока пока есть 1 на входе.
Прибор, который будет управлять процессом- ПР100-230.0804.01.0. Входы и выходы- дискретные.
Постараюсь дать более развернутое пояснение. Прибор должен управлять тремя зонами электрического отопления в доме. Каждая зона имеет свой терморегулятор, который и будет давать сигнал 1 либо 0 на ПР-100. Задача исключить в дневное время суток одновременную работу двух или более отапливаемых зон и обеспечить поочередную циклическую работу зон с которых пришел сигнал на ПР-100.
Вместе с тем, разрешить в ночное время постоянную работу приоритетной зоны (к примеру, I1-Q1) по сигналу от терморегулятора. Оставшиеся выходы Q2 и Q3 в ночное время работают по тому же принципу, но в цикле уже 2 зоны при единицах на обоих оставшихся входах или при единице лишь на одном из них - активируется соответствующий выход и работает пока пока есть 1 на входе.
начните с этого
19dimon85
03.09.2019, 22:22
Мой результат недельных проб и ошибок без интервального таймера выглядит пока так.44440
19dimon85
04.09.2019, 22:44
Добрый вечер, немного пробрался дальше к цели, но все равно еще не то,что нужно. Может, есть у кого идея как в ночное время зациклить только 2 контура исключив из чередования первый- приоритетный.
44455
Сергей0308
05.09.2019, 11:32
Добрый вечер. Ребята очень нужна помощь в написании программы для ПР-100. Реле будет применяться в системе отопления частного дома. Я полный чайник и убил уже неделю, но все без толку. Условия работы ПР:
Есть три входа I1, I2, I3 и три соответствующих выхода Q1, Q2, Q3 . При 1 на одном из трех входов, активируется и соответствующий выход и отрабатывает пока активен соответствующий вход.
При единице на двух и более входах, соответствующие входам выходы отрабатывают по порядку по 15 минут и цикл повторяется пока активно 2 или 3 входа. Как только остается активен только один из трех входов- соответствующий выход остается активен. Кроме того, с 24.00-06.00 выход Q1 должен иметь возможность всегда включаться по сигналу от I1 независимо от активности по другим входам.
Вот ротацию насосов делали, если в аварии или выключен - исключается из ротации и есть ручное включение-выключение, как я понимаю Вам нужно для первого входа-выхода с 0 до 6 часов чтобы включать его независимо от состояний других входов-выходов!
https://owen.ru/forum/showthread.php?t=12691&page=41
Короче, мне кажется вам должно идеально подойти, если я правильно понял логику работы!
44482
44483
Сергей0308
07.09.2019, 15:50
Добрый вечер, немного пробрался дальше к цели, но все равно еще не то,что нужно. Может, есть у кого идея как в ночное время зациклить только 2 контура исключив из чередования первый- приоритетный.
44455
Чего молчите, как в рот воды набрали, вот модификацию сделал, мне кажется, вам более подходящая:
44509
44511
Вот, ещё немного попытался упростить элемент программы сумматор бит(подсчитывает количество единиц в переменной):
44513
19dimon85
08.09.2019, 21:31
Чего молчите, как в рот воды набрали, вот модификацию сделал, мне кажется, вам более подходящая:
44509
44511
Вот, ещё немного попытался упростить элемент программы сумматор бит(подсчитывает количество единиц в переменной):
44513
Добрый вечер. Саргей, я пока тестирую, но похоже, что это именно то,что мне было нужно. Спасибо, Вам.
Сергей0308
09.09.2019, 06:30
Добрый вечер. Саргей, я пока тестирую, но похоже, что это именно то,что мне было нужно. Спасибо, Вам.
Я ставил для проверки в симуляторе уставку таймера 15 секунд(это видно по скриншоту) вместо 15 минут, чтобы долго не ждать!
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot