Öğretici: Azure Endüstriyel IoT başvuru çözümü mimarisini uygulama

Üreticiler küresel ölçekte genel bir Endüstriyel IoT çözümü dağıtmak ve her bir üretim sitesinin verimliliklerini artırmak için tüm üretim sitelerini bu çözüme bağlamak istemektedir.

Bu artan verimlilikler daha hızlı üretime ve daha düşük enerji tüketimine yol açar ve bu da çoğu durumda kalitelerini artırırken üretilen malların maliyetini düşürmeye yol açar.

Çözümün mümkün olduğunca verimli olması ve koşul izleme, OEE hesaplaması, tahmin ve anomali algılama gibi tüm gerekli kullanım örneklerini etkinleştirmesi gerekir. Bu kullanım örneklerinden elde edilen içgörülerden, ikinci bir adımda üretim süreçlerine iyileştirmeler ve diğer değişiklikler uygulayabilecek bir dijital geri bildirim döngüsü oluşturulabilir.

Birlikte çalışabilirlik, çözüm mimarisinin hızlı bir şekilde kullanıma sunılmasının anahtarıdır ve OPC UA gibi açık standartların kullanılması bu birlikte çalışabilirliğin sağlanmasına önemli ölçüde yardımcı olur.

IEC 62541 Açık Platform İletişim Birleşik Mimarisi (OPC UA)

Bu çözüm, tüm Operasyonel Teknoloji (OT) verileri için IEC 62541 Açık Platform İletişimleri (OPC) Birleşik Mimarisini (UA) kullanır. Bu standart burada açıklanmıştır.

Çözüm mimarisi başvurusu

Basitleştirilmiş Mimari (hem Azure hem de Doku Seçenekleri):

Basit bir IIoT mimarisinin diyagramı.

Ayrıntılı Mimari (Yalnızca Azure):

IIoT mimarisinin diyagramı.

Bileşenler

Bu çözümde yer alan bileşenler şunlardır:

Bileşen Veri Akışı Açıklaması
Endüstriyel Varlıklar Docker kapsayıcılarında barındırılan bir dizi sanal OPC UA özellikli üretim hattı
Azure IoT İşlemleri Azure IoT Operations, uç için birleşik bir veri düzlemidir. Azure Arc özellikli uç Kubernetes kümelerinde çalışan bir dizi modüler, ölçeklenebilir ve yüksek oranda kullanılabilir veri hizmeti içerir.
Veri Ağ Geçidi Bu ağ geçidi, şirket içi veri kaynaklarınızı (SAP gibi) buluttaki Azure Logic Apps'e bağlar.
Azure Event Hubs Uç ağ geçitlerinden OPC UA PubSub iletileri alan ve aboneler tarafından alınana kadar bunları depolayan bulut iletisi aracısı.
Azure Veri Gezgini Yerleşik anomali algılama ve tahminler dahil olmak üzere gelişmiş bulut analizi için zaman serisi veritabanı ve ön uç pano hizmeti.
Azure Logic Apps Azure Logic Apps, çok az kodla ve hiç kod olmadan otomatik iş akışları oluşturmak ve çalıştırmak için kullanabileceğiniz bir bulut platformudur.
Azure Arc Bu bulut hizmeti, uçta şirket içi Kubernetes kümesini yönetmek için kullanılır. Yeni iş yükleri Flux aracılığıyla dağıtılabilir.
Azure Yönetilen Grafana Azure Yönetilen Grafana, Grafana Labs tarafından grafana yazılımının üzerine kurulmuş bir veri görselleştirme platformudur. Grafana, Microsoft'un barındırıp desteklediği tam olarak yönetilen bir hizmettir.
Microsoft Power BI Microsoft Power BI, ilgisiz veri kaynaklarınızı tutarlı, görsel olarak çevreleyici ve etkileşimli içgörülere dönüştürmek için birlikte çalışan SaaS yazılım hizmetleri, uygulamaları ve bağlayıcılarından oluşan bir koleksiyondur.
Microsoft Dynamics 365 Field Service Microsoft Dynamics 365 Field Service, saha hizmeti isteklerini yönetmek için anahtar teslimi bir SaaS çözümüdür.
UA Bulut Komutanı Bu açık kaynak başvuru uygulaması, bir İleti Kuyruğu Telemetri Aktarımı'na (MQTT) veya Kafka aracısına (muhtemelen bulutta) gönderilen iletileri bağlı bir OPC UA sunucusu için OPC UA İstemci/Sunucu isteklerine dönüştürür. Uygulama bir Docker kapsayıcısında çalışır.
UA Bulut Eylemi Bu açık kaynak başvuru bulut uygulaması belirli bir veri değeri için Azure Veri Gezgini sorgular. Veri değeri, simülasyon üretim hattı makinelerinden birinin baskısıdır. Belirli bir eşiğe (4.000 mbar) ulaşıldığında Azure Event Hubs aracılığıyla UA Cloud Commander'ı çağırır. UA Cloud Commander daha sonra OPC UA aracılığıyla makinede OpenPressureReliefValve yöntemini çağırır.
UA Bulut Kitaplığı UA Bulut Kitaplığı, OPC Foundation tarafından burada barındırılan çevrimiçi bir OPC UA Bilgi Modelleri deposudur.
UA Edge Translator Bu açık kaynak endüstriyel bağlantı başvuru uygulaması, endüstriyel varlık arabirimini tanımlamak için şema olarak W3C Nesnelerin Web'i (WoT) Şey Açıklamaları'nı kullanarak özel varlık arabirimlerinden OPC UA'ya çevrilir.

