写了段宏指令
GetData(day[0], "MODBUS RTU", 4X, 25487, 18)
SetData(day[0], "Local HMI" , RW, 70, 18)
发现只能传第一个数据,其他的都传不了。改成下面这样
GetData(day[0], "MODBUS RTU", 4X, 25487, 1)
SetData(day[0], "Local HMI" , RW, 70, 1)
GetData(day[1], "MODBUS RTU", 4X, 2#25487, 17)
SetData(day[1], "Local HMI" , RW, 71, 17)
发现下面那段完全没用。全部改成一对一传才可以。哪位高手可以指点下是什么问题?
回复内容:
对: 前进不止 回复内容:对: runljz 1,应该是你的地址超范... 内容的回复!
你这样的话,只能一对一去读,若嫌麻烦,就用for循环:
var0=1
for i=0 to 17 step 1
GetData(day[i], "MODBUS RTU", 4X, var0#25487, 1)
if var0>=18 then
var0=1
esle
var0=var0+1
end if
next i
SetData(day[0], "Local HMI" , RW, 70, 18)
这个思路,具体问题你自己解决吧,主要是通讯#前面的VAR0的问题,VAR0你参考系统寄存器(具体地址记不得了),其中有一台通讯不上的话,有可能造成程序执行不下去了,这个你参考宏指令关于GetData与GetDataEx的区别,