Bagikan melalui


Tutorial: Menerapkan arsitektur solusi referensi IoT industri Azure

Produsen ingin menyebarkan solusi IoT industri secara keseluruhan pada skala global dan menghubungkan semua situs produksi mereka ke solusi ini untuk meningkatkan efisiensi untuk setiap situs produksi individu.

Peningkatan efisiensi ini menyebabkan produksi yang lebih cepat dan konsumsi energi yang lebih rendah, yang semuanya menyebabkan penurunan biaya untuk barang yang diproduksi sambil meningkatkan kualitasnya dalam banyak kasus.

Solusinya harus seefisien mungkin dan mengaktifkan semua kasus penggunaan yang diperlukan seperti pemantauan kondisi, perhitungan efektivitas peralatan keseluruhan (OEE), prakiraan, dan deteksi anomali. Dengan menggunakan wawasan yang diperoleh dari kasus penggunaan ini, Anda kemudian dapat membuat perulangan umpan balik digital yang kemudian dapat menerapkan pengoptimalan dan perubahan lain pada proses produksi.

Interoperabilitas adalah kunci untuk mencapai peluncuran cepat arsitektur solusi. Penggunaan standar terbuka seperti OPC UA secara signifikan membantu mencapai interoperabilitas ini.

Tutorial ini menunjukkan kepada Anda cara menyebarkan solusi IoT industri dengan menggunakan layanan Azure. Solusi ini menggunakan Arsitektur Terpadu (UA) IEC 62541 Open Platform Communications (OPC) untuk semua data teknologi operasional (OT).

Prasyarat

Untuk menyelesaikan langkah-langkah dalam tutorial ini, Anda memerlukan langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Arsitektur solusi referensi

Diagram berikut menunjukkan arsitektur solusi IoT industri:

Arsitektur yang disederhanakan yang menunjukkan opsi Azure dan Microsoft Fabric:

Diagram arsitektur IoT industri sederhana.

Arsitektur terperinci yang memperlihatkan opsi Azure:

Diagram arsitektur IoT industri.

Tabel berikut ini menjelaskan komponen utama dalam solusi ini:

Komponen Deskripsi
Aset industri Sekumpulan lini produksi yang diaktifkan OPC UA yang dihosting dalam kontainer Docker.
Operasi Azure IoT Operasional Azure IoT adalah data plane terpadu untuk edge. Ini termasuk sekumpulan layanan data modular, dapat diskalakan, dan sangat tersedia yang berjalan pada kluster Kubernetes tepi dengan dukungan Azure Arc.
Gateway data Gateway ini menghubungkan sumber data lokal Anda, seperti SAP, ke Azure Logic Apps di cloud.
Azure Event Hubs Broker pesan cloud yang menerima pesan pub/sub OPC UA dari gateway edge dan menyimpannya hingga diambil oleh pelanggan.
Azure Data Explorer Database rangkaian waktu dan layanan dasbor front-end untuk analitik cloud tingkat lanjut, termasuk deteksi dan prediksi anomali bawaan.
Aplikasi Logika Azure Azure Logic Apps adalah platform cloud yang dapat Anda gunakan untuk membuat dan menjalankan alur kerja otomatis dengan sedikit atau tanpa kode.
Azure Arc Layanan cloud ini digunakan untuk mengelola kluster Kubernetes lokal di tepi.
Azure Managed Grafana Azure Managed Grafana adalah platform visualisasi data yang dibangun di atas perangkat lunak Grafana oleh Grafana Labs. Grafana adalah layanan terkelola penuh yang dihosting dan didukung Microsoft.
Microsoft Power BI Microsoft Power BI adalah kumpulan layanan perangkat lunak SaaS, aplikasi, dan konektor yang bekerja sama untuk mengubah sumber data Anda yang tidak terkait menjadi wawasan yang koheren, imersif secara visual, dan interaktif.
Layanan Bidang Microsoft Dynamics 365 Microsoft Dynamics 365 Field Service adalah solusi SaaS turnkey untuk mengelola permintaan layanan lapangan.
Komandan Cloud UA Aplikasi referensi sumber terbuka ini mengonversi pesan yang dikirim ke broker MQTT atau Kafka (mungkin di cloud) menjadi permintaan Klien/Server OPC UA untuk server AGEN AGENI OPC yang terhubung. Aplikasi berjalan dalam kontainer Docker.
Tindakan Cloud UA Aplikasi cloud referensi sumber terbuka ini meminta Azure Data Explorer untuk nilai data tertentu. Nilai data adalah tekanan di salah satu mesin lini produksi yang disimulasikan. Ini memanggil UA Cloud Commander melalui Azure Event Hubs ketika ambang batas tertentu tercapai (4.000 mbar). UA Cloud Commander kemudian memanggil metode OpenPressureReliefValve pada komputer melalui OPC UA.
Pustaka Cloud UA Pustaka Cloud UA adalah toko online Model Informasi OPC UA, yang dihosting oleh OPC Foundation.
Penerjemah UA Edge Aplikasi referensi konektivitas industri sumber terbuka ini diterjemahkan dari antarmuka aset milik ke OPC UA. Solusi ini menggunakan deskripsi W3C Web of Things sebagai skema untuk menggambarkan antarmuka aset industri.