Not

Gerçek bir dağıtımda, basınç tahliye vanasını açmak kadar kritik bir şey şirket içinde yapılır. Bu, dijital geri bildirim döngüsüne ulaşmanın basit bir örneğidir.

UA Bulut Kitaplığı

OPC UA Bilgi Modelleri'ni doğrudan Azure Veri Gezgini okumak için, OPC UA Bilgi Modeli'nde tanımlanan OPC UA düğümlerini bir tabloya aktarabilirsiniz. Sorgular içinde daha fazla meta veri araması için içeri aktarılan bilgileri kullanabilirsiniz.

İlk olarak, ADX kümenizde aşağıdaki sorguyu çalıştırarak UA Bulut Kitaplığı için bir Azure Veri Gezgini (ADX) belirtme çizgisi ilkesi yapılandırın. Başlamadan önce, ADX sekmesinde İzinler'e giderek Azure portalında yapılandırabileceğiniz bir ADX kümesi yöneticisi olduğunuzdan emin olun.

.alter cluster policy callout @'[{"CalloutType": "webapi","CalloutUriRegex": "uacloudlibrary.opcfoundation.org","CanCall": true}]'

Ardından Azure portalından aşağıdaki Azure Veri Gezgini sorgusunu çalıştırın:

let uri='https://uacloudlibrary.opcfoundation.org/infomodel/download/\<insert information model identifier from the UA Cloud Library here\>';
let headers=dynamic({'accept':'text/plain'});
let options=dynamic({'Authorization':'Basic \<insert your cloud library credentials hash here\>'});
evaluate http_request(uri, headers, options)
| project title = tostring(ResponseBody.['title']), contributor = tostring(ResponseBody.contributor.name), nodeset = parse_xml(tostring(ResponseBody.nodeset.nodesetXml))
| mv-expand UAVariable=nodeset.UANodeSet.UAVariable
| project-away nodeset
| extend NodeId = UAVariable.['@NodeId'], DisplayName = tostring(UAVariable.DisplayName.['#text']), BrowseName = tostring(UAVariable.['@BrowseName']), DataType = tostring(UAVariable.['@DataType'])
| project-away UAVariable
| take 10000

Bu sorguda iki şey sağlamanız gerekir:

  • Bilgi Modeli'nin UA Bulut Kitaplığı'ndan alınan benzersiz kimliği ve adx sorgusunun <buradaki> bulut kitaplığından bilgi modeli ekleme tanımlayıcısına girin.
  • UA Bulut Kitaplığı kimlik bilgileriniz (kayıt sırasında oluşturulur) temel yetkilendirme üst bilgisi karması ve bunu ADX sorgusunun <bulut kitaplığı kimlik bilgileri karması buraya> ekleyin alanına ekleyin. Karmayı oluşturmak için gibi https://www.debugbear.com/basic-auth-header-generator araçları kullanın.

