2017-08-07 219 views
1

我有OPCUA客戶端不瞭解OPCUA服務器地址空間構造的情況,客戶端仍然知道連接憑證。 OPCUA客戶端是否仍然可以從服務器訪問沒有名稱空間和節點ID的數據。OPC UA客戶端數據訪問服務器

我一直通過在客戶端請求期間指定名稱空間和節點ID來獲取服務器數據。

任何人都可以幫助我知道OPC UA數據訪問的詳細信息?

+0

如果下面的建議,回答你的問題,請接受它。另請參閱:https://stackoverflow.com/help/some one-answers – SailAvid

+0

[OPC UA:瀏覽服務器根節點的最小代碼]的可能重複(https://stackoverflow.com/questions/30573689/opc- ua-minimal-code-that-browses-the-root-node-of-a-server) – astrowalker

回答

2

TL; DR;是的,您可以使用瀏覽服務獲取服務器內所有節點的列表。


更詳細的解答:

每個服務器至少應該有以下節點(文件夾)。括號中是規範給出的名稱空間0(OPC UA基本名稱空間)中的節點ID。

- Root (i=84) 
    - Objects (i=85) 
    - Types (i=86) 
    - Views (i=87) 

OPC UA規範第4部分可以從這裏註冊後免費下載OPC UA Specification。它定義了服務BrowseBrowseNext。使用這些服務,您可以指定一個起始節點(即上面的一個節點,例如Root = namespace 0,ID 84)並獲取其所有子節點。

node-opcua您可以在這裏也許可以找到一些示例代碼:https://github.com/node-opcua/node-opcua/blob/fd5e48bac996625aaa7c177d1f8ed0c40ee92fbc/test/end_to_end/u_test_e2e_BrowseRequest.js

在open62541的例子爲瀏覽節點如下所示: https://github.com/open62541/open62541/blob/master/examples/client.c#L55

+0

感謝您的回答!我知道瀏覽節點,例如我只知道節點的名稱(例如:'MotorID')。您是否需要瀏覽所有對象才能找到MotorID比較來更改值或者是否有其他更好的方法。 (因爲我可以看到,最簡單和有效的方式是,如果我知道(ns:i :) –

+0

如果您只知道節點的名稱,並且沒有其他東西需要瀏覽槽中的所有節點(您也可以應用一些過濾器如果你也知道父節點的名字,即路徑(/ Objects/Stuff/MotorId),那麼你可以使用服務'TranslateBrowsePathToNodeId',它給你一個特定的節點ID路徑。 – SailAvid

相關問題