Добрый день!
Пишу программу обработки дискретных и аналоговых сигналов.
В качестве модуля ввода-вывода используется корзина ICP DAS ET-87p8-MTCP (2 модуля аналогового ввода, 4 модуля дискретного ввода и 2 модуля дискретного вывода)
Ситуация следующая:
Настроил между ими связь (сконфигурировал устройство "Ethernet", добавил и сконфигурировал Modbus TCP Master и Modbus TCP Slave). В Modbus TCP Slave сконфигурировал каналы для обращения к каждому модулю ввода-вывода данной корзины (пришлось долго разбираться с адресацией параметров ICP DAS'а), данные выводятся стандартными функциями на чтение/запись. Данные аналоговых модулей выводятся в формате WORD (16 бит).
2.jpg
значение 10000 примерно соответствует 27-28 градусам цельсия
Вопрос:
Как перевести данные из формата в WORD в формат REAL? Для примера приведу считываемый аналоговым модулем ввода параметр температуры. Сам параметр выводится в Codesys только в формате dec (в ПО для конфигурирования ICP DAS можно посмотреть эти данные в формате value, dec и hex).
Просмотрел библиотеку OwenCommunication, подходящих блоков не нашел, а стандартные переводы типа WORD_TO_REAL положительного результата не дал.
1.jpg
Может я проглядел какой блок, который решит мою проблему, или может быть существует способ из этих 16 бит собрать число типа REAL