Catatan

Dalam penyebaran dunia nyata, sesuatu yang sangat penting saat membuka katup bantuan tekanan akan dilakukan secara lokal. Contoh ini hanya menunjukkan cara mencapai perulangan umpan balik digital.

Simulasi lini produksi

Solusi ini menggunakan simulasi lini produksi yang terdiri dari beberapa stasiun, menggunakan model informasi OPC UA stasiun, dan sistem eksekusi manufaktur sederhana (MES). Baik stasiun maupun MES ditampung untuk memudahkan penyebaran.

Simulasi dikonfigurasi untuk menyertakan dua lini produksi. Konfigurasi defaultnya adalah:

Lini Produksi Waktu Siklus Ideal (dalam detik)
Munich 6
Seattle 10
Nama Shift Pangkal End
Pagi 07:00 14.00
Siang 15.00 22.00
Malam 23.00 06:00

Catatan

Waktu pergeseran berada di waktu lokal, khususnya zona waktu Virtual Machine (VM) yang menghosting simulasi lini produksi diatur ke.

Server agen pengguna OPC stasiun menggunakan ID simpul AGEN PENGGUNA OPC berikut untuk telemetri ke cloud:

  • i=379 - nomor seri produk yang diproduksi
  • i=385 - jumlah produk yang diproduksi
  • i=391 - jumlah produk yang dibuang
  • i=398 - waktu berjalan
  • i=399 - waktu yang rusak
  • i=400 - status (0=station ready to do work, 1=work in progress, 2=work done and good part manufactured, 3=work done and scrap manufactured, 4=station in fault state)
  • i=406 - konsumsi energi
  • i=412 - waktu siklus yang ideal
  • i=418 - waktu siklus aktual
  • i=434 - tekanan

Perulangan umpan balik digital dengan UA Cloud Commander dan UA Cloud Action

Solusi ini menggunakan perulangan umpan balik digital untuk mengelola tekanan di stasiun yang disimulasikan. Untuk mengimplementasikan perulangan umpan balik, solusi memicu perintah dari cloud di salah satu server AGEN OPC dalam simulasi. Pemicu diaktifkan ketika data tekanan rangkaian waktu yang disimulasikan mencapai ambang batas tertentu. Anda dapat melihat tekanan mesin rakitan di dasbor Azure Data Explorer. Tekanan dilepaskan secara berkala untuk lini produksi Seattle.

Menginstal simulasi lini produksi dan layanan cloud

Pilih tombol Sebarkan untuk menyebarkan semua sumber daya yang diperlukan ke langganan Azure Anda:

Sebarkan ke Azure

Proses penyebaran meminta Anda untuk memberikan kata sandi untuk komputer virtual (VM) yang menghosting simulasi lini produksi dan infrastruktur Edge. Kata sandi harus mencakup tiga dari: karakter huruf kecil, karakter huruf besar, angka, dan karakter khusus. Panjang kata sandi harus antara 12 dan 72 karakter.

Catatan

Untuk mengurangi biaya, penyebaran membuat satu VM Windows 11 Enterprise untuk simulasi lini produksi dan infrastruktur Edge. Dalam skenario produksi, simulasi lini produksi tidak diperlukan, dan untuk OS dasar Anda harus menggunakan Saluran Layanan Jangka Panjang Windows IoT Enterprise.

