首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Modbus寄存器只能读取,不能写入

Modbus寄存器只能读取,不能写入
EN

Stack Overflow用户
提问于 2021-03-22 16:46:58
回答 2查看 88关注 0票数 1

我正在尝试通过Modbus协议与空气-水冷水机组的uC2 SE控制器进行通信。控制器与串行RS485转USB口COM相连,我可以读取寄存器,但不能使用write_register函数更改它们的值。我也尝试过tester。exe和Modscan64软件,结果是一样的,只能读不能写。我已经在这里介绍了正在运行的代码,并且可以检查调试响应。提前感谢您的帮助!

更改温度设置点

COOLING_SETPOINT_REG = 41

尝试:除IOError: print之外的print(instrument.read_register(COOLING_SETPOINT_REG,1)) (‘无法从仪器读取’)

NEW_TEMPERATURE = 20.1

return_flag = instrument.write_register(COOLING_SETPOINT_REG,NEW_TEMPERATURE,1,return_flag = 6,signed = True) #寄存器编号,值,存储的十进制数output_flag =‘成功’,如果return_flag否则‘失败’打印(‘写入单个寄存器状态’+ output_flag + '\n‘)

尝试:除IOError: print之外的print(instrument.read_register(COOLING_SETPOINT_REG,1)) (‘无法从仪器读取’)

Respuesta debug:

MinimalModbus调试模式。将写入仪器(应返回7个字节):‘\x01\x03\x00)\x00\x01U’(01 03 00 29 00 01 55 C2) MinimalModbus调试模式。正在打开端口COM8 MinimalModbus调试模式。清除端口COM8 MinimalModbus调试模式的串行缓冲区。写入前不需要休眠。自上次读取以来的时间: 334030.00 ms,最小静默时间: 4.01 ms。MinimalModbus调试模式。正在关闭端口COM8 MinimalModbus调试模式。来自仪器的响应:‘\x01\x03\x02\x00’(01 03 02 00 C8 B9 D2) (7字节),往返时间: 62.0 ms。读取超时时间: 1000.0 ms。

20.0 MinimalModbus调试模式。将写入仪器(期望返回8个字节):‘\x01\x06\x00)\x00é\x98T’(01 06 00 29 00 C9 98 54) MinimalModbus调试模式。正在打开端口COM8 MinimalModbus调试模式。清除端口COM8 MinimalModbus调试模式的串行缓冲区。写入前不需要休眠。自上次读取以来的时间: 47.00 ms,最小静默时间: 4.01 ms。MinimalModbus调试模式。正在关闭端口COM8 MinimalModbus调试模式。仪器响应:‘\x01\x06\x00)\x00é\x98T’(01 06 00 29 00 C9 98 54) (8字节),往返时间: 47.0毫秒。读取超时时间: 1000.0 ms。

写入单个寄存器状态失败

MinimalModbus调试模式。将写入仪器(应返回7个字节):‘\x01\x03\x00)\x00\x01U’(01 03 00 29 00 01 55 C2) MinimalModbus调试模式。正在打开端口COM8 MinimalModbus调试模式。清除端口COM8 MinimalModbus调试模式的串行缓冲区。写入前不需要休眠。自上次读取以来的时间: 46.00 ms,最小静默时间: 4.01 ms。MinimalModbus调试模式。正在关闭端口COM8 MinimalModbus调试模式。来自仪器的响应:‘\x01\x03\x02\x00’(01 03 02 00 C8 B9 D2) (7字节),往返时间: 47.0 ms。读取超时时间: 1000.0 ms。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-12 15:44:55

不允许通过Modbus协议在Carel控制器uC压缩和uC2 SE过程中写入参数,因为它们没有针对该协议进行配置。为此,只能使用Carel协议。

票数 0
EN

Stack Overflow用户

发布于 2021-03-22 23:06:40

写作是成功的。

来自minimalmodbus的write_register具有"None“返回值。

因此,检查return_flag会导致失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66742777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档