pcsms_l6xPs1Xs 发表于 2019-6-26 13:25:27

关于如何改变自由通信设备中的地址数据

新手报到,按照官方教程来看的,并且完全按照代码来写的,看到宏指令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]
查看完整版本: 关于如何改变自由通信设备中的地址数据