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

Алгоритм работы нескольких насосов

Обсуждение вопросов, не относящихся ни к одному из других подразделов

Модератор: kirillio

Ответить

Автор темы
Igor_VSM
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 03 ноя 2017, 11:08
Имя: Игорь
Страна: Россия
город/регион: Бугульма

Алгоритм работы нескольких насосов

Сообщение Igor_VSM »

Добрый день!

Достался проект насосной станции. В насосной станции предусмотрено 4 насосных агрегата (3 рабочих+1 резервный). На каждый насосный агрегат предусмотрен частотный преобразователь. Для управления насосной буду проектировать локальную систему управления.
Подключение насосов будет производится автоматически в зависимости от необходимого расхода. И тут засада. На стадии тендера на выкиде насосов не были заложены расходомеры. И плюс ко всему заложены насоса с номинальным напором 170м, на входе насосов давление от 70 до 90м, а на выходе насосной давление не должно быть больше 180м.
На данный момент, из того что есть у меня в насосной я слепил следующий алгоритм работы.
В работе 1 насос:
Pвход=90 м
Pнасоса=90 м
Qмин=87 м3/ч
Qмакс=175 м3/ч.

В работе 2 насоса.
Pвход=90 м
Pвыход=90 м
Qмин=174 м3/ч
Qмакс=350 м3/ч

В работе 3 насоса.
Pвход=90 м
Pвыход=90 м
Qмин=261 м3/ч
Qмакс=525 м3/ч

Планирую регулировать производительность и подключать дополнительные насосы по давлению на выходе и текущей частоте эл. двигателя насоса.
Есть пару моментов, которые сейчас думаю как решить.
1. Практически нету разброса по максимальной производительность 1-го насоса (Qмин) и минимальной производительности 2-х (Qмин*2). Боюсь будет случай когда второй насос будет включаться и выключаться через очень непродолжительное время. Это конечно зависит от технологии, но как можно избежать это на уровне автоматизации? (кроме варианта с временем задержки, все таки в течении это время насос может работать не в режиме)
2. Так как отсутствуют расходомеры на выкидных линиях насоса, то не получится отследить "передавливание" одним насосом другого насоса. На это случае, посовещавшись с электриками, есть вариант сравнивать ток электродвигателей насосов и по нему косвенно контролировать "передавливание" и по току регулировать это момент. Такое еще нигде не применял и вообще такое возможно или нет?

VaBo
частый гость
частый гость
Сообщения: 441
Зарегистрирован: 21 июл 2013, 19:32
Имя: Вадим
город/регион: Северодвинск
Благодарил (а): 12 раз
Поблагодарили: 38 раз

Алгоритм работы нескольких насосов

Сообщение VaBo »

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

Автор темы
Igor_VSM
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 03 ноя 2017, 11:08
Имя: Игорь
Страна: Россия
город/регион: Бугульма

Алгоритм работы нескольких насосов

Сообщение Igor_VSM »

Дело в том, что Заказчик хочет регулировать производительность установки в пределах 138-363 м3/ч. Это насосная перекачки нефтеводяной эмульсии, которая поступает со скважин.

VaBo
частый гость
частый гость
Сообщения: 441
Зарегистрирован: 21 июл 2013, 19:32
Имя: Вадим
город/регион: Северодвинск
Благодарил (а): 12 раз
Поблагодарили: 38 раз

Алгоритм работы нескольких насосов

Сообщение VaBo »

Так поставьте общий расходомер и заведите с него обратную связь 4-20 мА на единственный частотник. Посмотрите типовые применения VFD-CP.

Автор темы
Igor_VSM
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 03 ноя 2017, 11:08
Имя: Игорь
Страна: Россия
город/регион: Бугульма

Алгоритм работы нескольких насосов

Сообщение Igor_VSM »

Денег на это руководство не хочет выделять.
Заказчик хочет видеть на каждой насос частотный преобразователь.
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1602
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 69 раз
Поблагодарили: 185 раз

