一、THKA温湿度监控
要对THKA温湿度进行监控,采用Modebus RTU通信协议
产品的接线图
基本通讯协议
二、部分代码
可以采用QT做个界面,也可以跟数据库进行关联,并在最后可以根据记录的曲线进行做图,上温度获取代码
#com打开
self._ser = serial.Serial(self.com, self.baud_rate, parity=serial.PARITY_NONE, bytesize=serial.EIGHTBITS,stopbits=serial.STOPBITS_ONE)
#温度获取
def get_temperature(self):
# 要发送的数据(基本固定)
data_to_send = [0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x30, 0x1B]
# 将数据转换为字节串并发送
self._ser.write(bytes(data_to_send))
# 读取数据包, 分字节和功能读取, 数据位为2字节
address = self._ser.read(1) # 读取地址字节
function_code = self._ser.read(1) # 读取功能码字节
data_length = self._ser.read(1) # 读取数据字节数字节
# humidity = ser.read(2) # 读取湿度数据(2字节)
temperature = self._ser.read(2) # 读取温度数据(2字节)
crc = self._ser.read(2) # 读取CRC校验(2字节)
# 将字节串转换为整数
temperature_data = int.from_bytes(temperature, byteorder=‘big’)
# 温度计算
# 将温度数据转换为有符号的十进制数
if temperature_data & 0x8000: # 如果温度数据的最高位为1
# 温度数据的最高位为1,表示温度为负数, 则需要先取反再加1
temperature_decimal = -(0x10000 - temperature_data)
else:
# 温度数据的最高位为0,表示温度为正数, 直接赋值
temperature_decimal = temperature_data
# 计算实际温度值
temperature = temperature_decimal / 10.0 # 温度(摄氏度)
return temperature