Pymodbus, как правило, обрабатывает доступ к связанному регистру изнутри, запрос на чтение / запись блока данных, выходящий за пределы диапазона, вызовет ExceptionResponse('Invalid Address'
).На стороне клиента вы можете проверить, является ли полученный ответ ответом на исключение, либо проверив метод isError()
в ответе (pymodbus v1.5.0 и выше).
См. synchronous_server и synchronous_client
Также по умолчанию дискретные входы и входные регистры предназначены только для чтения и для регистров хранения и катушек, а также для чтения / записи.Любая попытка записи в блоки данных только для чтения вызывает ExceptionResponse
.Если у вас есть особые требования к тому, чтобы сделать диапазон хранения регистров / катушек только для чтения, вы можете взглянуть на различные блоки данных , чтобы создать собственный блок данных, см. пример пользовательского блока данных