Алгоритм работы нескольких насосов

Сообщение petr2off »

Есть вариант 2х двухуровневой схемы. На верхнем уровне 1 регулятор (для меня давление было актуально) на нижнем соответственно N Регуляторов по току. Т.е. верхний регулятор регулирует токи, нижние - рабочий параметр. На 3-х объектах схема прокатила, а на одном нет. Получилось, что при одинаковом задании для частотника, токи могут быть весьма разные. И идет самовозбуждение насосов. Применил схему одного регулятора, но многоканального. Правда пришлось мирится с разбросом токов по насосам. Т.е. кто то пашет - а кто то сачкует немного (как в жизни)
Аватара пользователя

hell_boy
почётный участник форума
почётный участник форума
Сообщения: 1746
Зарегистрирован: 18 янв 2009, 12:25
Имя: Дмитрий
Страна: Россия
город/регион: Москва
Благодарил (а): 6 раз
Поблагодарили: 132 раза

Алгоритм работы нескольких насосов

Сообщение hell_boy »

Igor_VSM писал(а):1. Практически нету разброса по максимальной производительность 1-го насоса (Qмин) и минимальной производительности 2-х (Qмин*2)
Введите показатель производительности Q/I (м3/А). Тогда можно построить систему регулирования с точки зрения экономии электроэнергии
Igor_VSM писал(а):2. Так как отсутствуют расходомеры на выкидных линиях насоса, то не получится отследить "передавливание" одним насосом другого насоса. На это случае, посовещавшись с электриками, есть вариант сравнивать ток электродвигателей насосов и по нему косвенно контролировать "передавливание" и по току регулировать это момент. Такое еще нигде не применял и вообще такое возможно или нет?
Применяют, но это - плохое решение. Есть такая штука, как обратный клапан на выкиде насоса. По-моему, обратные клапана обязательны в насосных с несколькими агрегатами на одной линии.
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой

Автор темы
Igor_VSM
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 03 ноя 2017, 11:08
Имя: Игорь
Страна: Россия
город/регион: Бугульма

Алгоритм работы нескольких насосов

Сообщение Igor_VSM »

Обратный клапан предусмотрен на выкиде каждого насоса. Но он не гарантирует решение проблемы с передавливанием. Да и функция его не в этом. У нас была похожая ситуация, только там по давлению нам не нужно было держать определенный порог. Но там в итоге институт сказал нам ставить расходомеры на выкиде каждого насоса.
Пока я думаю установить датчик давления в коллекторе, рассчитать частоты электродвигателей насосов в зависимости от давления. По этим параметрами контролировать работу насоса. И в случае если при определенной частоте эл. двигателя давление насоса будет подать , то подключать второй насос. (соответственно еще нужно будет смотреть за входным насосов).
Управление технологическим процессом могу реализовать только у себя в ЛСУ, то есть на среднем уровне АСУ ТП. Поэтому варианты с несколькими регуляторами на разных уровнях мне не подойдет.
А поставить расходомеры на каждый насос, это как минимум от 800 тыс. до 1000000 рублей не учтенных при выходе на тендер Меня за это по голове не погладят, невзирая на то, что оборудование на стадии тендера не я закладывал)))
Аватара пользователя

hell_boy
почётный участник форума
почётный участник форума
Сообщения: 1746
Зарегистрирован: 18 янв 2009, 12:25
Имя: Дмитрий
Страна: Россия
город/регион: Москва
Благодарил (а): 6 раз
Поблагодарили: 132 раза

Алгоритм работы нескольких насосов

Сообщение hell_boy »

Просвещайтесь
CE 12 2016 Pump Safety Flirting with Disaster.pdf
У вас нет необходимых прав для просмотра вложений в этом сообщении.
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1602
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 69 раз
Поблагодарили: 185 раз

Алгоритм работы нескольких насосов

Сообщение petr2off »

