Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 25 из 25

Тема: Алгоритм поддержания уровня количеством включённых насосов

  1. #21

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Найдите макрос от AI! по насосам до 8-ми штук, там легко реализовать и ошибки и управление через биты. Какие в работе, а время он сам считает.
    Речь о
    https://owen.ru/forum/showthread.php...l=1#post452976
    и
    https://owen.ru/forum/showthread.php...l=1#post452994
    ?

    Ведь страшно же! Мне кажется, что быстрее велосипед соберу, чем чужой код на трюках с логическими операциями разберу - он же близок к регулярным выражениям
    Изображения Изображения
    • Тип файла: jpg 111.jpg (539.1 Кб, Просмотров: 12)

  2. #22
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,136

    По умолчанию

    Да. У вас всего там 3 входа, битовыми масками управлять не сложно.
    Задали количество и маску насосов.
    По аварии меняется маска. Все остальное делает макрос.

  3. #23

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    Ведь страшно же! Мне кажется, что быстрее велосипед соберу, чем чужой код на трюках с логическими операциями разберу - он же близок к регулярным выражениям
    1 Проект 1.jpg 1 Проект 2.jpg
    Сразу видно, мои проекты даже не смотрели, всё подписано как на схеме, так и в ФБ.
    Последний раз редактировалось kondor3000; Вчера в 21:20.

  4. #24

    По умолчанию

    Ещё раз благодарю всех, откликнувшихся на просьбу о помощи
    Цитата Сообщение от melky Посмотреть сообщение
    Да. У вас всего там 3 входа, битовыми масками управлять не сложно.
    Задали количество и маску насосов.
    По аварии меняется маска. Все остальное делает макрос.
    Я - пошутил, рассыпухой, а не битовыми масками уже решал задачу ротации с приоритетным выбором по наработке, а не просто по очереди, поэтому хоть и не все детали, но общий смысл понимаю в схеме AI!
    Если серьёзно, именно эта схема получается нерасширяемой - к ней нет пояснений с выводом формул (можно вывести самостоятельно - но терять время), также холст плотно заполнен, из-за этого встраивать приоритеты ротации будет труднее, чем создание с нуля - сначала вывести формулы, расчистить холст, добавить расширение функционала.
    Правда, сделать самому, хоть и не с таким мастерством битовых трюков - быстрее. А в моём случае - просто достать из предыдущей работы.

    Как урок мастерства - интересно. Запомню приём и при необходимости его применю. Пример уже будет.

    Спасибо.
    Цитата Сообщение от kondor3000 Посмотреть сообщение
    1 Проект 1.jpg 1 Проект 2.jpg
    Сразу видно, мои проекты даже не смотрели, всё подписано как на схеме, так и в ФБ.
    Внимательно читал и именно этот пример. В сообщении выше разбирал его работу.
    В собственном тестовом примере реализовал его каскадный регулятор с учётом аналогового датчика и количества насосов. Не совсем разобрался с дискретными уровнями и непривычными битовыми трюками, но, показалось, что идею понял - по мере роста уровня на заданных отметках последовательно отключаются насосы.
    Достоинства - простота в понимании принципа работы для наладчика и эксплуатации. Главное объяснить, что баланс наступит на одном из назначенных уровней переключения, а не на каком-то конкретном.
    Недостаток - при включении на пустой резервуар сразу включает все доступные насосы, что можно компенсировать следующим ФБ, ограничивающим одновременную коммутацию. А также требуется отдельная задержка при смене количества насосов - чтобы избежать возможного частого "тактирования".

    Вот блок ротации просмотрел несколько бегло. Он сделан универсально, но циклов много - ощущение, что часть можно заменить однопроходными алгоритмами, усложняя условия проверки. А для ничтожного количества - (до 5) циклы можно развернуть и решение получится довольно простым и наглядным даже на FBD. Это причины беглого осмотра макроса, хотя просмотрел его полностью и комментарии прочитал.

    Недавно готовил документацию на библиотеку коллег в CODESYS 3.5 - там был подобный блок ротации и АВР на открытых массивах array[*] для безграничного числа насосов - мне кажется, он содержал всего 3 цикла.

    Наверное, не буду жадничать и на выходных подготовлю и опубликую свою ротацию на небольшое число насосов - не универсальный, а под конкретное количество. Заказчик потребовал отказа от ротации в работе (только при пуске учитывать наработку) и проверить макрос на практике я не смог, только в эмуляции, но думаю, он рабочий.

    ----------------------------------
    От себя добавлю, делая небольшие утилиты в Pascal (FreePascal), использовал автоформаттер исходного кода JCF. Поэтому, после начала работы с ST начал искать подобный инструмент - он существует, но только в виде двух вариантов расширений к VSCode - после установки VSCode нужно зайти в магазин расширений и найти искомое. Ему во всём далеко до AStyle и JCF, есть глюки - комментарии автодокументирования "///" разделяет пробелом "/ //", но код читать легче.
    Коллеги, делясь кодом с другими - прогоняйте его через автоформаттер! да и просто придерживайтесь аккуратного оформления.

    Мне нравится один из форумов по программированию в рунете - если кто-то "приволакивает" интересную задачку, то люди решают её и объективно критикуют чужие решения (иной раз и излишне резко), все учатся.
    Здесь из-за профессиональной среды, нет разборов решений, только предложения собственных выстраданных решений.
    Надеюсь, что попытками взвесить достоинства и недостатки предложенных решений никого не обидел.

  5. #25

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    Недавно готовил документацию на библиотеку коллег в CODESYS 3.5 - там был подобный блок ротации и АВР на открытых массивах array[*] для безграничного числа насосов - мне кажется, он содержал всего 3 цикла.
    Хорошее сравнение
    У меня 3 цикла и кол-во насосов тоже любое. Но у них всего 3 цикла (но это не точно), а тут целых 3 цикла. У них массивы +, а у других минус.
    Не считая того, что в Cоdesys в 100 раз больше возможностей, а тут надо выносить всё наружу для сохранения, границы массивов переменной не задать.
    И сравнивать Cоdesys с Лоджиком как минимум некорректно.
    Последний раз редактировалось kondor3000; Сегодня в 08:38.

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. Алгоритм работы 3-х насосов на ST
    от K.K. в разделе СПК210, СПК1xx [М01]
    Ответов: 17
    Последнее сообщение: 06.12.2024, 09:46
  2. Ответов: 22
    Последнее сообщение: 29.11.2020, 16:23
  3. Алгоритм поддержания температуры на выходе
    от IloNA в разделе Помощь Разработчикам
    Ответов: 13
    Последнее сообщение: 15.12.2016, 18:58
  4. Система поддержания уровня воды
    от Lexey-ru в разделе Трёп (Курилка)
    Ответов: 34
    Последнее сообщение: 09.06.2014, 21:02
  5. контроллер для поддержания уровня давления в контуре гвс
    от san822 в разделе Подбор Оборудования
    Ответов: 9
    Последнее сообщение: 26.10.2009, 13:02

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •