Страница 10 из 16 ПерваяПервая ... 89101112 ... ПоследняяПоследняя
Показано с 91 по 100 из 155

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

  1. #91

    По умолчанию

    Цитата Сообщение от Gans Посмотреть сообщение
    Всем добрый день.
    Пытался объявить массив таймеров вот так "arrTon: array [1..3] of SYS.TON;". Оказалось так не работает(
    Возник вопрос: как объявить массив таймеров, тригеров и тд.?
    Такое возможно в OWEN Logic?
    Массив TON в ОЛ объявить не получится, не работает. Делайте с отдельными TON.
    Последний раз редактировалось kondor3000; 22.03.2024 в 08:11.

  2. #92

    По умолчанию

    Для тех, кто хочет поломать голову в свободное время, на днях столкнулся со сборкой REAL из 2 WORD в этой теме https://owen.ru/forum/showthread.php?t=39248&page=4#39
    Открыл что было быстрее, в ОЛ программу сборки от capzap ( когда то он её выложил в одной из тем), программу проверял в нескольких пределах, всё работало правильно.
    Ввёл числа 52429 и 16268 и получил 0.1 1 Сборка REAL.jpg Потом проверил в другой программе Codesys 2.3 , получил 1.1 1 Передача REAL_2.jpg
    Позже оказалось что Функция arrWToReal, врёт только на пределе от 1.0 до 1.99999 и от -1.0 до -1.99999, на остальных пределах считает правильно.
    Вопрос, где ошибка в коде функции arrWToReal ?

    Выложил вариант в Лоджике и в Codesys 2.3, кому как удобнее.
    В Codesys 2.3, для сравнения функция через указатели, считает правильно.
    Сам пока решил, вводом дополнительной строки в конце функции.
    Вложения Вложения
    Последний раз редактировалось kondor3000; 24.03.2024 в 11:45.

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

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Для тех, кто хочет поломать голову в свободное время, на днях столкнулся со сборкой REAL из 2 WORD в этой теме https://owen.ru/forum/showthread.php?t=39248&page=4#39
    Открыл что было быстрее, в ОЛ программу сборки от capzap ( когда то он её выложил в одной из тем), программу проверял в нескольких пределах, всё работало правильно.
    Ввёл числа 52429 и 16268 и получил 0.1 1 Сборка REAL.jpg Потом проверил в другой программе Codesys 2.3 , получил 1.1 1 Передача REAL_2.jpg
    Позже оказалось что Функция arrWToReal, врёт только на пределе от 1.0 до 1.99999 и от -1.0 до -1.99999, на остальных пределах считает правильно.
    Вопрос, где ошибка в коде функции arrWToReal ?

    Выложил вариант в Лоджике и в Codesys 2.3, кому как удобнее.
    В Codesys 2.3, для сравнения функция через указатели, считает правильно.
    Сам пока решил, вводом дополнительной строки в конце функции.
    я посмотрел другие примеры, в них отсутствет такой код
    Код:
    if exponent = 0 then
        mant_mult := 0;
    else
        mant_mult := 1;
    end_if;
    вместо него надо просто записать mant_mult := 1;
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  4. #94

    По умолчанию

    Если верить Число одинарной точности
    то:
    Owen.jpg
    получается:
    Код:
    ..
        exp_raw := shr(stuffAdd, 23) mod 256;
        mantissa := stuffAdd mod 8388608;
        if exp_raw = 0 then
            mantissa := mantissa + 8388608;
        end_if;
    
        exponent := udint_to_real(exp_raw) - udint_to_real(127);
        mant_mult := 1;
    ..

  5. #95

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    я посмотрел другие примеры, в них отсутствет такой код
    Код:
    if exponent = 0 then
        mant_mult := 0;
    else
        mant_mult := 1;
    end_if;
    вместо него надо просто записать mant_mult := 1;
    Согласен, так считает правильно, у меня получилось немного длиннее)))
    Выкладываю исправленные варианты.

    ЗЫ: Добавляю, при 0 результат не верный, правильно так
    Код:
    if exponent =-127.0 then
            mant_mult := 0;
          else
            mant_mult := 1;
    end_if;
    Вложения Вложения
    Последний раз редактировалось kondor3000; 14.12.2024 в 16:42.

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

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    ..Выложил вариант в Лоджике..
    секунда перфекционизма
    Внешняя часть. А внутренности сами выше разобрали

    А что может сподвигнуть на использование этой склейки?

    ---
    и вот например
    Код:
    negative := shr(stuffAdd, 31) > 0;
    ==
    Код:
    negative := stuffAdd.31;
    это ж не какое-то там си ))
    Вложения Вложения
    Последний раз редактировалось Валенок; 24.03.2024 в 15:50.

  7. #97

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    секунда перфекционизма
    Внешняя часть. А внутренности сами выше разобрали

    А что может сподвигнуть на использования этого?
    Этот вариант у меня уже давно есть, только в выложенном варианте опять ошибка, получается 0.1 1 Ошибка в вычислении.jpg а здесь правильно 1.1 1 Нет ошибки.jpg
    Последний раз редактировалось kondor3000; 24.03.2024 в 16:01.

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

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    в выложенном варианте опять ошибка...
    ))
    А внутренности сами выше разобрали
    я туда не лазил. Вам верю
    Последний раз редактировалось Валенок; 24.03.2024 в 15:53.

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

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    А с 31 битом в Лоджике проблемы и уже давно, ждём когда исправят, поэтому так не катит.
    Катит. Это ж функция а не фБ. В нем не катит чего то.
    Да и ДО того как сделаться 31-ым, он 15-й

  10. #100

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Катит. Это ж функция а не фБ. В нем не катит чего то.
    Да и ДО того как сделаться 31-ым, он 15-й
    В функциях этот баг был исправлен ранее, в ФБ исправим и выпустим в ближайшем хотфиксе
    Менеджер по продукту | Owen Logic
    email: soft@owen.ru

Страница 10 из 16 ПерваяПервая ... 89101112 ... ПоследняяПоследняя

Похожие темы

  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

Ваши права

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