Ketika penyebaran selesai, gunakan RDP untuk menyambungkan ke VM Windows yang disebarkan. Anda dapat mengunduh file RDP dari opsi Sambungkan di halaman untuk VM Anda di portal Azure. Masuk menggunakan kredensial yang Anda berikan selama penyebaran, buka prompt perintah Windows, dan gunakan perintah berikut untuk menginstal Subsistem Windows untuk Linux (WSL):

wsl --install

Setelah perintah selesai, boot ulang VM Anda dan masuk lagi. Prompt perintah menyelesaikan penginstalan WSL dan Anda diminta untuk memasukkan nama pengguna dan kata sandi baru untuk WSL. Kemudian, di WSL, gunakan perintah berikut untuk menginstal K3S, runtime Kubernetes ringan:

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

VM Anda sekarang siap untuk menjalankan simulasi lini produksi.

Menjalankan simulasi lini produksi

Di VM, buka prompt perintah Windows, masukkan wsl, dan tekan Enter. Navigasi ke /mnt/c/ManufacturingOntologies-main/Tools/FactorySimulation direktori dan jalankan skrip shell StartSimulation :

sudo ./StartSimulation.sh "<Your Event Hubs connection string>"

<Your Event Hubs connection string>adalah string koneksi namespace Layanan Pusat Aktivitas Anda. Untuk mempelajari selengkapnya, lihat Mendapatkan string koneksi Azure Event Hubs. String koneksi terlihat seperti:Endpoint=sb://ontologies.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abcdefgh=

Catatan

Jika alamat IP eksternal untuk layanan Kubernetes menunjukkan sebagai <pending>, gunakan perintah berikut untuk menetapkan alamat traefik IP eksternal layanan: sudo kubectl patch service <theService> -n <the service's namespace> -p '{"spec": {"type": "LoadBalancer", "externalIPs":["<the traefik external IP address>"]}}'.

Tip

Untuk mencegah WSL dan K3s dimatikan secara otomatis, biarkan prompt perintah WSL Anda terbuka.

Pustaka Cloud UA

Untuk membaca Model Informasi OPC UA langsung dari Azure Data Explorer, Anda dapat mengimpor simpul AGEN PENGGUNA OPC yang ditentukan dalam Model Informasi OPC UA ke dalam tabel. Anda dapat menggunakan informasi yang diimpor untuk mencari lebih banyak metadata dalam kueri.

Pertama, konfigurasikan kebijakan callout Azure Data Explorer untuk Pustaka Cloud UA dengan menjalankan kueri berikut di kluster Azure Data Explorer Anda. Sebelum memulai, pastikan Anda adalah anggota peran AllDatabasesAdmin di kluster, yang dapat Anda konfigurasikan di portal Azure dengan menavigasi ke halaman Izin untuk kluster Azure Data Explorer Anda.

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

Kemudian, jalankan kueri Azure Data Explorer berikut dari portal Azure. Dalam kueri:

  • Ganti <INFORMATION_MODEL_IDENTIFIER_FROM_THE_UA_CLOUD_LIBRARY> dengan ID unik Model Informasi yang ingin Anda impor dari Pustaka Cloud UA. Anda dapat menemukan ID ini di URL halaman Model Informasi di Pustaka Cloud UA. Misalnya, ID nodeset stasiun yang digunakan tutorial ini adalah 1627266626.
  • Ganti <HASHED_CLOUD_LIBRARY_CREDENTIALS> dengan header otorisasi dasar memiliki kredensial Pustaka Cloud UA Anda. Gunakan alat seperti https://www.debugbear.com/basic-auth-header-generator untuk menghasilkan hash. Anda juga dapat menggunakan perintah bash berikut: echo -n 'username:password' | base64.
let uri='https://uacloudlibrary.opcfoundation.org/infomodel/download/<INFORMATION_MODEL_IDENTIFIER_FROM_THE_UA_CLOUD_LIBRARY>';
let headers=dynamic({'accept':'text/plain', 'Authorization':'Basic <HASHED_CLOUD_LIBRARY_CREDENTIALS>'});
evaluate http_request(uri, headers)
| 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