Örneğin, Kusto Gezgini aracında üretim hattı benzetimi İstasyonu OPC UA Server'ın Bilgi Modeli'ni buradan indirilebilir hale getirmek için aşağıdaki sorguyu çalıştırın:

let uri='https://uacloudlibrary.opcfoundation.org/infomodel/download/1627266626';
let headers=dynamic({'accept':'text/plain'});
let options=dynamic({'Authorization':'Basic \<insert your cloud library credentials hash here\>'});
let variables = evaluate http_request(uri, headers, options)
    | project title = tostring(ResponseBody.['title']), contributor = tostring(ResponseBody.contributor.name), nodeset = parse_xml(tostring(ResponseBody.nodeset.nodesetXml))
    | mv-expand UAVariable = nodeset.UANodeSet.UAVariable
    | extend NodeId = UAVariable.['@NodeId'], ParentNodeId = UAVariable.['@ParentNodeId'], DisplayName = tostring(UAVariable['DisplayName']), DataType = tostring(UAVariable.['@DataType']), References = tostring(UAVariable.['References'])
    | where References !contains "HasModellingRule"
    | where DisplayName != "InputArguments"
    | project-away nodeset, UAVariable, References;
let objects = evaluate http_request(uri, headers, options)
    | project title = tostring(ResponseBody.['title']), contributor = tostring(ResponseBody.contributor.name), nodeset = parse_xml(tostring(ResponseBody.nodeset.nodesetXml))
    | mv-expand UAObject = nodeset.UANodeSet.UAObject
    | extend NodeId = UAObject.['@NodeId'], ParentNodeId = UAObject.['@ParentNodeId'], DisplayName = tostring(UAObject['DisplayName']), References = tostring(UAObject.['References'])
    | where References !contains "HasModellingRule"
    | project-away nodeset, UAObject, References;
let nodes = variables
    | project source = tostring(NodeId), target = tostring(ParentNodeId), name = tostring(DisplayName)
    | join kind=fullouter (objects
        | project source = tostring(NodeId), target = tostring(ParentNodeId), name = tostring(DisplayName)) on source
        | project source = coalesce(source, source1), target = coalesce(target, target1), name = coalesce(name, name1);
let edges = nodes;
edges
    | make-graph source --> target with nodes on source

En iyi sonuçları elde etmek için Grouped Labels ve seçeneğini olarak namedeğiştirinLayout.

İstasyon Bilgi Modeli grafiği.

Üretim hattı benzetimi

Çözüm, bir OPC UA bilgi modeli ve basit bir Üretim Yürütme Sistemi (MES) kullanarak birkaç istasyondan oluşan bir üretim hattı simülasyonu kullanır. Hem İstasyonlar hem de MES, kolay dağıtım için kapsayıcılı hale getirilir.

Varsayılan benzetimi yapılandırma

Benzetimi iki üretim hattı içerecek şekilde yapılandırılmıştır. Varsayılan yapılandırma:

Üretim Hattı İdeal Döngü Süresi (saniye)
Münih 6
Seattle 10
Shift Adı Başlat End
Sabah 07.00 14:00
Öğleden sonra 15:00 22.00
Gece 23.00 06.00

Not

Vardiya süreleri, özellikle üretim hattı benzetimini barındıran Sanal Makinenin (VM) ayarlandığı saat dilimi olmak üzere yerel saat dilimindedir.

İstasyon OPC UA sunucusunun OPC UA düğüm kimlikleri

Aşağıdaki OPC UA Düğüm Kimlikleri, buluta telemetri için İstasyon OPC UA Sunucusu'nda kullanılır.

  • i=379 - üretilen ürün seri numarası
  • i=385 - üretilen ürünlerin sayısı
  • i=391 - atılan ürünlerin sayısı
  • i=398 - çalışma süresi
  • i=399 - hatalı süre
  • i=400 - durum (0=istasyon çalışmaya hazır, 1=devam eden çalışma, 2=yapılan iş ve iyi parça üretimi, 3=yapılan iş ve hurda üretimi, 4=istasyon arıza durumunda)
  • i=406 - enerji tüketimi
  • i=412 - ideal döngü süresi
  • i=418 - gerçek döngü süresi
  • i=434 - basınç

