关于如何改变自由通信设备中的地址数据
新手报到,按照官方教程来看的,并且完全按照代码来写的,看到宏指令inport和outport部分。发现教程给的例子是将报文发送到所设定的自由协议(Free protocol类型)的设备当中,然后将读取到的地址信息(4x_1和4x_2)显示给本地HMI的显示元件。并且定义了return_value。所以我在另外加了数值元件来显示return_value的值,并且用功能键触发宏指令。1.但是在触发宏指令后return_value的值显示为64,已经大于了之前声明时候response的位组长度【32】,不知道是怎么回事,而且显示返回数值的元件也没有任何显示两个都是0也不知道为什么
2.此外我想改变自由协议中4x_1和4x_2地址的数据,来测试收到的报文和数据显示是否正确,该如何操作。
初学小白,希望大虾们指点!
代码如下
macro_command main()
char command,response
short address,checksum
short read_no,reurn_value,read_data
FILL(command, 0, 32)
FILL(response, 0, 32)
command = 0x1
command = 0x3
address = 0
HIBYTE(address, command)
LOBYTE(address, command)
read_no = 2
HIBYTE(read_no, command)
LOBYTE(read_no, command)
CRC(command, checksum, 6)
LOBYTE(checksum, command)
HIBYTE(checksum, command)
OUTPORT(command, "MODBUS RTU Device", 8)
INPORT(response, "MODBUS RTU Device", 9, reurn_value)
SetData(reurn_value, "Local HMI", LW, 200, 1)
SetData(response, "Local HMI", LW, 10, 9)
if(reurn_value > 0 and response == 0x3)then
read_data = response + (response<<8)
read_data = response + (response<<8)
SetData(read_data, "Local HMI", LW, 100, 2)
end if
end macro_command
页:
[1]