PDA

Просмотр полной версии : Максимальные значения параметров типа LWORD ULINT



ks21
30.12.2025, 11:46
Если создать параметр типа LWORD ULINT и попытаться ввести начальное значение 18446744073709551615 (=16#FFFFFFFFFFFFFFFF), то есть единицы во всех 64-х разрядах, то
выводится сообщения:
Для LWORD, ULINT - Ошибка установки значения 18446744073709551615 свойству Начальное значение : Value was either too large or too small for an Int64.
А если с контроллера передать по Modbus TCP это же число, то принимается значение -1, независимо от того, чтоб тип приемного параметра беззнаковый.
Если присвоить беззнаковому параметру значение 16#7FFFFFFFFFFFFFFF (=9223372036854775807) и вывести значение в окно на экран, то в окне будет отображаться значение 9223372036854776000.
Вопрос - как правильно работать с длинными беззнаковыми параметрами?
MS4D 1.3.9

МихаилГл
30.12.2025, 11:52
Это ещё что... Элементы динамики биты дальше dword не видят. Только 32 бита. Если сделать lword (ну или какой там на 64 бита), то всё, приехали... Думал ужму все булевые в большие числа, ан нет. Хотя ужать то можно, но на стороне скады пережимать в меньшие...

kondor3000
30.12.2025, 14:33
Похоже на очередной баг МС4D,
кривая реализация, типы LWORD и ULINT представлены как LREAL и последние 3 цифры просто округлены (точности не хватает).
Кстати в Codesys 3.5 всё правильно считает.
Подобное встречалось уже на форуме, только там 32 битный UDINT был представлен как REAL, тоже круглялись последние знаки.

В данном случае, только работа со STRING возможно вам поможет, считать в 16# а выводить в STRING, но надо проверять.

ks21
16.01.2026, 07:27
Хотелось бы услышать комментарий разработчиков МС4Д, чтобы не терять напрасно время. Это мои ошибки? Я не разобрался с длинными целыми числами? Или это ошибки в МС4Д и когда они будут исправлены?

МихаилГл
16.01.2026, 08:09
Хотелось бы услышать комментарий разработчиков МС4Д, чтобы не терять напрасно время. Это мои ошибки? Я не разобрался с длинными целыми числами? Или это ошибки в МС4Д и когда они будут исправлены?

Тут вам вряд ли ответят. У них есть своя служба поддержки. А тут только пользователи всего что плохо лежит)