UA Cloud Commander ve UA Cloud Action ile dijital geri bildirim döngüsü

Bu bölümde "dijital geri bildirim döngüsünün nasıl uygulanacakları gösterilmektedir. Geri bildirim döngüsünü oluşturmak için buluttan simülasyondaki OPC UA sunucularından birinde bir komut tetiklersiniz. Tetikleyici, simülasyon basıncı için belirli bir eşiğe ulaşan zaman serisi verilerini temel alır. Derleme makinesinin baskısını Azure Veri Gezgini panosunda görebilirsiniz. Baskı Seattle üretim hattı için düzenli aralıklarla serbest bırakılır.

Üretim hattı benzetimi ve bulut hizmetlerini yükleme

Tüm gerekli kaynakları Microsoft Azure'da dağıtmak için Dağıt düğmesini seçin:

Azure’a dağıtın

Dağıtım sırasında, üretim hattı simülasyonunu barındırmak için kullanılan bir Sanal Makine (VM) ve UA Bulut İkizi için bir parola sağlamanız gerekir. Parola aşağıdaki özniteliklerden üç tanesine sahip olmalıdır: Bir küçük harf karakteri, bir büyük harf karakteri, bir sayı ve bir özel karakter. Parola 12 ile 72 karakter uzunluğunda olmalıdır.

Not

Maliyetten tasarruf etmek için dağıtım, hem üretim hattı benzetimi hem de Edge altyapısı için tek bir Windows 11 Enterprise VM dağıtır. Üretim senaryolarında üretim hattı benzetimi gerekli değildir ve temel işletim sistemi için Windows IoT Enterprise Uzun Süreli Bakım Kanalı (LTSC) önerilir.

Dağıtım tamamlandıktan sonra, dağıtılan Windows VM'ye rdp (uzak masaüstü) bağlantısıyla bağlanın. RDP dosyasını VM'nin Azure portalı sayfasında, Bağlan seçenekleri'nin altında indirebilirsiniz. Dağıtım sırasında sağladığınız kimlik bilgilerini kullanarak oturum açın, bir Windows komut istemi açın ve şu aracılığıyla Linux için Windows Alt Sistemi (WSL) yükleyin:

    wsl --install

Komut tamamlandıktan sonra VM'nizi yeniden başlatın ve yeniden oturum açın. Komut istemi WSL yüklemesini tamamlar ve WSL için yeni bir kullanıcı adı ve parola girmeniz istenir. Ardından, basit bir Kubernetes çalışma zamanı olan K3S'yi şu şekilde yükleyin:

    curl -sfL https://get.k3s.io | sh

Artık üretim hattı benzetimi çalıştırabilirsiniz.

Üretim hattı benzetimi çalıştırma

Dağıtılan VM'den bir Windows komut istemi çalıştırın, wsl yazın ve Enter tuşuna basın. Dizine /mnt/c/ManufacturingOntologies-main/Tools/FactorySimulation gidin ve StartSimulation kabuk betiğini çalıştırın:

    sudo ./StartSimulation.sh "<EventHubsCS>"

Not

<EventHubCS>burada açıklandığı gibi Event Hubs ad alanı bağlantı dizesi.

Örnek: StartSimulation "Endpoint=sb://ontologies.servicebus.windows.net/; SharedAccessKeyName=RootManageSharedAccessKey; SharedAccessKey=abcdefgh="

Not

Kubernetes hizmetinin dış IP adresi olarak <pending>görünüyorsa, aracılığıyla hizmetin dış IP adresini traefik atayabilirsiniz sudo kubectl patch service <theService> -n <the service's namespace> -p '{"spec": {"type": "LoadBalancer", "externalIPs":["<the traefik external IP address>"]}}'.

Not

WSL'nin (ve K3'lerin) otomatik olarak kapanmasını önlemek için WSL komut isteminizi açık tutun.

Uçta Azure IoT İşlemleri dağıtma

Dağıtmadan önce üretim hattı benzetimini başlattığınızı onaylayın. Ardından, burada açıklandığı gibi bu adımları izleyin.

