我有一个新问题:如何更新OPC UA服务器中的节点 - C#?
我在EmptyNodeManager.cs的CreateAddressSpace中创建了节点。一切正常,但是当真实节点上的值发生变化时,客户端不会观察到变化。
下来是代码:
format-number(10, '00')
答案 0 :(得分:0)
抱歉,我无法发表评论,所以我无法要求澄清,所以......
您没有显示用于更新变量的代码,并且您没有明确说明您正在使用哪个C#OPC-UA堆栈 - 我假设OPC Foundation堆栈,因为它有一个EmptyNodeManager。 / p>
在该堆栈中,在您调用ClearChangeMasks()之前不会发送更新,因此要更改变量,请使用以下内容:
void Update(BaseVariableState variable, object value)
{
if (variable == null) throw new ArgumentNullException("variable");
if (!object.Equals(variable.Value, value))
{
variable.Value = value;
variable.Timestamp = m_timestamp;
// SystemContext is a property in EmptyNodeManager
variable.ClearChangeMasks(SystemContext, false);
}
}
请注意,除非订阅了该变量的更改,否则客户端无法看到更新。