Не совсем понял как соединяются уровни регулятора и уровни АСУ. У меня в одной PLC крутится 9 регуляторов, из них 2 выполнены по двух уровневой схеме, и все это на одном уровне АСУ.
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1602
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 69 раз
Поблагодарили: 185 раз

Алгоритм работы нескольких насосов

Сообщение petr2off »

Прочитал статейку. Нравятся мне американцы- пишут просто, без затей и интегралов. Над некоторыми вещами смеялся наверно минут 5.
Цитирую - "вдумчивое проектирование и тщательный монтаж, обеспечат надежную работу насосной установки в течении нескольких лет", сразу вспомнилось, как "генитальный" московский менеджмент - выкрутил руки местным проектировщикам, и в проект был заложен насос с напором на 10% ниже минимально необходимого, естественно под предлогом сбережения средств акционеров. Это к вопросу о вдумчивом проектировании. Теперь к вопросу о "тщательном монтаже", уже другой проект. Так как насосы были куплены на помойке (есть такой бизнес в России - с обанкротившихся предприятий снимают оборудование, перебивают шильдики, красят и продают как новое, совсем задешево). И вот из 3-х однотипных насосов, один на фундамент не встал, у него крепление сильно не совпало с остальными. Но местные умельцы (Россия сильна Самоделкинами) приварили пластины, добавили шайб - и вуаля - готово.
Еще один перл понравился, цитирую - "Разница напорных характеристик параллельно работающих насосов не должна превышать 10%" - У помоечных насосов, при одном и том же напоре - разность в токе составляет 25%, про то - что бы на каждом насосе стоял расходомер - никто не пойдет на столь наглую трату денег акционеров :). С точки зрения американца - ситуация аварийная, у нас штатная. Я ни в коем случае не критикую американского инженера, мне его подход глубоко импонирует, я просто скорблю - что для меня это недостижимая мечта. Извиняюсь за лирику господа, не судите строго.
Аватара пользователя

VADR
администратор
администратор
Сообщения: 4711
Зарегистрирован: 25 июл 2008, 07:12
Имя: Диев Александр Васильевич
Страна: Россия
город/регион: г. Сегежа, Карелия
Благодарил (а): 192 раза
Поблагодарили: 336 раз

Алгоритм работы нескольких насосов

Сообщение VADR »

petr2off писал(а): есть такой бизнес в России - с обанкротившихся предприятий снимают оборудование, перебивают шильдики, красят и продают как новое, совсем задешево
Есть и не такое. Не раз видел плакаты типа "покупаем всё". Туда несут в том числе сданную в металлолом арматуру, как выкинутую бывшими вледельцами, так и откровенно ворованную. Там этот хлам "восстанавливают" и продают как новый с большой скидкой. В итоге новому покупателю это обходится значительно дороже. Как говорится, скупой платит дважды, тупой - трижды, а лох - пока деньги не кончились.
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 43 раза
Поблагодарили: 93 раза

Алгоритм работы нескольких насосов

Сообщение CHANt »

Я такую задачу реализую по давлению, так называемым "каскадным" управлением. Частотник поддерживает давление своим (или в контроллере) ПИД-регулятором на напоре, а кол-во насосов выбирает ПИ-регулятор в контроллере по давлению на выходе из коллектора или на трубе к потребителю. Сложности большие в написании и отладки всей программы, которая определяет какой включать и отключать насос исходя из наработки и авариных сигналов, если разная производительность, то еще сложней будет. 4 агрегата предел по моим наработкам, так как алгоритм переключения упирается в ограничения сименса на 16 кбайт функциональный блок. т.е. надо решать другими методами, а не как у меня, с помощью конечных автоматов. Если интересен вариант и с сименсом дружите, то поделюсь. Но, придется поэтапно иначе будет тяжело понять все извращения)))
--------------------------------------------------------------------------------------------
Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 3899
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Страна: РФ
город/регион: Мурманск
Благодарил (а): 18 раз
Поблагодарили: 187 раз

Алгоритм работы нескольких насосов

Сообщение Никита »