Kullanım örnekleri koşulu izleme, OEE hesaplama, anomalileri algılama ve Azure Veri Gezgini

Koşul izleme, verim veya bakım tahminleri veya anomali algılama için kod içermeyen panolar oluşturmayı öğrenmek için Azure Veri Gezgini belgelerini de ziyaret edebilirsiniz. Burada açıklanan adımları izleyerek ADX Panosu'na dağıtmanız için örnek bir pano sağladık. İçeri aktarma işleminden sonra, ADX sunucu küme örneğinizin HTTPS uç noktasını panonun sağ üst köşesindeki biçimde https://ADXInstanceName.AzureRegion.kusto.windows.net/ belirterek panonun veri kaynağını güncelleştirmeniz gerekir.

Azure Veri Gezgini panosunun ekran görüntüsü.

Not

Belirli bir vardiyanın OEE'sini görüntülemek istiyorsanız ADX Panosu'nun sol üst köşesindeki Zaman Aralığı açılan listesinde Özel Zaman Aralığı'nı seçin ve ilgilendiğiniz vardiyanın başından sonuna kadar olan tarih ve saati girin.

Kusto Explorer'da yerleşik Unified NameSpace (UNS) ve ISA-95 model grafını işleme

Bu başvuru çözümü, buluttaki zaman serisi veritabanına (Azure Veri Gezgini) gönderilen OPC UA meta verilerini temel alan bir Unified NameSapce (UNS) uygular. Bu OPC UA meta verileri, ISA-95 varlık hiyerarşisini de içerir. Elde edilen grafik, buradan indirilebilen Kusto Explorer aracında kolayca görselleştirilebilir.

Bu başvuru çözümünde dağıtılan Azure Veri Gezgini örneğinize yeni bir bağlantı ekleyin ve ardından Kusto Gezgini'nde aşağıdaki sorguyu çalıştırın:

let edges = opcua_metadata_lkv
| project source = DisplayName, target = Workcell
| join kind=fullouter (opcua_metadata_lkv
    | project source = Workcell, target = Line) on source
    | join kind=fullouter (opcua_metadata_lkv
        | project source = Line, target = Area) on source
        | join kind=fullouter (opcua_metadata_lkv
            | project source = Area, target = Site) on source
            | join kind=fullouter (opcua_metadata_lkv
                | project source = Site, target = Enterprise) on source
                | project source = coalesce(source, source1, source2, source3, source4), target = coalesce(target, target1, target2, target3, target4);
let nodes = opcua_metadata_lkv;
edges | make-graph source --> target with nodes on DisplayName

En iyi sonuçları elde etmek için seçeneğini olarak GroupeddeğiştirinLayout.

ISA-95 varlık hiyerarşisi gösteren grafik.

Azure Yönetilen Grafana hizmetini kullanma

Grafana'yı kullanarak bu makalede açıklanan çözüm için Azure'da bir pano oluşturabilirsiniz. Grafana, gerçek zamanlı verileri görüntüleyen panolar oluşturmak için üretimde kullanılır. Azure, Azure Yönetilen Grafana adlı bir hizmet sunar. Grafana ile bulut panoları oluşturabilirsiniz. Bu yapılandırma kılavuzunda Azure'da Grafana'yı etkinleştirip Azure Veri Gezgini ve Azure Digital Twins hizmetinden sorgulanan verileri içeren bir pano oluşturacaksınız. Bu başvuru çözümünden sanal üretim hattı verilerini kullanırsınız.

Aşağıdaki ekran görüntüsünde pano gösterilmektedir:

Grafana panosunu gösteren ekran görüntüsü.

Azure Yönetilen Grafana hizmetini etkinleştirme

  1. Azure portalına gidin ve 'Grafana' hizmetini arayın ve Azure Yönetilen Grafana hizmetini seçin.

    Market'te Grafana'yı etkinleştirme işleminin ekran görüntüsü.

  2. Örneğinize bir ad verin ve standart seçenekleri açık bırakın ve hizmeti oluşturun.

  3. Hizmet oluşturulduktan sonra Grafana örneğine eriştiğiniz URL'ye gidin. URL'yi hizmetin giriş sayfasında bulabilirsiniz.

