ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
28 января
1567746 Топик полностью
ЫЫyкпy (Сегодня, 20:52, просмотров: 17) ответил Лaгyнoв на вот именно, что тупо и уродливо. Я б с удовольствием в int16 всё клал. Но надо так, как на картинке. И у нас так живут 10 из 10. Вот еще пример счетчик-расходомер ЭМИС. Тоже float32. И вдруг тут я вылезаю такой оригинальный. :-)
Самое смешное во всей этой стандартизации то, что в так называемых стандартах Модбаса нет ни слова о том как передавать данные размером больше 16 бит. Единственное разумное решение в такой ситуации - сохранять совместимость с уже имеющимся оборудованием. Первые контроллеры Модикон с которых всё начиналось были big-endian. О таких высоких материях как порядок следования байт программисты этих контроллеров не задумывались, просто читали/писали байты в том порядке как они 

лежат в памяти. Именно поэтому 16-разрядные регистры передаются старшим байтом вперёд, а у float32 первым передается байт со знаком и порядком а потом байты содержащие мантиссу.

А вот STM32 это Кортекс-М, они little-endian и у них байты в памяти лежат в обратном порядке. Передавать их придется в порядке от конца к началу (или заранее приводить к big-endian формату).

А на приеме - СКАДА работает скорее всего на интеловском процессоре, там тоже придется принятые байты разворачивать.

Никто не скучает, все делом заняты ;))

Жизнь есть способ борьбы белковых тел со вторым началом термодинамики.