Создаю в источниках/приёмниках канал типа Rout_Float(3). В узле RTM_1 создаю канал CALL с типов вызова ChGroupReq и 473 аргумента, так как индексы регистров пронумерованы от 0 до 472 (тип регистров "Вещественное 32"). Привязываю канал MODBUS из источников к каналу CALL в узле проекта. Запускаю МРВ, в служебной панели выбираю канал CALL, его атрибут 124, в котором у меня меняются значения только до 25 аргумента. Подскажите почему не получается прочесть все регистры?
Posted by veloledi256 (Участник № / Member № 7333) on :
В итоге перепробовав каналы в источниках/приёмниках типа Rout_Float(3); Rin_Float(4); WFloat(16)_wait удалось прочесть только 54 регистра из 950-ти использовав Rout_Float(3)
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Согласно стандарту Modbus объем данных кадра ответа не может превышать 125 регистров. Поэтому групповой запрос запрашивает ограниченное количество регистров. Для 4-байтовых переменных типа FLOAT количество аргументов не должно превышать 63.
Создайте еще нужное количество "источников" со смещением адресов и соответствующие им групповые запросы.
Posted by veloledi256 (Участник № / Member № 7333) on :
Но так мне придётся создавать дополнительные устройства типа Slave с индексацией регистров от о до 62 и отдельным портом. А можно задавать для группового запроса, начало чтение регистра? К примеру, создаю в источниках/приёмниках канал и пишу, что читать он будет не с нулевого регистра, а с 63-ого.
Posted by veloledi256 (Участник № / Member № 7333) on :
Получилось). Добавляю новый источник и прописываю в нём индекс первого регистра 0. Далее в следующем источнике прописываю сорок второй индекс регистра, возможно так удастся прочесть групповым запросом 473 регистра.