我无法与使用 minimummodbus、Modbus RTU 的设备通信。
我已通过 USB 到 rs-485 适配器(FTDI 芯片)A 到 A 和 B 到 B 将设备连接到树莓派。
设备配置如下:
端口设置:
- 波特率:9600
- 奇偶校验:否
- 停止位:1
- 静音间隔:70 毫秒。
- 传输方式:RTU
接口 2 线 RS485
- ECM 接头:DB9
- 连接:A 在引脚 1、4 上。B 在引脚 6、9 上
Modbus 保持寄存器(为本示例的目的而简化)
- 交换浮点格式:
- 40001 (地址 0) 参数 1
- 40003(地址 2)参数 2
我曾尝试使用原始串行命令与设备通信,以及使用 pymodbus,现在我最近尝试使用最小 modbus。请参阅下面我的代码尝试使用 minimummodbus。
此外,我知道串行适配器在我将其用于各种其他串行传感器时也能正常工作。唯一的区别是我现在正在使用 modbus。
import minimalmodbus
instrument = minimalmodbus.Instrument('/dev/tty/USB1',1)
instrument.debug = True
instrument.handle_local_echo = True # The serial device echos back every write, hence this
instrument.serial.baudrate = 9600
instrument.serial.timeout = 1
value = instrument.read_register(0,2)
print value
即使有错误或不正确,我也希望收到某种回复,但我什么也没得到。minimummodbus 的调试输出显示“IOError: No communication with the instrument(no answer)”
我的代码与传感器要求有什么明显的错误吗?我与制造商确认了我的接线,并且是正确的。