Почему float на панели PH1 показывает неверное значение?
Чаще всего дело в порядке байтов. Связь при этом исправна, ошибок обмена нет, целые числа читаются правильно, а вещественные превращаются в мусор — огромные значения, нули или скачки при плавном изменении параметра.
Порядок байтов задаётся в Project settings одним переключателем: Little-endian или Big-endian, и относится он именно к числам с плавающей запятой. По умолчанию стоит Little-endian. Если контроллер или прибор отдаёт float в обратном порядке, панель соберёт из двух правильных слов неправильное число.
Как отличить эту причину от остальных:
- целые читаются, вещественные — нет. Классический признак перепутанного порядка байтов: 16-битные значения не страдают, потому что переставляются слова, а не байты внутри слова;
- значение выглядит осмысленным по порядку величины, но неверным — тогда причина, скорее всего, другая: не тот адрес или не та база адресов;
- число «дрожит» вокруг правильного — вопрос к формату данных объекта, а не к порядку байтов.
Что проверить по порядку:
- Формат данных объекта — он должен быть 32-битным с плавающей запятой, а не 32-битным целым.
- Адрес: вещественное число занимает два соседних регистра, и второй из них не должен использоваться под другой параметр.
- Переключатель порядка байтов в настройках проекта.
- Документацию устройства: производители нередко указывают порядок слов явно.
Проверять удобнее на параметре с известным значением — номинальном токе привода или заводской уставке. Если после смены порядка байтов на экране появилось ожидаемое число, вопрос закрыт.
Прикреплённая документация
Георгий Жуков
Ведущий инженер