Tutorial: Menerapkan arsitektur solusi referensi Azure Industrial IoT

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 OEE, prakiraan, dan deteksi anomali. Dari wawasan yang diperoleh dari kasus penggunaan ini, pada langkah kedua perulangan umpan balik digital dapat dibuat yang kemudian dapat menerapkan pengoptimalan dan perubahan lain pada proses produksi.

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

Arsitektur Terpadu Komunikasi Platform Terbuka IEC 62541 (OPC UA)

Solusi ini menggunakan Arsitektur Terpadu (UA) IEC 62541 Open Platform Communications (OPC) untuk semua data Teknologi Operasional (OT). Standar ini dijelaskan di sini.

Arsitektur solusi referensi

Arsitektur Yang Disederhanakan (Opsi Azure dan Fabric):

Diagram arsitektur IIoT sederhana.

Arsitektur Terperinci (Khusus Azure):

Diagram arsitektur IIoT.

Komponen

Berikut adalah komponen yang terlibat dalam solusi ini:

Komponen Deskripsi
Aset Industri Serangkaian lini produksi yang diaktifkan OPC-UA yang disimulasikan yang dihosting dalam kontainer Docker
Operasi Azure IoT Operasi Azure IoT adalah bidang data terpadu untuk tepi. Ini termasuk sekumpulan layanan data modular, dapat diskalakan, dan sangat tersedia yang berjalan pada kluster Kubernetes tepi dengan dukungan Azure Arc.
Data Gateway Gateway ini menghubungkan sumber data lokal Anda (seperti SAP) ke Azure Logic Apps di cloud.
Azure Kubernetes Services Edge Essentials Implementasi Kubernetes ini berjalan di Edge. Ini menyediakan kluster Kubernetes tunggal dan multi-simpul untuk konfigurasi Edge yang toleran terhadap kesalahan. K3S dan K8S didukung. Ini berjalan pada perangkat keras yang disematkan atau kelas PC, seperti gateway industri.
Azure Event Hubs Broker pesan cloud yang menerima pesan OPC UA PubSub 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. Beban kerja baru dapat disebarkan melalui Flux.
Azure Storage Layanan cloud ini digunakan untuk mengelola penyimpanan sertifikat OPC UA dan pengaturan beban kerja Edge Kubernetes.
Azure Managed Grafana Azure Managed Grafana adalah platform visualisasi data yang dibangun di atas perangkat lunak Grafana oleh Grafana Labs. Grafana dibangun sebagai layanan terkelola penuh yang dihosting dan didukung oleh 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 Message Queue Telemetry Transport (MQTT) atau broker Kafka (mungkin di cloud) menjadi permintaan OPC UA Client/Server untuk server OPC UA 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 di sini.
Penerjemah UA Edge Aplikasi referensi konektivitas industri sumber terbuka ini diterjemahkan dari antarmuka aset milik ke OPC UA menggunakan Deskripsi Hal Web W3C (WoT) 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. Ini hanyalah contoh sederhana tentang cara mencapai perulangan umpan balik digital.

Penyimpanan sertifikat OPC UA berbasis cloud dan penyimpanan yang bertahan

Ketika produsen menjalankan aplikasi OPC UA, file konfigurasi OPC UA, kunci, dan sertifikat mereka harus dipertahankan. Meskipun Kubernetes memiliki kemampuan untuk mempertahankan file-file ini dalam volume, tempat yang lebih aman untuk mereka adalah cloud, terutama pada kluster node tunggal di mana volume akan hilang ketika node gagal. Skenario ini adalah mengapa aplikasi OPC UA yang digunakan dalam solusi ini menyimpan file konfigurasi, kunci, dan sertifikat mereka di cloud. Pendekatan ini juga memiliki keuntungan menyediakan satu lokasi untuk sertifikat yang saling tepercaya untuk semua aplikasi OPC UA.

Pustaka Cloud UA

Anda dapat membaca Model Informasi OPC UA langsung dari Azure Data Explorer. Anda dapat melakukan ini dengan mengimpor simpul AGEN PENGGUNA OPC yang ditentukan dalam Model Informasi OPC UA ke dalam tabel untuk mencari lebih banyak metadata dalam kueri.