Untuk melihat representasi grafis Model Informasi OPC UA, Anda dapat menggunakan alat Kusto Explorer. Untuk merender model stasiun, jalankan kueri berikut di Kusto Explorer. Untuk hasil terbaik, ubah opsi menjadi Layout dan menjadi Labelsname:Grouped

let uri='https://uacloudlibrary.opcfoundation.org/infomodel/download/1627266626';
let headers=dynamic({'accept':'text/plain', 'Authorization':'Basic <HASHED_CLOUD_LIBRARY_CREDENTIALS>'});
let variables = evaluate http_request(uri, headers)
    | 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)
    | 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

Grafik Model Info stasiun.

Secara opsional menyebarkan Operasi Azure IoT di tepi

Secara default, simulasi lini produksi mengirimkan data langsung ke titik akhir hub data di namespace Layanan Azure Event Hubs Anda.

Untuk mengelola proses ini, Anda dapat menggunakan Operasi Azure IoT di tepi sebagai gantinya. Operasional Azure IoT adalah data plane terpadu untuk edge. Ini termasuk sekumpulan layanan data modular, dapat diskalakan, dan sangat tersedia yang berjalan pada kluster Kubernetes tepi dengan dukungan Azure Arc.

Sebelum Anda menyebarkan Operasi Azure IoT, konfirmasikan bahwa Anda memulai simulasi lini produksi. Kemudian, ikuti langkah-langkah ini dalam detail penyebaran Azure IoT Operations.

Tip

Anda dapat menggunakan instans VM dan K3S yang Anda sebarkan sebelumnya dalam tutorial ini untuk menyebarkan dan menjalankan Operasi Azure IoT.

Mengonfigurasi penyebaran Operasi Azure IoT Anda

Anda dapat mengonfigurasi penyebaran Azure IoT Operations dengan menggunakan antarmuka pengguna web pengalaman operasi. Tambahkan titik akhir aset, aset, dan aliran data untuk memproses data dari simulasi lini produksi dan merutekannya ke hub data di namespace Layanan Azure Event Hubs Anda.

Dalam penyebaran Operasi Azure IoT Anda, buat titik akhir aset yang menentukan koneksi ke server OPC UA berikut dalam simulasi produksi:

  • opc.tcp://assembly.munich/
  • opc.tcp://test.munich/
  • opc.tcp://packaging.munich/
  • opc.tcp://assembly.seattle/
  • opc.tcp://test.seattle/
  • opc.tcp://packaging.seattle/

Menggunakan pemantauan kondisi kasus, perhitungan OEE, deteksi anomali, dan prediksi di Azure Data Explorer

Untuk mempelajari cara membuat dasbor tanpa kode untuk pemantauan kondisi, hasil, atau prediksi pemeliharaan, atau deteksi anomali, lihat dokumentasi Azure Data Explorer. Ada juga dasbor sampel yang dapat Anda sebarkan. Untuk mempelajari cara menyebarkan dasbor, lihat Memvisualisasikan data dengan dasbor > Azure Data Explorer yang dibuat dari file. Setelah Anda mengimpor dasbor, perbarui sumber datanya. Tentukan titik akhir HTTPS kluster server Azure Data Explorer Anda di sudut kanan atas dasbor. Titik akhir HTTPS terlihat seperti: https://<ADXInstanceName>.<AzureRegion>.kusto.windows.net/.

Cuplikan layar dasbor Azure Data Explorer dengan data sampel.

Catatan

Untuk menampilkan OEE untuk shift tertentu, pilih Rentang Waktu Kustom di menu drop-down Rentang Waktu di sudut kiri atas Dasbor Azure Data Explorer dan masukkan tanggal dan waktu dari awal hingga akhir shift yang Anda minati.

Merender grafik model Unified NameSpace (UNS) dan ISA-95 bawaan di Kusto Explorer

Solusi referensi ini mengimplementasikan Unified Namespace (UNS), berdasarkan metadata OPC UA yang dikirim ke database seri waktu Azure Data Explorer di cloud. Metadata OPC UA ini mencakup hierarki aset ISA-95. Anda dapat memvisualisasikan grafik yang dihasilkan di alat Kusto Explorer.

Tambahkan koneksi baru ke instans Azure Data Explorer Anda lalu jalankan kueri berikut di Kusto Explorer:

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

Untuk hasil terbaik, ubah opsi menjadi LayoutGrouped.

