Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 39

Тема: Целочисленные в формате u32 и u64

  1. #1

    По умолчанию Целочисленные в формате u32 и u64

    Здравствуйте!
    Подключаю к ПР205 устройство по шине Modbus. Целочисленные переменные типа u16 передаются без проблем. А вот с некоторыми регистрами которые имеют формат u32 или u64 возникает проблема.
    Как можно считать данные регистры и потом математически их привести к нормальной форме. Есть ли у кого нибудь мысли. Мои знания в данной области, к сожалению ограничены.

  2. #2
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,991

    По умолчанию

    к u64 никак. ПР ограничен u32. Разделить на два регистра, потом собрать.

  3. #3

    По умолчанию

    Кажется я сам нашел ответ на свой вопрос. Может кому нибудь пригодится. Поправьте меня если я ошибаюсь.
    при считывании числа например U64 который занимает 4 регистра нужно считать их в отдельные переменные и потом:

    Чтобы получить итоговое число:
    читаем регистр 0x2200
    младшая часть — значение оставляем «как есть» : 0хb4dfhex = 46303dec
    далее регистр 0x2201
    значение умножаем на 2^16 : 0x0dffhex = 3583dec, 3583 * 65536 = 234815488
    затем регистр 0x2202
    значение умножаем на 2^32 : 0 * 4294967296 = 0
    и в конце 0x2203
    значение умножаем на 2^48 : 0 * 281474976710656 = 0

    Суммируем результаты : 46303 + 234815488 + 0 + 0 = 234861791. Возможно потребуется преобразовать в число с плавающей точкой.
    Может есть более изящное решение?

  4. #4

    По умолчанию

    Небось опять со счётчиком, где 64 битные регистры. Это только на СПК1хх и ПЛК 2хх можно сделать
    Это нормальное решение из РЭ, только это не для ПР, а для ПЛК
    и 0 там только в начале, потом дикие цифры пойдут.
    Последний раз редактировалось kondor3000; 16.10.2024 в 13:03.

  5. #5

    По умолчанию

    Два 16-битных в одни 32-битный еще можно собрать.
    А дальше?! 64-бита придется хранить в 2-х разных переменных.
    Потом придется делить на 10 несколько раз, чтобы отделить по цифре и вывести.
    Я делаю с помощью макроса rDIV https://owen.ru/forum/showthread.php...l=1#post431974
    Отделяю каждую цифру https://owen.ru/forum/showthread.php...l=1#post432009

  6. #6
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,991

    По умолчанию

    float не переварит преобразование из u64, он и u32 не переварит в принципе. Там где u32 продолжит считать с 1,2 знаками после запятой, float уже загнется.
    А толку от ухищрений с u64? только показать, математика будет недоступна с этим числом.

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

    По умолчанию

    Цитата Сообщение от Dimaes Посмотреть сообщение
    ..Подключаю к ПР205 устройство по шине Modbus. ... типа u16 передаются без проблем. А вот с некоторыми ... имеют формат u32 или u64..
    .
    WB-MAP какой-нить?

  8. #8

    По умолчанию

    Да, Измеритель параметров электрической сети WB-MAP3E.
    Но там конечно можно использовать только регистры u32. Еще есть регистры s32 (у которых есть знак). С ними как быть?

  9. #9

    По умолчанию

    Что Вы хотите с ними сделать?

  10. #10

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    float не переварит преобразование из u64, он и u32 не переварит в принципе. Там где u32 продолжит считать с 1,2 знаками после запятой, float уже загнется.
    А толку от ухищрений с u64? только показать, математика будет недоступна с этим числом.
    Я, наверное, опять не так понял?!
    Взял максимальный u32 и преобразовал его во float и обратно - вроде все биты на месте?!
    Owen.jpg

Страница 1 из 4 123 ... ПоследняяПоследняя

Похожие темы

  1. Как присвоить различные целочисленные значения для одной переменной?
    от Пётр Поросёнков в разделе Среда программирования OWEN Logic
    Ответов: 8
    Последнее сообщение: 24.02.2024, 18:58
  2. ПМ 01 не отправлет смс в формате PDU
    от djmadmax в разделе Эксплуатация
    Ответов: 18
    Последнее сообщение: 01.12.2016, 11:34
  3. Системное время в формате DATE
    от Columbariy в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 10.10.2014, 23:54
  4. Ответов: 10
    Последнее сообщение: 01.10.2014, 15:47
  5. Передавать архивы файлов в формате csv
    от IDN в разделе ПЛК3xx (архив)
    Ответов: 5
    Последнее сообщение: 16.05.2014, 10:33

Ваши права

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