Pertama, konfigurasikan kebijakan callout Azure Data Explorer (ADX) untuk Pustaka Cloud UA dengan menjalankan kueri berikut pada kluster ADX Anda (pastikan Anda adalah administrator kluster ADX, yang dapat dikonfigurasi di bawah Izin di tab ADX di portal Azure):

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

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

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

Anda perlu menyediakan dua hal dalam kueri ini:

  • ID unik Model Informasi dari Pustaka Cloud UA dan masukkan ke dalam <pengidentifikasi model informasi sisipan dari pustaka cloud di sini> bidang kueri ADX.
  • Kredensial Pustaka Cloud UA Anda (dihasilkan selama pendaftaran) hash header otorisasi dasar dan sisipkan ke dalam <hash sisipkan kredensial pustaka cloud Anda di sini> dari bidang kueri ADX. Gunakan alat seperti https://www.debugbear.com/basic-auth-header-generator untuk menghasilkan ini.

Misalnya, untuk merender Model Informasi Stasiun Simulasi Lini Produksi OPC UA Server di alat Kusto Explorer yang tersedia untuk diunduh di sini, jalankan kueri berikut:

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

Untuk hasil terbaik, ubah opsi menjadi Layout dan menjadi Lablesname.Grouped

Grafik Model Info Stasiun.

Simulasi lini produksi

Solusi ini menggunakan simulasi lini produksi yang terdiri dari beberapa stasiun, menggunakan model informasi OPC UA, dan Sistem Eksekusi Manufaktur sederhana (MES). Baik Stasiun maupun MES ditampung agar mudah disebarkan.

Konfigurasi simulasi default

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.

ID simpul OPC UA dari server agen pengguna OPC Stasiun

ID Simpul OPC UA berikut digunakan di Station OPC UA Server 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

Implementasi referensi ini mengimplementasikan "perulangan umpan balik digital", khususnya memicu perintah pada salah satu server AGEN OPC dalam simulasi dari cloud, berdasarkan data rangkaian waktu yang mencapai ambang batas tertentu (tekanan simulasi). Anda dapat melihat tekanan mesin rakitan di lini produksi Seattle yang dirilis secara berkala di dasbor Azure Data Explorer.

Menginstal simulasi lini produksi dan layanan cloud

Mengklik tombol menyebarkan semua sumber daya yang diperlukan di Microsoft Azure:

Sebarkan ke Azure

Selama penyebaran, Anda harus memberikan kata sandi untuk VM yang digunakan untuk menghosting simulasi lini produksi dan untuk UA Cloud Twin. Kata sandi harus memiliki tiga atribut berikut: Satu karakter huruf kecil, satu karakter huruf besar, satu angka, dan satu karakter khusus. Panjang kata sandi harus antara 12 dan 72 karakter.

Catatan

Untuk menghemat biaya, penyebaran hanya menyebarkan satu VM Windows 11 Enterprise untuk simulasi lini produksi dan OS dasar untuk instans Azure Kubernetes Services Edge Essentials. Dalam skenario produksi, simulasi lini produksi tidak diperlukan dan untuk OS dasar untuk instans Azure Kubernetes Services Edge Essentials, kami merekomendasikan Windows IoT Enterprise Long Term Servicing Channel (LTSC).

Setelah penyebaran selesai, sambungkan ke VM Windows yang disebarkan dengan koneksi RDP (desktop jarak jauh). Anda dapat mengunduh file RDP di halaman portal Azure untuk VM, di bawah opsi Koneksi. Masuk menggunakan kredensial yang Anda berikan selama penyebaran, buka jendela Administrator Powershell, navigasikan ke C:\ManufacturingOntologies-main\Deployment direktori, dan jalankan:

New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json

Setelah perintah selesai, penginstalan Azure Kubernetes Services Edge Essentials selesai dan Anda dapat menjalankan simulasi lini produksi.

Tip

Untuk mendapatkan log dari semua beban kerja dan layanan Kubernetes Anda kapan saja, jalankan Get-AksEdgeLogs dari jendela Administrator Powershell.

Untuk memeriksa pemanfaatan memori kluster Kubernetes Anda, jalankan Invoke-AksEdgeNodeCommand -Command "sudo cat /proc/meminfo" dari jendela Administrator Powershell.

Menjalankan simulasi lini produksi

Dari VM yang disebarkan, buka prompt perintah Windows. Navigasi ke C:\ManufacturingOntologies-main\Tools\FactorySimulation direktori dan jalankan perintah StartSimulation dengan menyediakan parameter berikut:

    StartSimulation <EventHubsCS> <StorageAccountCS> <AzureSubscriptionID> <AzureTenantID>

