gpt4 book ai didi

java - OPC UA调用Acknowlagement方法并在java中获取Bad_EventIdUnkown

转载 作者:行者123 更新时间:2023-12-01 16:42:27 25 4
gpt4 key购买 nike

目前我正在使用 Eclipse Milo 开发 OPCUA 客户端。我能够从 OPC UA cpp 服务器读取数据,并将设定值数​​据写入服务器。

我无法对 OPCUA 警报和事件进行确认。

我尝试使用node-red opcua服务器并收到警报,现在我想确认同样的情况,所以我尝试了调用opcua确认方法的代码。这是:

byte[] b=new byte[] {-66, -115, -121, -6, -39, 40, 89, 114, 60, -66, -126, -79, -72, -128, -21, 23, 0, 0, 4, -4};
LocalizedText lt = new LocalizedText("bagiya");
ByteString bs=new ByteString(b);
Variant evntid1 = new Variant(bs);
System.out.println("jangli id :=>"+vs[1]);

Variant lt1 = new Variant(lt);
Variant[] v = new Variant[] { evntid1,lt1 = new Variant(lt)};
System.out.println(vs[1].getDataType());
CallMethodRequest rec = new CallMethodRequest(NodeId.parse("ns=1;i=1003"), NodeId.parse("ns=1;i=1022"), v);

System.out.println( rec.getTypeId()+"::=>"+client.call(rec).get());

这个字节数组字符串是由node-red opcua服务器使用事件订阅示例的eclipse milo代码给出的。

    EventFilter eventFilter = new EventFilter(new SimpleAttributeOperand[] {

new SimpleAttributeOperand(Identifiers.BaseEventType,
new QualifiedName[] { new QualifiedName(0, "EventId") }, AttributeId.Value.uid(), null),
new SimpleAttributeOperand(Identifiers.BaseEventType,
new QualifiedName[] { new QualifiedName(0, "EventType") }, AttributeId.Value.uid(), null),
new SimpleAttributeOperand(Identifiers.BaseEventType,
new QualifiedName[] { new QualifiedName(0, "Severity") }, AttributeId.Value.uid(), null),
new SimpleAttributeOperand(Identifiers.BaseEventType,
new QualifiedName[] { new QualifiedName(0, "Time") }, AttributeId.Value.uid(), null),
new SimpleAttributeOperand(Identifiers.BaseEventType,
new QualifiedName[] { new QualifiedName(0, "Time") }, AttributeId.Value.uid(), null),
new SimpleAttributeOperand(Identifiers.BaseEventType,
new QualifiedName[] { new QualifiedName(0, "Message") }, AttributeId.Value.uid(), null) },
new ContentFilter(null));

因此我们得到以下给定状态:CallMethodResult{StatusCode=StatusCode{name=Bad_EventIdUnknown,value=0x809A0000,quality=bad},InputArgumentResults=[StatusCode{name=Good,value=0x00000000,quality=good},StatusCode{name=Good,值=0x00000000,质量=好}],InputArgumentDiagnosticInfos=[],OutputArguments=[]}

请给我一些解决此问题的建议。

最佳答案

在这行代码中:

CallMethodRequest rec = new CallMethodRequest(NodeId.parse("ns=1;i=1003"), 
NodeId.parse("ns=1;i=1022"), v);

您解析两个节点 ID。 “CallMethodResult”状态描述了:

ns=1;i=1003:

StatusCode{name=Bad_EventIdUnknown,value=0x809A0000,quality=bad},InputArgumentResults=[StatusCode{name=Good,value=0x00000000,quality=good}

含义

Bad_EventIdUnknown, 0x809A0000 : The specified event ID is not recognized. (with reference to here).

ns=1;i=1022:

StatusCode{name=Good,value=0x00000000,quality=good}],InputArgumentDiagnosticInfos=[],OutputArguments=[]

因此,我得出结论,解析可能存在一些问题ns=1;i=1003:节点 ID。

关于java - OPC UA调用Acknowlagement方法并在java中获取Bad_EventIdUnkown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61836954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com