我用宏指令读取仪表数据,LW100和LW101只能显示1到127,,128及以上显示****,是什么原因,麻烦解答,谢谢
macro_command main()
char command[32],response[32]
short address, checksum
short read_no,return_value,read_data[2]
FILL(command[0], 0, 32) // 初始化command[0]~command[31] to 0
FILL(response[0], 0, 32)
command[0] = 0x01 // 站号
command[1] = 0x03 // 读寄存器 (功能码是 0x03)
address = 0// 起始地址 (4x_1) 是0
HIBYTE(address, command[2])
LOBYTE(address, command[3])
read_no = 2// 总的寄存器数目为2
HIBYTE(read_no, command[4])
LOBYTE(read_no, command[5])
CRC(command[0], checksum, 6)// CRC校验计算
LOBYTE(checksum, command[6])
HIBYTE(checksum, command[7])
OUTPORT(command[0], "SB194E", 8)// 发送读命令
INPORT(response[0], "SB194E", 9, return_value)// 读取回复的命令
if (return_value >0 and response[1] == 0x3) then
read_data[0] = response[4] + (response[3] << 8)// 计算4x_1的数据
read_data[1] = response[6] + (response[5] << 8)// 计算4x_2的数据
SetData(read_data[0]," Local HMI", LW, 100, 2)//计算后的数据送到触摸屏上来显示
end if
end macro_command |