通过pymodbus获取设备信息

时间:2017-06-27 13:45:58

标签: modbus

我需要通过pymodbus获取设备信息(设备名称等)。 有谁知道如何实现这个目标?

由于

2 个答案:

答案 0 :(得分:1)

如果您通过串行端口(usb- / comport)进行通信,则可以使用serial中的list_ports获取Comports上的串行设备列表:

64位python:

import serial.tools.list_ports as portlist
for port in portlist.comports():
    print(port)
    print(port.device)

输出:

  

COM10 - 串行USB设备(COM10)

     

USB VID:PID = 15A2:0300 SER = 6 LOCATION = 1-4.3

对于Comport 10上的Modbus设备

32位python:

import serial.tools.list_ports as portlist 
for port in portlist.comports():
    print(port)

输出包含设备名称,供应商ID,产品ID等的元组。

答案 1 :(得分:1)

如果您的modbus设备通过封装的接口命令(0x2b 0x0e)支持Device Information命令,您可以使用以下命令通过pymodbus获取设备信息(输入正确的地址等):

>>> from pymodbus.client.sync import ModbusSerialClient as ModbusClient
>>> mc = ModbusClient(method='rtu', port='/dev/ttyACM1')
>>> mc.connect()
True
>>> from pymodbus import mei_message
>>> rq = mei_message.ReadDeviceInformationRequest(unit=5,read_code=0x03)
>>> rr = mc.execute(rq)
>>> rr.information
{0: ...}