Просмотр полной версии : Подскажите как решить проблему
Имеется 8 клапанов.
Требуется открывать клапаны по-очереди с интервалом в секунду, т.е. если приходит команда на открытие двух и более клапанов одновременно,то они должны открыться последовательно с интервалом в сек.
Например:
команда - открыть 2, 5, 8 клапаны
выход - сначала 2,сек,потом 5,сек,потом 8
У меня получается только если жёстко задать команды конкретные, а вот если рандомно выбирать какие клапана открывать то не могу додумать как это сделать.
классная задача, яб поигрался так, еслиб еще за такое заплатили :p
гуглите по форуму рандомные числа, недавно тема поднималась, с месяц назад.
Время на задержку тоже можно переменной задать и тоже рандомно, если необходимо.
8 клапанов, этож 8 бит. делайте рандом byte до 255, вытаскивайте из него биты на клапана, вот весь рандом. klapan1 = x.0, klapan2 = x.1 и т.д.
То что вы описали подходит но тогда я например выберу число он распакует в биты и установит в true одновременно.а мне нужно чтобы последовательно.
Задача не в выборе комбинаций клапанов а в их последовательном открытии.
Имеется 8 клапанов.
Требуется открывать клапаны по-очереди с интервалом в секунду, т.е. если приходит команда на открытие двух и более клапанов одновременно,то они должны открыться последовательно с интервалом в сек.
Например:
команда - открыть 2, 5, 8 клапаны
выход - сначала 2,сек,потом 5,сек,потом 8
У меня получается только если жёстко задать команды конкретные, а вот если рандомно выбирать какие клапана открывать то не могу додумать как это сделать.
Например вот так
21349
Для оставшихся трех клапанов продолжить вниз по аналогии.
Например вот так
21349
Для оставшихся трех клапанов продолжить вниз по аналогии.
Большое спасибо,кажись то что нужно!!!!
Единственный минус,если открыть несколько клапанов а потом закрыть с верха по одному то программа сбрасывает все клапаны,т.е. тут всеравно заложена логика открытия с первого по восьмой,а не рандомно
Единственный минус,если открыть несколько клапанов а потом закрыть с верха по одному то программа сбрасывает все клапаны,т.е. тут всеравно заложена логика открытия с первого по восьмой,а не рандомно
Как просили, так и сделал
Имеется 8 клапанов.
Требуется открывать клапаны по-очереди с интервалом в секунду, т.е. если приходит команда на открытие двух и более клапанов одновременно,то они должны открыться последовательно с интервалом в сек.
Например:
команда - открыть 2, 5, 8 клапаны
выход - сначала 2,сек,потом 5,сек,потом 8
У меня получается только если жёстко задать команды конкретные, а вот если рандомно выбирать какие клапана открывать то не могу додумать как это сделать.
Т.е. если 2, 5, 8 то "выход - сначала 2,сек,потом 5,сек,потом 8". Что такое рандомно я не знаю.
Василий Кашуба
16.12.2015, 22:38
Имеется 8 клапанов.
Требуется открывать клапаны по-очереди с интервалом в секунду, т.е. если приходит команда на открытие двух и более клапанов одновременно,то они должны открыться последовательно с интервалом в сек.
Например:
команда - открыть 2, 5, 8 клапаны
выход - сначала 2,сек,потом 5,сек,потом 8
У меня получается только если жёстко задать команды конкретные, а вот если рандомно выбирать какие клапана открывать то не могу додумать как это сделать.
Попробуйте вот так 21369,
это первый макрос 21370, это второй 21371, это третий 21372
Если есть вопросы, задавайте.
Что такое рандомно я не знаю.
Рандомно это значит в любом порядке любые клапана
или так ..
Интересно придумано,но они не закрываются((
GoodLuck
17.12.2015, 09:39
Рандомно это значит в любом порядке любые клапана
Опять не очень понятно.
Допустим, надо открыть 2,5 и 8 клапаны.
Вам предлагают открыть сначала 2, потом 5, а затем 8. А вам надо сначала 8, потом, 2, потом 5 что ль? Или сначала 5, потом 2, потом 8?
Сергей0308
17.12.2015, 09:48
В русском языке нет слова "рандомный". Это калька с англиского "random", означающего, как уже сказали остальные ответившие, "случайный". Применяется людьми, не думающими о своем языке и считающими, что проще и красивее русифицировать английское слово и использовать его вместо имеющегося в русском языке нормального современного полностью идентичного по значению слова. Еще одна причина появления этого слова - это наличие в языках программирования функции Random, выдающей последовательность случайных чисел, из-за чего многие программисты стали говорить "рандомный" вместо "случайный".
Радует только то, что широкого распространения этот идиотизм не получил.
Опять не очень понятно.
Допустим, надо открыть 2,5 и 8 клапаны.
Вам предлагают открыть сначала 2, потом 5, а затем 8. А вам надо сначала 8, потом, 2, потом 5 что ль? Или сначала 5, потом 2, потом 8?
Самый близкий вариант petera предложил. Но немного не так.Например включу все кроме 1-го,потом нажму 1ый и программа сбрасывает все выходы и начинает заного.
Главный смысл в том чтобы нельзя было одновременно открыть клапана,если по-одному открывать то это нормально,а если сразу несколько сигналов одновременно придут,чтобы программа открыла их последовательно с задержкой например в секунду,а в каком порядке неважно, будь то 1,2,3 или 3,2,1
В русском языке нет слова "рандомный". Это калька с англиского "random", означающего, как уже сказали остальные ответившие, "случайный". Применяется людьми, не думающими о своем языке и считающими, что проще и красивее русифицировать английское слово и использовать его вместо имеющегося в русском языке нормального современного полностью идентичного по значению слова. Еще одна причина появления этого слова - это наличие в языках программирования функции Random, выдающей последовательность случайных чисел, из-за чего многие программисты стали говорить "рандомный" вместо "случайный".
Радует только то, что широкого распространения этот идиотизм не получил.
Идиоти́я (прост. идиотизм) (от др.-греч. ἰδιωτεία — «частная жизнь; невежественность, необразованность») — самая глубокая степень олигофрении (умственной отсталости), в тяжёлой форме характеризующаяся почти полным отсутствием речи и мышления.
Больные, страдающие идиотией, не могут ходить, у них нарушено строение внутренних органов. Идиотам недоступна осмысленная деятельность. Речь не развивается. Идиоты произносят лишь отдельные нечленораздельные звуки и слова, часто не понимают речи окружающих, не отличают родственников от посторонних. Они не способны к самостоятельной жизни: не владеют элементарными навыками самообслуживания, не могут самостоятельно есть, иногда даже не пережёвывают пищу, неопрятны, нуждаются в постоянном уходе и надзоре. Мышление не развивается, реакция на окружающее резко снижена. Эмоциональная жизнь исчерпывается примитивными реакциями удовольствия и неудовольствия. У одних преобладают вспышки немотивированного гнева, у других — вялость и безразличие ко всему окружающему.
Попробуйте вот так 21369,
это первый макрос 21370, это второй 21371, это третий 21372
Если есть вопросы, задавайте.
Вопрос один - как в CodeSys это сделать?)
Не пойму что за блоки CD32 и DC32
GoodLuck
17.12.2015, 10:09
kvr15
Самый близкий вариант petera предложил. Но немного не так.Например включу все кроме 1-го,потом нажму 1ый и программа сбрасывает все выходы и начинает заного.
Главный смысл в том чтобы нельзя было одновременно открыть клапана,если по-одному открывать то это нормально,а если сразу несколько сигналов одновременно придут,чтобы программа открыла их последовательно с задержкой например в секунду,а в каком порядке неважно, будь то 1,2,3 или 3,2,1
Еще хочу уточнить.
Для открытия клапанов надо подавать на выходы постоянный сигнал, или импульс?
И сигнал на открытие подается постоянный или импульс?
Или пока есть сигнал, клапан открыт, как только сигнал снят, клапан необходимо закрыть?
kvr15
Еще хочу уточнить.
Для открытия клапанов надо подавать на выходы постоянный сигнал, или импульс?
И сигнал на открытие подается постоянный или импульс?
Оба сигнала постоянные, а их отсутствие должно закрывать клапаны
Самый близкий вариант petera предложил. Но немного не так.Например включу все кроме 1-го,потом нажму 1ый и программа сбрасывает все выходы и начинает заного.
Главный смысл в том чтобы нельзя было одновременно открыть клапана,если по-одному открывать то это нормально,а если сразу несколько сигналов одновременно придут,чтобы программа открыла их последовательно с задержкой например в секунду,а в каком порядке неважно, будь то 1,2,3 или 3,2,1
Опять двадцать пять.:rolleyes:
Вы же в условиях делали упор на "одновременность"
если приходит команда на открытие двух и более клапанов одновременно,то они должны открыться последовательно с интервалом в сек.
А теперь проделываете действие с командой, которое не укладывается в Ваше условие "одновременности"
включу все кроме 1-го,потом нажму 1ый и программа сбрасывает все выходы и начинает заного
Опять двадцать пять.:rolleyes:
Вы же в условиях делали упор на "одновременность"
.
А теперь проделываете действие с командой, которое не укладывается в Ваше условие "одновременности"
Ну а если в процессе нужно сначала открыть 3 клапана потом остальные 5,тогда по вашей схеме произойдёт закрытие первых 3-х и начнут все по новой открываться - вот в чём проблема.
При открытие любого клапана запуск таймера задержки, он отработал можно другой открыть
Ну а если в процессе нужно сначала открыть 3 клапана потом остальные 5,тогда по вашей схеме произойдёт закрытие первых 3-х и начнут все по новой открываться - вот в чём проблема.
Тогда так
21380
В этом варианте откл. клапанов возможно только через общий "выключатель" (Reset) или Вам надо выключать по отдельности?
Тогда так
21380
В этом варианте откл. клапанов возможно только через общий "выключатель" (Reset) или Вам надо выключать по отдельности?
Лучше по отдельности конечно.
Сергей0308
17.12.2015, 11:57
При открытие любого клапана запуск таймера задержки, он отработал можно другой открыть
Согласен! И проще и как и хотел рандомно!
Лучше по отдельности конечно.
А вот так?
21382
Здесь и выключать отдельные клапана можно по одному/группой
GoodLuck
17.12.2015, 12:05
Еще вариант
А вот так?
21382
Здесь и выключать отдельные клапана можно по одному/группой
Вот это подходит!!!Огромное спасибо за идею,рад что на форуме есть такие люди которые оказывают помощь новичкам!!!
В отличие от некоторых личностей,которые могут только "капитанить" и тролить.
Еще вариант
Ваш вариант тоже работает,спасибо за идею!!
Интересно придумано,но они не закрываются((
К барьеру сударь..
Ткните второй раз. закроются
К барьеру сударь..
Ткните второй раз. закроются
Спасибо сударь!
Василий Кашуба
17.12.2015, 18:06
Вопрос один - как в CodeSys это сделать?)
Не пойму что за блоки CD32 и DC32
В CodeSys это делается на языке CFC, а блоки CD32 и DC32 это 21396
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot