и так информация для начинающих (как и я)
в МВ110-08А порядок следования байт при считывании регистров сначала младший, потом старший байт;
для значения температуры в формате Float32 в регистре 4 передаётся порядок и старшая часть мантиссы (сначала младший байт, потом старший)
в регистре 5 передаётся младшая часть мантиссы (сначала младший байт, потом старший)
в стандартном представлении чисел Float32 в памяти мк сначала идёт младшая часть мантиссы, потом порядок и старшая часть,
поэтому при получении данных с МВ110-8а необходимо слова переставить местами.
считываем данные для 4 датчиков через строковую переменную,
копируем в массив temp данные для одного датчика, через указатель типа word,
температуру в формате Float32 получаем путём копирования, через указатель типа word:
ptr:=ADR(var_real);
ptr^[0]:=temp[5];
ptr^[1]:=temp[4];
параметр Byte Sequence (trace_mode и native) при конфигурировании ModBus влияет только на порядок байт в слове при считывании Real input module (сам проверил и находил в каком-то мануле).
Спасибо большое.




Ответить с цитированием