Grafana'da yeni veri kaynağı ekleme

İlk oturum açmanızın ardından Azure Veri Gezgini'a yeni bir veri kaynağı eklemeniz gerekir.

  1. 'Yapılandırma' bölümüne gidin ve yeni bir veri kaynağı ekleyin.

  2. Azure Veri Gezgini için arama yapın ve hizmeti seçin.

  3. Bağlantınızı yapılandırın ve uygulama kaydını kullanın (bu sayfanın üst kısmında sağlanan kılavuzu izleyin).

  4. Sayfanın en altında bağlantınızı kaydedin ve test edin.

Örnek panoyu içeri aktarma

Artık sağlanan örnek panoyu içeri aktarmaya hazırsınız.

  1. Örnek panoyu buradan indirin: Örnek Grafana Üretim Panosu.

  2. Pano'ya gidin ve İçeri Aktar'ı seçin.

  3. İndirdiğiniz kaynağı seçin ve Kaydet Sayfada bir hata alıyorsunuz seçeneğini belirleyin çünkü henüz iki değişken ayarlanmamıştır. Panonun ayarlar sayfasına gidin.

  4. Değişkenler'i seçin ve iki URL'yi Azure Digital Twins Hizmetinizin URL'si ile güncelleştirin.

  5. Panoya geri dönün ve yenile düğmesine basın. Şimdi verileri görmeniz gerekir (panodaki kaydet düğmesine tıklamayı unutmayın).

    Sayfanın üst kısmındaki konum değişkeni, Azure Digital Twins'den (ISA95 alan düğümleri) gelen verilerle otomatik olarak doldurulur. Burada farklı konumları seçebilir ve her fabrikanın farklı veri noktalarını görebilirsiniz.

  6. Panonuzda veriler gösterilmiyorsa tek tek panellere gidin ve doğru veri kaynağının seçili olup olmadığına bakın.

Uyarıları yapılandırma

Grafana'da uyarı oluşturmak da mümkündür. Bu örnekte, üretim hatlarından biri için düşük bir OEE uyarısı oluşturacağız.

  1. Grafana hizmetinizde oturum açın ve menüden Uyarı kuralları'nı seçin.

    Uyarılara gezintiyi gösteren ekran görüntüsü.

  2. Uyarı kuralı oluştur’u seçin.

    Uyarı kuralı oluşturmayı gösteren ekran görüntüsü.

  3. Uyarınıza bir ad verin ve veri kaynağı olarak Azure Veri Gezgini'ı seçin. Gezinti bölmesinde sorguyu seçin.

    Uyarı sorgusu oluşturma işleminin ekran görüntüsü.

  4. Sorgu alanına aşağıdaki sorguyu girin. Bu örnekte Seattle üretim hattını kullanacağız.

    let oee = CalculateOEEForStation("assembly", "seattle", 6, 6);
    print round(oee * 100, 2)
    
  5. Tabloyu çıkış olarak seçin.

  6. Ekranı aşağı kaydırarak sonraki bölüme gelin. Burada uyarı eşiğini yapılandıracaksınız. Bu örnekte eşik olarak '10'un altında' kullanıyoruz ancak üretim ortamlarında bu değer daha yüksek olabilir.

    Eşik uyarısı gösteren ekran görüntüsü.

  7. Uyarılarınızı kaydetmek istediğiniz klasörü seçin ve 'Uyarı Değerlendirme davranışı'nı yapılandırın. 'Her 2 dakikada bir' seçeneğini belirleyin.

  8. Kaydet ve çık düğmesini seçin.

Uyarılarınıza genel bakış bölümünde, artık OEE'niz 10'dan küçük olduğunda bir uyarının tetiklendiğini görebilirsiniz.

Uyarıya genel bakış gösteren ekran görüntüsü.

Bu kurulumu, örneğin Microsoft Dynamics Field Services ile tümleştirebilirsiniz.

Başvuru çözümünü Microsoft Power BI'a bağlama

Başvuru çözümü Power BI'a bağlanmak için Power BI aboneliğine erişmeniz gerekir.

