Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x pymodbus:modbus TCP中的异常_Python 3.x_Pymodbus - Fatal编程技术网

Python 3.x pymodbus:modbus TCP中的异常

Python 3.x pymodbus:modbus TCP中的异常,python-3.x,pymodbus,Python 3.x,Pymodbus,当客户端将超出范围的数字写入服务器时,如何生成异常?另外,我希望我的服务器上的一些VAIRABLE是只读的,其他的是读/写的。任何建议?Pymodbus通常在内部处理越界寄存器访问,读取/写入超出范围的数据块的请求将引发异常响应(“无效地址”)。在客户端,您可以通过检查响应上的isError()方法(pymodbus v1.5.0及以上版本)来检查收到的响应是否为异常响应 参考和 此外,默认情况下,离散输入和输入寄存器为只读,保持寄存器和线圈以及读/写。任何写入只读数据块的尝试都会引发异常响应。

当客户端将超出范围的数字写入服务器时,如何生成异常?另外,我希望我的服务器上的一些VAIRABLE是只读的,其他的是读/写的。任何建议?

Pymodbus通常在内部处理越界寄存器访问,读取/写入超出范围的数据块的请求将引发异常响应(“无效地址”)。在客户端,您可以通过检查响应上的
isError()
方法(pymodbus v1.5.0及以上版本)来检查收到的响应是否为异常响应

参考和

此外,默认情况下,离散输入和输入寄存器为只读,保持寄存器和线圈以及读/写。任何写入只读数据块的尝试都会引发
异常响应

如果您有使一系列保持寄存器/线圈只读的具体要求,您可以查看各种,以创建自定义数据块。请参考

谢谢您的回答,我已经阅读了pymodbus服务器的例外情况,但我无法实现它。我以更新服务器为例:values=context[slave_id].getValues(register,address,count=10)是否可以限制服务器上的只读modbus地址???更新服务器的块大小为100,任何从偏移量
100
开始读取值的尝试都会引发豁免响应。以下是供参考的客户端代码<代码>>>>来自pymodbus.client.sync导入ModbusTcpClient>>>c=ModbusTcpClient(端口=5020)>>>c.read\u holding\u寄存器(100,1,单元=1)