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

Тема: Преобразование данных в среде OWEN Logic по Modbus RTU из ТРМ 202 в формате int16

  1. #1

    По умолчанию Преобразование данных в среде OWEN Logic по Modbus RTU из ТРМ 202 в формате int16

    Здравствуйте. Хочу обратиться к вам за помощью по такому вопросу. В среде OWEN Logic ПР200 по протоколу Modbus RTU вычитывает данные с температурного датчика из ТРМ 202 в формате int16. На ТРМ показания корректные. По Modbus какие-то непонятные значения приходят, если значение температуры 23 градуса, приходит значение 4800, если температура постепенно увеличивается до 30 градусов, приходит значение 15000. Если бы значение пропорционально увеличивалось или уменьшалось, можно было бы поставить коэффициент пропорциональности, но так не совсем получается. Пробовал использовать макрос, который скачал с форума Овена (на скриншоте), данные на выходе тоже не совсем корректные. Подскажите, пожалуйста, как правильно преобразовать значение в формате int16. Заранее благодарен.
    Изображения Изображения
    • Тип файла: png Int16.png (6.8 Кб, Просмотров: 19)

  2. #2
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,280

    По умолчанию

    Alex87
    А читаете данные в каком формате? Из какого регистра (в ТРМ есть варианты)?
    А если читать в float из регистра h0x1009 ТРМ?
    Проблема в том, что внутренние целочисленные переменные в ПР являются int32, и это отлито в граните. Т. е. никак не изменить.
    Последний раз редактировалось Sulfur; 26.08.2025 в 08:50.

  3. #3

    По умолчанию

    Цитата Сообщение от Alex87 Посмотреть сообщение
    Здравствуйте. Хочу обратиться к вам за помощью по такому вопросу. В среде OWEN Logic ПР200 по протоколу Modbus RTU вычитывает данные с температурного датчика из ТРМ 202 в формате int16. На ТРМ показания корректные. По Modbus какие-то непонятные значения приходят, если значение температуры 23 градуса, приходит значение 4800, если температура постепенно увеличивается до 30 градусов, приходит значение 15000. Если бы значение пропорционально увеличивалось или уменьшалось, можно было бы поставить коэффициент пропорциональности, но так не совсем получается. Пробовал использовать макрос, который скачал с форума Овена (на скриншоте), данные на выходе тоже не совсем корректные. Подскажите, пожалуйста, как правильно преобразовать значение в формате int16. Заранее благодарен.
    Поставьте (снимите) галку в настройках, переставить байты

  4. #4

    По умолчанию

    Спасибо. Читаю из регистра 0x0001 первого канала в формате Signed Int16. В float из регистра h0x1009 пробовал, вычитывается очень большое число, "1+E485" (что-то такое), как его преобразовывать, можно попробовать коэффициентами, надо делить на большое число

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

    По умолчанию

    Цитата Сообщение от Alex87 Посмотреть сообщение
    вычитывается очень большое число, "1+E485" (что-то такое), как его преобразовывать, можно попробовать коэффициентами, надо делить на большое число
    вот как раз здесь нужно поиграться с перестановкой байт и слов. А в целом, сетевые настройки покажите, они точно соответствуют документации на трм
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  6. #6
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,280

    По умолчанию

    как его преобразовывать
    Например умножить на 10 и преобразовать в int. Получите целочисленное значение с разрешением 0.1 градус.
    из регистра 0x0001 первого канала в формате Signed Int16.
    При чтении во внутреннюю переменную оно преобразуется в int32. Далее происходят чудеса с преобразованием, особенно в области отрицательных значений. Не так давно здесь на форуме эта тема поднималась.
    >>>Тут<<<
    Там про ПЧ, но роли не играет, проблема аналогичная.
    Последний раз редактировалось Sulfur; 26.08.2025 в 09:14.

  7. #7

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Поставьте (снимите) галку в настройках, переставить байты
    А зачем в int16 переставлять байты? Ни разу не сталкивался с устройствами, где это было бы необходимо. Да и в опрашивающем софте нигде подобных настроек не встречал.

  8. #8

    По умолчанию

    Цитата Сообщение от imaex Посмотреть сообщение
    А зачем в int16 переставлять байты? Ни разу не сталкивался с устройствами, где это было бы необходимо. Да и в опрашивающем софте нигде подобных настроек не встречал.
    Новички постоянно тычут куда не надо, понаставят галок в перестановке регистров и байт и получают вместо 23 (INT16) например 5888. 23 град.jpg
    недавно один измерял 380,6 В ( 3806 INT16), а получал что-то типа 56846. 380 В.jpg

    В ПР200 и других реле, есть галки перестановки регистров и байт.

    Всё что писали выше, макросы доп кода, относится к отрицательным числам (INT16), когда вместо -1, получают 65535 (это не то, что происходит у ТС)
    Последний раз редактировалось kondor3000; 26.08.2025 в 10:17.

  9. #9

    По умолчанию

    Спасибо. Настройки
    Изображения Изображения

  10. #10

    По умолчанию

    Цитата Сообщение от Alex87 Посмотреть сообщение
    Спасибо. Настройки
    Так вы получили правильное значение или нет?
    Галки пробовали ставить (удалять) ?

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

Похожие темы

  1. Создание таймера в среде OWEN Logic
    от Илья2282 в разделе Среда программирования OWEN Logic
    Ответов: 11
    Последнее сообщение: 14.09.2023, 12:39
  2. Ответов: 10
    Последнее сообщение: 29.07.2022, 14:42
  3. Цвет фона проекта в среде OWEN Logic
    от Lastyearshadow в разделе Среда программирования OWEN Logic
    Ответов: 0
    Последнее сообщение: 08.04.2020, 13:50
  4. universal modbus divece и int16
    от lelik76 в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 13.09.2016, 20:30
  5. МСД-200 обмен данных в среде Delphi 7 по Modbus.
    от Friencis в разделе Эксплуатация
    Ответов: 9
    Последнее сообщение: 13.08.2013, 12:55

Ваши права

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