Aşağıdaki adımları tamamlayın:

  1. Power BI Desktop uygulamasını buradan yükleyin.

  2. Power BI aboneliğine erişimi olan kullanıcıyı kullanarak Power BI Desktop uygulamasında oturum açın.

  3. Azure portalından Azure Veri Gezgini veritabanı örneğinize (ontologies) gidin ve yalnızca tek bir Azure aboneliğine, özellikle de bu başvuru çözümünün dağıtılan örneği için kullanılan aboneliğe erişimi olan bir Azure Active Directory kullanıcısına izinler ekleyinDatabase Admin. Gerekirse Azure Active Directory'de yeni bir kullanıcı oluşturun.

  4. Power BI'da yeni bir rapor oluşturun ve Azure Veri Gezgini (Kusto) verilerini alma aracılığıyla veri kaynağı olarak Azure > Veri Gezgini zaman serisi verilerini > seçin.

  5. Açılan pencerede örneğinizin Azure Veri Gezgini uç noktasını (örneğinhttps://erichbtest3adx.eastus2.kusto.windows.net), veritabanı adını ()ontologies ve aşağıdaki sorguyu girin:

    let _startTime = ago(1h);
    let _endTime = now();
    opcua_metadata_lkv
    | where Name contains "assembly"
    | where Name contains "munich"
    | join kind=inner (opcua_telemetry
        | where Name == "ActualCycleTime"
        | where Timestamp > _startTime and Timestamp < _endTime
    ) on DataSetWriterID
    | extend NodeValue = todouble(Value)
    | project Timestamp, NodeValue
    
  6. Yükle'yi seçin. Bu eylem, Münih üretim hattının Montaj istasyonunun son bir saat için gerçek döngü süresini içeri aktarır.

  7. İstendiğinde, daha önce Azure Veri Gezgini veritabanına erişim izni vermiş olduğunuz Azure Active Directory kullanıcısını kullanarak Azure Veri Gezgini oturum açın.

  8. öğesinden Data viewNodeValue sütununu seçin ve Özetleme menü öğesinde Özetleme'yi seçin.

  9. öğesine Report viewgeçin.

  10. Görselleştirmeler'in altında Çizgi Grafik görselleştirmesini seçin.

  11. Görselleştirmeler'in altında öğesini kaynaktan Data öğesine X-axistaşıyınTimestamp, seçin ve Zaman damgası'nı seçin.

  12. Görselleştirmeler'in altında öğesini kaynaktan Data öğesine Y-axistaşıyın, seçin ve Ortanca'yı seçin.NodeValue

  13. Yeni raporunuzu kaydedin.

    Not

    Azure Veri Gezgini'dan raporunuza benzer şekilde başka veriler de ekleyebilirsiniz.

    Power BI görünümünün ekran görüntüsü.

Başvuru çözümünü Microsoft Dynamics 365 Field Service'e bağlama

Bu tümleştirme aşağıdaki senaryoları gösterir:

  • Manufacturing Ontologies başvuru çözümündeki varlıkları Dynamics 365 Alan Hizmeti'ne yükleme.
  • Üretim Ontologları başvuru çözümü telemetri verileri üzerinde belirli bir eşiğe ulaşıldığında Dynamics 365 Field Service'te uyarılar oluşturun.

Tümleştirme, Azure Logics Apps'i kullanır. Logic Apps ile veri yolu-critcal uygulamaları ve hizmetleri kod içermeyen iş akışları aracılığıyla bağlanabilir. Azure Veri Gezgini'dan bilgi getirir ve Dynamics 365 Alan Hizmeti'nde eylemleri tetikleriz.

İlk olarak, Dynamics 365 Field Service müşterisi değilseniz burada 30 günlük bir deneme sürümünü etkinleştirin. Manufacturing Ontologies başvuru çözümünü dağıtırken kullanılan Aynı Microsoft Entra Kimliğini (eski adıyla Azure Active Directory) kullanmayı unutmayın. Aksi takdirde, bu yönergelerin parçası olmayan kiracılar arası kimlik doğrulamasını yapılandırmanız gerekir.

Dynamics 365 Field Service'te varlık oluşturmak için Azure Logic App iş akışı oluşturma

Manufacturing Ontologies'ten varlıkları Dynamics 365 Field Service'e yüklemeyle başlayalım:

  1. Azure portalına gidin ve yeni bir Mantıksal Uygulama oluşturun.

  2. Azure Logic App'e bir ad verin ve Bunu Manufacturing Ontologies başvuru çözümüyle aynı kaynak grubuna yerleştirin.

  3. İş Akışları'ı seçin.

  4. İş akışınıza bir ad verin; bu senaryo için durum bilgisi olan durum türünü kullanırız çünkü varlıklar veri akışı değildir.

  5. Yeni bir tetikleyici oluşturun. Bir yinelenme tetikleyicisi oluşturarak başlıyoruz. Bu, yeni varlıklar oluşturulursa veritabanını her gün denetler. Tetikleyiciyi daha sık gerçekleşecek şekilde değiştirebilirsiniz.

  6. Eylemlerde KQL sorgusunu çalıştır komutunu arayın Azure Data Explorer ve seçin. Bu sorguda ne tür varlıklara sahip olduğumuzu denetleriz. Varlıkları almak ve sorgu alanına yapıştırmak için aşağıdaki sorguyu kullanın:

    let ADTInstance =  "PLACE YOUR ADT URL";let ADTQuery = "SELECT T.OPCUAApplicationURI as AssetName, T.$metadata.OPCUAApplicationURI.lastUpdateTime as UpdateTime FROM DIGITALTWINS T WHERE IS_OF_MODEL(T , 'dtmi:digitaltwins:opcua:nodeset;1') AND T.$metadata.OPCUAApplicationURI.lastUpdateTime > 'PLACE DATE'";evaluate azure_digital_twins_query_request(ADTInstance, ADTQuery)
    
  7. Varlık verilerinizi Dynamics 365 Alan Hizmeti'ne almak için Microsoft Dataverse'e bağlanmanız gerekir. Dynamics 365 Alan Hizmeti örneğine bağlanın ve aşağıdaki yapılandırmayı kullanın:

    • 'Müşteri Varlıkları' Tablo Adını Kullanma
    • 'AssetName' öğesini Ad alanına yerleştirin
  8. İş akışınızı kaydedin ve çalıştırın. Birkaç saniye sonra yeni varlıkların Dynamics 365 Alan Hizmeti'nde oluşturulduğunu görürsünüz.

Dynamics 365 Alan Hizmeti'nde uyarı oluşturmak için Azure Logic App iş akışı oluşturma

Bu iş akışı, özellikle Manufacturing Ontologies başvuru çözümünün varlığında belirli bir FaultyTime eşiğine ulaşıldığında Dynamics 365 Field Service'te uyarılar oluşturur.

  1. İlk olarak, doğru verileri almak için bir Azure Veri Gezgini işlevi oluşturun. Azure portalında Azure Veri Gezgini sorgu panelinize gidin ve bir FaultyFieldAssets işlevi oluşturmak için aşağıdaki kodu çalıştırın:

    İşlev ADX sorgusu oluşturma işleminin ekran görüntüsü.

    .create-or-alter function  FaultyFieldAssets() {  
    let Lw_start = ago(3d);
    opcua_telemetry
    | where Name == 'FaultyTime'
    and Value > 0
    and Timestamp between (Lw_start .. now())
    | join kind=inner (
        opcua_metadata
        | extend AssetList =split (Name, ';')
        | extend AssetName=AssetList[0]
        ) on DataSetWriterID
    | project AssetName, Name, Value, Timestamp}
    
  2. Azure Logic App'te yeni bir iş akışı oluşturun. Her 3 dakikada bir başlamak için bir 'Yinelenme' tetikleyicisi oluşturun. 'Azure Veri Gezgini' eylemi olarak oluşturun ve KQL Sorgusunu Çalıştır'ı seçin.

  3. Azure Veri Gezgini Kümesi URL'nizi girin, ardından veritabanınızı seçin ve sorgu olarak 1. adımda oluşturulan işlev adını kullanın.

  4. Eylem olarak Microsoft Dataverse'i seçin.

  5. Dynamics 365 Alan Hizmeti panonuzda yeni uyarıların oluşturulduğunu görmek için iş akışını çalıştırın:

    Dynamics 365 FS'deki uyarıların ekran görüntüsü.