Показано с 1 по 6 из 6

Тема: Каскадное управление насосами

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Автомат состояний

    Не придумаешь столько библиотек

    Попробуйте для начала оформить графически и выстроить автомат состояний, то есть оформить стрелками(переходами) и шариками(состояниями)
    https://fast-project.ru/engineering/.../algoritm.html

    1. Пишете перечень состояний в каком может находиться установка в каждый из моментов времени (шарики)
    2. Продумываете перечень условий переходов из состояния в состояние (стрелки)

    au05hxjke5l2hndsob89uj7c267hn45o.png














































    Ниже пример кода

    Код:
    CASE State OF
    
    0:(*Закрыт*)
    BLINK(ENABLE:=1 , TIMELOW:=TIMEINT.FALSETIME , TIMEHIGH:=TIMEINT.TRUETIME );
           Q_Open :=FALSE;
           Q_Close:=BLINK.OUT;
    IF SP_Position>Position AND Delta>1 THEN State:=2; END_IF;
    IF Position>99 THEN State:=4; END_IF;
    STS := STS OR 2;
    IF NOT INTLK_OFF THEN  State:=7; END_IF;
    IF NOT INTLK_ON THEN  State:=8; END_IF;
    
    2:(*Открывается*)
    BLINK1(ENABLE:=1 , TIMELOW:=TIMEINT.FALSETIME , TIMEHIGH:=TIMEINT.TRUETIME );
           Q_Open :=BLINK1.OUT;
           Q_Close:=FALSE;
    IF Delta<1 THEN State:=3; END_IF;
    IF Position>99 THEN State:=4; END_IF; 
    IF SP_Position<Position AND Delta>1 THEN State:=5; END_IF; (*Убавили уставку, закрываем*)
    STS := STS OR 4;
    IF NOT INTLK_OFF THEN  State:=7; END_IF;
    IF NOT INTLK_ON THEN  State:=8; END_IF;
    
    3:(*Частично открытое состояние*)
           Q_Open :=FALSE;
           Q_Close:=FALSE;
    IF SP_Position>Position AND Delta>1 THEN State:=2; END_IF;
    IF SP_Position<Position AND Delta>1 THEN State:=5; END_IF;
    IF Position>99 THEN State:=4; END_IF;
    IF Position<1 THEN State:=0; END_IF;
    STS := STS OR 4;
    IF NOT INTLK_OFF THEN  State:=7; END_IF;
    IF NOT INTLK_ON THEN  State:=8; END_IF;
    
    4:(*Открыт*)
    BLINK(ENABLE:=1 , TIMELOW:=TIMEINT.FALSETIME , TIMEHIGH:=TIMEINT.TRUETIME );
           Q_Open :=BLINK.OUT;
           Q_Close:=FALSE;
    IF SP_Position<Position AND Delta>1 THEN State:=5; END_IF;
    IF Position<1 THEN State:=0; END_IF;
    STS := STS OR 1;
    IF NOT INTLK_OFF THEN  State:=7; END_IF;
    IF NOT INTLK_ON THEN  State:=8; END_IF;
    
    5:(*Закрывается*)
    BLINK1(ENABLE:=1 , TIMELOW:=TIMEINT.FALSETIME , TIMEHIGH:=TIMEINT.TRUETIME );
           Q_Open :=FALSE;
           Q_Close:=BLINK1.OUT;
    IF Delta<1 THEN State:=6; END_IF;
    IF Position<1 THEN State:=0; END_IF;
    IF SP_Position>Position AND Delta>1 THEN State:=2; END_IF; (*Прибавили уставку, открываем*)
    STS := STS OR 4;
    IF NOT INTLK_OFF THEN  State:=7; END_IF;
    IF NOT INTLK_ON THEN  State:=8; END_IF;
    
    6:(*Частично закрытое состояние*)
           Q_Open :=FALSE;
           Q_Close:=FALSE;
    IF SP_Position>Position AND Delta>1 THEN State:=2; END_IF;
    IF SP_Position<Position AND Delta>1 THEN State:=5; END_IF;
    IF Position>99 THEN State:=4; END_IF;
    IF Position<1 THEN State:=0; END_IF;
    STS := STS OR 4;
    IF NOT INTLK_OFF THEN  State:=7; END_IF;
    IF NOT INTLK_ON THEN  State:=8; END_IF;
    
    7:(*Заблокирован на закрытое состояние*)
          Q_Open :=FALSE;
          Q_Close:=TRUE;
    STS := STS OR 32;
    IF INTLK_OFF THEN  State:=0; END_IF;
    
    8:(*Заблокирован на открытое состояние*)
          Q_Open :=TRUE;
          Q_Close:=FALSE;
    STS := STS OR 16;
    IF  INTLK_ON THEN  State:=0; END_IF;
    
    END_CASE;
    Последний раз редактировалось krollcbas; 10.04.2023 в 07:06.
    +79104444236
    С уважением,
    Лапшин Вячеслав

  2. #2
    Пользователь
    Регистрация
    10.12.2021
    Адрес
    Владивосток
    Сообщений
    7

    По умолчанию

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

Похожие темы

  1. каскадное управление регуляторов КТР
    от Никита2020 в разделе Контроллеры для систем отопления и ГВС
    Ответов: 7
    Последнее сообщение: 01.12.2021, 17:25
  2. каскадное управление регуляторов КТР
    от Никита2020 в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 07.10.2021, 16:02
  3. КАСКАДНОЕ УПРАВЛЕНИЕ
    от kukla100 в разделе ПЛК1хх
    Ответов: 33
    Последнее сообщение: 24.04.2020, 11:54
  4. каскадное управление тэнами с пид
    от Keldish в разделе Программируемые реле
    Ответов: 3
    Последнее сообщение: 17.09.2017, 16:59

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

Ваши права

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