Azure Digital Twins(3)- 數字孿生體和數字孿生圖

在 Azure 數字孿生解決方案中,環境中的實體是由 數字孿生體 (digital twins)表示的。數字孿生體是模型(models)的一個個實例。 

可以通過 關係(relationships) 將其連接到其他數字孿生體以形成 孿生圖(twin graph)。

 

在本文中,我們將創建:

兩個模型:房間room和溫溼度計myfirstmodel​;

爲模型room創建兩個實例 room-01和room-02;

創建三個溫溼度計 實例device-001,device-002,device-003​;

爲room-01 和device-001 ,device-002創建關係;

爲room-02 和device-003 創建關係;

通過查詢語僅查詢類型爲溫溼度計的孿生體​;

 

視頻演示:

https://www.51azure.cloud/post/2021/4/19/azure-digital-twins-relationship-query-twin-graph

 

 

 

使用vs code 創建兩個模型:

第一個模型文件時是一個溫溼度計:

{
  "@context": "dtmi:dtdl:context;2",
  "@id": "dtmi:com:example:myfirstmodel;1",
  "@type": "Interface",
  "displayName": "myfirstmodel",
  "contents": [
    {
      "@type": "Telemetry",
      "name": "temperature",
      "schema": "double"
    },
    {
      "@type": "Property",
      "name": "humidity",
      "schema": "double"
    },
    {
      "@type": "Property",
      "name": "deviceStatus",
      "schema": "string"
    }
    
  ]
}

 

第二個模型文件是房間:

{
  "@context": "dtmi:dtdl:context;2",
  "@id": "dtmi:com:example:room;1",
  "@type": "Interface",
  "displayName": "room",
  "contents": [
    
    {
      "@type": "Property",
      "name": "deviceCount",
      "schema": "integer"
    },
    {
      "@type":"Relationship",
      "name": "devices",
      "target":"dtmi:com:example:myfirstmodel;1"
    }
    
    
  ]
}

 

房間和溫溼度計之間的關係是1對多的,即一個房間裏可以有多個溫溼度計。

在room的dtdl中通過 @type =“Relationship”表示 兩個孿生體之間的關係,target 爲 溫溼度計的 id。

 

在ADT Explorer中上傳兩個模版,並生成一個 room實體,兩個溫溼度計實體:

 

按住shift,同時選中room和 一個溫溼度計,爲 room和溫溼度計創建關係:

source 選擇房間,target 選擇 溫溼度計,relationship選擇 devices,該值是在dtdl的json文件中設定的。

同樣的方式設置 room和另一個溫溼度計的關係:

 

點擊某個溫溼度計,可以看到 property 的值會在右側顯示,但是 telemetry的值並不會在右側顯示,這是DTDL規定的。

 

也可以在右側直接修改類行爲 property的值:

 

創建如下的數字孿生圖:

 

執行查詢:

select * from digitaltwins where IS_OF_MODEL ('dtmi:com:example:myfirstmodel;1')

查詢結果只有三個 溫溼度計,關於IS_OF_MODEL的作用,參考:

https://docs.microsoft.com/zh-cn/azure/digital-twins/how-to-query-graph?WT.mc_id=AZ-MVP-5003757





聲明:

 

點擊可查閱本站文章目錄 《文章分類目錄》

本站所有內容僅代表個人觀點,如與官文檔衝突,請以官方文檔爲準。

可在本頁面下方留言或通過下方聯繫方式聯繫我:

微信:wxyusz;郵箱:[email protected]

歡迎關注公衆號“雲計算實戰”,接收最新文章推送。



知識共享許可協議

本作品由Sean Yu 採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。
歡迎轉載、使用、重新發布,但務必保留文章鏈接:https://www.51azure.cloud,且不得用於商業目的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章