Показано с 1 по 10 из 4481

Тема: разные вопросы новичка

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

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

    По умолчанию

    Доброго дня

    В ФБ на ST нужно сохранить состояние между выключениями питания.

    Для ФБ на FBD просто объявил бы переменную энергонезависимой.
    А для ST не соображу, как быть.

    Как объявить переменную в ФБ на ST энергонезависимой?

  2. #2
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,912

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    Доброго дня

    В ФБ на ST нужно сохранить состояние между выключениями питания.

    Для ФБ на FBD просто объявил бы переменную энергонезависимой.
    А для ST не соображу, как быть.

    Как объявить переменную в ФБ на ST энергонезависимой?
    Только через внешнюю переменную

    Безымянный.png
    Код:
    function_block functionblock1 //имя функционального блока.
    
    // Пример функционального блока на ST, который является счетчиком и используется для прямого счета.
    // Операция «прямой счет» выполняется по переднему фронту импульса на входе «U»,
    // что увеличивает значение выходного сигнала «Q».
    // При поступлении на вход Res логической «1», выход счетчика «Q» устанавливается в значение входа «N».
    
        var_input //объявление входных переменных
           U : bool; //входная переменная с типом данных bool
           Res : bool; //входная переменная с типом данных bool
           N : udint; //входная переменная для значения счетчика после сброса
           Q_ : udint;
        end_var
    
        var_output //объявление выходных переменных
           Q : udint; //выходная переменная с типом данных udint
        end_var
    
        var //объявление локальных переменных
           CounterValue : udint; //переменная для текущего значения счетчика
           RTrig : bool; //переменная для определения переднего фронта на входе «U»
        end_var
    
        CounterValue := Q_;
        if Res then
           CounterValue := N;
        end_if
        if U and not RTrig and not Res then   
           CounterValue := (CounterValue + 1);
           RTrig := U;
        end_if
        if not U and RTrig then
           RTrig := false;
        end_if
        Q := CounterValue;
    
    end_function_block

Похожие темы

  1. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 21
    Последнее сообщение: 15.04.2025, 16:38
  2. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 42
    Последнее сообщение: 02.05.2022, 19:57
  3. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 14:39
  4. Вопросы полного новичка
    от Korion в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.02.2010, 10:08
  5. Вопросы новичка по ПЛК
    от Ollegator в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.07.2009, 09:29

Ваши права

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