【发布时间】:2017-06-28 14:22:18
【问题描述】:
在这里挣扎……
VBScript
我已经加载了一个 DLL,并且可以创建一个对象;
Set objServer = CreateObject("Matrikon.OPC.Automation.1")
然后我可以根据 objServer 的属性创建一个新对象(我想我说的对吗?)
Set objGroups = objServer.OPCGroups
Set objGroup = objGroups.Add("Group001")
手册显示OPCGroups 是Property 的OPCServer。一旦我调用了这个属性,我就会得到一个 OPCGroups 类型的新对象,然后我可以调用它的属性和方法。
Syntax OPCGroups As OPCGroups
这很好用。然后我继续,调用这个函数时卡住了;
Syntax AddItems (Count As Long, ItemIDs() As String, ClientHandles() As Long, ByRef ServerHandles() As Long, ByRef Errors() As Long, Optional RequestedDataTypes As Variant, Optional AccessPaths As Variant)
它需要一个字符串数组。但是,在 VBScript 中,我总是得到一个变体数组 (VarType = 8204)。当我尝试传递数组时,出现类型不匹配错误。我找不到将它强输入到字符串数组的方法;我什至不确定这是否可能。
转到 JScript
JScript
我执行与上述相同的第一步,但是当我创建 OPCGroups 对象时;
var objGroups = objServer.OPCGroups;
有些事情没有奏效。它实际上并没有创建一个带有所有相关属性/方法的OPCGroups 对象。当我尝试调用方法时
var objGroup = objGroups.Add();
它说“对象不支持此属性或方法”。就好像它只是创建了一个通用/空白对象;没有一个键入为 OPCGroups 对象。
所以。我可以解决任一这些问题吗?
【问题讨论】:
-
在 vbscript 版本中,您是否尝试使用 cstr 函数将数组的每一项强制转换为字符串?
-
确实做到了;
Do Until objTextFile.AtEndOfStream Redim Preserve arrFileLines(i) arrFileLines(i) = CStr(objTextFile.Readline) i = i + 1 Loop