开发者社区> 问答> 正文

Python的minimalmodbus读取16位寄存器

我们有一个使用16位寄存器读取数据的加热控制器。 例子: 寄存器从0到16的512位是用来读取温度的。 这段代码可以很好地用于这个exmaple

#!/usr/bin/env python
import minimalmodbus
import time

minimalmodbus.BAUDRATE = 19200

instrument = minimalmodbus.Instrument('/dev/ttyUSB0', 1)

while True:
    temperature1 = instrument.read_register(512, 0, 3)
    temperature2 = instrument.read_register(513, 0, 3)
    temperature3 = instrument.read_register(514, 0, 3)
    temperature4 = instrument.read_register(515, 0, 3)

但是这个控制器也有516寄存器与这个位表:

无法从这个寄存器获取任何数据。从这个寄存器获得'status'的位操作是什么? 我用谷歌搜索了两天都没有结果。我不擅长钻头操作。 任何回答都非常感谢。谢谢! 问题来源StackOverflow 地址:/questions/59467045/python-minimalmodbus-reading-16-bit-register

展开
收起
kun坤 2019-12-25 09:33:06 717 0
1 条回答
写回答
取消 提交回答
  • from ctypes import *

    def convert(s):
    i = int(s)
    cp = pointer(c_int(i))
    fp = cast(cp, POINTER(c_float))
    return fp.contents.value
    试试看

    2019-12-25 13:56:06
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载