Grafik yang memperlihatkan hierarki aset ISA-95.

Menggunakan Azure Managed Grafana

Anda juga dapat menggunakan Azure Managed Grafana untuk membuat dasbor di Azure untuk solusi yang dijelaskan dalam artikel ini. Gunakan Grafana dalam manufaktur untuk membuat dasbor yang menampilkan data real-time. Langkah-langkah berikut menunjukkan Anda mengaktifkan Grafana di Azure, dan membuat dasbor dengan data lini produksi yang disimulasikan dari Azure Data Explorer.

Mengaktifkan layanan Azure Managed Grafana

Untuk membuat layanan Azure Managed Grafana, dan konfigurasikan dengan izin untuk mengakses database ontologi:

  1. Di portal Azure, cari Grafana, lalu pilih layanan Azure Managed Grafana.

  2. Untuk membuat layanan, pada halaman Buat Ruang Kerja Grafana masukkan nama instans Anda. Pilih semua opsi default.

  3. Setelah layanan dibuat, pastikan instans Grafana Anda memiliki identitas terkelola yang ditetapkan sistem, navigasikan ke bilah Identitas instans Azure Managed Grafana Anda di portal Azure. Jika identitas terkelola yang ditetapkan sistem tidak diaktifkan, aktifkan. Catat nilai ID Objek (utama), Anda membutuhkannya nanti.

  4. Untuk memberikan izin bagi identitas terkelola untuk mengakses database ontologi di Azure Data Explorer:

    1. Navigasikan ke bilah Izin di instans Azure Data Explorer Anda di portal Azure.
    2. Pilih Tambahkan > AllDatabasesViewer.
    3. Cari dan pilih nilai ID Objek (utama), Anda membuat catatan sebelumnya.

Menambahkan sumber data baru di Grafana

Tambahkan sumber data baru untuk menyambungkan ke Azure Data Explorer. Dalam sampel ini, Anda menggunakan identitas terkelola yang ditetapkan sistem untuk menyambungkan ke Azure Data Explorer. Untuk mengonfigurasi autentikasi, ikuti langkah-langkah berikut:

Untuk menambahkan sumber data di Grafana, ikuti langkah-langkah berikut:

  1. Navigasi ke URL titik akhir untuk instans Grafana Anda. Anda dapat menemukan URL titik akhir di halaman Azure Managed Grafana untuk instans Anda di portal Azure. Kemudian masuk ke instans Grafana Anda.

  2. Di dasbor > Grafana, pilih Sumber data Koneksi, lalu pilih Tambahkan sumber data baru. Gulir ke bawah dan pilih Sumber Data Azure Data Explorer.

  3. Pilih Identitas Terkelola sebagai menu autentikasi. Kemudian tambahkan URL kluster Azure Data Explorer Anda. Anda dapat menemukan URL di menu instans Azure Data Explorer di portal Azure di bawah URI.

  4. Pilih Simpan dan uji untuk memverifikasi koneksi sumber data.

Mengimpor dasbor sampel

