【发布时间】:2020-02-27 17:03:42
【问题描述】:
我正在尝试从 OPC DA 服务器读取数据。我正在使用方法 SyncRead
SyncRead(short Source, int NumItems, ref Array ServerHandles, out Array Values, out Array Errors, out object Qualities, out object TimeStamps);
问题是我不确切知道参数值数组的类型。
我正在这样做
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OPCAutomation;
using EasyModbus;
using System.Threading;
using System.IO;
Array ServerHandles = new Array[ObjOPCGroup.OPCItems.Count];
Array Values = new Array[ObjOPCGroup.OPCItems.Count];
Array Errors = new Array[ObjOPCGroup.OPCItems.Count];
object Qualities = new object();
object TimeStamps = new object();
Array Values = new Array[ObjOPCGroup.OPCItems.Count];
ObjOPCGroup.SyncRead(
(short)OPCDataSource.OPCDevice,
ObjOPCGroup.OPCItems.Count,
ref ServerHandles,
out Values,
out Errors,
out Qualities,
out TimeStamps
);
当我启动应用程序时,我收到错误: System.Runtime.InteropServices.SafeArrayTypeMismatchException:指定的数组不是预期的类型
有人可以帮帮我吗?
谢谢
【问题讨论】:
-
次要注意:您声明
Values两次;是错字吗? -
应该是一个 int[] 数组。