CHANt писал(а): Если интересен вариант и с сименсом дружите, то поделюсь.
А в человеческом виде нет, чтобы без step7 посмотреть? Хотя бы общую идею?
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 43 раза
Поблагодарили: 93 раза

Алгоритм работы нескольких насосов

Сообщение CHANt »

А я похож на человека? :crazy0to:

Идея все та же. Она не меняется у всех, просто реализации разные. Да, алгоритмы логические в Visio, а вот сортировки прости с SCL, но думаю поймешь. Кодирование надо объяснять.... Вечером попробую всю структуру программы изобразить и будет видно дальше. Где-то видимо придется скриншотами из степ7 пояснять)))
--------------------------------------------------------------------------------------------
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 43 раза
Поблагодарили: 93 раза

Алгоритм работы нескольких насосов

Сообщение CHANt »

Структура программы в целом
Структура программы.pdf
По регулятору "мощности" - сам ПИ-регулятор показывать на скриншотах смысла нет, а вот формирование признаков для включения первого, второго и третьего насоса на скриншотах, думаю идея будет понятна. Сама идея с форума АВОК.
Структура определения потребности в работе.pdf
Листинг функции выбора резервного насоса и отключаемого на SCL (циклы со счетчиком)

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

FUNCTION_BLOCK FB12
TITLE='Choise of pump 3'

CONST
    k := 3;               //--- Количество насосов или другого оборудования
END_CONST

VAR 
  nasos_1_stat   : BYTE;             //--- Байт состояния насоса №1 
  nasos_2_stat   : BYTE;             //--- Байт состояния насоса №2 
  nasos_3_stat   : BYTE;             //--- Байт состояния насоса №3 
 
  maska_reserve  : BYTE := B#2#1000; //--- Маска байта резервного насоса   (число - 8) 
  maska_off      : BYTE := B#2#1001; //--- Маска байта отключаемого насоса (число - 9)
  
  i : INT;
  x : ARRAY[1..k] OF STRUCT
    nasos_stat : BYTE;
    nasos_hour : DINT;
  END_STRUCT;
  
  nasos : INT;
  hour  : DINT;
END_VAR

VAR_INPUT
    in_nasos_1_rabota  : BOOL;      //--- Информация по насосу №1 - статус насоса "в работе"
    in_nasos_1_avaria  : BOOL;      //--- Информация по насосу №1 - статус насоса "авария"
    in_nasos_1_blokir  : BOOL;      //--- Информация по насосу №1 - статус насоса "заблокирован"
    in_nasos_1_elektr  : BOOL;      //--- Информация по насосу №1 - статус насоса "есть электропитание"
    in_nasos_1_hour    : DINT;      //--- Информация по насосу №1 - часы наработки

    in_nasos_2_rabota  : BOOL;      //--- Информация по насосу №2 - статус насоса "в работе"
    in_nasos_2_avaria  : BOOL;      //--- Информация по насосу №2 - статус насоса "авария"
    in_nasos_2_blokir  : BOOL;      //--- Информация по насосу №2 - статус насоса "заблокирован"
    in_nasos_2_elektr  : BOOL;      //--- Информация по насосу №2 - статус насоса "есть электропитание"
    in_nasos_2_hour    : DINT;      //--- Информация по насосу №2 - часы наработки 

    in_nasos_3_rabota  : BOOL;      //--- Информация по насосу №3 - статус насоса "в работе"
    in_nasos_3_avaria  : BOOL;      //--- Информация по насосу №3 - статус насоса "авария"
    in_nasos_3_blokir  : BOOL;      //--- Информация по насосу №3 - статус насоса "заблокирован"
    in_nasos_3_elektr  : BOOL;      //--- Информация по насосу №3 - статус насоса "есть электропитание"    
    in_nasos_3_hour    : DINT;      //--- Информация по насосу №3 - часы наработки              
END_VAR

VAR_IN_OUT
    // I/O Parameters
END_VAR

