Страница 48 из 58 ПерваяПервая ... 384647484950 ... ПоследняяПоследняя
Показано с 471 по 480 из 579

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

  1. #471

    По умолчанию

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

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

    По умолчанию

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

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

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

    По умолчанию

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

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

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

    По умолчанию

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

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

  5. #475

    По умолчанию

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

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

    По умолчанию

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

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

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



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

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

    По умолчанию

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

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

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

    По умолчанию

    Может и был уже счетчик, но посмотрев постом ранее на тригер, по образу и подобию сделал счетчик. И работает.
    --------------------------------------------------
    Код:
    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. #479
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,741

    По умолчанию

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

  10. #480
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,331

    По умолчанию

    Я счётчики придумывал, потому что таких не было в ОЛ! В принципе что угодно можно довести до абсурда, непонятно зачем этим заниматься?
    Помните как Портос говорил: Я дерусь, потому что я дерусь!

    https://www.youtube.com/watch?v=uddYLe_9aAA
    Последний раз редактировалось Сергей0308; 29.12.2022 в 11:54.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 48 из 58 ПерваяПервая ... 384647484950 ... ПоследняяПоследняя

Похожие темы

  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, 12:37

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

Ваши права

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