Redim AValveSerialNum(70, 2)
For i = 1 To 70
AValveSerialNum(i, 1) = ADORS.Fields("设备号")
AValveSerialNum(i, 2) = ADORS.Fields("允许位")
next
HMIRuntime.Tags("AValveSerialNum").Write AValveSerialNum
我在内部变量建立了一个叫AValveSerialNum的原始类型变量来储存 上面的二维数组,但是读取的时候却说数据类型不匹配,二维数组应该用什么类型的内部变量来存储。
AValveSerialNum = HMIRuntime.Tags("AValveSerialNum").Read
msgbox AValveSerialNum(1,1)
我用上面的方法读就说数据类型不匹配
问题补充:
Redim AValveSerialNum(70, 2)中的70并不是固定的,70是ACTUATOR_NUM的个数,他是通过ACTUATOR_NUM = CInt(ADORS.Fields("阀门数量")),也就是说不确定具体个数的话不就不好一个一个来建立变量了吗
最佳答案
此回答已完善
这样可能不行的
还是对应每个数组元素建立变量如tag0~tag5,通过for循环来操作
示例脚本:
Sub OnClick(ByVal Item)
Dim A(5)
Dim i
Dim Tag
For i = 0 To 5
Set Tag = HMIRuntime.Tags("tag" & i)
Tag.Write A(i)
Set Tag = Nothing
Next
For i = 0 To 5
Set Tag = HMIRuntime.Tags("tag" & i)
A(i)=Tag.Read
Set Tag = Nothing
Next
End Sub
补充:
那就多建些,内部变量又不花钱。然后循环i和ACTUATOR_NUM对应
提问者对于答案的评价:
是不是数组想要保存在内部变量不管是1维还是2维都只能这样来操作,不能整个存进去,另外可不可以不定义Tag,直接
For i = 0 To 5
HMIRuntime.Tags("tag" & i).write A(i)
next
最佳答案作者回复:
不能整个保存
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc318009.html