1

我尝试使用python库在质量流量控制器和 pc之间建立连接。根据设备文档,我必须将通信端口设置为:minimalmodbus

Communication speed: 9600 
Baud Start bit: 1 
Data bits: 8 
Stop bits: 2
Parity: none 
input buffer: 300 Bytes

我试图通过在 Windows 上使用该库创建一个奴隶,COM4但没有成功。我使用一个简单的代码来建立/测试连接:

import serial
import minimalmodbus as minbus

mfc_ins = minbus.Instrument('COM4',1,'rtu',False,True)
mfc_ins.serial.baudrate =9600
mfc_ins.serial.parity   = serial.PARITY_NONE
mfc_ins.serial.timeout  = 0.3
mfc_ins.serial.stopbits  = 2

print(mfc_ins)
try:
    print(mfc_ins.read_register(5))
except IOError:
    print("Failed to read from instrument")

注:定义:仪器(端口:str,slaveaddress:int,模式:str=MODE_RTU,close_port_after_each_call:bool=False,调试:bool=False)

输出是

minimalmodbus.Instrument<id=0x2c3c3449730, address=1, mode=rtu, close_port_after_each_call=False, 
    
precalculate_read_size=True, clear_buffers_before_each_transaction=True, handle_local_echo=False, debug=True,

serial=Serial<id=0x2c3c33b5dc0, open=True>(port='COM4', baudrate=9600, 

bytesize=8, parity='N',stopbits=2, timeout=0.3, xonxoff=False, rtscts=False, dsrdtr=False)

和:

MinimalModbus debug mode. Will write to instrument (expecting 7 bytes back): 01 03 00 05 00 01 94 0B (8 bytes)
MinimalModbus debug mode. Clearing serial buffers for port COM4
MinimalModbus debug mode. No sleep required before write. Time since previous read: 49578.00 ms, minimum silent period: 4.01 ms.
MinimalModbus debug mode. Response from instrument:  (0 bytes), roundtrip time: 0.3 ms. Timeout for reading: 300.0 ms.

Traceback (most recent call last):

  File "<ipython-input-35-24f3921a9fc3>", line 1, in <module>
    (mfc_ins.read_register(5))

  File "C:\ProgramData\Anaconda3\lib\site-packages\minimalmodbus.py", line 480, in read_register
    returnvalue = self._generic_command(

  File "C:\ProgramData\Anaconda3\lib\site-packages\minimalmodbus.py", line 1245, in _generic_command
    payload_from_slave = self._perform_command(functioncode, payload_to_slave)

  File "C:\ProgramData\Anaconda3\lib\site-packages\minimalmodbus.py", line 1322, in _perform_command
    response_bytes = self._communicate(request_bytes, number_of_bytes_to_read)

  File "C:\ProgramData\Anaconda3\lib\site-packages\minimalmodbus.py", line 1490, in _communicate
    raise NoResponseError("No communication with the instrument (no answer)")

NoResponseError: No communication with the instrument (no answer)

到目前为止我已经尝试过:

  1. close_port_after_each_call = 真
  2. 启用本地回声
  3. 使用另一个 COM 端口
  4. 检查设备管理器中的 COM 属性并按照上面的描述进行设置
  5. 更改从机地址、超时、时间停止等参数
  6. 不,没有其他设备使用 COM4。并且可以使用公司自己的软件通过COM4建立与质量流量控制器的连接。
  7. 启用 xonxoff

这也是print(minbus._get_diagnostic_string())

## Diagnostic output from minimalmodbus ## 

Minimalmodbus version: 2.0.1
File name (with relative path): C:\ProgramData\Anaconda3\lib\site-packages\minimalmodbus.py
Full file path: C:\ProgramData\Anaconda3\lib\site-packages\minimalmodbus.py

pySerial version: 3.5
pySerial full file path: C:\ProgramData\Anaconda3\lib\site-packages\serial\__init__.py

Platform: win32
Filesystem encoding: 'utf-8'
Byteorder: little
Python version: 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)]
Python version info: sys.version_info(major=3, minor=8, micro=8, releaselevel='final', serial=0)
Python flags: sys.flags(debug=0, inspect=0, interactive=0, optimize=0, dont_write_bytecode=0, no_user_site=0, no_site=0, ignore_environment=0, verbose=0, bytes_warning=0, quiet=0, hash_randomization=1, isolated=0, dev_mode=False, utf8_mode=0)
Python argv: ['']
Python prefix: 'C:\\ProgramData\\Anaconda3'
Python exec prefix: 'C:\\ProgramData\\Anaconda3'
Python executable: 'C:\\ProgramData\\Anaconda3\\python.exe'
Float repr style: 'short'

Variable __name__: minimalmodbus
Current directory: C:\Users\Tutor_in\tubCloud\CO2 Sensors\Python Script

Python path: 
C:\ProgramData\Anaconda3\python38.zip
C:\ProgramData\Anaconda3\DLLs
C:\ProgramData\Anaconda3\lib
C:\ProgramData\Anaconda3

C:\ProgramData\Anaconda3\lib\site-packages
C:\ProgramData\Anaconda3\lib\site-packages\locket-0.2.1-py3.8.egg
C:\ProgramData\Anaconda3\lib\site-packages\win32
C:\ProgramData\Anaconda3\lib\site-packages\win32\lib
C:\ProgramData\Anaconda3\lib\site-packages\Pythonwin
C:\ProgramData\Anaconda3\lib\site-packages\IPython\extensions
C:\Users\Tutor_in\.ipython

## End of diagnostic output ## 

任何建议将不胜感激

4

0 回答 0