Страница 238 из 357 ПерваяПервая ... 138188228236237238239240248288338 ... ПоследняяПоследняя
Показано с 2,371 по 2,380 из 3562

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

  1. #2371
    Пользователь
    Регистрация
    08.01.2019
    Адрес
    Тамбов
    Сообщений
    47

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    возможно хватит просто умножить на 0.5 и конвертировать в целочисленное. Я исходил из того, что число 24.9999 уже отображается в научном формате как 25, поэтому начал с дискретного округления до трех знаков, поэтому код такой сложный
    Хорошо попробую

  2. #2372

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    это не совсем глюк ОЛ, это общая проблема, но разработчики могли бы учесть такое с константами Вложение 54465
    как только константы окажутся без приведения к типу округление будет равно 25
    Вложение 54466


    такое преобразование решит проблему
    Вложение 54467
    Cпасибо, разъяснили . Вам ОВЕН должен. Т.е проблема возникает в 6-7 разряде после запятой, иногда в плюс, иногда в минус, когда в минус, то такая ошибка проявляется при преобразовании. Тут очевидно ,что если нельзя устранить саму причину возникновения ошибки в силу объективных причин, то преобразовать из float в int можно например предварительно округлением в 5 разряде после запятой. Ведь при отображении значений float на холсте так и происходит.И это наверное разработчики ОЛ должны исправить, а не пользователи .
    Последний раз редактировалось Sergej_; 12.04.2021 в 09:28.

  3. #2373

    По умолчанию

    Цитата Сообщение от Евений Посмотреть сообщение
    Так вроде на входе блока INT целое 25 а на выходе 24?
    На самом деле там скорее всего что-то типа 24.99999 при таком раскладе лоджик округляет до 25, а откидывая 0.99999 после TO INT получается 24, это легко проверить в симуляции.
    С уважением, Ревака Юрий.
    Инженер группы технической поддержки компании "ОВЕН"
    e-mail: yu.revaka@owen.ru

    Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
    Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
    Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ

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

    По умолчанию

    Все не так, в пр используется формат вещественных чисел IEEE 754, а отображение ол написано стандартным средствами и там скорее всего float64 или Double, поэтому и идёт расхождение в представлении числа, а ни как не в самой арифметике. И напомню что это частный случай, если разработчики сделают подобные округления повсеместно, то прога будет работать намного медленнее, а что то сделать в конкретной ситуации этим должен заниматься автор проекта
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  5. #2375

    По умолчанию

    Цитата Сообщение от Ревака Юрий Посмотреть сообщение
    На самом деле там скорее всего что-то типа 24.99999 при таком раскладе лоджик округляет до 25, а откидывая 0.99999 после TO INT получается 24, это легко проверить в симуляции.
    О том и речь, и capzap доходчиво объяснил причину. . В силу специфики предсавления ОЛ держит в "уме" 24,99999 , а показывает на холсте 25.Хотя математически, то истинное число 25 как не считайте. Причем ошибка возникает не всегда . Стало интересно, по быстрому провел небольшой эксперимент например (float)1,2+08 ->(uint)120000008. (float)4,2+08 ->(uint)419999968 . В результате эта ошибка " кочует" дальше по всей цепочке. И возникает она далеко не всегда. И если бы преобразование это учитывало, то было бы все окейно, но это не так.
    Последний раз редактировалось Sergej_; 12.04.2021 в 12:15.

  6. #2376

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Все не так, в пр используется формат вещественных чисел IEEE 754, а отображение ол написано стандартным средствами и там скорее всего float64 или Double, поэтому и идёт расхождение в представлении числа, а ни как не в самой арифметике. И напомню что это частный случай, если разработчики сделают подобные округления повсеместно, то прога будет работать намного медленнее, а что то сделать в конкретной ситуации этим должен заниматься автор проекта
    Пока писал ,не видел этого Вашего сообщения, понятно, что дело не в ошибках арифметики, но эта особенность гипотетически может привести к какам -то ошибкам. А этот "частный случай" еще и засечь нужно, автор вопроса скорей всего случайно обнаружил. А если не обнаружил, то как это сказалось бы на результате? может и никак ,а может и сказалось . В описании ОЛ про это ничего нет. Теперь будем хотя бы знать, спасибо.

  7. #2377
    Пользователь
    Регистрация
    25.02.2016
    Адрес
    Кострома
    Сообщений
    276

    По умолчанию

    В макросе BM_in из менеджера компонентов ошибка - константа (та что подписана - Сдвиг) должна быть 7, а не 8

  8. #2378
    Пользователь
    Регистрация
    25.02.2016
    Адрес
    Кострома
    Сообщений
    276

    По умолчанию

    Цитата Сообщение от stesel Посмотреть сообщение
    В макросе BM_in из менеджера компонентов ошибка - константа (та что подписана - Сдвиг) должна быть 7, а не 8
    А нет, не так, в первом бите не нужно просто добавлять ни чего, это ж нулевой бит, а не первый.
    Последний раз редактировалось stesel; 12.04.2021 в 12:21.

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

    По умолчанию

    Цитата Сообщение от Sergej_ Посмотреть сообщение
    Пока писал ,не видел этого Вашего сообщения, понятно, что дело не в ошибках арифметики, но эта особенность гипотетически может привести к какам -то ошибкам. А этот "частный случай" еще и засечь нужно, автор вопроса скорей всего случайно обнаружил. А если не обнаружил, то как это сказалось бы на результате? может и никак ,а может и сказалось . В описании ОЛ про это ничего нет. Теперь будем хотя бы знать, спасибо.
    Ещё раз говорю, это не проблема ОЛ, на любом языке какой знаете, сложите два 32-битных числа 0.3 и 0.4 и проверьте на равенство с 0.7
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  10. #2380

    По умолчанию

    OL 1.19.268
    Windows 7 64
    При объявлении переменных в макросе отображение имен переменных в списке переменных не совпадает с реальными, если открыть таблицу перменных.
    Screenshot_95.png
    Screenshot_97.png
    Screenshot_96.png

    При сохранении макроса, его закрытии и последующем открытии отображается верно.

Страница 238 из 357 ПерваяПервая ... 138188228236237238239240248288338 ... ПоследняяПоследняя

Похожие темы

  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, 21:55

Ваши права

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