首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MinimalModbus IO误差

MinimalModbus IO误差
EN

Stack Overflow用户
提问于 2016-11-08 20:38:23
回答 2查看 4.1K关注 0票数 2

我试图通过Modbus RTU-半双工RS-485连接从我的windows机器(windows 10)与自定义板通信。我正在使用python,并安装了所有依赖库。我也有合适的RS-422/485适配器。我知道波特率、COM端口、从地址和奇偶位都是正确的.我还知道我的代码正在从O-作用域跟踪输出一个比特流。由于某些原因,董事会根本不会做出回应。任何帮助都将不胜感激。

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

#minimalmodbus.CLOSE_PORT_AFTER_EACH_CALL = True 
minimalmodbus.PARITY = serial.PARITY_EVEN
#minimalmodbus.handle_local_echo=True
minimalmodbus.BAUDRATE = 57600
minimalmodbus.TIMEOUT = .01
instrument = minimalmodbus.Instrument('COM4',0)
instrument.debug = True
print(instrument.read_register(11,1))

MinimalModbus debug mode. Writing to instrument (expecting 7 bytes back): '\x00\x03\x00\x0b\x00\x01ô\x19' (00 03 00 0B 00 01 F4 19)
MinimalModbus debug mode. No sleep required before write. Time since previous read: 1478637162864.7 ms, minimum silent period: 0.67 ms.
MinimalModbus debug mode. Response from instrument: '' () (0 bytes), roundtrip time: 10.9 ms. Timeout setting: 10.0 ms.

Traceback (most recent call last):
  File "RS485.py", line 11, in <module>
    print(instrument.read_register(11,1))
  File "C:\Users\mtangy\AppData\Local\Programs\Python\Python35-32\lib\site-packages\minimalmodbus.py", line 258, in read_register
    return self._genericCommand(functioncode, registeraddress, numberOfDecimals=numberOfDecimals, signed=signed)
  File "C:\Users\mtangy\AppData\Local\Programs\Python\Python35-32\lib\site-packages\minimalmodbus.py", line 697, in _genericCommand
    payloadFromSlave = self._performCommand(functioncode, payloadToSlave)
  File "C:\Users\mtangy\AppData\Local\Programs\Python\Python35-32\lib\site-packages\minimalmodbus.py", line 795, in _performCommand
    response = self._communicate(request, number_of_bytes_to_read)
  File "C:\Users\mtangy\AppData\Local\Programs\Python\Python35-32\lib\site-packages\minimalmodbus.py", line 930, in _communicate
    raise IOError('No communication with the instrument (no answer)')
OSError: No communication with the instrument (no answer)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-01 18:50:22

问题就在眼前:

代码语言:javascript
复制
instrument = minimalmodbus.Instrument('COM4',0)

您正在指示minimalmodbus使用modbus id等于零的仪器。这是一个无效的身份证明。

检查仪器的设置并更正代码中的id。

票数 0
EN

Stack Overflow用户

发布于 2017-07-23 23:38:35

尝试使用instrument = minimalmodbus.Instrument('COM4',1)设置从id,其中1是自定义工具的从ID。

并尝试使用以下行增加超时值参数

minimalmodbus.TIMEOUT = 1,其中1等于1000毫秒。

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

https://stackoverflow.com/questions/40495979

复制
相关文章

相似问题

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