VAR_OUTPUT
    out_nasos_1_reserve : BOOL;   //--- Насос №1 выбран в качестве резерва
    out_nasos_2_reserve : BOOL;   //--- Насос №2 выбран в качестве резерва
    out_nasos_3_reserve : BOOL;   //--- Насос №3 выбран в качестве резерва
    out_nasos_N_reserve : BOOL;   //--- Отсуствие насоса для резерва 
    out_nasos_1_off  : BOOL;      //--- Насос №1 выбран для отключения 
    out_nasos_2_off  : BOOL;      //--- Насос №2 выбран для отключения 
    out_nasos_3_off  : BOOL;      //--- Насос №3 выбран для отключения 
    out_nasos_N_off  : BOOL;      //--- Отсуствие насоса для отключения 
    
END_VAR
// --- END Block Parameters --------------------

BEGIN
  
  //--- Информацию по насосу №1 загоняем в байт состояния насоса №1
  nasos_1_stat := 0;
  IF (in_nasos_1_rabota = TRUE) THEN    nasos_1_stat := nasos_1_stat OR B#2#0001;  END_IF;
  IF (in_nasos_1_avaria = TRUE) THEN    nasos_1_stat := nasos_1_stat OR B#2#0010;  END_IF;
  IF (in_nasos_1_blokir = TRUE) THEN    nasos_1_stat := nasos_1_stat OR B#2#0100;  END_IF;
  IF (in_nasos_1_elektr = TRUE) THEN    nasos_1_stat := nasos_1_stat OR B#2#1000;  END_IF;  
  //--- Информацию по насосу №2 загоняем в байт состояния насоса №2
  nasos_2_stat := 0;
  IF (in_nasos_2_rabota = TRUE) THEN    nasos_2_stat := nasos_2_stat OR B#2#0001;  END_IF;
  IF (in_nasos_2_avaria = TRUE) THEN    nasos_2_stat := nasos_2_stat OR B#2#0010;  END_IF;
  IF (in_nasos_2_blokir = TRUE) THEN    nasos_2_stat := nasos_2_stat OR B#2#0100;  END_IF;
  IF (in_nasos_2_elektr = TRUE) THEN    nasos_2_stat := nasos_2_stat OR B#2#1000;  END_IF;   
  //--- Информацию по насосу №3 загоняем в байт состояния насоса №3 
  nasos_3_stat := 0;
  IF (in_nasos_3_rabota = TRUE) THEN    nasos_3_stat := nasos_3_stat OR B#2#0001;  END_IF;
  IF (in_nasos_3_avaria = TRUE) THEN    nasos_3_stat := nasos_3_stat OR B#2#0010;  END_IF;
  IF (in_nasos_3_blokir = TRUE) THEN    nasos_3_stat := nasos_3_stat OR B#2#0100;  END_IF;
  IF (in_nasos_3_elektr = TRUE) THEN    nasos_3_stat := nasos_3_stat OR B#2#1000;  END_IF;  
  
  //--- Информацию по насосам загоняем в массив для перебора в цикле
  x[1].nasos_stat := nasos_1_stat;  x[1].nasos_hour := in_nasos_1_hour;
  x[2].nasos_stat := nasos_2_stat;  x[2].nasos_hour := in_nasos_2_hour;
  x[3].nasos_stat := nasos_3_stat;  x[3].nasos_hour := in_nasos_3_hour;

  //============================================================================================ 
  //--- Определение РЕЗЕРВНОГО насоса ----------------------------------------------------------
  //============================================================================================
  nasos := 0;  //--- номер выбранного насоса от 1 до "k", 0 - насос не выбран
  hour  := 0;  //--- количество часов наработки по выбранному насосу
  //--- Цикл перебора всех насосов для определения РЕЗЕРВНОГО насоса ---------------------------
  FOR i:=1 TO k BY 1 DO
    IF (x[i].nasos_stat = maska_reserve) THEN  //--- если статус насоса совпадает с маской байта для резерва, то
       IF (nasos = 0) THEN                     //------ проверяем, если насос для резерва еще не выбран, то определяем этот насос как резервный
        nasos := i;                            //--------- определяем номер насоса
        hour  := x[i].nasos_hour;              //--------- определяем часы наработки для этого насоса 
      ELSE                                     //------ иначе, если насос для резерва уже выбран, то 
        IF (x[i].nasos_hour < hour) THEN       //--------- проверяем часы наработки насоса с уже выбранным для резерва, если меньше переопределяем резерв 
          nasos := i;                          //------------ определяем номер насоса
          hour  := x[i].nasos_hour;            //------------ определяем часы наработки для этого насоса
        END_IF;
      END_IF;  
    END_IF;
  END_FOR;
  
  //--- Формируем выходной сигнал РЕЗЕРВНОГО насоса
  out_nasos_1_reserve := 0; 
  out_nasos_2_reserve := 0; 
  out_nasos_3_reserve := 0;          
  out_nasos_N_reserve := 0;
  CASE nasos OF
     0 : out_nasos_N_reserve := 1;   //--- Отсуствие резервного насоса 
     1 : out_nasos_1_reserve := 1;   //--- Резервный насос №1          
     2 : out_nasos_2_reserve := 1;   //--- Резервный насос №2                
     3 : out_nasos_3_reserve := 1;   //--- Резервный насос №3          
  END_CASE;

  //============================================================================================ 
  //--- Определение насоса для ОТКЛЮЧЕНИЯ ------------------------------------------------------
  //============================================================================================ 
  nasos := 0;  //--- номер выбранного насоса от 1 до "k", 0 - насос не выбран
  hour  := 0;  //--- количество часов наработки по выбранному насосу  
  //--- Цикл перебора всех насосов для определения ОТКЛЮЧАЕМОГО насоса -------------------------
  FOR i:=1 TO k BY 1 DO
    IF (x[i].nasos_stat = maska_off) THEN      //--- если статус насоса совпадает с маской байта отключаемого насоса, то
       IF (nasos = 0) THEN                     //------ проверяем, если насос для оключения еще не выбран, то определяем этот насос кандидатом на отключение
        nasos := i;                            //--------- определяем номер насоса
        hour  := x[i].nasos_hour;              //--------- определяем часы наработки для этого насоса 
      ELSE                                     //------ иначе, если насос для отключения уже выбран, то 
        IF (x[i].nasos_hour > hour) THEN       //--------- проверяем часы наработки насоса с уже выбранным для отключения, если больше переопределяем кандидата 
          nasos := i;                          //------------ определяем номер насоса
          hour  := x[i].nasos_hour;            //------------ определяем часы наработки для этого насоса
        END_IF;
      END_IF;  
    END_IF;
  END_FOR;

  //--- Формируем выходной сигнал для ОТКЛЮЧАЕМОГО насоса
  out_nasos_1_off := 0;
  out_nasos_2_off := 0;
  out_nasos_3_off := 0;
  out_nasos_N_off := 0;
  CASE nasos OF
     0 : out_nasos_N_off := 1;   //--- Отсуствие отключаемого насоса 
     1 : out_nasos_1_off := 1;   //--- Отключаемый насос №1          
     2 : out_nasos_2_off := 1;   //--- Отключаемый насос №2             
     3 : out_nasos_3_off := 1;   //--- Отключаемый насос №3          
  END_CASE;  
  
