首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有与仪器的通信(没有应答)

没有与仪器的通信(没有应答)
EN

Stack Overflow用户
提问于 2022-01-27 12:41:20
回答 1查看 559关注 0票数 0

我对minimalmodbus库有问题。从服务器不响应主请求,我想请求读取。我使用的是Raspberry 3模型B+,与Python3.10.1一起使用的是2.0版本的最小Model库。我正在使用Arduino Mega作为从,我也使用一个迷你适配器,串行转换器,USB到RS485是一个转换模块RS485的Arduino。

代码语言:javascript
复制
import serial
import minimalmodbus

instrument = minimalmodbus.Instrument('COM6',1)
instrument.serial.baudrate = 9600
instrument.serial.timeout = 10
instrument.clear_buffers_before_each_transaction = True
instrument.debug = True
temperature = instrument.read_register(1,1)
print(temperature)
代码语言:javascript
复制
MinimalModbus debug mode. Will write to instrument (expecting 7 bytes back): 01 03 00 01 00 01 D5 CA (8 bytes)
MinimalModbus debug mode. Clearing serial buffers for port COM6
MinimalModbus debug mode. No sleep required before write. Time since previous read: 87898406.00 ms, minimum silent period: 4.01 ms.
MinimalModbus debug mode. Response from instrument:  (0 bytes), roundtrip time:10.0 ms. Timeout for reading: 0 ms.
EN

回答 1

Stack Overflow用户

发布于 2022-06-06 03:24:04

我在Win10 python3.7.9上也有类似的问题。当我写

代码语言:javascript
复制
import minimalmodbus

instrument = minimalmodbus.Instrument('COM3', 2)
instrument.serial.baudrate = 9600
instrument.clear_buffers_before_each_transaction = True

reg_0 = instrument.read_register(0, 0)
reg_1 = instrument.read_register(1, 0)

print(reg_0)
print(reg_1)

instrument.serial.close()

我有错误信息"minimalmodbus.NoResponseError:没有与仪器的通信(没有回答)“。但是,当我写

代码语言:javascript
复制
import minimalmodbus

instrument = minimalmodbus.Instrument('COM3', 2)
instrument.serial.baudrate = 9600
instrument.clear_buffers_before_each_transaction = True
instrument.debug = True

reg_0 = instrument.read_register(0, 0)
reg_1 = instrument.read_register(1, 0)

print(reg_0)
print(reg_1)

instrument.serial.close()

一切正常。我用Arduino UNO做奴隶。在ModbusPoll中,两个注册人阅读正确

Upd。当我用建筑“试着.除了.”一切正常工作

代码语言:javascript
复制
import minimalmodbus

instrument = minimalmodbus.Instrument('COM3', 2)
instrument.serial.baudrate = 9600
instrument.clear_buffers_before_each_transaction = True

try:
    reg_0 = instrument.read_register(0, 0)
except minimalmodbus.NoResponseError:
    reg_0 = instrument.read_register(0, 0)      
reg_1 = instrument.read_register(1, 0)

print(reg_0)
print(reg_1)

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

https://stackoverflow.com/questions/70878717

复制
相关文章

相似问题

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