首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用RS485 & minimalmodbus处理Python的超时

用RS485 & minimalmodbus处理Python的超时
EN

Stack Overflow用户
提问于 2016-11-11 10:20:47
回答 1查看 657关注 0票数 0

目前有一个bus 485总线的1(1) RS485千瓦时表,类型DDS238-1ZN通过Python-脚本‘辅助’模块最小调制解调器。增加更多的千瓦米意味着(在安装之前或在安装期间),被添加的千瓦米的入口必须从最初的'1‘移动。这种移位动作从扫描are 485总线开始,以确定kWh表的实际位置.

第一步是下面简单的Python脚本

代码语言:javascript
复制
import serial
import minimalmodbus
# Check address 00 = broadcast
instrument = minimalmodbus.Instrument('/dev/ttyAMA0',0) # port name, slave address
instrument.serial.baudrate = 9600
instrument.serial.timeout = 0.5
instrument.debug = True
print instrument
print instrument.read_register(21,0) # registernumber, number of decimals
# Check address 01 = slave 01
instrument = minimalmodbus.Instrument('/dev/ttyAMA0',1) # port name, slave address
print instrument
print instrument.read_register(21,0) # registernumber, number of decimals
# Check address 02 = slave02
instrument = minimalmodbus.Instrument('/dev/ttyAMA0',2) # port name, slave address
print instrument
print instrument.read_register(21,0) # registernumber, number of decimals

对从地址00和01的检查会产生预期的结果(257),但是(由于没有设备)显然对从地址02的响应出现了超时。

有关进一步的问题描述,请参见http://www.domoticz.com/forum/viewtopic.php?f=31&t=13592#p102901

从测试运行中,我可以看到出现了超时。超时信号可能被触发以检查下一个从地址,,如果i知道带有最小address的Python脚本的这种超时信号的布局.

在互联网上寻找另一种选择,我看到了各种各样的“奇妙而精细”的解决方案来捕获超时,但从我的简单脚本的角度来看,我正在寻找一些非常基本的东西(最好是“一条线”),以便能够走出超时时间来检查下一个从地址3,等等。

看看上面提到的那些解决方案,下面的半代码设置是否是一个简单/基本的解决方案?我一直在寻找C-函数fread()的方向

代码语言:javascript
复制
start of loop
start time-counter
read register from slave address x
N = number of characters received
if time-counter at value t, then
    look if N > 0
if N == 0 then 
    x = x + 1
    jump to start of loop

对于使用Python或MinimalModbus来执行与第一个脚本兼容的半代码的脚本,有什么提示吗?

EN

回答 1

Stack Overflow用户

发布于 2017-01-12 15:28:38

本论坛没有找到/收到任何可行的解决方案,但如http://www.domoticz.com/forum/viewtopic.php?f=14&t=5808&start=20#p113697所述,已经制定、测试和实施了一种实用的、简单的补救办法

由于它的数据协议的特点,它的补救措施是特定于kWh米型DDS238-1ZN,但这种想法可能适用于其他具有‘s 485接口的可比kWh仪表。

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

https://stackoverflow.com/questions/40545862

复制
相关文章

相似问题

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