首先,检查ItemValues是否为空。它可能不是,问题很可能是ItemValues.GetValue(count)的无效,但无论如何都值得检查。你永远不知道服务器将返回什么…
现在,到实际答案:您应首先检查质量中的相应元素,即您的方法中的Qualities.GetValue(count)。质量很可能是坏的,因此该值无效(因此可以是空引用)。根据OPC规范,您需要根据其含义解码质量位字段,但是在简化(略微不正确但通常有效)的意义上,64以下的质量不好,并且没有与之关联的数据值。
我试图使用Interop.OPCAutomation.dll从OPC服务器读取值
使用系统;
使用System.Collections.Generic;
使用System.ComponentModel;
使用System.Data;
使用System.Drawing;
用…