返回 首页

三菱Fx485串口报文


1. 发送报文

发送格式如图, 长度15个字节

485_1.png

以读取栈号1, D100长度1为例:

第1-2个字节表示栈位01: ascii码: 0x30, 0x31 第5字节:是否bit, 是:B, 否: W: ascii对应0x42, 0x57 第6字节: 读R, 写W分别是: 0x52, 0x57 第7: 是否等待是0x30, 否0x31 第8-12表示地址D0100, ascii码分别为: 0x44 0x30 0x31 0x30 0x30 第9-10表示长度01, ascii: 0x30, 0x31 因此, 发送报文为:

05 30 31 46 46 42 52 30 44 30 31 30 30  30 31 

2. 返回报文

返回示例:

02 30 34 46 46 32 43 33 30 03

取第5字节到倒数第2字节, 需要解析的数字为: 0x32, 0x43, 0x33, 0x30, 转换为字符串 2C30 解析成int16: 11312

485_2.png

使用Python解析:

recv_msg =  b'\x02\x30\x34\x46\x46\x32\x43\x33\x30\x03'
res = recv_msg[5:-1]  # len4: \x32\x43\x33\x30
int16_value =  struct.unpack('>h', bytearray.fromhex(res.decode()))[0]  # 11312

所以, 读取D100 int16的值为: 11312


登录