我们有一个使用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
from ctypes import *
def convert(s):
i = int(s)
cp = pointer(c_int(i))
fp = cast(cp, POINTER(c_float))
return fp.contents.value
试试看
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。