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

Тема: ПР200. Некорректная передача данных типа float по Modbus RTU в режиме Slave.

  1. #1

    По умолчанию ПР200. Некорректная передача данных типа float по Modbus RTU в режиме Slave.

    Доброго дня. ПР200 работает как slave в сети RS485 Modbus RTU. К контроллеру подключен термометр Pt500, данные которого должны передаваться мастеру в формате c плавающей точкой. Так вот, данные мастер получает, но это какие-то рандомные значения. В отладчике посмотрел: после блока преобразования сопротивления в температуру значение действительное. Менял последовательности байт и регистров - ничего не меняется, всё время получаю рандомные данные. Меняю значение с плавающей точкой на целочисленное - значение приходит верное, возвращаю назад - опять рандом.
    В чем может быть проблема?

    P.S. С других слейвов мастер получает значения float без проблем.
    Последний раз редактировалось maks.dav; 17.11.2021 в 12:07.

  2. #2
    Пользователь
    Регистрация
    31.01.2019
    Адрес
    РФ/РБ
    Сообщений
    917

    По умолчанию

    Возможно преобразовываете не верно.

    ЗЫ. Лично мое мнение - передавать температуру во Float - бессмысленная трата ресурсов. 16 бит хватает почти для всего, где нужна точность в 0.1%

  3. #3

    По умолчанию

    Цитата Сообщение от keysansa Посмотреть сообщение
    Возможно преобразовываете не верно.

    ЗЫ. Лично мое мнение - передавать температуру во Float - бессмысленная трата ресурсов. 16 бит хватает почти для всего, где нужна точность в 0.1%
    Согласен! И всё бы ничего, но значение температуры нужно выводить с точностью до второго знака после запятой.

  4. #4
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от maks.dav Посмотреть сообщение
    Согласен! И всё бы ничего, но значение температуры нужно выводить с точностью до второго знака после запятой.
    Ну и что?
    Если исходная укладывается в диапазон +/- 327,68, то в чем проблема?
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    Для слейва галочки не действуют, для ПР200 порядок байт 2301(3412)

  6. #6

    По умолчанию

    Цитата Сообщение от maks.dav Посмотреть сообщение
    Менял последовательности байт и регистров - ничего не меняется, всё время получаю рандомные данные.

    P.S. С других слейвов мастер получает значения float без проблем.
    А где меняете? Менять нужно в мастере https://www.youtube.com/watch?v=NMTvVy9ABVc
    С уважением, Ревака Юрий.
    Инженер группы технической поддержки компании "ОВЕН"
    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

  7. #7

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Ну и что?
    Если исходная укладывается в диапазон +/- 327,68, то в чем проблема?
    А проблема в том, что значения с плавающей точкой мне нормальные не приходят

  8. #8

    По умолчанию

    Цитата Сообщение от Ревака Юрий Посмотреть сообщение
    А где меняете? Менять нужно в мастере https://www.youtube.com/watch?v=NMTvVy9ABVc
    Зачем тогда для слейва в настройках есть эта функция??
    В мастере не могу поменять, т.к. другие слейвы работают на установленной последовательности регистров и байт.

  9. #9

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Для слейва галочки не действуют, для ПР200 порядок байт 2301(3412)
    но, когда их ставлю, приходящие значения меняются, к примеру, в одном случае могут появляться только отрицательные значения, во втором положительные но определенного диапазона и т.д. По крайней мере разница есть.

    И почему, интересно, выбран такой порядок байт 2301(3412)?

  10. #10
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Ну и что?
    Если исходная укладывается в диапазон +/- 327,68, то в чем проблема?
    Цитата Сообщение от maks.dav Посмотреть сообщение
    А проблема в том, что значения с плавающей точкой мне нормальные не приходят
    Я имел в виду, что float в int, с двумя знаками после запятой без проблем в диапазоне +/- 327,68


    Перевод float в целые с фикс. точкой и обратно

    Вложения Вложения
    Последний раз редактировалось petera; 17.11.2021 в 14:15.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

Похожие темы

  1. Сетевые переменные в режиме Slave у ПР200
    от Артем Пешин в разделе Программируемые реле
    Ответов: 18
    Последнее сообщение: 30.01.2020, 19:25
  2. СПК в режиме MODBUS Slave средствами CDS
    от ASo в разделе СПК1хх [М01]
    Ответов: 1
    Последнее сообщение: 15.11.2019, 16:45
  3. пр200 и OPС сервер не читается переменная типа Float
    от Владимир1967 в разделе OPC Серверы
    Ответов: 1
    Последнее сообщение: 28.01.2017, 17:10
  4. Ответов: 4
    Последнее сообщение: 15.07.2013, 18:32
  5. Передача float через Modbus-slave
    от semmi в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 13.12.2010, 13:56

Ваши права

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