Parameter:

Parameter Deskripsi
EventHubCS Salin namespace layanan Azure Event Hubs string koneksi seperti yang dijelaskan di sini.
StorageAccountcs Di portal Azure, navigasikan ke Akun Penyimpanan yang dibuat oleh solusi ini. Pilih "Tombol akses" dari menu navigasi sebelah kiri. Kemudian, salin string koneksi untuk key1.
AzureSubscriptionID Di portal Azure, telusuri Langganan Anda dan salin ID langganan yang digunakan dalam solusi ini.
AzureTenantID Di portal Azure, buka halaman ID Entri Microsoft dan salin ID Penyewa Anda.

Contoh berikut menunjukkan perintah dengan semua parameter:

    StartSimulation Endpoint=sb://ontologies.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abcdefgh= DefaultEndpointsProtocol=https;AccountName=ontologiesstorage;AccountKey=abcdefgh==;EndpointSuffix=core.windows.net 9dd2eft0-3dad-4aeb-85d8-c3adssd8127a 6e660ce4-d51a-4585-80c6-58035e212354

Catatan

Jika Anda memiliki akses ke beberapa langganan Azure, ada baiknya terlebih dahulu masuk ke portal Azure dari VM melalui browser web. Anda juga dapat mengalihkan penyewa Direktori Aktif melalui UI portal Azure (di sudut kanan atas), untuk memastikan Anda masuk ke penyewa yang digunakan selama penyebaran. Setelah masuk, biarkan jendela browser terbuka. Ini memastikan bahwa skrip StartSimulation dapat dengan lebih mudah terhubung ke langganan yang tepat.

Dalam solusi ini, penyimpanan sertifikat aplikasi OPC UA untuk Penerbit Cloud UA, dan penyimpanan MES dan mesin individual lini produksi yang disimulasikan, terletak di cloud di akun Azure Storage yang disebarkan.

Mengaktifkan kluster Kubernetes untuk manajemen melalui Azure Arc

  1. Di komputer virtual Anda, buka jendela Administrator PowerShell. Navigasi ke direktori dan jalankan C:\ManufacturingOntologies-main\DeploymentCreateServicePrincipal. Dua parameter subscriptionID dan tenantID dapat diambil dari portal Azure.

  2. Jalankan notepad aksedge-config.json dan berikan informasi berikut:

    Atribut Deskripsi
    Lokasi Lokasi Azure grup sumber daya Anda. Anda dapat menemukan lokasi ini di portal Azure di bawah grup sumber daya yang disebarkan untuk solusi ini, tetapi menghapus spasi dalam nama! Wilayah yang saat ini didukung adalah eastus, eastus2, westus, westus2, westus3, westeurope, dan northeurope.
    SubscriptionId ID langganan Anda. Di portal Azure, pilih langganan yang Anda gunakan dan salin/tempel ID langganan.
    TenantId ID penyewa Anda. Di portal Azure, pilih Azure Active Directory dan salin/tempel ID penyewa.
    ResourceGroupName Nama grup sumber daya Azure yang disebarkan untuk solusi ini.
    ClientId Nama Azure Service Principal yang sebelumnya dibuat. Azure Kubernetes Services menggunakan perwakilan layanan ini untuk menghubungkan kluster Anda ke Arc.
    ClientSecret Kata sandi untuk Perwakilan Layanan Azure.
  3. Simpan file, tutup jendela PowerShell, dan buka jendela Powershell Administrator baru. Navigasi kembali ke direktori dan jalankan C:\ManufacturingOntologies-main\DeploymentSetupArc.

Anda sekarang dapat mengelola kluster Kubernetes dari cloud melalui instans Azure Arc yang baru disebarkan. Di portal Azure, telusuri ke instans Azure Arc dan pilih Beban Kerja. Token layanan yang diperlukan dapat diambil melalui Get-AksEdgeManagedServiceToken dari jendela Administrator Powershell di komputer virtual Anda.

Cuplikan layar Azure Arc di portal Azure.

Menyebarkan Operasi Azure IoT di tepi

