Страница 478 из 478 ПерваяПервая ... 378428468476477478
Показано с 4,771 по 4,777 из 4777

Тема: Фичи и баги OWEN Logic

  1. #4771

    По умолчанию

    В общем есть один мелкий баг, но он провоцирует кучу лишних телодвижений:
    Есть текстовое поле на экране размером 160х40, в нем коротенькая надпись 32-м шрифтом, если я меняю текст (не размер шрифта, а только текст), то надпись тут же меняются высота рамки с 40 на 44 и приходится постоянно это исправлять, со всеми вытекающими...

  2. #4772

    По умолчанию

    Еще баг.
    При старте симуляции переменная дня недели, привязанные к часам дает некорректное значение - ноль. В итоге ST-шный макрос, который пытается это обработать, валится, и симуляция не запускается вообще.

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

    По умолчанию

    Цитата Сообщение от Kliper Посмотреть сообщение
    Еще баг.
    При старте симуляции переменная дня недели, привязанные к часам дает некорректное значение - ноль. В итоге ST-шный макрос, который пытается это обработать, валится, и симуляция не запускается вообще.
    Так в чем баг? У новых ПРок в симуляции время работает только, полученное от функции в ST

  4. #4774

    По умолчанию Проблема с вложенным ST-FB на ПР225

    Здравствуйте!

    Столкнулся с проблемой при работе пользовательских функциональных блоков ST.

    Контроллер: ПР225-24.1210.02.2.0
    Owen Logic: 3.2.376.0

    Проблема наблюдается на реальном ПР225, в режиме эмуляции не воспроизводится.

    Удалось получить минимальный воспроизводимый пример.

    1. Вложенный FB:

    Код:
    function_block PumpControllerTest
    
    var_input
    
        a01 : bool;
        a02 : bool;
    
        a03 : bool;
        a04 : udint;
        a05 : udint;
    
        a06 : bool;
        a07 : bool;
        a08 : bool;
    
        a09 : bool;
    
        a10 : real;
    
        a11 : real;
        a12 : udint;
        a13 : real;
    
        a14 : real;
        a15 : real;
        a16 : real;
        a17 : real;
    
        a18 : real;
    
    end_var
    
    
    var_output
    
        b01 : bool;
        b02 : real;
    
        b03 : udint;
        b04 : bool;
    
        b05 : bool;
    
    end_var
    
    
    var
    
        c03 : bool;
        c04 : bool;
        c05 : bool;
    
        c06 : bool;
        c07 : bool;
        c08 : bool;
    
        c09 : bool;
    
        c10 : bool;
    
        c11 : real;
        c12 : real;
    
        c13 : udint;
        c14 : udint;
    
        c15 : real;
    
        c16 : bool;
    
    end_var
    
    
    b03 := 2;
    
    end_function_block
    В данном FB выход `b03` всегда явно устанавливается в значение `2`:

    Код:
    b03 := 2;
    2. Родительский FB:

    Код:
    function_block MainTest
    
    var_input
    
        a01 : bool;
        a02 : bool;
    
        a03 : real;
    
        a04 : bool;
        a05 : bool;
    
        a06 : bool;
        a07 : udint;
        a08 : udint;
    
        a09 : bool;
    
        a10 : real;
        a11 : real;
    
        a12 : real;
        a13 : real;
        a14 : real;
        a15 : real;
    
        a16 : udint;
        a17 : bool;
        a18 : udint;
    
        a19 : bool;
        a20 : real;
    
        a21 : real;
        a22 : real;
        a23 : real;
    
        a24 : real;
        a25 : real;
        a26 : real;
        a27 : real;
    
        a28 : udint;
        a29 : udint;
    
        a30 : udint;
    
    end_var
    
    
    var_output
    
        b01 : bool;
        b02 : real;
    
        b03 : udint;
        b04 : bool;
    
        b05 : bool;
    
    end_var
    
    
    var
        c01 : PumpControllerTest;
        c02 : bool;
        c03 : bool;
        c04 : bool;
        //c05 : bool;
    end_var
    
    
    c01(
        a01 := a01,
        a02 := a02,
    
        a03 := a04,
        a04 := a07,
        a05 := a08,
    
        a06 := a05,
        a07 := a06,
        a08 := a09,
    
        a09 := a17,
    
        a10 := a03,
        a11 := a10,
        a12 := a16,
        a13 := a11,
    
        a14 := a12,
        a15 := a13,
        a16 := a14,
        a17 := a15,
    
        a18 := a20
    );
    
    
    b01 := c01.b01;
    b02 := c01.b02;
    b03 := c01.b03;
    b04 := c01.b04;
    b05 := c01.b05;
    
    end_function_block
    Результат на реальном ПР225:

    Код:
    c05 : bool;
    закомментирована:

    Код:
    c01.b03 = 0
    Если раскомментировать только эту переменную:

    Код:
    c05 : bool;
    которая нигде не используется, результат становится:

    Код:
    c01.b03 = 2
    При этом в обоих случаях в `PumpControllerTest` выполняется:

    Код:
    b03 := 2;
    В режиме эмуляции Owen Logic в обоих вариантах:

    Код:
    b03 = 2
    То есть поведение зависит от наличия одной неиспользуемой переменной BOOL в родительском FB.

    Появляется подозрение на проблему, связанную с размещением/адресацией переменных или экземпляров ST-FB при компиляции. Точно утверждать, что это именно смещение памяти, не могу.

    При этом обычная логика FB в данном тесте отсутствует - фактически проверяется только передача выходного значения вложенного пользовательского функционального блока.

    Вопрос:

    Известна ли такая проблема в Owen Logic 3.2.376.0 на ПР225?

    В частности, может ли наличие/отсутствие неиспользуемой переменной в родительском ST-FB влиять на адресацию или передачу выходов вложенного ST-FB?

    Во вложении прилагаю минимальный проект Owen Logic, на котором проблема воспроизводится на реальном ПР225.
    Вложения Вложения
    Последний раз редактировалось Pavlick; 18.09.2026 в 13:51.

  5. #4775

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Так в чем баг? У новых ПРок в симуляции время работает только, полученное от функции в ST
    Я завожу дни недели снаружи, через переменную. А она некорректная изначально, идет ошибка в обработке и симуляция не запускается. В этом и баг.
    Последний раз редактировалось Kliper; 18.09.2026 в 19:11.

  6. #4776

    По умолчанию

    Цитата Сообщение от Kliper Посмотреть сообщение
    Я завожу дни недели снаружи, через переменную. А она некорректная изначально, идет ошибка в обработке и симуляция не запускается. В этом и баг.
    В симуляции там вообще ничего не работает. Если надо берите время и день недели тут, работает везде
    Дата, Время и День недели через DT с 2000г. ____________ https://owen.ru/forum/showthread.php?t=40116#4
    Последний раз редактировалось kondor3000; 18.09.2026 в 19:25.

  7. #4777

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    В симуляции там вообще ничего не работает. Если надо берите время и день недели тут, работает везде
    Дата, Время и День недели через DT с 2000г. ____________ https://owen.ru/forum/showthread.php?t=40116#4
    Все работает, если приходят корректные данные. Просто овеновцам надо одну циферку подправить и все.
    И еще цвет отображения линий массивов поменять со светло-зеленого, на темно-зеленый, а то эти линии, нифига нормально не видно

Страница 478 из 478 ПерваяПервая ... 378428468476477478

Похожие темы

  1. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Среда программирования OWEN Logic
    Ответов: 404
    Последнее сообщение: 25.08.2020, 15:17
  2. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Программируемые реле
    Ответов: 401
    Последнее сообщение: 28.07.2016, 19:46
  3. OWEN Logic 1.2.0.14b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 40
    Последнее сообщение: 21.02.2011, 14:16
  4. OWEN Logic 1.1.0.11b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 58
    Последнее сообщение: 12.10.2010, 20:55

Ваши права

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