instruction:
1、本应用基于深圳市安传物联科技有限公司所生产的八通道振弦变送器产品。该产品为MAX485 信号的变送设备, 并以Modbus协议输出。
2、本应用采用python语言编写。
功能实现:
1、发送: 01 03 10 00 00 02 C0 CB并接受返回数据。
2、读取第4、5位数据,并合并为一个16进制数据。
3、将返回的振弦值以十进制输出。
代码:
import serial
ser = serial.serial_for_url("COM3", baudrate=9600, timeout=0.5)
# 要发送的十六进制数据
data_to_send = bytes.fromhex('01 03 10 00 00 02 C0 CB')
# 发送数据
ser.write(data_to_send)
# 读取返回的数据
data_received = ser.read(9) # 假设返回的数据长度为8
# 将返回的数据以十六进制形式显示
hex_data_received = ' '.join(format(byte, '02X') for byte in data_received)
print("Received HEX data:", hex_data_received)
# 关闭串口
ser.close()
# 提取第4、5两个字符并转换为float类型
# 提取第4和第5个字节
byte4 = data_received[3]
byte5 = data_received[4]
# 以十六进制形式显示
hex_byte4 = format(byte4, '02X')
hex_byte5 = format(byte5, '02X')
print("4th byte in HEX:", hex_byte4)
print("5th byte in HEX:", hex_byte5)
# 合并为一个数据
combined_data_hex = format((byte4 << 8) + byte5, '04X')
# 转换为十进制数据
combined_data_decimal = int(combined_data_hex, 16)
print("Combined data in HEX:", combined_data_hex)
print("Combined data in Decimal:", combined_data_decimal)
显示结果
致谢:
感谢程海师兄的指点和帮助。