Pastikan Anda telah memulai simulasi lini produksi dan mengaktifkan Kluster Kubernetes untuk manajemen melalui Azure Arc seperti yang dijelaskan dalam paragraf sebelumnya. Lalu, ikuti langkah-langkah berikut:

  1. Dari portal Azure, navigasikan ke Key Vault yang disebarkan dalam solusi referensi ini dan tambahkan identitas Anda sendiri ke kebijakan akses dengan mengklik Access policies, , pilih Keys, Secrets & Certificate Management templat, pilih Next, cari dan pilih identitas pengguna Anda sendiri, pilih Next, biarkan bagian Aplikasi kosong, pilih Next dan terakhir CreateCreate.
  2. Aktifkan lokasi kustom untuk kluster Kubernetes yang terhubung dengan Arc (disebut ontologies_cluster) dengan terlebih dahulu masuk ke langganan Azure Anda melalui az login dari Jendela PowerShell Administrator lalu jalankan az connectedk8s enable-features -n "ontologies_cluster" -g "<resourceGroupName>" --features cluster-connect custom-locations, menyediakan resourceGroupName dari solusi referensi yang disebarkan.
  3. Dari portal Azure, sebarkan Operasi Azure IoT dengan menavigasi ke kluster kubernetes yang terhubung dengan Arc, pilih Extensions, , pilih Azure IoT Operations, dan pilih CreateAdd. Pada halaman Dasar, biarkan semuanya apa adanya. Pada halaman Konfigurasi, atur ke MQ ModeAuto. Anda tidak perlu menyebarkan Programmable Logic Controller (PLC) yang disimulasikan, karena solusi referensi ini sudah berisi simulasi lini produksi yang jauh lebih substansial. Pada halaman Automation, pilih Key Vault yang disebarkan untuk solusi referensi ini lalu salin perintah yang az iot ops init dibuat secara otomatis. Dari VM yang Anda sebarkan, buka Jendela PowerShell Administrator baru, masuk ke langganan Azure yang benar dengan menjalankan az login lalu jalankan az iot ops init perintah dengan argumen dari portal Azure. Setelah perintah selesai, pilih Next lalu tutup wizard.

Mengonfigurasi keamanan dan konektivitas OPC UA untuk Operasi Azure IoT

Pastikan Anda berhasil menyebarkan Operasi Azure IoT dan semua beban kerja Kubernetes aktif dan berjalan dengan menavigasi ke sumber daya Kubernetes dengan dukungan Arc di portal Azure.

  1. Dari portal Azure, navigasikan ke Azure Storage yang disebarkan dalam solusi referensi ini, buka Storage browser lalu Blob containers. Di sini Anda dapat mengakses penyimpanan sertifikat OPC UA berbasis cloud yang digunakan dalam solusi ini. Operasi Azure IoT menggunakan Azure Key Vault sebagai penyimpanan sertifikat OPC UA berbasis cloud sehingga sertifikat perlu disalin:
    1. Dari dalam kontainer Blob browser Azure Storage, untuk setiap lini produksi yang disimulasikan, navigasikan ke folder aplikasi/pki/trusted/certs, pilih assembly, packaging, dan uji file sertifikasi dan unduh.
    2. Masuk ke langganan Azure Anda melalui az login dari Jendela PowerShell Administrator lalu jalankan az keyvault secret set --name "<stationName>-der" --vault-name <keyVaultName> --file .<stationName>.der --encoding hex --content-type application/pkix-cert, menyediakan keyVaultName dan stationName dari masing-masing dari 6 stasiun tempat Anda mengunduh file .der cert di langkah sebelumnya.
  2. Dari VM yang disebarkan, buka perintah Windows dan jalankan kubectl apply -f secretsprovider.yaml dengan file sumber daya penyedia rahasia yang diperbarui yang disediakan di C:\ManufacturingOntologies-main\Tools\FactorySimulation\Station direktori, memberikan nama Key Vault, ID penyewa Azure, dan nama file sertifikasi stasiun dan alias yang Anda unggah ke Azure Key Vault sebelumnya.
  3. Dari browser web, masuk ke https://iotoperations.azure.com, pilih direktori Azure yang tepat (sudut kanan atas) dan mulai membuat aset dari simulasi lini produksi. Solusinya dilengkapi dengan dua jalur produksi (Munich dan Seattle) yang masing-masing terdiri dari tiga stasiun (assembly, test, dan packaging):
    1. Untuk titik akhir aset, masukkan opc.tcp://assembly.munich di bidang URL BROKER OPC UA untuk stasiun perakitan lini produksi Munich, dll. Pilih Do not use transport authentication certificate (autentikasi timbal balik berbasis sertifikat OPC UA antara Operasi Azure IoT dan server AGEN OPC yang terhubung masih digunakan).
    2. Untuk tag aset, pilih Import CSV file dan buka file yang StationTags.csv terletak di C:\ManufacturingOntologies-main\Tools\FactorySimulation\Station direktori.
  4. Dari portal Azure, navigasikan ke Azure Storage yang disebarkan dalam solusi referensi ini, buka Storage browser lalu Blob containers. Untuk setiap baris produksi yang disimulasikan, navigasikan app/pki/rejected/certs ke folder dan unduh file sertifikat Operasi Azure IoT. Kemudian hapus file. Navigasi ke app/pki/trusted/certs folder dan unggah file sertifikat Operasi Azure IoT ke direktori ini.
  5. Dari VM yang disebarkan, buka prompt perintah Windows dan mulai ulang simulasi lini produksi dengan menavigasi ke C:\ManufacturingOntologies-main\Tools\FactorySimulation direktori dan menjalankan perintah StopSimulation , diikuti oleh perintah StartSimulation .
  6. Ikuti instruksi seperti yang dijelaskan di sini untuk memverifikasi bahwa data mengalir dari simulasi lini produksi.
  7. Sebagai langkah terakhir, sambungkan Operasi Azure IoT ke Azure Event Hubs yang disebarkan dalam solusi referensi ini seperti yang dijelaskan di sini.

