首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用OPC UA Java (OPC Foundation)写入值

用OPC UA Java (OPC Foundation)写入值
EN

Stack Overflow用户
提问于 2013-12-11 18:00:45
回答 1查看 2.6K关注 0票数 0

我正在尝试使用OPC Foundation的OPC UA java堆栈连接到远程环境。读取值是正确的,为此,我使用以下代码:

代码语言:javascript
复制
NodeId nodeId= NodeId.get(IdType.String, 2, "TYPES!M!MULTIPLYER!MU_79.MULTIPLYER_BIAS");
ReadResponse res = mySessionChannel.Read(null, 500.0, TimestampsToReturn.Source, new ReadValueId(nodeId, Attributes.Value, null, null));

现在我尝试使用write命令来设置这个(输入)变量,如下所示:

代码语言:javascript
复制
NodeId nodeId = NodeId.get(IdType.String, 2, "TYPES!M!MULTIPLYER!MU_79.MULTIPLYER_BIAS");
DataValue dataValue = new DataValue(new Variant(999));
WriteValue writeValue[] = new WriteValue[1];
writeValue[0] = new WriteValue(nodeId, Attributes.Value, "0", dataValue);

RequestHeader requestHeader = new RequestHeader(nodeId, null, null, null, null, null, null);
WriteRequest writeRequest = new WriteRequest(requestHeader, writeValue);
WriteResponse response = mySessionChannel.Write(writeRequest);

write命令运行时没有错误,但值永远不会更改。有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-11 18:25:02

您正在将"0“定义为IndexRange (WriteValue的第三个参数)。我相信,你有一个标量变量,所以你应该只使用null。

此外,您还需要检查响应以实际查看它是否成功。

E:写参数必须与变量节点的DataType匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20516028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档