- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Алгоритм разрешения на запуск не более 2 насосов из 5.
Модераторы: Глоб.модераторы, Специалисты SE
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 06 фев 2024, 10:31
- Имя: Петя
Алгоритм разрешения на запуск не более 2 насосов из 5.
Имеются 5 насосов которые можно запускать и отключать со СКАДЫ. Как реализовать в Unity pro XL, чтобы нельзя было запускать не более 2-х насосов? Например, если запущены 1-й и 4-й насосы, то остальные нельзя запускать, пока не остановится один из работающих насосов.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Алгоритм разрешения на запуск не более 2 насосов из 5.
Мне кажется, эта задача не должна представлять больших сложностей. Подсчитать количество работающих насосов и если оно больше 1 то никакие другие запускаться не должны.
По вопросам работы Форума можно обратиться по этим контактам.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Алгоритм разрешения на запуск не более 2 насосов из 5.
Ну давайте поприпираемся. В задаче сказано "не более двух". Я пишу: "если больше 1 то запрет пуска следующего насоса".
Работает один. Один больше одного? Нет. Значит ещё один можно запустить, пуск разрешён.
Работает два. Два больше одного? Да. Значит уже хватит, пуск запрещён.
Что и требовалось.
Что "больше N-1", что "больше либо равно N" - одинаково. Можно и так и эдак.
По вопросам работы Форума можно обратиться по этим контактам.
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Алгоритм разрешения на запуск не более 2 насосов из 5.
(>= 2) - более читабельно. Но работает одинаково, согласен.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Алгоритм разрешения на запуск не более 2 насосов из 5.
Кому как :)
В любой программе есть возможность писать комментарии. С ними читаемость одинаковая.
По вопросам работы Форума можно обратиться по этим контактам.
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Алгоритм разрешения на запуск не более 2 насосов из 5.
Для целых чисел, как правило, не следует использовать знаки > и <. Используйте >= и <=.
-
- почётный участник форума
- Сообщения: 1181
- Зарегистрирован: 09 фев 2011, 11:32
- Имя: Дитрих Евгений Линусович
- город/регион: Донецк
- Благодарил (а): 351 раз
- Поблагодарили: 241 раз
Алгоритм разрешения на запуск не более 2 насосов из 5.
Вы тут спорите, как лучше сравнивать! Вопрос задан в 10:41, это же время последнего посещения форума, т.е. ответы и советы не интересны для Ifs.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 06 фев 2024, 10:31
- Имя: Петя
Алгоритм разрешения на запуск не более 2 насосов из 5.
Спасибо всем за ответы! Здесь на входе состояния насосов, а на выходе разрешение на запуск, который проверяется каждым насосом. Можно ли такую схему уменьшить до строчки на языке ST?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 40
- Зарегистрирован: 22 авг 2023, 08:25
- Имя: Виктор
- Страна: Россия
- город/регион: Истра
- Благодарил (а): 24 раза
- Поблагодарили: 6 раз
Алгоритм разрешения на запуск не более 2 насосов из 5.
Так попробуйте! У вас есть среда разработки и контроллер. Нельзя же всё получать извне. Пробуйте, ошибайтесь, учитесь. В сложных случаях вам всегда помогут.
-
- освоился
- Сообщения: 200
- Зарегистрирован: 18 сен 2021, 18:07
- Имя: Владимир
- Страна: Беларусь
- Благодарил (а): 12 раз
- Поблагодарили: 34 раза
Алгоритм разрешения на запуск не более 2 насосов из 5.
Вы хоть немного знакомы с булевой логикой ? В самом общем случае - это перебор условий Н1,2,3 - состояние насосов, И ИЛИ НЕ - операторы Вот вам одна строчка .
Код: Выделить всё
(Н1 И Н2 И НЕ(Н3) ) ИЛИ (Н1 И Н3 И НЕ(Н2) ) ИЛИ (Н3 И Н2 И НЕ(Н1)) = Разрешение
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
Алгоритм разрешения на запуск не более 2 насосов из 5.
Код: Выделить всё
xResult := (BOOL_TO_INT(xVar1) + BOOL_TO_INT(xVar2) + BOOL_TO_INT(xVar3) + BOOL_TO_INT(xVar4) + BOOL_TO_INT(xVar5)) <= 1;
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Алгоритм разрешения на запуск не более 2 насосов из 5.
Через SHL красивее получается ))leon78 писал(а): ↑08 фев 2024, 15:34Код: Выделить всё
xResult := (BOOL_TO_INT(xVar1) + BOOL_TO_INT(xVar2) + BOOL_TO_INT(xVar3) + BOOL_TO_INT(xVar4) + BOOL_TO_INT(xVar5)) <= 1;
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.