Minimalmodbus 我可以读数据,但我不能写它RTU

问题描述

我正在使用 minimummodbus python 库将我的 RaspBerry Pi 与“Spacelogic Thermostat TC900”(RTU)进行通信。

我读取数据没有问题,但是当我尝试写入数据时,控制台显示一个错误

No communication with the instrument (no answer)

在我看来,这个错误没有意义,因为如果我能读,我必须和仪器有通信。

minimalmodbus 主页:https://minimalmodbus.readthedocs.io/en/stable/index.html

minimalmodbus write_bits 页:https://minimalmodbus.readthedocs.io/en/stable/apiminimalmodbus.html?highlight=write_bits#minimalmodbus.Instrument.write_bits

我的代码

#imports
import minimalmodbus
import serial

#instr creation
instr = minimalmodbus.Instrument('/dev/ttyUSB0',1)

#instr config
instr.serial.baudrate = 9600
instr.serial.timeout = 1
instr.mode = minimalmodbus.MODE_RTU
instr.serial.parity = serial.PARITY_ODD
instr.serial.bytesize = 8
instr.serial.stopbits = 1
instr.debug = True

try:
    print("READ:")
    print(instr.read_bits(4,3,functioncode=1))
except Exception as e:
    print("Error reading coil: ",e)

try:
    print("WRITE")
    instr.write_bits(5,[True,False])
except Exception as e:
    print("Error writing Coil: ",e)

控制台输出

READ:
MinimalModbus debug mode. Will write to instrument (expecting 6 bytes back): '\x01\x01\x00\x04\x00\x03=Ê' (01 01 00 04 00 03 3D CA)
MinimalModbus debug mode. Clearing serial buffers for port /dev/ttyUSB0
MinimalModbus debug mode. No sleep required before write. Time since prevIoUs read: 25577762.09 ms,minimum silent period: 4.01 ms.
MinimalModbus debug mode. Response from instrument: '\x01\x01\x01\x04PK' (01 01 01 04 50 4B) (6 bytes),roundtrip time: 42.5 ms. Timeout for reading: 1000.0 ms.

[0,1]
WRITE
MinimalModbus debug mode. Will write to instrument (expecting 8 bytes back): '\x01\x0f\x00\x05\x00\x02\x01\x01ÓW' (01 0F 00 05 00 02 01 01 D3 57)
MinimalModbus debug mode. Clearing serial buffers for port /dev/ttyUSB0
MinimalModbus debug mode. Sleeping 1.98 ms before sending. Minimum silent period: 4.01 ms,time since read: 2.03 ms.
MinimalModbus debug mode. Response from instrument: '' () (0 bytes),roundtrip time: 1001.8 ms. Timeout for reading: 1000.0 ms.

Error writing Coil:  No communication with the instrument (no answer)

我也试过pymodbus,但还是一样,我只能读取数据。

我认为错误可能出在恒温器上,但我使用 Modbus Poll 在上面写了,我没有问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...