1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Алгоритм разрешения на запуск не более 2 насосов из 5.

Unity Pro (Control Expert), Quantum, Premium, M340, M580, Hybrid DCS, Process Expert, Zelio, Twido, M17*, M2**, SCADAPACK, SoMachine, MachineExpert, ZelioSoft, TwidoSoft, TwidoSuite, TelePace

Модератор: Специалисты SE

Ответить

Автор темы
lfs
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 06 фев 2024, 10:31
Имя: Петя

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение lfs »

Имеются 5 насосов которые можно запускать и отключать со СКАДЫ. Как реализовать в Unity pro XL, чтобы нельзя было запускать не более 2-х насосов? Например, если запущены 1-й и 4-й насосы, то остальные нельзя запускать, пока не остановится один из работающих насосов.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17589
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 825 раз
Поблагодарили: 1653 раза

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение Jackson »

Мне кажется, эта задача не должна представлять больших сложностей. Подсчитать количество работающих насосов и если оно больше 1 то никакие другие запускаться не должны.
По вопросам работы Форума можно обратиться по этим контактам.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3577
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение Михайло »

[+]
Jackson писал(а): 06 фев 2024, 10:59 если оно больше 1
Больше или равно 2. Вам же сказали N насосов, а вы отвечаете "если оно больше (N-1)". Сравните с моим "больше или равно N".
Программистская тонкость.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17589
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 825 раз
Поблагодарили: 1653 раза

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение Jackson »

Михайло писал(а): 06 фев 2024, 19:36 Больше или равно 2. Вам же сказали N насосов, а вы отвечаете "если оно больше (N-1)". Сравните с моим "больше или равно N".
Программистская тонкость.
Ну давайте поприпираемся. В задаче сказано "не более двух". Я пишу: "если больше 1 то запрет пуска следующего насоса".
Работает один. Один больше одного? Нет. Значит ещё один можно запустить, пуск разрешён.
Работает два. Два больше одного? Да. Значит уже хватит, пуск запрещён.
Что и требовалось.

Что "больше N-1", что "больше либо равно N" - одинаково. Можно и так и эдак.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2340
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1998 раз
Поблагодарили: 176 раз

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение keysansa »

Jackson писал(а): 06 фев 2024, 19:49 Что "больше N-1", что "больше либо равно N" - одинаково. Можно и так и эдак.
(>= 2) - более читабельно. Но работает одинаково, согласен.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17589
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 825 раз
Поблагодарили: 1653 раза

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение Jackson »

keysansa писал(а): 06 фев 2024, 22:11 (>= 2) - более читабельно.
Кому как :)
В любой программе есть возможность писать комментарии. С ними читаемость одинаковая.
По вопросам работы Форума можно обратиться по этим контактам.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3577
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение Михайло »

Для целых чисел, как правило, не следует использовать знаки > и <. Используйте >= и <=.
Аватара пользователя

Looker
почётный участник форума
почётный участник форума
Сообщения: 1116
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 323 раза
Поблагодарили: 218 раз

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение Looker »

Вы тут спорите, как лучше сравнивать! Вопрос задан в 10:41, это же время последнего посещения форума, т.е. ответы и советы не интересны для Ifs. :ges_clap2:
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу

Автор темы
lfs
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 06 фев 2024, 10:31
Имя: Петя

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение lfs »

Спасибо всем за ответы! Здесь на входе состояния насосов, а на выходе разрешение на запуск, который проверяется каждым насосом. Можно ли такую схему уменьшить до строчки на языке ST?
У вас нет необходимых прав для просмотра вложений в этом сообщении.

jerri_can
здесь недавно
здесь недавно
Сообщения: 21
Зарегистрирован: 22 авг 2023, 08:25
Имя: Виктор
Страна: Россия
город/регион: Истра
Благодарил (а): 10 раз
Поблагодарили: 2 раза

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение jerri_can »

Так попробуйте! У вас есть среда разработки и контроллер. Нельзя же всё получать извне. Пробуйте, ошибайтесь, учитесь. В сложных случаях вам всегда помогут.

zromz
осмотрелся
осмотрелся
Сообщения: 185
Зарегистрирован: 18 сен 2021, 18:07
Имя: Владимир
Страна: Беларусь
Благодарил (а): 9 раз
Поблагодарили: 30 раз

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение zromz »

lfs писал(а): 08 фев 2024, 07:02 Можно ли такую схему уменьшить до строчки на языке ST?
Вы хоть немного знакомы с булевой логикой ? В самом общем случае - это перебор условий Н1,2,3 - состояние насосов, И ИЛИ НЕ - операторы Вот вам одна строчка .

Код: Выделить всё

(Н1 И Н2 И НЕ(Н3) ) ИЛИ (Н1 И Н3 И НЕ(Н2) ) ИЛИ (Н3 И Н2 И НЕ(Н1)) = Разрешение
Это для 3 входов, для 5 очень долго расписывать . естественно так никто не делает, есть более оптимальные варианты для вашего ПО и контроллеров, выше уже предлагали какие.

leon78
эксперт
эксперт
Сообщения: 1035
Зарегистрирован: 25 июл 2008, 10:06
Имя: Леонид
Страна: РФ
Благодарил (а): 34 раза
Поблагодарили: 110 раз

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение leon78 »

lfs писал(а): 08 фев 2024, 07:02 Можно ли такую схему уменьшить до строчки на языке ST?

Код: Выделить всё

xResult := (BOOL_TO_INT(xVar1) + BOOL_TO_INT(xVar2) + BOOL_TO_INT(xVar3) + BOOL_TO_INT(xVar4) + BOOL_TO_INT(xVar5)) <= 1;
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2340
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1998 раз
Поблагодарили: 176 раз

Алгоритм разрешения на запуск не более 2 насосов из 5.

Сообщение keysansa »

leon78 писал(а): 08 фев 2024, 15:34
lfs писал(а): 08 фев 2024, 07:02 Можно ли такую схему уменьшить до строчки на языке ST?

Код: Выделить всё

xResult := (BOOL_TO_INT(xVar1) + BOOL_TO_INT(xVar2) + BOOL_TO_INT(xVar3) + BOOL_TO_INT(xVar4) + BOOL_TO_INT(xVar5)) <= 1;
Через SHL красивее получается ))
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Ответить

Вернуться в «ПЛК»