首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpcUA地址空间

OpcUA地址空间
EN

Stack Overflow用户
提问于 2022-02-01 19:26:10
回答 2查看 84关注 0票数 1

我第一次在一个需要OpcUA连接的项目上工作。我在open62541后端使用Qt包装器(Qt )。

承载服务器的PLC制造商告诉我,我可以访问的变量列表:

代码语言:javascript
复制
MT_MAX_SETUP (qreal)
MT_ALARM (bool)
...

还有其他几个。使用示例 Qt OPC UA Viewer Example,我发现了这些变量的nodeId,例如:

代码语言:javascript
复制
`ns=4;s=MT_MAX_SETUP`

因此,在连接之后,我可以这样检索它的值:

代码语言:javascript
复制
_opcNode = _opcUaClient->node("ns=4;s=MT_MAX_SETUP");
connect(_opcNode, &QOpcUaNode::attributeRead, this, &MyOPC::handleAttributes);
connect(_opcNode, &QOpcUaNode::attributeUpdated, this, &MyOPC::handleAttributes);

_opcNode->readAttributes(QOpcUa::NodeAttribute::Value);

这种做法正确吗?制造商应该也告诉我名称空间ns=4吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-21 18:21:38

这种做法正确吗?制造商应该也告诉我名称空间ns=4吗?

你应该亲自去问问他们。否则,您将不得不自己搜索这些变量,这可能是一个挑战,也可能不是一个挑战。

如果您需要一个面向用户的工具来帮助您在开发过程中浏览UA,我建议您使用UAExpert

票数 1
EN

Stack Overflow用户

发布于 2022-04-22 06:08:07

是的,您应该知道NamespaceUri,然后最好从服务器提供的NamespaceArray中找到相应的NamespaceIndex。通常,您可以相信NamespaceIndex是固定的,但并不总是固定的,所以这样做对您来说是安全的。

您可以用NamespaceArray或Prosys OPC UA浏览器读取UaExpert (服务器下的对象),也可以自己从那里找到NamespaceUri。

或者,如果您的库支持将NodeId作为ExpandedNodeId提供,则只需在其中使用NamespaceUri即可。然后,这将在something表示中查看,类似于"nsu=urn:the_namespace_uri;s=MT_MAX_SETUP“。

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

https://stackoverflow.com/questions/70946384

复制
相关文章

相似问题

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