Menggunakan pemantauan kondisi kasus, menghitung OEE, mendeteksi anomali, dan membuat prediksi di Azure Data Explorer

Anda juga dapat mengunjungi dokumentasi Azure Data Explorer untuk mempelajari cara membuat dasbor tanpa kode untuk pemantauan kondisi, hasil, atau prediksi pemeliharaan, atau deteksi anomali. Kami menyediakan dasbor sampel di sini untuk Anda sebarkan ke Dasbor ADX dengan mengikuti langkah-langkah yang diuraikan di sini. Setelah mengimpor, Anda perlu memperbarui sumber data dasbor dengan menentukan titik akhir HTTPS instans kluster server ADX Anda dalam format https://ADXInstanceName.AzureRegion.kusto.windows.net/ di sudut kanan atas dasbor.

Cuplikan layar dasbor Azure Data Explorer.

Catatan

Jika Anda ingin menampilkan OEE untuk shift tertentu, pilih Custom Time Range di Time Range menu drop-down di sudut kiri atas Dasbor ADX 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 NameSapce (UNS), berdasarkan metadata OPC UA yang dikirim ke database rangkaian waktu di cloud (Azure Data Explorer). Metadata OPC UA ini juga mencakup hierarki aset ISA-95. Grafik yang dihasilkan dapat dengan mudah divisualisasikan di alat Kusto Explorer yang tersedia untuk diunduh di sini.

Tambahkan koneksi baru ke instans Azure Data Explorer Anda yang disebarkan dalam solusi referensi ini 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 Service

Anda juga dapat menggunakan Grafana untuk membuat dasbor di Azure untuk solusi yang dijelaskan dalam artikel ini. Grafana digunakan dalam manufaktur untuk membuat dasbor yang menampilkan data real-time. Azure menawarkan layanan bernama Azure Managed Grafana. Dengan ini, Anda dapat membuat dasbor cloud. Dalam manual konfigurasi ini, Anda mengaktifkan Grafana di Azure dan membuat dasbor dengan data yang dikueri dari layanan Azure Data Explorer dan Azure Digital Twins, menggunakan data lini produksi yang disimulasikan dari solusi referensi ini.

Cuplikan layar berikut menunjukkan dasbor:

Cuplikan layar yang memperlihatkan dasbor Grafana.

Mengaktifkan Layanan Grafana Terkelola Azure

  1. Buka portal Azure dan cari layanan 'Grafana' dan pilih layanan 'Azure Managed Grafana'.

    Cuplikan layar mengaktifkan Grafana di Marketplace.

  2. Beri nama instans Anda dan biarkan opsi standar aktif - dan buat layanan.

  3. Setelah layanan dibuat, navigasikan ke URL tempat Anda mengakses instans Grafana Anda. Anda dapat menemukan URL di beranda layanan.

Menambahkan sumber data baru di Grafana

