如何使用minimalmodbus读取数字计数器的寄存器

问题描述

我正在尝试使用 Modbus RTU RS-485 读取工业数字计数器的值。使用USB-RS-485转换,这里的主发送代码取自以下数据表,

Datasheet Link

Snippets from Autonics CT series datasheet

我期望读取输入寄存器是我所期望的,而minimalmodbus的API期望指定寄存器编号、小数位数和功能代码。

  • 图书馆是自动分配从属编号,还是我们必须定义它?
  • 从数据表来看,寄存器号是地址吗?
  • 如果有两个数据序列作为响应,我期望有多少个小数?
  • CRC16 检查是否已包含在库中,因为我不应该对其进行编码?

到目前为止,这是我的代码,修改了示例。

import minimalmodbus
import time

# port name,slave address (in decimal)
instrument = minimalmodbus.Instrument('/dev/ttyUSB0',1)

instrument.serial.baudrate = 9600      
instrument.serial.bytesize = 8
instrument.serial.stopbits = 1
instrument.serial.timeout  = 1          
instrument.mode = minimalmodbus.MODE_RTU  
instrument.clear_buffers_before_each_transaction = True
instrument.debug = True

while True:
    # Register number,number of decimals,function code
    # not sure what to expect on number of register,is it 31004,31005?
    
    digit_count = instrument.read_register(1,2,4)
    print(digit_count)
    time.sleep(1) 

我已经阅读了 Python Modbus 的其他库,我很乐意获得与 Modbus 相关的任何更好的编码建议。先谢谢了。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)