技术文章 - CS333285
无法从 VB.Net 中的 OPC 服务器读取多维数组
已修改: 23-Dec-2022
适用于
- Kepware Server (formerly KEPServerEX) 5.19.467.0 to 6.8
- ThingWorx Kepware Server (legacy) 8.0 to 8.4
说明
问题:此问题仅适用于用 VB.Net 编写的 ClientAce 项目。在ClientAce V1.0中,一个server item返回一个二维数组的数据,但是无法解析item的Value Variable。在 ClientAce V3.5 中,一个服务器项返回了一个二维数组数据,但该项的值变量的数组格式不正确。在 ClientAce V4.0 中,一个服务器项目返回了一个二维数组数据,但该项目的值变量的数组格式不正确。可能的原因:该问题是由于 VB.Net 看到 SafeArray 从非托管通信代码层传递到 .Net 层的方式造成的。用C#写的项目不会有问题。解决方案:出于此解释的目的,来自服务器的示例数组将是一个配置有以下值的 2x5 数组:0 1 2 3 4 5 6 7 8 9 1。对于针对 ClientAce V1.0 编写的项目,该数组面目全非。使用该版本开发的用户最好的解决方案是升级到ClientAce V3.5或V4.0。 2、在ClientAce V3.5工程中,行列索引反转为5x2,取值如下: 0 1 2 3 4 5 6 7 8 9 3、在ClientAce V4.0工程中,数组又是相反,但元素值显示如下: 0 5 1 6 2 7 3 8 4 9 注意:只要开发人员了解 Microsoft 的限制,就可以处理数组数据。
这是文章 333285 的 PDF 版本,可能已过期。最新版本 CS333285