Setelah pertama kali masuk, Anda harus menambahkan sumber data baru ke Azure Data Explorer.

  1. Navigasi ke 'Konfigurasi' dan tambahkan sumber data baru.

  2. Cari Azure Data Explorer dan pilih layanan.

  3. Konfigurasikan koneksi Anda dan gunakan pendaftaran aplikasi (ikuti manual yang disediakan di bagian atas halaman ini).

  4. Simpan dan uji koneksi Anda di bagian bawah halaman.

Mengimpor dasbor sampel

Sekarang Anda siap untuk mengimpor dasbor sampel yang disediakan.

  1. Unduh dasbor sampel di sini: Sampel Dasbor Manufaktur Grafana.

  2. Buka 'Dasbor' dan pilih 'Impor'.

  3. Pilih sumber yang telah Anda unduh dan pilih 'Simpan'. Anda mendapatkan kesalahan di halaman, karena dua variabel belum diatur. Buka halaman pengaturan dasbor.

  4. Pilih di sebelah kiri di 'Variabel' dan perbarui dua URL dengan URL Layanan Azure Digital Twins Anda.

  5. Navigasi kembali ke dasbor dan tekan tombol refresh. Anda sekarang akan melihat data (jangan lupa menekan tombol simpan di dasbor).

    Variabel lokasi di bagian atas halaman secara otomatis diisi dengan data dari Azure Digital Twins (simpul area dari ISA95). Di sini Anda dapat memilih lokasi yang berbeda dan melihat berbagai titik data dari setiap pabrik.

  6. Jika data tidak muncul di dasbor Anda, navigasikan ke masing-masing panel dan lihat apakah sumber data yang tepat dipilih.

Mengonfigurasi pemberitahuan

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

  1. Masuk ke layanan Grafana Anda, dan pilih Aturan pemberitahuan di menu.

    Cuplikan layar yang memperlihatkan navigasi ke pemberitahuan.

  2. Pilih 'Buat aturan pemberitahuan'.

    Cuplikan layar yang menunjukkan cara membuat aturan pemberitahuan.

  3. Beri nama pemberitahuan Anda dan pilih 'Azure Data Explorer' sebagai sumber data. Pilih kueri di panel navigasi.

    Cuplikan layar membuat kueri pemberitahuan.

  4. Di bidang kueri, masukkan kueri berikut ini. Dalam contoh ini, kita menggunakan lini produksi 'Seattle'.

    let oee = CalculateOEEForStation("assembly", "seattle", 6, 6);
    print round(oee * 100, 2)
    
  5. Pilih 'tabel' sebagai output.

  6. Gulir ke bawah ke bagian berikutnya. Di sini, Anda mengonfigurasi ambang pemberitahuan. Dalam contoh ini, kami menggunakan 'di bawah 10' sebagai ambang batas, tetapi di lingkungan produksi, nilai ini bisa lebih tinggi.

    Cuplikan layar yang memperlihatkan pemberitahuan ambang batas.

  7. Pilih folder tempat Anda ingin menyimpan pemberitahuan dan mengonfigurasi 'Perilaku Evaluasi Pemberitahuan'. Pilih opsi 'setiap 2 menit'.

  8. Pilih tombol 'Simpan dan keluar'.

Dalam gambaran umum pemberitahuan, Anda sekarang dapat melihat pemberitahuan yang dipicu saat OEE Anda di bawah '10'.

Cuplikan layar yang memperlihatkan gambaran umum pemberitahuan.

Anda dapat mengintegrasikan penyiapan ini dengan, misalnya, Microsoft Dynamics Field Services.

Koneksi solusi referensi ke Microsoft Power BI

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

