Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: 210-209 float -> int,.. ИПП 120 [ok event] e.t.c.

  1. #1

    По умолчанию 210-209 float -> int,.. ИПП 120 [ok event] e.t.c.

    Привет всем.

    Новичок в программировании в овен лоджик.

    Не могу понять как так и норма ли это:

    210-209.jpg

    (2,1*100 -> int = 209 =))

    Куда писать? кого спрашивать? Подскажете ветку форума, или и тут вопрос для трёпа сойдёт?

    И ещё,.. обсуждалось, наверное, для ИПП 120 - при программировании экранов,
    ну очень хотелось бы иметь системную переменную "Экран" (типа int) не говоря уже об [Ok-event]

    //sot

  2. #2

    По умолчанию

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

    Новичок в программировании в овен лоджик.

    Не могу понять как так и норма ли это:

    210-209.jpg

    (2,1*100 -> int = 209 =))

    Куда писать? кого спрашивать? Подскажете ветку форума, или и тут вопрос для трёпа сойдёт?

    И ещё,.. обсуждалось, наверное, для ИПП 120 - при программировании экранов,
    ну очень хотелось бы иметь системную переменную "Экран" (типа int) не говоря уже об [Ok-event]

    //sot
    Добрый день. Это особенности округления float, и преобразования блоков, если подать число 2,100001 будет все норм, блоки преобразования не округляют по правилам, они откидывают дробную часть, это нужно учитывать, и использовать округление. Раздел по OwenLogic https://owen.ru/forum/forumdisplay.p...splay.php?f=63 и ПР
    С уважением, Ревака Юрий.
    Инженер группы технической поддержки компании "ОВЕН"
    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

  3. #3

    По умолчанию

    Цитата Сообщение от Ревака Юрий Посмотреть сообщение
    Добрый день. Это особенности округления float, и преобразования блоков, если подать число 2,100001 будет все норм, блоки преобразования не округляют по правилам, они откидывают дробную часть, это нужно учитывать, и использовать округление. Раздел по OwenLogic https://owen.ru/forum/forumdisplay.p...splay.php?f=63 и ПР
    т.е., не исключён сценарий, когда

    1.0 -> bool == false ? (в том случае, если по какой-то причине процессор будет держать число 1.0 в памяти, как 0.9999)
    //SOt

  4. #4

    По умолчанию

    Сделайте округление до целого. есть макросы же для этого, потом делайте уже x-> bool
    другой вариант это поставить гистерезис, если у вас не только 1-ницей ограничено значение, чтобы не плясало bool значение

  5. #5

    По умолчанию

    т.е. Вы ответили, что, Да, такое - возможно.

    Просо странно.
    Если исходить из принципов хранения числа в виде мантисса и экспоненциальная часть, то в норме такое было бы не возможно.
    И вообще я думал, что если преобразование в BOOL, то считается, что часть памяти в виде исходной переменной содержит хоть один значимый бит, даже (-0)

    А будьте добры ещё раз тыкните меня В ветку форума или документации, где можно понять как происходят преобразования среди типов.

    (я не имею в виду, что не хочу делать округления, я просто не понимаю логики работы аппаратной части и хочу разобраться)
    //SOt

  6. #6

    По умолчанию

    любое значение float ниже 1 в bool даст 0, что еще надо понимать ?

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

    По умолчанию

    Цитата Сообщение от sot Посмотреть сообщение
    Просо странно.
    Если исходить из принципов хранения числа в виде мантисса и экспоненциальная часть, то в норме такое было бы не возможно.
    И вообще я думал, что если преобразование в BOOL, то считается, что часть памяти в виде исходной переменной содержит хоть один значимый бит, даже (-0)

    А будьте добры ещё раз тыкните меня В ветку форума или документации, где можно понять как происходят преобразования среди типов.
    слышали когда либо про такое https://en.wikipedia.org/wiki/Truncation
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  8. #8

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    слышали когда либо про такое https://en.wikipedia.org/wiki/Truncation
    Прткольно )) первый раз слышу, как и о том, что
    Если делается функция преобразования, например
    x>I

    то она работает некоторым странным образом. Обратимся в начало обсуждения
    2.1 * 100.0 = 210.0 >toInt = 209

    Это реально не напрягает?

    Отсюда вылезает и вопрос о том, что при вычислениях с плавающей запятой, иногда, вероятно в момент когда значение достигнет около 0 (нуля) , я получу преобразование float to boolean в виде Как вы сказали (мол, что тут не понятного) равное False

    а, что, правда, есть такая логика, мол 0,999999 - это False ?
    Где об этом прочитать?

    и..ещё, я не подразумеваю, что делаю Trunc когда делаю => toInt - это не нормально.
    Нормально это было бы документировать, чего я не нашел.
    Дайте ссылку на документацию.

    Спасибо.
    Последний раз редактировалось sot; 22.03.2020 в 14:43.
    //SOt

  9. #9

    По умолчанию

    у меня контрольные суммы не сходятся!

    Понимаете.

    Я блин. не понимаю - что я делаю не так... суммирую всё переводя в Int. И получаю разногласие в суммировании.
    На контроллере одна сумма, на панелька - другая.

    и разница не в тысячных долях, а в ЕДЕНИЦАХ.

    Это какой-то бред.
    //SOt

  10. #10

    По умолчанию

    Цитата Сообщение от manjey73 Посмотреть сообщение
    любое значение float ниже 1 в bool даст 0, что еще надо понимать ?
    эээ.... не понятно. это ошибка.

    100.0 / 100.0 > to_bool = false - норма?
    //SOt

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Float+float
    от CFC-ST в разделе Панели оператора (HMI)
    Ответов: 4
    Последнее сообщение: 07.08.2019, 15:33
  2. float PIC
    от f-kons в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 25.02.2016, 12:33
  3. Преобразовать HEX в Float
    от serezha в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 15.12.2014, 09:56
  4. Переход от float (Nullable) к просто float
    от ASo в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 12.11.2014, 14:21
  5. triggered by event
    от Chupakabra в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 21.11.2008, 15:57

Ваши права

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