Страница 39 из 53 ПерваяПервая ... 29373839404149 ... ПоследняяПоследняя
Показано с 381 по 390 из 521

Тема: Функциональные блоки на языке ST

  1. #381

    По умолчанию

    Цитата Сообщение от Иванп Посмотреть сообщение
    Всем добрый день, нужна помощь.
    Задача кода вот в чем, имеются 9 ванн и две корзины которые по ним перемещаются, нужен вывод номера ванны.
    проблема в том, что минимальное значение всегда 0, многими способами пытался решить проблему, надеюсь на помощь более опытных специалистов.
    Заранее спасибо.
    И в чём проблема? У вас ванны с 0 по 8, сделайте на выходе +1, и если больше 9, то =1,
    либо в коде присваивайте номер ванны от 1 до 9.

    А вообще выкладывайте проект, в расширенном режиме, добавить файл.
    Последний раз редактировалось kondor3000; 09.02.2024 в 10:27.

  2. #382
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,257

    По умолчанию

    Цитата Сообщение от Иванп Посмотреть сообщение
    помощь более опытных специалистов.
    опытные должны по картинкам воссоздать код и погонять его чтоб проверить задумку автора?

    ЗЫ строчка убуск_1 равно девять, дает однозначное решение быть равным нулю во всех случаех если входной буль не активен
    Последний раз редактировалось capzap; 09.02.2024 в 10:20.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #383

    По умолчанию

    Подскажите новичку (ST). Как вложить функцию в функциональный блок для выполнения.

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

    По умолчанию

    Цитата Сообщение от Vladimir F Посмотреть сообщение
    Подскажите новичку (ST). Как вложить функцию в функциональный блок для выполнения.
    Да просто, вызываем и все
    Код:
    function_block primer_1 //имя функционального блока.
    
        var_input //объявление входных переменных
           U : bool; //входная переменная с типом данных bool
        end_var
    
        var_output //объявление выходных переменных
           Q : udint; //выходная переменная с типом данных udint
        end_var
    
        Q := function1(U); //вызов функции
    
    end_function_block
    Ну, и на всякий случай, вот так функциональные блоки вызываются
    Код:
    var_output //объявление выходных переменных
           D : udint; //выходная переменная с типом данных udint
        end_var
    
        var //объявление локальных переменных
           fb1, fb2, fb3: functionblock1; //объявляем функциональный блок
           A1, A2, A3: bool;
           B1, B2: bool;
           C1, C2, C3: udint;
        end_var
    
        //1-й способ
        fb1(U:=A1,Res:=B1,N:=0, Q=>C1);
        
        //2-й способ
        fb2.U := A2;        //задаем входные значения
        fb2.Res := false;
        fb2.N := 0;
        fb2();                 //вызываем функциональный блок
        C2 := fb2.Q;       //читаем результат
        
        //3-й способ (комбинированный)
        fb3.Res := false;
        fb3(U:=A3,N:=C3);
        D := fb3.Q;
       
    end_function_block
    Последний раз редактировалось Dimensy; 10.02.2024 в 07:32.

  5. #385

    По умолчанию

    Цитата Сообщение от Vladimir F Посмотреть сообщение
    Подскажите новичку (ST). Как вложить функцию в функциональный блок для выполнения.
    Вот вам готовые примеры, с вложенными блоками, вложенные функции и ФБ тоже должны быть на ST. Есть триггеры, таймеры, счётчики, функции SEL, MOD, Log, Lg, Lb, Ln и т. д.
    Пример вызова функции Логарифма https://owen.ru/forum/showthread.php...&page=752#7515
    Код:
    function_block fB1 //имя функционального блока.
         var_input 
            A:real;
            B:real;
        end_var
        var_output //объявление выходных переменных
           Q :real; //выходная переменная с типом данных real
        end_var
    //PRG
    Q:=fLog(A,B) ; //вызов функции "fLog"   
    end_function_block
    https://owen.ru/forum/showthread.php...&page=752#7515
    https://owen.ru/forum/showthread.php...39&page=11#105
    https://owen.ru/forum/showthread.php?t=38453&page=10#93
    https://owen.ru/forum/showthread.php...052#post426052
    https://owen.ru/forum/showthread.php?t=38891#6
    https://owen.ru/forum/showthread.php?t=38619&page=3#24
    https://owen.ru/forum/showthread.php...39&page=20#200
    Последний раз редактировалось kondor3000; 10.02.2024 в 15:00.

  6. #386

    По умолчанию

    Спасибо. Если можно ещё вопрос функции добавляются тоже так же как и функционирование блоки. (fb1) это я так понимаю название блока.

  7. #387

    По умолчанию

    Цитата Сообщение от Vladimir F Посмотреть сообщение
    Спасибо. Если можно ещё вопрос функции добавляются тоже так же как и функционирование блоки. (fb1) это я так понимаю название блока.
    Посмотрите примеры выше, функция просто вызывается (в скобках входы функции), а ФБ должен быть объявлен в VAR, а в теле программы вызван, со входами, выходами
    или без них (3 способа)

    Пример таймера TON (2 варианта) и его вызов в ФБ https://owen.ru/forum/showthread.php...39&page=24#235
    Последний раз редактировалось kondor3000; 10.02.2024 в 12:34.

  8. #388

    По умолчанию

    Спасибо за информацию теперь разобрался.

  9. #389

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Да просто, вызываем и все
    Код:
    function_block primer_1 //имя функционального блока.
    
        var_input //объявление входных переменных
           U : bool; //входная переменная с типом данных bool
        end_var
    
        var_output //объявление выходных переменных
           Q : udint; //выходная переменная с типом данных udint
        end_var
    
        Q := function1(U); //вызов функции
    
    end_function_block
    Ну, и на всякий случай, вот так функциональные блоки вызываются
    Код:
    var_output //объявление выходных переменных
           D : udint; //выходная переменная с типом данных udint
        end_var
    
        var //объявление локальных переменных
           fb1, fb2, fb3: functionblock1; //объявляем функциональный блок
           A1, A2, A3: bool;
           B1, B2: bool;
           C1, C2, C3: udint;
        end_var
    
        //1-й способ
        fb1(U:=A1,Res:=B1,N:=0, Q=>C1);
        
        //2-й способ
        fb2.U := A2;        //задаем входные значения
        fb2.Res := false;
        fb2.N := 0;
        fb2();                 //вызываем функциональный блок
        C2 := fb2.Q;       //читаем результат
        
        //3-й способ (комбинированный)
        fb3.Res := false;
        fb3(U:=A3,N:=C3);
        D := fb3.Q;
       
    end_function_block
    Самое интересное, что в справке к Овен Лоджик про операнд "=>" ни слова, случайно узнал.

  10. #390

    По умолчанию

    Цитата Сообщение от Рогов Алексей Посмотреть сообщение
    Самое интересное, что в справке к Овен Лоджик про операнд "=>" ни слова, случайно узнал.
    Интересно, вы Codesys 2.3 вообще не знаете? Советую поставить и отлаживать код в нём. Язык ST очень похож, зато любой блок ФБ, можно посмотреть в работе, в отличие от Лоджика. Таймеры, счётчики, триггеры в Codesys 2.3 можно использовать как самописные, так и стандартные, опять же в отличие от Лоджика ( тут только самописные).
    Последний раз редактировалось kondor3000; 12.02.2024 в 15:34.

Страница 39 из 53 ПерваяПервая ... 29373839404149 ... ПоследняяПоследняя

Похожие темы

  1. ПЛК73 (Функциональные кнопки)
    от necro в разделе ПЛК63/73
    Ответов: 8
    Последнее сообщение: 18.05.2022, 10:03
  2. Функциональные блоки
    от ribamuka в разделе СПК2хх
    Ответов: 4
    Последнее сообщение: 08.04.2018, 15:01
  3. Функциональные блоки насосов в CoDeSys
    от Алексей Ермолаев в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 28.03.2017, 13:50
  4. Функциональные блоки- где искать?
    от Xops в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 01.03.2016, 11:07
  5. СПК функциональные клавиши
    от Lyohin в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 30.03.2015, 15:10

Ваши права

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