Страница 35 из 50 ПерваяПервая ... 25333435363745 ... ПоследняяПоследняя
Показано с 341 по 350 из 606

Тема: Создать функцию на ST

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

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Сергей0308 наличие ST в FBD, больше одного выхода с блока это точное ожидание чуда
    в функциональном блоке на ST может быть больше одного выхода. В FBD есть ограничения, и только 1 выход на FB
    Тролль-наседка, добрый, нежный и ласковый

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    ..больше одного выхода с блока это точное ожидание чуда
    Ну если "больше одного" это несколько булей и/или числа в небольших диапазонах, то чудо можно сделать ректально - внутри фунции упаковать (там удобно с битами), а к выходу прилепить распаковщик. Можно и распаковщики на ST - каждая отдельная функция возьмет своё из общей маски и выдаст нужное.

    --
    Я не принуждаю к такому

  3. #3
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,986

    По умолчанию

    FBD - функциональны блок
    Сейчас ST вообще же блоки не поддерживает? только функции

    ну тут может терминологии хромают и недопонимание? FB - просто функция, 1 выход, FBD - по сути макрос, выходов сколько поставим.
    Ну или применительно к ОЛ английской версии приведите, в русской то понятия сокращения в латинице нет. Макрос, Функция только
    Последний раз редактировалось melky; 28.12.2022 в 17:19.

  4. #4
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,986

    По умолчанию

    Не, что-то типа Q и PT у таймера, или Код ошибки и далее стековый выход к основному. В общем как сейчас у макросов, только код на ST внутри.
    Просто функции с 2+2 не так интересны, а упаковывать и потом распаковывать это больше для инвалидов (костыли называются)

    ну и понаглею немного - возможность работы с COM портом для организации обмена не только с Modbus устройствами, хотя бы чтобы ПР с несложными протоколами справлялся....
    Последний раз редактировалось melky; 29.12.2022 в 00:20.

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    ... а упаковывать и потом распаковывать это больше для инвалидов (костыли называются)..
    Не мы такие, среда такая..

    Упаковывать снаружи ненужно, все таки входов много.
    Q и ET(видимо) - было б совсем просто, но нет TIME() (GetTickCount) и памяти. В конце концов часто ли нужно больше одного месяца?
    Да, память заменит "обратная связь", а TIME() обычный счетчик снаружи или канкан с блинком - но это костыли еще большие.

    А упомянутый Вами код ошибки в значении ai как раз пример упаковки 2х условно независимых и даже не бульных переменных (здесь потребовались бы прямая память и/или указатели)
    //вопрос прямой памяти можно было бы решить, опять же ректально, сняв ограничения на использование разнотипных переменных по одному адресу регистра в слейве. Или уже есть?



    Кстати
    От ST был бы не плохой обратный подарок в квадратики если бы в художественных полях можно было бы обращатся к битам как в в ST
    (если что - я автор предложения)
    Последний раз редактировалось Валенок; 29.12.2022 в 09:12.

  6. #6

    По умолчанию

    Не, ну нативная работа с сом это вы уже совсем палку перегнули

  7. #7
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,986

    По умолчанию

    Валенок да я образно про таймер.

    bayk с чего вдруг перегнул? отправить массив, принять массив, посчитать простую CS на основе принятого. Я не говорю про ASCII там варианты и т.д. а хотя бы про простые байтовые...
    Сами форум посмотрите - как прикрутить весы к ПР200 сколько тем было?

  8. #8
    Пользователь
    Регистрация
    14.07.2021
    Адрес
    Орел
    Сообщений
    95

    По умолчанию

    Может и был уже счетчик, но посмотрев постом ранее на тригер, по образу и подобию сделал счетчик. И работает.
    --------------------------------------------------
    Код:
    function funcSTU: udint; //имя функции и тип данных выхода
        var_input //объявление входных переменных
            inputVar : bool; //входная переменная с типом данных bool
             min, max, mrom : udint;
        end_var
        var //объявление локальных переменных
            temp  : udint ; //локальная переменная с типом данных real и начальным значением 13.3
        end_var
     temp:= mrom;
     funcSTU:= mrom;
     if funcSTU < min then
        funcSTU := min;
        mrom:= funcSTU;
       end_if
      
     if  inputVar  and temp = funcSTU  then
        temp:= funcSTU;
      funcSTU :=   mrom + 1;
        if  funcSTU > max  then
         funcSTU := min;
        //  funcSTU := 0 ;
        end_if
     end_if
     if not inputVar then
        funcSTU :=   mrom;
     end_if 
    end_function
    -----------------------------------------------------------
    А вот детектор фронтов можно на ST сделать???
    И где теги кода кнопочка? Или вручную дописать нужно или как?STU.jpg
    Последний раз редактировалось lagutin; 29.12.2022 в 14:20.

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

    По умолчанию

    Цитата Сообщение от lagutin Посмотреть сообщение
    А вот детектор фронтов можно на ST сделать???
    Можно

    Код:
    funR_trig := Clk and not M;
    funF_trig := not Clk and M;
    Безымянный.png

    Но зачем, если в ST их не применить, а в FBD и так есть

    А в счетчике не хватает сброса

  10. #10
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,986

    По умолчанию

    По идее можно и детектор фронтов делать, но так же обратную связь тянуть, как бы смысл уже?

Страница 35 из 50 ПерваяПервая ... 25333435363745 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 14
    Последнее сообщение: 01.07.2023, 21:30
  2. Ответов: 6
    Последнее сообщение: 22.12.2021, 10:50
  3. Ответов: 3
    Последнее сообщение: 13.09.2021, 13:31
  4. ПЛК160. Чем заменить функцию записи 0x05?
    от FallenDAY в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 26.08.2017, 13:19
  5. Как написать собственную функцию wait()
    от PavelKazakov в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 23.07.2009, 11:37

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

Ваши права

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