для Москвы
8 495 720 54 44

по России бесплатно
8 800 555 61 84



ФБ Modbus Slave, передача/прием дробных значений?

  • Slava-sl
  • Ушел
  • Новый участник
Больше

Каким образом получить/передать посредством ФБ Modbus Slave дробные значения с/на устройства?
При не возможности на устройстве ввести поправочные коэффициенты (х10...)?
Такая же ситуация при использовании i.lon Smart Server (тоже не понятно как с помощью его получить/передать вещественные значения в контар).

Больше

По протоколу ModBus в одном регистре можно передать только целое значение, все зависит от его интерпретации. Если в вашем случае невозможно ввести поправочный коэффициент, можно передавать дробное число использую 2 регистра, но в этом случае также могут возникнуть проблемы с интерпретацией. Пример подобного преобразования во вложении.
Аналоговая величина занимает 32 бита или 4 байта. Алгоблок АН-2 ЦЕЛ просто разделяет эти 4 байта на два регистра по 2 байта. Число делится не просто так – два байта целая часть, а два байта – дробная. Это число с плавающий запятой и считывать имеет только 4 байта вместе (для справки: 1 бит у него занимает знак числа, 8 бит — показатель степени, 23 бита — дробная часть). Соответственно, программисту с другой стороны надо будет просто знать, что в этих двух регистрах Modbus лежит аналоговое число, которое им и считывается как единое целое. С одной оговоркой: существует два способа записи чисел. У Контар принят порядок “Big Endian”. Поэтому «с той стороны» надо наше число считывать в порядке “Big Endian”. А, например, в персональном компьютере принят порядок “Little Endian”.

Вложения:

Модераторы: supportsupportmztamalykmaestroliderRekz

для Москвы
8 495 720 54 44

по России бесплатно
8 800 555 61 84

Адрес: Россия, 105318, Москва,
ул. Мироновская, д.33




МЗТА в социальных сетях:

Copyright ОАО «МЗТА» © 1999-2017 г.
Карта сайта



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter