Чтение Float ПЛК ОВЕН Modbus TCP

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
  • Автор
    Сообщения
  • #11865
    SVS
    Участник

    При чтении переменной типа Float от ПЛК ОВЕН происходит некорректное отображение переменных и их взаимное влияние. При чтении целочисленных значений все корректно. Если попытаться прочитать дробное чтение некорректно. Например в ПЛК значение 10.7 в рапиде 10.688 если ввести следующую по порядку переменную с дробной частью 0.4 значение предыдущей изменится на 10,738.

    #11867
    manjey73
    Участник

    Что значит дробная часть 0,4 ?
    Что значит некорректное чтение ? 10,7 это округленное 10,688 нет ? иначе вы вообще бы такую фигню бы в цифрах увидели, если бы читали неправильно

    #11885
    Mikhail
    Модератор

    Если есть сомнения — проверьте побайтно входящий пакет. С помощью сайтов, подобных этому можно узнать, какое же вещественное число закодировано на самом деле.

    #12728
    Andrey2019
    Участник

    Добрый день. У меня похожая ситуация. Считываю по протоколу modbus tcp встроиным драйвером float значения из панели оператора ОВЕН СП307. Все читается, но значения в коммуникаторе отличаются от реальных в десятых, сотых и тысячных. Например на на панели оператора 34.879, а в коммуникаторе 34.636, причем отличатся как в меньшую так и в большую сторону, как будто шум. В журнале коммуникатора если смотреть принимаемую строку и преобразовать значения вручную, то число соответствует тому что выведено в коммуникаторе. Подскажите в чем может быть проблема?

    #12729
    Mikhail
    Модератор

    Добрый день!

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

    #12754
    Andrey2019
    Участник

    Значения в коммуникаторе меняются не часто, но кажется что на него влияют переменные из соседних регистров. Что наводит на мысль, что неправильная адресация регистров у меня, но при этом все восемь переменных соответствуют своим значениям в панели оператора, по крайней мере целая часть числа.

    #12772
    manjey73
    Участник

    Вариант 1. Вы читаете не те соседние регистры. То есть предшествующий + один нужный, а не два нужных и при этом у вас неправильная перестановка байт. По этому у вас целая часть и правильная. Не работал с СПК207 но с другими приборами Овен.

    Адресация с 0 в настройках, правильно указать адрес, перестановка байт для float 2301

    #12781
    Andrey2019
    Участник

    Я как раз об этом и подумал. Уже проверил, и это как раз тот случай — не правильная перестановка байт (правильно как вы и указали 2301) + читал один нужный регистр и один соседний. Всем спасибо.

    #12782
    manjey73
    Участник

    Ну почему сразу «неправильная» ? :), это зависит от примененного процессора ПЛК, зачем делать лишние манипуляции в ПЛК, если все это умеют Scada системы.

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
  • Вы должны авторизироваться для ответа в этой теме.