如何在不更改 TypeInfo 的情况下将 OPC UA 值重置为默认值?

问题描述

在我的 OPC UA 客户端中,我想要一个设置节点认值的函数。我为此使用了 Opc.Ua.TypeInfo.GetDefaultValue() 函数。但是在为字符串设置值后,该值为空。当它为空时,我无法在 UaExpert 中更改它的值。

设置后读取节点,即使我写的DataValue有TypeInfo字符串,它也有typeInfo null。有没有办法用正确的 typeInfo/beeing 设置认值仍然可以更改 UA Expert 中的节点值。

var nodeId = new NodeId(nodeIdString);
string value = null;

var variant = new Variant(value);
var dataValue = new DataValue(variant);

// Create value to write
var writeValue = new WriteValue()
{
    NodeId = nodeId,AttributeId = Attributes.Value,Value = dataValue
};
var request = WriteValue.Validate(writeValue);
var writeValueCollection = new WriteValueCollection(1);
writeValueCollection.Add(writeValue);

StatusCodeCollection statusCodes;
DiagnosticInfoCollection diagnosticInfos;
var responseHeader = _session.Write(null,writeValueCollection,out statusCodes,out diagnosticInfos);
var val = _session.ReadValue(nodeId);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)