Selesaikan langkah-langkah berikut:

  1. Instal aplikasi Power BI Desktop dari sini.

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

  3. Dari portal Azure, navigasikan ke instans database Azure Data Explorer Anda (ontologies) dan tambahkan Database Admin izin ke pengguna Azure Active Directory dengan akses hanya ke satu langganan Azure, khususnya langganan yang digunakan untuk instans solusi referensi ini yang Anda sebarkan. Buat pengguna baru di Azure Active Directory jika perlu.

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

  5. Di jendela popup, masukkan titik akhir Azure Data Explorer instans Anda (misalnya https://erichbtest3adx.eastus2.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. Pilih Load. Ini mengimpor waktu siklus aktual stasiun Assembly dari lini produksi Munich selama satu jam terakhir.

  7. Saat diminta, masuk ke Azure Data Explorer menggunakan pengguna Azure Active Directory yang Anda berikan izin untuk mengakses database Azure Data Explorer sebelumnya.

  8. Data viewDari , pilih kolom NodeValue dan pilih Don't summarize di Summarization item menu.

  9. Beralih ke Report view.

  10. Di bawah Visualizations, pilih Line Chart visualisasi.

  11. Di bawah , pindahkan Timestamp dari sumber ke DataX-axis, pilih di atasnya dan pilih Timestamp.Visualizations

  12. Di bawah , pindahkan NodeValue dari sumber ke DataY-axis, pilih di atasnya dan pilih Median.Visualizations

  13. Simpan laporan baru Anda.

    Catatan

    Anda juga dapat menambahkan data lain dari Azure Data Explorer ke laporan Anda.

    Cuplikan layar tampilan Power BI.

Koneksi solusi referensi untuk Microsoft Dynamics 365 Field Service

Integrasi ini menampilkan skenario berikut:

  • Mengunggah 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 aplikasi dan layanan bussiness-critcal Logic Apps dapat dihubungkan melalui alur kerja tanpa kode. Kami mengambil informasi dari Azure Data Explorer dan memicu tindakan di Dynamics 365 Field Service.

Pertama, jika Anda belum menjadi pelanggan Dynamics 365 Field Service, aktifkan uji coba 30 hari di sini. Ingatlah untuk menggunakan ID Microsoft Entra yang sama (sebelumnya Azure Active Directory) yang digunakan saat menyebarkan solusi referensi Ontologi Manufaktur. Jika tidak, Anda harus mengonfigurasi autentikasi lintas penyewa yang bukan bagian dari instruksi ini!

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

Mari kita mulai dengan mengunggah aset dari Ontologi Manufaktur ke Dynamics 365 Field Service:

  1. Buka portal Azure dan buat Aplikasi Logika baru.

  2. Beri nama Azure Logic App, 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 kami menggunakan jenis status stateful, karena aset bukan aliran data.

  5. Buat pemicu baru. Kita mulai dengan membuat pemicu 'Pengulangan'. Ini memeriksa database setiap hari jika aset baru dibuat. Anda dapat mengubahnya agar terjadi lebih sering.

  6. Dalam tindakan, cari Azure Data Explorer dan pilih Run KQL query perintah . Dalam kueri ini, kita memeriksa jenis aset apa yang kita miliki. Gunakan kueri berikut untuk mendapatkan aset dan menempelkannya di bidang kueri:

    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. Untuk memasukkan data aset Anda ke Dynamics 365 Field Service, Anda perlu menyambungkan ke Microsoft Dataverse. Koneksi ke instans Dynamics 365 Field Service Anda dan gunakan konfigurasi berikut:

    • Gunakan Nama Tabel 'Aset Pelanggan'
    • Masukkan 'AssetName' ke dalam bidang Nama
  8. Simpan alur kerja Anda dan jalankan. Anda melihat dalam beberapa detik kemudian bahwa aset baru dibuat di Dynamics 365 Field Service.

Membuat alur kerja Azure Logic App untuk membuat pemberitahuan di Dynamics 365 Field Service

Alur kerja ini membuat pemberitahuan di Dynamics 365 Field Service, khususnya ketika ambang batas FaultyTime tertentu pada aset solusi referensi Ontologi Manufaktur tercapai.

  1. Pertama-tama kita perlu membuat fungsi Azure Data Explorer untuk mendapatkan data yang tepat. Buka panel kueri Azure Data Explorer Anda di portal Azure dan jalankan kode berikut untuk membuat fungsi FaultyFieldAssets:

    Cuplikan layar pembuatan kueri ADX fungsi.

    .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 baru di Azure Logic App. Buat pemicu 'Pengulangan' untuk memulai - setiap 3 menit. Buat sebagai tindakan 'Azure Data Explorer' dan pilih Jalankan Kueri KQL.

  3. Masukkan URL Kluster Azure Data Explorer Anda, lalu pilih database Anda dan gunakan nama fungsi yang dibuat di langkah 1 sebagai kueri.

  4. Pilih Microsoft Dataverse sebagai tindakan.

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

    Cuplikan layar pemberitahuan di Dynamics 365 FS.