END_FUNCTION_BLOCK
Самая жуткая часть:
Описание алгоритма каскад 3 насосов.rar
файл в формате майкрософт визио. Так как надо отслеживать куда какая-стрелка идет в конечном автомате при проектировании. Возможно такие вещи решать лучше другими методами, но мне так было привычней.

Алгоритм управления насосом не публикую пока, информации и так много. Алгоритм работы насоса увязан с функцией обмена с ПЧ по профибас из моих методичек))) счетчик рабочего времени по вкусу.

Если кто доберется до реализации алгоритма каскада, объясню как я кодирую из рисунка в ST (SCL) все это дело.

А, да...Каскад получается свободный, в отличии от массы "каскадных" конфигурируемых контроллеров, так как мне не надо задавать последовательность включения агрегатов. У меня выбор идет по наработке лишь бы не в аварии и не в работе. Поэтому и чудище такое вышло)))
У вас нет необходимых прав для просмотра вложений в этом сообщении.
--------------------------------------------------------------------------------------------
Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 3899
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Страна: РФ
город/регион: Мурманск
Благодарил (а): 18 раз
Поблагодарили: 187 раз

Алгоритм работы нескольких насосов

Сообщение Никита »

Эдуард, спасибо. Информации, лично мне, даже больше чем надо. Просто по ходу работы приходится рассматривать различные варианты, как на ПЛК, так и на "дубовых" контроллерах, типа SK-712. Вот и изучаю разные решения, со всеми плюсами и минусами.
Сам код не сильно интересен, если делать буду я - напишу свой, а если кто-то еще - это вообще проблема индейцев.
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 43 раза
Поблагодарили: 93 раза

