Показать сообщение отдельно
Старый 23.07.2020, 11:27   #3
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Получение нестандартного REAL по MODBUS

Цитата:
Сообщение от regedite Посмотреть сообщение
Добрый день!
Вкратце поясню задачу:
Есть датчик Сенсон -СМ с RS-485.
Формат команды чтения измерения из нескольких регистров : адрес датчика (1 байт) - 0x04 (1 байт) - адрес первого регистра (2 байта) - число регистров (2 байта) - CRC16. Считываются 2 регистра по начальному адресу 0x03F4 в формате float32. Low байты в Low регистре, Hi байты в Hi регистре.
MasterOPC Universal Modbus читает датчик без проблем. MCX06D через свою библиотеку modbus master не читает датчик. Присматриваюсь к Matrix и History (нужно организовать архив измерений на 1 час).
Возможна ли реализация данной задачи на Matrix?
Все сообщения выше как раз о решении вашей задачи. Так также есть объяснение, что и как, и как решать вопрос, если у вас не так.

Форматы приёма данных:

- старшим регистром вперед - при передаче 32-битного числа первым передаются старшие 16 бит (стандарт)
- младшим регистром вперед

- страший байт впереди (Little endian) - PC и большинство распространенных микропроцессоров
- младший байт впереди (Big endian)


PS. Тема выделена из решения: https://forum.segnetics.com/showthread.php?t=461


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием