В таком случае я подобное проходил. Оказалось, что клиент умеет
запрашивать непересекающиеся диапазоны регистров, с зазорами. А мой
сервер не умел, умел только по одному диапазону параметров за раз.
Два разных диапазона, даже смежных, не мог.
В итоге, переписал часть, отвечающую за разбор диапазона запрошенных адресов так, чтобы она принимала любой диапазон с валидным адресом начала и отдавала все валидные регистры и зануляя данные по невалидным адресам. Заработало отлично - рассчитали максимальный размер зазора между блоками регистров, при котором ещё обеспечивается выгода по занятию шины. Настроили, проверили - работает.
Но это был наш сервер. Другие серверы могут не отрабатывать несколько диапазонов за раз. К примеру, то же самое устройство, которое клиентом опрашивает пачку диапазонов регистров за раз, может работать модбас-сервером. Но как модбас-сервер, оно отказывается отдавать даже два смежных диапазона на один запрос.