Алгоритм работы нескольких насосов

Сообщение CHANt »

Почитал про виловский SK-712. Очень неплохо. Развивается техника. лучше чем у данфосса было. :good:
Отличия моего решения от вилы, это прежде всего возможность напихать разные регуляторы в зависимости от пч или их отсутствия. Переключение по наработке у меня по заданному кол-ву часов и переход на наименьший в наработке и с учетом резерва без всякого кольца. Также, я предусматриваю пересброс таймера наработки, если нет резерва. Единственно, при блокировке\ручной режим управления насоса у меня - я даю команду на отключение, вило оставляет в работе. Весь виловский антураж защит и доп. опций и прочего на опорные алгоритмы не влияют.
Повторить прибор их можно, если приляпать сенсорный дисплей, гораздо удобней будет. Цены у них...
--------------------------------------------------------------------------------------------

KKirillA
новенький
новенький
Сообщения: 1
Зарегистрирован: 02 июл 2018, 21:26
Имя: Кирилл

Алгоритм работы нескольких насосов

Сообщение KKirillA »

CHANt писал(а): 20 ноя 2017, 11:35 Сложности большие в написании и отладки всей программы, которая определяет какой включать и отключать насос исходя из наработки и авариных сигналов, если разная производительность, то еще сложней будет. 4 агрегата предел по моим наработкам, так как алгоритм переключения упирается в ограничения сименса на 16 кбайт функциональный блок. т.е. надо решать другими методами, а не как у меня, с помощью конечных автоматов. Если интересен вариант и с сименсом дружите, то поделюсь.
Добрый день! Мне вот очень интересен вариант программы на сименс, так как самому нужно именно это. У Вас есть возможность поделиться со мной? В моем варианте программы все просто, но как раз описанные выше проблемы и происходят с насосной станцией.

shel83
новенький
новенький
Сообщения: 1
Зарегистрирован: 06 окт 2018, 23:14
Имя: Евгений

Алгоритм работы нескольких насосов

Сообщение shel83 »

CHANt писал(а): 20 ноя 2017, 11:35 Сложности большие в написании и отладки всей программы, которая определяет какой включать и отключать насос исходя из наработки и авариных сигналов, если разная производительность, то еще сложней будет. 4 агрегата предел по моим наработкам, так как алгоритм переключения упирается в ограничения сименса на 16 кбайт функциональный блок. т.е. надо решать другими методами, а не как у меня, с помощью конечных автоматов. Если интересен вариант и с сименсом дружите, то поделюсь.
Здравствуйте! Есть похожая задача для 4 насосов и на сименсе. Интересен сам алгоритм выбора и переключения насосов - если поделитесь буду очень благодарен!
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 43 раза
Поблагодарили: 93 раза

Алгоритм работы нескольких насосов

Сообщение CHANt »

В личку мне адрес мыла напишите, на выходных постараюсь время найти и информацию отправлю.
--------------------------------------------------------------------------------------------
Ответить

Вернуться в «Общие вопросы»