Все примеры в документе иллюстрируют чтение одного канала с каждого устройства. Можно в документе как-то описать момент опроса нескольких каналов с одного устройства?
Все примеры в документе иллюстрируют чтение одного канала с каждого устройства. Можно в документе как-то описать момент опроса нескольких каналов с одного устройства?
Я так понимаю, речь о примере с библиотекой Modbus - потому что при опросе через конфигуратор процесс опроса нескольких каналов не должен вызывать вопросов, а библиотека ModulsOwenLib опрашивает модули целиком.
В том случае, если нужно опросить несколько каналов модуля через библиотеку Modbus, у вас есть два варианта:
1. Считать групповым запросом все нужные данные (при условии, что нет "дырок" в карте регистров) и дальше в программе разобрать их;
2. Считывать каждый канал по отдельности. В этом случае просто посмотрите, как реализован последовательный опрос двух модулей (например, рис. 6.12) - вам необходимо сделать то же самое, только вместо опроса двух модулей у вас будет два раза опрос разных регистров одного и того же модуля.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Да, всё правильно, извиняюсь, что не уточнил.
Поясню почему возникает некоторая неоднозначность в части 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, поменяв их порядок - и забираете из объединения второе значение.
Т.е. в случае увеличения числа опрашиваемых каналов и модулей примеры концептуально не изменятся - просто увеличится кол-во типовых кусков кода.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Концептуально это всё понятно, но вот механически...(потому и назвал вопрос ламерским).
Так можно?
Example.png
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk