Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 16 из 16

Тема: Реализация алгоритма наполнения емкости с тремя стадиями

  1. #11

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Общий и легко масштабируемый алгоритм (0...до_хрена насосов)
    По уровню определить не насосы, а нужное их кол-во.
    А вот по нужному кол-ву:
    -если сейчас больше - тушить самых уставших
    -если меньше включать самых отдохнувших из доступных.

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

  2. #12

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    А может кто-нибудь PUTBIT в Лоджике на ST изобразить?
    В биб-ке Util.lib код выглядит так Вложение 75647

    А в Лоджике как то так, соответственно AND, OR и ROL не работают
    Можно еще так попробовать:
    Код:
    function putbit: udint;
        var_input
            X : udint;
            N : udint;
            B : bool;
        end_var
        
        putbit := shr(X, N); putbit.0 := B; putbit := shl(putbit, N);
        putbit := putbit + shr(shl(X, 32-N), 32-N);
    
    end_function
    Последний раз редактировалось EFrol; 08.05.2024 в 19:05.

  3. #13

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Можно еще так попробовать:
    Код:
    function putbit: udint;
        var_input
            X : udint;
            N : udint;
            B : bool;
        end_var
        
        putbit := shr(X, N); putbit.0 := B; putbit := shl(putbit, N);
        putbit := putbit + shr(shl(X, 32-N), 32-N);
    
    end_function
    EFrol, класс, проверку на скорую руку прошло на ура)))

  4. #14
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,268

    По умолчанию

    EFrol
    да - бомбически))

  5. #15

    По умолчанию

    Я еще крестиком вышивать могу.

  6. #16
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,308

    По умолчанию

    Цитата Сообщение от Григори Посмотреть сообщение
    Всем добрый день. Недавно подкинули интересную задачку, но которую не могу нормально реализовать.
    Дано:
    Аналоговый датчик уровня воды (0-6м, но я делал динамическую подгонку).
    Необходимо реализовать три стадии:
    1) Если опустилось ниже определенного порога 1 высоты, включается Насос 1. Если поднялось до порога 1.1 Выключить насос 1(полное заполнение)
    2) Если опустилось ниже порога 2, отключить насос 1 и перейти на насос 2. Если поднялось до порога 2.1 выключить насос 2 и перейти на насос 1
    3) Если опустилось ниже порога 3, работают насосы 1 и 2. Если поднялось до порога 3.1 выключить насос 1, насос 2 оставить в работе
    (То есть каждая стадия имеет пороги включения и выключения)

    Сам реализовывал в ФБ STшном на IFах с >= и <=, выходила полная шляпа(Стадии накладывались друг на друга)
    Прикладываю проект со своими пробами, но там все уже перемешано и напеределывано 100 раз.
    Это же очень простой алгоритм, думаю любой школьник за 5 минут сделает, типа так: формируете эти ваши стадии, например с помощью макроса двухпозиционного регулятора с гистерезисом из менеджера компонентов, я в одной из тем выкладывал подобный макрос, но с явным назначением уровней срабатывания, мне кажется это намного удобней! Каждой стадии соответствует её порядковый номер, в смысле, 1, 2 и 3 и из этого значения извлекаем нулевой бит(с весовым коэффициентом "1") и используем для работы первого насоса и первый бит(с весовым коэффициентом "2") и используем для работы второго насоса, всё!

    Примерно как-то так, в смысле, мой вариант:

    Вариант простого алгоритма.PNG

    Вариант простого алгоритма_5.PNG

    Простой алгоритм.owle

    Или так:

    Вариант простого алгоритма_2.PNG

    Вариант простого алгоритма_3.PNG

    Вариант простого алгоритма_4.PNG

    Простой алгоритм_2.owle
    Последний раз редактировалось Сергей0308; 09.05.2024 в 20:24.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 19.04.2023, 11:59
  2. Реализация алгоритма..
    от VaBo в разделе Панели оператора (HMI)
    Ответов: 8
    Последнее сообщение: 28.09.2020, 11:28
  3. реализация последовательного алгоритма
    от Brandon_heat_dre в разделе Разработки
    Ответов: 9
    Последнее сообщение: 20.11.2018, 21:19
  4. Уровень в емкости
    от Технос в разделе Панели оператора (HMI)
    Ответов: 12
    Последнее сообщение: 26.08.2016, 08:48
  5. Ответов: 9
    Последнее сообщение: 04.11.2015, 12:46

Метки этой темы

Ваши права

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