威纶通官方论坛

求助

[复制链接]
发表于 2011-2-12 16:14:43 | 显示全部楼层 |阅读模式
用宏指令
macro_command main()
short A[3]
A[0]=1
A[1]=2
A[2]=3
GetData(A[0], "MODBUS RTU", 3x, 1, 3)            
SetData(A[0], "MODBUS RTU", 4x, 1, 3)            
end macro_command
来实现将数组A[3],先读入,现写出.用一个功能键来触发该指令.
结果为01 04 00 00 00 03 B0 0B
是不是SetData(A[0],
发表于 2011-2-14 21:32:15 | 显示全部楼层
看不懂为何会是01 04 00 00 00 03 B0 0B 或
01 10 00 00 00 03 xx xx

这个巨集的执行结果, 应会将3x1~3x3的数据填写到4x1~4x3
 楼主| 发表于 2011-2-14 21:32:15 | 显示全部楼层
如果这样的话,执行结果功能码应为10才对是吧.(01 10 00 00 00 03 xx xx)因为这段代码执行了一个setdata.但执行结果就是没有10功能码.
请教这个结果是否正确:01 04 00 00 00 03 B0 0B
发表于 2011-2-14 21:32:15 | 显示全部楼层
我分别写出1, 2 , 3三个数据到4x1~4x3
执行结果是01 10 00 00 00 03 06 00 01 00 02 00 03 3a 81
我测试后没发现问题
 楼主| 发表于 2011-2-14 21:32:15 | 显示全部楼层
我看看你的代码
发表于 2011-2-14 21:32:15 | 显示全部楼层
acro_command main()
short A[3]
A[0]=1
A[1]=2
A[2]=3

SetData(A[0], "MODBUS RTU", 4x, 1, 3)

end macro_command


跟你的寫法一樣
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-12-24 00:26

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表