首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rs-232上的最小化device初始化设备

使用rs-232上的最小化device初始化设备
EN

Stack Overflow用户
提问于 2017-07-20 04:18:02
回答 2查看 507关注 0票数 1

我正在寻找一些关于使用python (2.7)库"minimalmodbus“(0.7版)与Test Equity Modela 115a-F4T热室通信的建议。

我对使用python对硬件进行编程还很陌生,所以我不太确定我的方法是否缺少一些基本的初始化命令。下面是我的代码:

代码语言:javascript
复制
instrument = minimalmodbus.Instrument('/dev/ttyUSB1',1)
print instrument 
print minimalmodbus.BAUDRATE
minimalmodbus.BAUDRATE = 9600
print minimalmodbus.BAUDRATE
print minimalmodbus.__version__
instrument.read_register(0,1)

下面是我的输出:

代码语言:javascript
复制
minimalmodbus.Instrument<id=0x7fb5fd2136c8, address=1, mode=rtu, 
close_port_after_each_call=False, precalculate_read_size=True, 
debug=False, serial=Serial<id=0x7fb5fc71a890, open=True>
(port='/dev/ttyUSB1', baudrate=19200, bytesize=8, parity='N', 
stopbits=1, timeout=0.05, xonxoff=False, rtscts=False, dsrdtr=False)>
19200
9600
0.7

Traceback (most recent call last):
File "/usr/local/google/home/mimartin/Documents/test-equity/model-
115a.py", line 13, in <module>
instrument.read_register(0,1)
File "/usr/local/lib/python2.7/dist-packages/minimalmodbus.py", line 
258, in read_register
return self._genericCommand(functioncode, registeraddress, 
numberOfDecimals=numberOfDecimals, signed=signed)
File "/usr/local/lib/python2.7/dist-packages/minimalmodbus.py", line 
697, in _genericCommand
payloadFromSlave = self._performCommand(functioncode, payloadToSlave)
File "/usr/local/lib/python2.7/dist-packages/minimalmodbus.py", line 
795, in _performCommand
response = self._communicate(request, number_of_bytes_to_read)
File "/usr/local/lib/python2.7/dist-packages/minimalmodbus.py", line 
930, in _communicate
raise IOError('No communication with the instrument (no answer)')
IOError: No communication with the instrument (no answer)*

热室已通电。我是通过串口转USB的线缆连接到它的。我还将一个零调制解调器适配器连接到电缆的串行端(在箱体上),如箱体手册所示。我假设我的第一行代码就是初始化控制室的代码。但是,我的错误消息表明情况并非如此。

在这里寻找一些帮助或指导。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2021-06-19 01:13:33

我正在解决一个非常类似的问题,在我看来,最小的status是为RS-485创建的,它不使用DTR和DSR状态引脚(从您的调试行dsrdtr=False)。我的硬件连接使用免费的实用程序"Simplymodbus“工作,所以我知道它是正确连接的。我使用的最小looking python代码与您的代码非常相似,在查看示波器时,它看起来与从属设备接收引脚上的simplymodbus请求完全相同。然而,DTR和DSR引脚的行为不同,simplymodbus接收响应,而python最小python代码不接收响应。

我还没有找到任何方法来启用dsrdtr在最小的enable代码或使用RS-232到USB转换器的实用程序,但似乎在pyserial的库中有选项。我将探索的一种选择是切换到不使用这些状态引脚的RS-485连接。

票数 0
EN

Stack Overflow用户

发布于 2021-10-01 00:22:05

Minimalmodbus在RS-232上工作良好。Watlow F4和F4T仅使用TX、RX和GND与RS-232进行通信。TestEquity室对两个控制器都使用RS-232引脚(两者都可以支持232或485)。

F4仅使用16位整数。map 1模式中的F4T使用浮点、32位和16位整数以及"string“类型。所以你需要不同的函数来读取这些值。Map 2或3模式是通用F4寄存器的F4向后兼容性。

请通过下面的链接联系TestEquity,他们将为您提供Python示例。www.testequity.com/chambers-technical-support

在F4T上,请参阅菜单->设置-> Modbus中的modbus-rtu设置

假设9600,无,数据映射1

instrument = open_port('/dev/ttyUSB1',1) #通信端口,modbus地址

instrument.serial.baudrate = 9600

instrument.serial.timeout = 0.1

value = instrument.read_register(14092,0) # map 1模式下的modbus-rtu字序

打印值

值应等于1330 (高、低)或1331 (低、高)

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

https://stackoverflow.com/questions/45200261

复制
相关文章

相似问题

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