import serial
import minimalmodbus
import time
instrument = minimalmodbus.Instrument('COM8', 127, debug=True)
instrument.serial.port
instrument.serial.baudrate = 19200
instrument.serial.parity = serial.PARITY_NONE
instrument.serial.bytesize = 8
instrument.serial.stopbits = 1
instrument.mode = minimalmodbus.MODE_RTU
instrument.serial.timeout = 0.300
b = instrument._communicate(b'x7Fx66x01x00x02x00x00x00x01x00', 64)
print(b)
instrument.serial.close()
在终端上,我得到以下内容:
MinimalModbus debug mode. Create serial port COM8
MinimalModbus debug mode. Will write to instrument (expecting 64 bytes back): 7F 66 01 00 02 00 00 00 01 00 (10 bytes)
MinimalModbus debug mode. Clearing serial buffers for port COM8
MinimalModbus debug mode. No sleep required before write. Time since previous read: 1222683890.00 ms, minimum silent period: 2.01 ms.
MinimalModbus debug mode. Response from instrument: 7F 66 01 00 4C 00 00 00 44 54 01 00 20 00 44 54 CB 74 14 43 AD B2 15 43 00 00 FA 44 00 94 9E 41 88 6D 08 00 88 6D 08 00 00 00 00 00 1A AB C3 40 45 A5 70 42 54 60 99 45 CF C4 03 00 00 00 00 00 (64 bytes), roundtrip time: 0.0 ms. Timeout for
reading: 300.0 ms.
b'x7ffx01x00Lx00x00x00DTx01x00 x00DTxcbtx14Cxadxb2x15Cx00x00xfaDx00x94x9eAx88mx08x00x88mx08x00x00x00x00x00x1axabxc3@Exa5pBT`x99Excfxc4x03x00x00x00x00x00'
打印 b 时,数据与仪器数据的响应不同。我假设它被一些噪音扭曲了。只有原始数据存储在 b 中。如何获得实际数据,就像存储在变量 b 中的仪器的响应一样?
我认为它被一些噪音扭曲了。
不 - 这只是你输出它的方式;如果你不为它提供一种格式print
输出"正式字符串表示"(见str()
)。7f
不可打印,因此输出7f
,66
=f
,因此输出f
,01
不可打印,因此输出