各位大大、前辈好
我想要使用python来与仪器进行通讯,设备商有提供modbus RTU指令集,
内容包含modbus RTU通讯设定,以及通讯地址,如下
https://imgur.com/rJcfijX
https://imgur.com/pR0FF4o
https://imgur.com/9kRTjdg
我使用三种方式进行通讯,但不知道为什么都无法将值读取出来
方式1:使用pymodbus
结果1:地址输入40051或40062或其它值,抛出AttributeError例外
https://imgur.com/1oxM1YD
结果2:地址输入40051或40062或其它值,出现Modbus Error讯息
https://imgur.com/DlXnY8m
方式2:使用modbus_tk
结果:地址输入40053或40062或其它值,出现Response length invalid 0 讯息
https://imgur.com/Sf4KgLR
https://imgur.com/Sf4KgLR
https://imgur.com/Sf4KgLR
https://imgur.com/Sf4KgLR
https://imgur.com/Ag851s9
https://imgur.com/pbTOQVQ
方式3:使用minimalmodbus
结果: 地址输入40053或40060或其它值,抛出ValueError例外
https://imgur.com/lIDf1tH
https://imgur.com/Dz1Bblk
不知道我哪里写错或设定错误,研究好久了..恳求前辈帮忙,
谢谢
连怎么错误都还没弄清楚,就换其他package...
作者:
a9202507 (先认真的就输了。)
2022-10-22 10:55:00我家lab仪器都是gpib接头. 然后用pyvisa控制。
作者:
timsheu (为道日损)
2022-10-22 16:20:00minimalbus有一个能试试看,你填的40060变成了0x40060也就是错误里写的262240也就是错误里写的262240
作者:
a9202507 (先认真的就输了。)
2022-10-23 10:55:00我家仪器功能可能跟你不同。但我以为gpib是通用的…
作者: ccss701 (星) 2022-10-23 22:08:00
前面的400不要呢? pymodbus的unit是站号client.read_holding_registers(61, 1, unit=3)
作者:
hidos (hidos)
2022-11-29 16:46:00开port之后延迟一下再丢读取command看看