А зачем переводить в целочисленное. Используйте блок FGT для сравнения.
Вид для печати
А зачем переводить в целочисленное. Используйте блок FGT для сравнения.
Понятие перевода из float даю для понятности проблемы. Целочисленное может быть тоже отрицательным и характеризуется представлением его в дополнительном коде. И признак отрицательности - бит 15 в "1". Но почему сравнение с нулем дает что оно больше нуля? И еще если целое отрицательное число из float перевести в целочисленное, а затем обратно, то исходного числа не получим. Почему?
ОЛ не ведает о существовании типа данных INT, там UINT, точнее UDINT, а это без знаковый тип данных:
Вложение 24547
добавьте к сетевой переменной единицу в 15 разряд и потребитель этого регистра(панель,плк) увидят в нем отрицательное число
Чтобы ОЛ отрицательные числа показывал, без FLOAT никак не обойтись, а преобразовать из INT во FLOAT и обратно проблемы не составит:
Вложение 24555
http://www.owen.ru/forum/showthread.php?t=13106&page=3
Здорово! А без бубна и макроса, одним квадратиком нельзя знаковый int переводить во float? Как у прогрессивного человечества. Это касается и еще ряда простых функций, не решаемых средствами ОЛ напрямую, например точное измерение отрезка времени (с точностью до времени цикла). Просил чтобы из таймера можно было бы прочесть сколько времени прошло... наверное это несбыточно.
По внешним признакам, именно так и выглядит: http://www.owen.ru/forum/showthread....l=1#post205757
По косвенным данным, разработчики "реструктуризируют OL": http://www.owen.ru/forum/showthread....l=1#post205320
Вроде давно делаю на 10е .такой случай не моделировал .версия ол 117?