Sekarang Anda siap untuk mengimpor dasbor sampel.

  1. Unduh dasbor Dasbor Manufaktur Grafana Sampel.

  2. Di menu Grafana, navigasi ke Dasbor lalu pilih Impor Baru>.

  3. Pilih Unggah file JSON dasbor dan pilih file samplegrafanadashboard.json yang Anda unduh sebelumnya. Pilih impor.

  4. Pada panel Stasiun OEE, pilih Edit lalu pilih sumber Data Azure Data Explorer yang Anda siapkan sebelumnya. Kemudian pilih KQL di panel kueri dan tambahkan kueri berikut: print round (CalculateOEEForStation('${Station}', '${Location}', '${CycleTime}', '${__from:date:iso}', '${__to:date:iso}') * 100, 2). Pilih Terapkan untuk menerapkan perubahan Anda dan kembali ke dasbor.

  5. Pada panel Baris OEE, pilih Edit lalu pilih sumber Data Azure Data Explorer yang Anda siapkan sebelumnya. Kemudian pilih KQL di panel kueri dan tambahkan kueri berikut: print round(CalculateOEEForLine('${Location}', '${CycleTime}', '${__from:date:iso}', '${__to:date:iso}') * 100, 2). Pilih Terapkan untuk menerapkan perubahan Anda dan kembali ke dasbor.

  6. Pada panel Produk yang dibuang, pilih Edit lalu pilih sumber Data Azure Data Explorer yang Anda siapkan sebelumnya. Kemudian pilih KQL di panel kueri dan tambahkan kueri berikut: opcua_metadata_lkv| where Name contains '${Station}'| where Name contains '${Location}'| join kind=inner (opcua_telemetry| where Name == "NumberOfDiscardedProducts"| where Timestamp > todatetime('${__from:date:iso}') and Timestamp < todatetime('${__to:date:iso}')) on DataSetWriterID| extend numProd = toint(Value)| summarize max(numProd). Pilih Terapkan untuk menerapkan perubahan Anda dan kembali ke dasbor.

  7. Pada panel Produk yang diproduksi, pilih Edit lalu pilih sumber Data Azure Data Explorer yang Anda siapkan sebelumnya. Kemudian pilih KQL di panel kueri dan tambahkan kueri berikut: opcua_metadata_lkv| where Name contains '${Station}'| where Name contains '${Location}'| join kind=inner (opcua_telemetry| where Name == "NumberOfManufacturedProducts"| where Timestamp > todatetime('${__from:date:iso}') and Timestamp < todatetime('${__to:date:iso}')) on DataSetWriterID| extend numProd = toint(Value)| summarize max(numProd). Pilih Terapkan untuk menerapkan perubahan Anda dan kembali ke dasbor.

  8. Pada panel Konsumsi Energi, pilih Edit lalu pilih sumber Data Azure Data Explorer yang Anda siapkan sebelumnya. Kemudian pilih KQL di panel kueri dan tambahkan kueri berikut: opcua_metadata_lkv| where Name contains '${Station}'| where Name contains '${Location}'| join kind=inner (opcua_telemetry | where Name == "Pressure" | where Timestamp > todatetime('${__from:date:iso}') and Timestamp < todatetime('${__to:date:iso}')) on DataSetWriterID| extend energy = todouble(Value)| summarize avg(energy)); print round(toscalar(averageEnergyConsumption) * 1000, 2). Pilih Terapkan untuk menerapkan perubahan Anda dan kembali ke dasbor.

  9. Pada panel Tekanan, pilih Edit lalu pilih sumber Data Azure Data Explorer yang Anda siapkan sebelumnya. Kemudian pilih KQL di panel kueri dan tambahkan kueri berikut: opcua_metadata_lkv| where Name contains '${Station}'| where Name contains '${Location}'| join kind=inner (opcua_telemetry | where Name == "Pressure" | where Timestamp > todatetime('${__from:date:iso}') and Timestamp < todatetime('${__to:date:iso}')) on DataSetWriterID| extend NodeValue = toint(Value)| project Timestamp1, NodeValue. Pilih Terapkan untuk menerapkan perubahan Anda dan kembali ke dasbor.

Mengonfigurasi pemberitahuan

Di Grafana, Anda juga dapat membuat pemberitahuan. Dalam contoh ini, Anda membuat pemberitahuan OEE rendah untuk salah satu lini produksi.

  1. Di menu Grafana, navigasikan ke **Aturan pemberitahuan pemberitahuan.>

  2. Pilih pengaturan peringatan baru .

  3. Beri nama pemberitahuan Anda dan pilih Azure Data Explorer sebagai sumber data. Pilih KQL di panel Tentukan kueri dan kondisi pemberitahuan.

  4. Di bidang kueri, masukkan kueri berikut ini. Contoh ini menggunakan lini produksi Seattle:

    let oee = CalculateOEEForStation("assembly", "seattle", 10000, now(), now(-1h));
    print round(oee * 100, 2)
    
  5. Pilih Atur sebagai kondisi pemberitahuan.

  6. Gulir ke bawah ke bagian Ekspresi . Hapus ekspresi Kurangi, Anda tidak memerlukannya.

  7. Untuk ambang pemberitahuan, pilih A sebagai Input. Pilih IS BELOW dan masukkan 10.

  8. Gulir ke bawah ke bagian Atur perilaku evaluasi. Buat Folder baru untuk menyimpan pemberitahuan Anda. Buat grup Evaluasi baru dan tentukan 2m.

  9. Pilih tombol Simpan aturan dan keluar di kanan atas.

