Цитата Сообщение от vyachko Посмотреть сообщение
Да, всё правильно, извиняюсь, что не уточнил.
Поясню почему возникает некоторая неоднозначность в части ModulsOwenLib. В тексте документе отражена особенность нумерации устройств (с учётом конфигурации по протоколу OWEN), и помня об этом при переработке примера 5.9 под чтение двух каналов первое, что приходит в голову, это необходимость последовательно изменять номер адреса (Addr), так же в тексте не увидел, что библиотека ModulsOwenLib опрашивает модули целиком. Это касается и описания библиотеки Modbus (в примерах тоже адреса начальные и не нашёл про групповое чтение).

Я и стал прорабатывать этот вариант для МВ110-8А (читаем 10 регистров начиная со 2-го для получения данных с 1-го и 2-го канала), но возник ламерский вопрос: Как правильнее сделать преобразование WORD_TO_REAL для двух каналов одного устройства в этом случае?
Спрашиваю, так, как в железе пока проверить не могу (в закупке).
1. Нет, адреса изменять не надо. Вы сейчас как раз описали методику опроса по протоколу Овен - но этот документ о Modbus, а в Модбасе устройство определяется одним адресом. По поводу принципа работы ModulsOwenLib - спасибо за замечание, в следующей версии опишем это в явном виде. По поводу группового опроса через библиотеку Modbus - в принципе, в примере как раз показан групповой опрос модуля 8А (считываются 4 регистра, с 2 по 5).

2. В принципе, точно также, как и для одного. После чтения данных вы получаете массив байт. Вы знаете, в каких байтах лежат ваши REAL. Если вы читаете 10 регистров, начиная со второго - то это байты 4-7 (первый REAL, как в примере) и 16-19 (второй REAL). Записываете байты первого REAL в объединение, меняя их порядок - опять же, как в примере. Забираете из объединения значение с плавающей точкой в нужную переменную. Теперь точно также записываете в объединение байты второго REAL, поменяв их порядок - и забираете из объединения второе значение.

Т.е. в случае увеличения числа опрашиваемых каналов и модулей примеры концептуально не изменятся - просто увеличится кол-во типовых кусков кода.