Я пытаюсь прочитать данные с сервера 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
дважды; это опечатка? - person Marc Gravell   schedule 27.02.2020