Dalam gambaran umum pemberitahuan, Anda sekarang dapat melihat bahwa pemberitahuan dipicu saat OEE Anda kurang dari 10.

Menyambungkan solusi referensi ke Microsoft Power BI

Untuk menyambungkan solusi referensi Power BI, Anda memerlukan akses ke langganan Power BI.

Untuk membuat dasbor Power BI, selesaikan langkah-langkah berikut ini:

  1. Instal aplikasi desktop Power BI.

  2. Masuk ke aplikasi desktop Power BI menggunakan pengguna dengan akses ke langganan Power BI.

  3. Di portal Azure, navigasikan ke database Azure Data Explorer Anda yang disebut ontologi dan tambahkan izin Admin Database ke pengguna ID Microsoft Entra dengan akses hanya ke langganan yang digunakan untuk instans solusi referensi ini yang Anda sebarkan. Jika perlu, buat pengguna baru di MICROSOFT Entra ID.

  4. Dari Power BI, buat laporan baru dan pilih data rangkaian waktu Azure Data Explorer sebagai sumber data: Dapatkan data > Azure > Data Explorer (Kusto).

  5. Di jendela popup, masukkan titik akhir Azure Data Explorer kluster Anda (https://<your cluster name>.<location>.kusto.windows.net), nama database (ontologies), dan kueri berikut:

    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. Masuk ke Azure Data Explorer menggunakan pengguna ID Microsoft Entra yang Anda berikan izin untuk mengakses database Azure Data Explorer sebelumnya.

    Catatan

    Jika kolom Tanda Waktu berisi nilai yang sama untuk semua baris, ubah baris terakhir kueri sebagai berikut: | project Timestamp1, NodeValue.

  7. Pilih Muat. Tindakan ini mengimpor waktu siklus aktual stasiun Assembly dari lini produksi Munich selama satu jam terakhir.

  8. Table viewDari , pilih kolom NodeValue dan pilih Jangan ringkas di item menu Ringkasan.

  9. Beralih ke Report view.

  10. Di bawah Visualisasi, pilih visualisasi Bagan Garis.

  11. Di bawah Visualisasi, pindahkan Timestamp dari Data sumber ke X-axis, pilih, dan pilih Tanda Waktu.

  12. Di bawah Visualisasi, pindahkan NodeValue dari Data sumber ke Y-axis, pilih, dan pilih Median.

  13. Simpan laporan baru Anda.

Tip

Gunakan pendekatan yang sama untuk menambahkan data lain dari Azure Data Explorer ke laporan Anda.

Cuplikan layar tampilan Power BI.

Menyambungkan solusi referensi ke Microsoft Dynamics 365 Field Service

Integrasi ini menampilkan skenario berikut:

  • Unggah aset dari solusi referensi ontologi manufaktur ke Dynamics 365 Field Service.
  • Buat pemberitahuan di Dynamics 365 Field Service saat ambang batas tertentu pada data telemetri solusi referensi ontologi manufaktur tercapai.

Integrasi menggunakan Azure Logics Apps. Dengan Logic Apps, Anda dapat menggunakan alur kerja tanpa kode untuk menghubungkan aplikasi dan layanan kritik bisnis. Contoh ini menunjukkan kepada Anda cara mengambil data dari Azure Data Explorer dan memicu tindakan di Dynamics 365 Field Service.

Jika Anda belum menjadi pelanggan Dynamics 365 Field Service, aktifkan uji coba 30 hari.

Tip

Untuk menghindari kebutuhan untuk mengonfigurasi autentikasi lintas penyewa, gunakan ID Microsoft Entra yang sama dengan yang Anda gunakan untuk menyebarkan solusi referensi ontologi manufaktur.

Membuat alur kerja Azure Logic Apps untuk membuat aset di Dynamics 365 Field Service

Untuk mengunggah aset dari solusi referensi ontologi manufaktur ke Dynamics 365 Field Service:

  1. Buka portal Azure dan buat sumber daya aplikasi logika baru.

  2. Beri nama Azure Logic Apps, dan letakkan di grup sumber daya yang sama dengan solusi referensi ontologi manufaktur.

  3. Pilih Alur Kerja.

  4. Beri nama alur kerja Anda. Untuk skenario ini, gunakan jenis status stateful karena aset bukan aliran data.

  5. Di perancang alur kerja, pilih Tambahkan pemicu. Buat pemicu Pengulangan untuk dijalankan setiap hari. Anda dapat mengubah pemicu agar lebih sering terjadi.

  6. Tambahkan tindakan setelah pemicu pengulangan. Di Tambahkan tindakan, cari Azure Data Explorer dan pilih perintah Jalankan kueri KQL. Biarkan OAuth autentikasi default. Masukkan URL kluster Azure Data Explorer Anda dan ontologies sebagai nama database. Dalam kueri ini, Anda memeriksa jenis aset yang Anda miliki. Gunakan kueri berikut untuk mendapatkan aset dari solusi referensi ontologi manufaktur:

    opcua_telemetry
    | join kind=inner (    
        opcua_metadata
        | distinct Name, DataSetWriterID
        | extend AssetList = split(Name, ';')
        | extend AssetName = tostring(AssetList[0])
    ) on DataSetWriterID
    | project AssetName
    | summarize by AssetName
    
  7. Untuk memasukkan data aset Anda ke Dynamics 365 Field Service, Anda perlu menyambungkan ke Microsoft Dataverse. Di Tambahkan tindakan, cari Dataverse dan pilih perintah Tambahkan baris baru. Biarkan OAuth autentikasi default. Sambungkan ke instans Dynamics 365 Field Service Anda dan gunakan konfigurasi berikut:

    • Di bidang Nama Tabel, pilih Aset Pelanggan
    • Di bidang Nama, pilih Masukkan data dari langkah sebelumnya, dan pilih AssetName.

    Cuplikan layar perancang alur kerja yang memperlihatkan cara menambahkan nama aset ke tabel.

  8. Simpan alur kerja Anda dan jalankan. Anda dapat melihat aset baru dibuat di Dynamics 365 Field Service:

    Cuplikan layar yang memperlihatkan definisi aset baru dalam tabel aset layanan lapangan.

Membuat alur kerja Azure Logic Apps untuk membuat pemberitahuan di layanan Dynamics 365 Field

Alur kerja ini membuat pemberitahuan di Dynamics 365 Field Service, ketika FaultyTime untuk aset dalam solusi referensi ontologi manufaktur mencapai ambang batas.

  1. Untuk mengambil data, buat fungsi Azure Data Explorer. Di panel kueri Azure Data Explorer di portal Azure, jalankan kode berikut untuk membuat FaultyFieldAssets fungsi di database ontologi:

    .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. Buat alur kerja stateful baru di Aplikasi Logika Anda.

  3. Di perancang alur kerja, buat pemicu pengulangan yang berjalan setiap tiga menit. Kemudian tambahkan tindakan dan pilih tindakan Jalankan kueri KQL.

  4. Masukkan URL Kluster Azure Data Explorer Anda, lalu masukkan ontologi sebagai nama database dan gunakan FaultyFieldAssets nama fungsi sebagai kueri.

  5. Untuk memasukkan data aset Anda ke Dynamics 365 Field Service, Anda perlu menyambungkan ke Microsoft Dataverse. Di Tambahkan tindakan, cari Dataverse dan pilih perintah Tambahkan baris baru. Biarkan OAuth autentikasi default. Sambungkan ke instans Dynamics 365 Field Service Anda dan gunakan konfigurasi berikut:

    • Di bidang Nama Tabel, pilih Pemberitahuan IoT
    • Di bidang Deskripsi, gunakan Masukkan data dari langkah sebelumnya, untuk membuat pesan "[AssetName] memiliki [Nama] dari [Nilai]". AssetName, Name, dan Value adalah bidang dari langkah sebelumnya.
    • Di bidang Waktu Pemberitahuan, pilih Masukkan data dari langkah sebelumnya, dan pilih Tanda Waktu.
    • Di bidang Jenis Pemberitahuan, pilih Anomali.

    Cuplikan layar yang memperlihatkan konfigurasi aplikasi logika untuk membuat pemberitahuan.

  6. Jalankan alur kerja dan untuk melihat pemberitahuan baru yang dihasilkan di dasbor Pemberitahuan IoT Dynamics 365 Field Service Anda:

    Cuplikan layar pemberitahuan di Dynamics 365 FS.