PDA

Просмотр полной версии : Прошу помочь с алгоритмом



titan
06.07.2019, 21:13
Прошу помочь с алгоритмом:
Нужен макрос:
- 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

rovki
06.07.2019, 21:26
Прошу помочь с алгоритмом:
Нужен макрос:
- 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

Наверно, потому что в писанине не разбираюсь, понял на уровне подсознания, если не так, пусть поправят кто понимает писанину!

titan
06.07.2019, 21:50
Наверно, так:

43518

Наверно, потому что в писанине не разбираюсь, понял на уровне подсознания, если не так, пусть поправят кто понимает писанину!

Идеально! Именно то, что нужно.

Спасибо большое!

bayk
07.07.2019, 00:07
короче надо на форуме отдельную ветку заводить для воскресенских студентов, которые к понедельнику лабы делают!

capzap
07.07.2019, 12:32
выложу еще два варианта, не претендую на идеальность

игорь68
07.07.2019, 23:18
Что то я боюсь за будущее в области кип....

bayk
08.07.2019, 01:40
Ничего страшного! Они все сейчас перепугаются и в кип не пойдут. Все норм )))))

игорь68
09.07.2019, 19:20
Ну из технаря гуманитария можно сделать. А вот из гуманитария технарь не получается. Пробовал не выходит.

RR2019
11.07.2019, 10:55
Доброго времени суток.
Нужна помощь с алгоритмом.
Задача такая нужно:

Если вход 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

RR2019
11.07.2019, 12:14
Спасибо проверил но не то ,что надо.
Алгоритм вроде простой, но голову уже сломал что бы написать программно.
Если оба входа активны то на трех выходах 0.

игорь68
11.07.2019, 12:16
Спасибо проверил но не то ,что надо.
Алгоритм вроде простой, но голову уже сломал что бы написать программно.
Если оба входа активны то на трех выходах 0.

Вы вообще о булевой логике хоть что то слышали? Хотя бы обложку учебника видели?

RR2019
11.07.2019, 12:18
Да слышал и немного разбираюсь.

Sulfur
11.07.2019, 12:38
RR2019
Вот.

RR2019
11.07.2019, 12:41
Спасибо то ,что надо.
Все работает в ОЛ.

Сергей0308
11.07.2019, 12:56
Спасибо проверил но не то ,что надо.
Алгоритм вроде простой, но голову уже сломал что бы написать программно.
Если оба входа активны то на трех выходах 0.

Мой вариант:


43585

i.go
11.07.2019, 13:13
Преподавателям скинули ссылку на тему? :cool:

RR2019
11.07.2019, 13:19
Спасибо за вариант макроса.

AI!
11.07.2019, 15:26
ещё вариант: 43588

RR2019
11.07.2019, 16:15
Попробовал но не работает .Может не то написал в ОВ.

RR2019
11.07.2019, 16:18
Проект пример

AI!
11.07.2019, 17:04
левая константа в воздухе висит

RR2019
11.07.2019, 17:17
Спасибо . Исправил проект .
Все работает .

Сергей0308
11.07.2019, 21:31
Вот ещё вариант:

43592

До 8 входов, до 32 выходов, логика любая, какая только может в голову прийти!
Короче сразу на все случаи в жизни:
43593

игорь68
11.07.2019, 22:37
Сергей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

Да забыл сказать, приоритет у входов с большим порядковым номером, если вдруг одновременно включились, там все возможные ситуации этим разруливаются!

игорь68
08.08.2019, 11:16
Сергей0308 спасибо. посмотрю вашу новую разработку.

Eldarbl4
13.08.2019, 13:01
подскажите как правильно написать макрос со статическим запоминающем устройством из двух вентилей НЕ-ИЛИ которые внутри связаны бистабильным мультивибратором! спасибо!

Василий Кашуба
13.08.2019, 16:17
Т тригер что ли?

игорь68
13.08.2019, 18:33
Василий и зачем ты прогнал новичка таки страшным словом как триггер?

Eldarbl4
13.08.2019, 20:53
да именно. в макросах его не нашел.

Сергей0308
13.08.2019, 20:59
да именно. в макросах его не нашел.

По-моему есть такой в менеджере компонентов, да и много разных на форуме предлагали, чтобы не повторяться, вот новую модификацию придумал:

44073

44075

Или так, по старинке:

44077

Алексей Геннадьевич
16.08.2019, 14:17
Т тригер что ли?
Настало время разработчикам внести в базу ОЛ этот нужный элемент, чтобы колхоз прекратить.

FPavel
16.08.2019, 21:29
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 независимо от активности по другим входам.

игорь68
03.09.2019, 21:17
19dimon85 я бы и две недели убил если бы мне дали такое задание.
1) Это КАК? "При единице на двух и более входах, соответствующие входам выходы отрабатывают по порядку по 15 минут и цикл повторяется пока активно 2 или 3 входа. Как только остается активен только один из трех входов- соответствующий выход остается активен".
2) Что ВЫ понимаете под словом активный, отрабатывают?
I1; I2; I3- насколько я понимаю это аналоговый вход. ОН всегда что то измеряет. И "единички " там не будет там будет число с запятой(float).
Теперь Q1;Q2;Q3- выхода. что у вас будет "управлять температурой" Вашего пола?
Нужно ли отключать Q2 и Q3 после 24.00 или они могут работать в паре с Q1
Во первых напишите какое у вас оборудование кроме ПР100? В примера к ПР100 есть двух позиционный регулятор как я понимаю это Ваш вариант. Возьмите за основу и сделайте хоть что то. Не пойдет поможем.

capzap
03.09.2019, 21:28
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 на входе.

capzap
03.09.2019, 22:16
Прибор, который будет управлять процессом- ПР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 минут, чтобы долго не ждать!