Страница 4 из 13 ПерваяПервая ... 23456 ... ПоследняяПоследняя
Показано с 31 по 40 из 123

Тема: ST функции OWEN Logic

  1. #31

    По умолчанию

    Добрый день! Мне очень необходимы блоки Move и арифметические операции со входом Enable, чтобы можно было отрабатывать по условию или фронту. Вы как раз выпустили ST, я сделал в нем свои блоки , но затык оказался в FBD. Там нельзя по ходу программы многократно переписывать переменную. В результате элементарную условие не реализовать. Подскажите зачем это сделали, перезапись переменной не противоречит правилам программирования и в ST есть, а в FBD заблокировали.
    Это прямо вяжет по рукам и ногам, снижает гибкость языка. На картинке простой код который не реализовать.

    PS. Сам Лоджик у вас крутой в целом , еще чуть чуть и можно серых немецких потеснить.

    2023-02-08_22-04-01.png

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

    По умолчанию

    Asu$Nick в вашем случае это один SEL.
    При необходимости по условиям можно еще использовать макросы ППЗУ

  3. #33

    По умолчанию

    Цитата Сообщение от Asu$Nick Посмотреть сообщение
    Добрый день! Мне очень необходимы блоки Move и арифметические операции со входом Enable, чтобы можно было отрабатывать по условию или фронту. Вы как раз выпустили ST, я сделал в нем свои блоки , но затык оказался в FBD. Там нельзя по ходу программы многократно переписывать переменную. В результате элементарную условие не реализовать. Подскажите зачем это сделали, перезапись переменной не противоречит правилам программирования и в ST есть, а в FBD заблокировали.
    Это прямо вяжет по рукам и ногам, снижает гибкость языка. На картинке простой код который не реализовать.

    PS. Сам Лоджик у вас крутой в целом , еще чуть чуть и можно серых немецких потеснить.
    Нет никакого затыка в FBD, всё делается и присваивается проще некуда, смотри скрин 1 SEL.jpg Move не нужен, когда есть Sel и fSel.

    А на ST это делается так
    Код:
    function func1: udint; //имя функции и тип данных выхода
        var_input //объявление входных переменных
            s  : bool;
            x1 : udint;  //входная переменная 
            x2 : udint;  
        end_var
        if s then
           func1 :=x1 ;
        else
           func1 :=x2 ;
        end_if   
    end_function
    Последний раз редактировалось kondor3000; 09.02.2023 в 00:17.

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

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Нет никакого затыка в FBD, всё делается и присваивается проще некуда, смотри скрин
    ...Move не нужен, когда есть Sel и fSel....А на ST это делается так...
    Вот вообще не равно.

    Тут нет EN/ENO. Более общий случай:
    if s then
    func1 := какая-то_функция(...)
    else
    func1 := другая_функция(...)
    end_if
    Надесь ясно что ни разу не SEL ?

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

    По умолчанию

    Валенок

    вместо "какая-то функция" подставьте "результат какой-то функции" и получите то же самое.
    Единственный минус - трата времени, так как обе функции будут выполняться ПРкой.

  6. #36

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Вот вообще не равно.

    Тут нет EN/ENO. Более общий случай:

    Надесь ясно что ни разу не SEL ?
    Чем ваш код отличается от скрина? Да ничем. 1 Функции и Сел.jpg
    А по поводу траты времени, что так 2 функции выполнять, что так. Про экраны речь не идёт.
    Последний раз редактировалось kondor3000; 09.02.2023 в 10:35.

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

    По умолчанию

    kondor3000 почему не про ПР ? добавляете экран и у вас время цикла может перевалить через 15 мс легко, экран начинает мигать из-за увеличения программы.
    Если бы ветвить можно было непосредственно функции, это бы сократило время цикла, так как ненужный код в данную точку времени не выполняется.

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

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Чем ваш код отличается от скрина?..
    Я ж не зря сказал про EN/ENO которого нет.
    if это поток выполнения команд, sel - это функция выбора.

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    А по поводу траты времени, что так 2 функции выполнять, что так..
    В таких квадратиках - да. В ST - нет.

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    .. Да ничем...
    Пока "хэловорлд" - да, сойдет.

    --
    PS
    Вот про это же
    Цитата Сообщение от melky Посмотреть сообщение
    Если бы ветвить можно было непосредственно функции, это бы сократило время цикла, так как ненужный код в данную точку времени не выполняется.

    А вот тута не
    Цитата Сообщение от melky Посмотреть сообщение
    ...вместо "какая-то функция" подставьте "результат какой-то функции" и получите то же самое.
    Единственный минус - трата времени, так как обе функции будут выполняться ПРкой.
    Про минус сами же познее ответили. А на счет "то же самое" )) вот когда будет ФБ на ST, тогда и можно будет функцию рассматривать как классическую. А пока не.
    Последний раз редактировалось Валенок; 09.02.2023 в 14:15.

  9. #39

    По умолчанию

    Вот сделал пример, это кодесисный FBD.
    Какой получается программа, когда есть входы Enable и можно переменные переписывать.
    Программирование становится другим, сделать можно намного больше и читается легче.
    Пример 1. Здесь к одному входу могут подключаться два разных датчика в разное время, по фронту происходит подсчет дистанции по разным законам.
    Пример 2. Подсчет длины в плюс и минус.

    На лоджике получится уложится с селекторами? В каждом примере на ветку ушло по 3 элемента ( треугольник фронта тоже считаем)
    2023-02-09_22-06-29.png2023-02-09_22-42-13.png

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

    По умолчанию

    Asu$Nick можно, но код внешне будет геморройнее...

Страница 4 из 13 ПерваяПервая ... 23456 ... ПоследняяПоследняя

Похожие темы

  1. Групповые запросы в Owen Logic. Что хотите видеть в этой функции?
    от EvgenyR в разделе Программируемые реле
    Ответов: 37
    Последнее сообщение: 05.07.2023, 15:26
  2. Owen Logic 2.1 нет экспорта устройства в Owen Cloud.
    от Григори в разделе Среда программирования OWEN Logic
    Ответов: 4
    Последнее сообщение: 12.10.2022, 19:33
  3. Добавление аварийных ситуаций в Owen Logic на ПР200 для отображения в Owen Cloud.
    от Григори в разделе Среда программирования OWEN Logic
    Ответов: 6
    Последнее сообщение: 07.07.2022, 11:09
  4. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Программируемые реле
    Ответов: 401
    Последнее сообщение: 28.07.2016, 19:46
  5. Тригонометрические функции OWEN Logic
    от POMAXA в разделе Среда программирования OWEN Logic
    Ответов: 36
    Последнее сообщение: 13.02.2016, 12:11

Ваши права

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