Да, прошу прощения, неправильно по памяти записал нотацию...

Конечно же, нужно было как поправил AlexandrGr, а написал в смысле как уточнил melky.

Функцией 03 читают регистры 4x (Holding register), которые имеют диапазон значений 40001...49999 (они же при помещении в запрос имеют значения 0...9998). Т.е. 40001 это логический адрес регистра, а 0 это его же физический адрес.
В разных реализациях Modbus по разному разрешается задавать адрес. Например, в ПЛК Koyo DL06 адрес регистра задавался логический и физический адрес регистра из карты Modbus для подключаемого прибора (в моём случае ВКТ-5) никак не подходил по диапазону (40001...49999) - потребовалось приведение к логическому.