Kurz: Implementace architektury referenčních řešení IoT v průmyslovém prostředí Azure
Výrobci chtějí nasadit celkové průmyslové řešení IoT v globálním měřítku a propojit všechny své výrobní lokality s tímto řešením, aby se zvýšila efektivita jednotlivých výrobních lokalit.
Tyto zvýšené efektivity vedou k rychlejší výrobě a nižší spotřebě energie, což ve většině případů vede ke snížení nákladů na vyrobené zboží a zároveň zvýšení jejich kvality.
Řešení musí být co nejefektivnější a musí umožňovat všechny požadované případy použití, jako je monitorování stavu, celkový výpočet efektivity zařízení (OEE), prognózování a detekce anomálií. Pomocí přehledů získaných z těchto případů použití pak můžete vytvořit smyčku digitální zpětné vazby, která pak může použít optimalizace a další změny v produkčních procesech.
Interoperabilita je klíčem k dosažení rychlého zavedení architektury řešení. Použití otevřených standardů, jako je OPC UA, významně pomáhá dosáhnout této interoperability.
V tomto kurzu se dozvíte, jak nasadit průmyslové řešení IoT pomocí služeb Azure. Toto řešení používá standard IEC 62541 Open Platform Communications (OPC) Unified Architecture (UA) pro všechna provozní technologie (OT).
Požadavky
K dokončení kroků v tomto kurzu potřebujete předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Architektura referenčních řešení
Následující diagramy znázorňují architekturu průmyslového řešení IoT:
Zjednodušená architektura, která zobrazuje možnosti Azure i Microsoft Fabric:
Podrobná architektura znázorňující možnost Azure:
Následující tabulka popisuje klíčové komponenty v tomto řešení:
Komponenta | Popis |
---|---|
Průmyslové prostředky | Sada simulovaných produkčních linek povolených OPC UA hostovaných v kontejnerech Dockeru. |
Operace Azure IoT | Azure IoT Operations je jednotná rovina dat pro hraniční zařízení. Zahrnuje sadu modulárních, škálovatelných a vysoce dostupných datových služeb, které běží na hraničních clusterech Kubernetes s podporou Azure Arc. |
Brána dat | Tato brána připojuje vaše místní zdroje dat, jako je SAP, ke službě Azure Logic Apps v cloudu. |
Azure Event Hubs | Zprostředkovatel cloudových zpráv, který přijímá pub/sub zprávy OPC UA z hraničních bran a ukládá je, dokud je předplatitelé nenačtou. |
Azure Data Explorer | Databáze časových řad a služba front-endového řídicího panelu pro pokročilé cloudové analýzy, včetně integrované detekce anomálií a předpovědí. |
Azure Logic Apps | Azure Logic Apps je cloudová platforma, kterou můžete použít k vytváření a spouštění automatizovaných pracovních postupů s minimálním nebo žádným kódem. |
Azure Arc | Tato cloudová služba slouží ke správě místního clusteru Kubernetes na hraničních zařízeních. |
Azure Managed Grafana | Azure Managed Grafana je platforma pro vizualizaci dat založená na softwaru Grafana od Grafana Labs. Grafana je plně spravovaná služba, kterou microsoft hostuje a podporuje. |
Microsoft Power BI | Microsoft Power BI je kolekce softwarových služeb, aplikací a konektorů SaaS, které spolupracují a umožňují přeměnit nesouvisející zdroje dat na koherentní, vizuálně imerzivní a interaktivní přehledy. |
Microsoft Dynamics 365 Field Service | Microsoft Dynamics 365 Field Service je řešení SaaS na klíč pro správu služby u zákazníků požadavků. |
UA Cloud Commander | Tato opensourcová referenční aplikace převádí zprávy odeslané na zprostředkovatele MQTT nebo Kafka (pravděpodobně v cloudu) na požadavky klienta nebo serveru OPC UA na připojený server OPC UA. Aplikace běží v kontejneru Dockeru. |
Akce cloudu UA | Tato opensourcová referenční cloudová aplikace dotazuje Azure Data Explorer na konkrétní hodnotu dat. Hodnota dat je tlak v jednom ze simulovaných strojů výrobní linky. Při dosažení určité prahové hodnoty (4 000 mbar) volá UA Cloud Commander přes Azure Event Hubs. UA Cloud Commander pak zavolá metodu OpenPressureReliefValve na počítači prostřednictvím OPC UA. |
Cloudová knihovna UA | Cloudová knihovna UA je online úložiště informačních modelů OPC UA, které hostuje OPC Foundation. |
Překladač UA Edge | Tato opensourcová referenční aplikace pro průmyslové připojení se překládá z proprietárních rozhraní prostředků na OPC UA. Řešení používá popisy webu W3C jako schématu k popisu rozhraní průmyslových prostředků. |
Poznámka:
Při skutečném nasazení by se v místním prostředí provádělo něco tak kritického jako otevření ventilu pro odlehčení tlaku. Tento příklad jednoduše ukazuje, jak dosáhnout smyčky digitální zpětné vazby.
Simulace výrobní linky
Řešení používá simulaci výrobní linky složenou z několika stanic, pomocí informačního modelu OPC UA a jednoduchého výrobního prováděcího systému (MES). Stanice i MES jsou kontejnerizovány pro snadné nasazení.
Simulace je nakonfigurovaná tak, aby zahrnovala dvě výrobní linky. Výchozí konfigurace je:
Výrobní linka | Ideální doba cyklu (v sekundách) |
---|---|
Mnichov | 6 |
Seattle | 10 |
Název směny | Zahájení | End |
---|---|---|
Ráno | 07:00 | 14:00 |
Odpoledne | 15:00 | 22:00 |
V noci | 23:00 | 06:00 |
Poznámka:
Časy směn jsou v místním čase, konkrétně časové pásmo, na které je virtuální počítač hostující simulaci výrobní linky nastavený.
Server OPC UA stanice používá pro telemetrii do cloudu následující ID uzlů OPC UA:
- i=379 - výrobní sériové číslo výrobku
- i=385 - počet vyrobených výrobků
- i=391 – počet zahozených produktů
- i=398 – doba běhu
- i=399 – chybný čas
- i=400 - stav (0=stanice připravená k práci, 1=probíhající práce, 2=práce a dobrá část vyrobena, 3=práce a výstřižky vyrobené, 4=stanice ve stavu selhání)
- i=406 - spotřeba energie
- i=412 - ideální doba cyklu
- i=418 – skutečná doba cyklu
- i=434 - tlak
Smyčka digitální zpětné vazby s UA Cloud Commanderem a akcí cloudu UA
Řešení používá smyčku digitální zpětné vazby ke správě tlaku v simulované stanici. K implementaci smyčky zpětné vazby řešení aktivuje příkaz z cloudu na jednom ze serverů OPC UA v simulaci. Aktivační událost se aktivuje, když simulovaná data tlaku časových řad dosáhnou určité prahové hodnoty. Tlak počítače sestavení můžete vidět na řídicím panelu Azure Data Exploreru. Tlak se uvolní v pravidelných intervalech pro výrobní linku Seattle.
Instalace simulace výrobní linky a cloudových služeb
Výběrem tlačítka Nasadit nasaďte všechny požadované prostředky do předplatného Azure:
Proces nasazení vás vyzve k zadání hesla pro virtuální počítač, který je hostitelem simulace produkční linky a infrastruktury Edge. Heslo by mělo obsahovat tři z těchto znaků: malá písmena, velká písmena, číslo a speciální znak. Délka hesla musí být 12 až 72 znaků.
Poznámka:
Aby se snížily náklady, nasazení vytvoří jeden virtuální počítač s Windows 11 Enterprise pro simulaci produkční linky i infrastrukturu Edge. V produkčním scénáři není simulace výrobní linky nutná a pro základní operační systém byste měli použít kanál dlouhodobé údržby Windows IoT Enterprise.
Po dokončení nasazení se pomocí protokolu RDP připojte k nasazeného virtuálnímu počítači s Windows. Soubor RDP si můžete stáhnout z možností připojení na stránce virtuálního počítače na webu Azure Portal. Přihlaste se pomocí přihlašovacích údajů, které jste zadali během nasazení, otevřete příkazový řádek windows a pomocí následujícího příkazu nainstalujte Subsystém Windows pro Linux (WSL):
wsl --install
Po dokončení příkazu restartujte virtuální počítač a znovu se přihlaste. Příkazový řádek dokončí instalaci WSL a zobrazí se výzva k zadání nového uživatelského jména a hesla pro WSL. Pak ve WSL pomocí následujícího příkazu nainstalujte K3S, jednoduchý modul runtime Kubernetes:
curl -sfL https://get.k3s.io | sh
Váš virtuální počítač je teď připravený ke spuštění simulace výrobní linky.
Spuštění simulace výrobní linky
Na virtuálním počítači otevřete příkazový řádek Windows, zadejte wsl a stiskněte Enter. Přejděte do /mnt/c/ManufacturingOntologies-main/Tools/FactorySimulation
adresáře a spusťte skript prostředí StartSimulation :
sudo ./StartSimulation.sh "<Your Event Hubs connection string>"
<Your Event Hubs connection string>
je váš obor názvů služby Event Hubs připojovací řetězec. Další informace najdete v tématu Získání služby Event Hubs připojovací řetězec. Připojovací řetězec vypadá takto:Endpoint=sb://ontologies.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abcdefgh=
Poznámka:
Pokud se externí IP adresa pro službu Kubernetes zobrazí jako <pending>
, pomocí následujícího příkazu přiřaďte externí IP adresu traefik
služby: sudo kubectl patch service <theService> -n <the service's namespace> -p '{"spec": {"type": "LoadBalancer", "externalIPs":["<the traefik external IP address>"]}}'
Tip
Chcete-li zabránit automatickému vypnutí WSL a K3s, nechte příkazový řádek WSL otevřený.
Cloudová knihovna UA
Pokud chcete číst informační modely OPC UA přímo z Azure Data Exploreru, můžete do tabulky importovat uzly OPC UA definované v informačním modelu OPC UA. Importované informace můžete použít k vyhledání dalších metadat v dotazech.
Nejprve nakonfigurujte zásady popisku Azure Data Exploreru pro cloudovou knihovnu UA spuštěním následujícího dotazu v clusteru Azure Data Exploreru. Než začnete, ujistěte se, že jste členem role AllDatabasesAdmin v clusteru, kterou můžete nakonfigurovat na webu Azure Portal tak, že přejdete na stránku Oprávnění clusteru Azure Data Exploreru.
.alter cluster policy callout @'[{"CalloutType": "webapi","CalloutUriRegex": "uacloudlibrary.opcfoundation.org","CanCall": true}]'
Pak na webu Azure Portal spusťte následující dotaz Azure Data Exploreru. V dotazu:
- Nahraďte
<INFORMATION_MODEL_IDENTIFIER_FROM_THE_UA_CLOUD_LIBRARY>
jedinečným ID informačního modelu, který chcete importovat z cloudové knihovny UA. Toto ID najdete na adrese URL stránky informačního modelu v knihovně cloudu UA. Například ID sady uzlů stanice, kterou tento kurz používá, je1627266626
. - Nahraďte
<HASHED_CLOUD_LIBRARY_CREDENTIALS>
základní autorizační hlavičkou přihlašovacích údajů cloudové knihovny UA. Použijte nástroj, například https://www.debugbear.com/basic-auth-header-generator k vygenerování hodnoty hash. Můžete také použít následující příkaz Bash: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
Pokud chcete zobrazit grafické znázornění informačního modelu OPC UA, můžete použít nástroj Kusto Explorer. Pokud chcete vykreslit model stanice, spusťte v Nástroji Kusto Explorer následující dotaz. Nejlepších výsledků dosáhnete tak, že Layout
změníte možnost na Grouped
:Labels
name
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
Volitelně můžete nasadit operace Azure IoT na hraničních zařízeních.
Ve výchozím nastavení simulace výrobní linky odesílá data přímo do koncového bodu centra dat v oboru názvů služby Event Hubs.
Ke správě tohoto procesu můžete místo toho použít operace Azure IoT na hraničních zařízeních. Azure IoT Operations je jednotná rovina dat pro hraniční zařízení. Zahrnuje sadu modulárních, škálovatelných a vysoce dostupných datových služeb, které běží na hraničních clusterech Kubernetes s podporou Azure Arc.
Před nasazením operací Azure IoT ověřte, že jste spustili simulaci výrobní linky. Pak postupujte podle těchto kroků v podrobnostech nasazení operací Azure IoT.
Tip
K nasazení a spuštění operací Azure IoT můžete použít virtuální počítač a instanci K3S, kterou jste nasadili dříve v tomto kurzu.
Konfigurace nasazení operací Azure IoT
Nasazení operací Azure IoT můžete nakonfigurovat pomocí webového uživatelského rozhraní provozního prostředí . Přidejte koncové body prostředku, prostředky a toky dat pro zpracování dat z simulace výrobní linky a jejich směrování do datového centra v oboru názvů služby Event Hubs.
V nasazení azure IoT Operations vytvořte koncové body prostředků, které definují připojení k následujícím serverům OPC UA v produkční simulaci:
opc.tcp://assembly.munich/
opc.tcp://test.munich/
opc.tcp://packaging.munich/
opc.tcp://assembly.seattle/
opc.tcp://test.seattle/
opc.tcp://packaging.seattle/
Monitorování podmínek použití, výpočet OEE, detekce anomálií a předpovědi v Azure Data Exploreru
Informace o vytváření řídicích panelů bez kódu pro monitorování podmínek, předpovědi výnosu nebo údržby nebo detekci anomálií najdete v dokumentaci k Azure Data Exploreru. K dispozici je také ukázkový řídicí panel , který můžete nasadit. Informace o nasazení řídicího panelu najdete v tématu Vizualizace dat pomocí řídicích panelů Azure Data Exploreru > vytvořeného ze souboru. Po importu řídicího panelu aktualizujte jeho zdroj dat. V pravém horním rohu řídicího panelu zadejte koncový bod HTTPS clusteru serveru Azure Data Exploreru. Koncový bod HTTPS vypadá takto: https://<ADXInstanceName>.<AzureRegion>.kusto.windows.net/
.
Poznámka:
Pokud chcete zobrazit OEE pro konkrétní směnu, vyberte v rozevíracím seznamu Časový rozsah vlevém horním rohu řídicího panelu Azure Data Exploreru vlastní časový rozsah a zadejte datum a čas od začátku do konce směny, kterou vás zajímá.
Vykreslení integrovaného grafu modelu UNS (Unified NameSpace) a ISA-95 v Nástroji Kusto Explorer
Toto referenční řešení implementuje sjednocený obor názvů (UNS) na základě metadat OPC UA odesílaných do databáze časových řad Azure Data Exploreru v cloudu. Tato metadata OPC UA zahrnují hierarchii prostředků ISA-95. Výsledný graf můžete vizualizovat v nástroji Kusto Explorer.
Přidejte nové připojení k instanci Azure Data Exploreru a pak v Nástroji Kusto Explorer spusťte následující dotaz:
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
Nejlepších výsledků dosáhnete tak, že Layout
změníte možnost na Grouped
.
Použití Azure Managed Grafana
Ke vytvoření řídicího panelu v Azure pro řešení popsaného v tomto článku můžete použít také Azure Managed Grafana. Pomocí Grafany ve výrobě můžete vytvářet řídicí panely, které zobrazují data v reálném čase. Následující kroky ukazují, že v Azure povolíte Grafana a vytvoříte řídicí panel se simulovanými daty produkční linky z Azure Data Exploreru.
Povolení služby Azure Managed Grafana
Pokud chcete vytvořit službu Azure Managed Grafana a nakonfigurovat ji s oprávněními pro přístup k databázi ontologie:
Na webu Azure Portal vyhledejte Grafana a pak vyberte službu Azure Managed Grafana .
Pokud chcete vytvořit službu, zadejte na stránce Vytvořit pracovní prostor Grafana název vaší instance. Zvolte všechny výchozí možnosti.
Po vytvoření služby se ujistěte, že má vaše instance Grafana spravovanou identitu přiřazenou systémem, přejděte do okna Identita vaší instance Azure Managed Grafana na webu Azure Portal. Pokud spravovaná identita přiřazená systémem není povolená, povolte ji. Poznamenejte si hodnotu ID objektu (objektu zabezpečení), kterou budete potřebovat později.
Udělení oprávnění spravované identitě pro přístup k databázi ontologií v Azure Data Exploreru:
- Na webu Azure Portal přejděte do okna Oprávnění v instanci Azure Data Exploreru.
- Vyberte Přidat > AllDatabasesViewer.
- Vyhledejte a vyberte hodnotu ID objektu (objektu zabezpečení), kterou jste si poznamenali dříve.
Přidání nového zdroje dat v Grafana
Přidejte nový zdroj dat pro připojení k Azure Data Exploreru. V této ukázce použijete spravovanou identitu přiřazenou systémem pro připojení k Azure Data Exploreru. Pokud chcete nakonfigurovat ověřování, postupujte takto:
Chcete-li přidat zdroj dat v Grafana, postupujte takto:
Přejděte na adresu URL koncového bodu vaší instance Grafany. Adresu URL koncového bodu najdete na stránce Azure Managed Grafana na webu Azure Portal. Pak se přihlaste k instanci Grafany.
Na řídicím panelu Grafana vyberte Zdroje dat připojení > a pak vyberte Přidat nový zdroj dat. Posuňte se dolů a vyberte Zdroj dat Azure Data Exploreru.
Jako nabídku ověřování zvolte Spravovanou identitu . Pak přidejte adresu URL clusteru Azure Data Exploreru. Adresu URL najdete v nabídce instance Azure Data Exploreru na webu Azure Portal pod identifikátorem URI.
Vyberte Uložit a otestujte připojení zdroje dat.
Import ukázkového řídicího panelu
Teď jste připraveni importovat ukázkový řídicí panel.
Stáhněte si řídicí panel ukázkového řídicího panelu Grafana Manufacturing Dashboard .
V nabídce Grafana přejděte na Řídicí panely a pak vyberte Nový > import.
Vyberte Nahrát soubor JSON řídicího panelu a vyberte soubor samplegrafanadashboard.json , který jste stáhli dříve. Vyberte Importovat.
Na panelu Stanice OEE vyberte Upravit a pak vyberte zdroj dat Azure Data Exploreru, který jste nastavili dříve. Pak na panelu dotazu vyberte KQL a přidejte následující dotaz:
print round (CalculateOEEForStation('${Station}', '${Location}', '${CycleTime}', '${__from:date:iso}', '${__to:date:iso}') * 100, 2)
. Pokud chcete použít změny, vyberte Použít a vraťte se na řídicí panel.Na panelu Čára OEE vyberte Upravit a pak vyberte zdroj dat Azure Data Exploreru, který jste nastavili dříve. Pak na panelu dotazu vyberte KQL a přidejte následující dotaz:
print round(CalculateOEEForLine('${Location}', '${CycleTime}', '${__from:date:iso}', '${__to:date:iso}') * 100, 2)
. Pokud chcete použít změny, vyberte Použít a vraťte se na řídicí panel.Na panelu Zahozené produkty vyberte Upravit a pak vyberte zdroj dat Azure Data Exploreru , který jste nastavili dříve. Pak na panelu dotazu vyberte KQL a přidejte následující dotaz:
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)
. Pokud chcete použít změny, vyberte Použít a vraťte se na řídicí panel.Na panelu Vyrobené produkty vyberte Upravit a pak vyberte zdroj dat Azure Data Exploreru, který jste nastavili dříve. Pak na panelu dotazu vyberte KQL a přidejte následující dotaz:
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)
. Pokud chcete použít změny, vyberte Použít a vraťte se na řídicí panel.Na panelu Spotřeba energie vyberte Upravit a pak vyberte zdroj dat Azure Data Exploreru, který jste nastavili dříve. Pak na panelu dotazu vyberte KQL a přidejte následující dotaz:
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)
. Pokud chcete použít změny, vyberte Použít a vraťte se na řídicí panel.Na panelu Tlak vyberte Upravit a pak vyberte zdroj dat Azure Data Exploreru, který jste nastavili dříve. Pak na panelu dotazu vyberte KQL a přidejte následující dotaz:
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
. Pokud chcete použít změny, vyberte Použít a vraťte se na řídicí panel.
Konfigurace upozornění
V Grafaně můžete také vytvářet výstrahy. V tomto příkladu vytvoříte nízkou výstrahu OEE pro jednu z výrobních linek.
V nabídce Grafana přejděte na **Pravidla upozornění>.
Vyberte Nové pravidlo upozornění.
Pojmenujte upozornění a jako zdroj dat vyberte Azure Data Explorer . V podokně Definovat dotaz a podmínku upozornění vyberte KQL.
Do pole dotazu zadejte následující dotaz. Tento příklad používá výrobní linku Seattle:
let oee = CalculateOEEForStation("assembly", "seattle", 10000, now(), now(-1h)); print round(oee * 100, 2)
Vyberte Nastavit jako podmínku upozornění.
Posuňte se dolů k části Výrazy . Odstraňte výraz Reduce, nepotřebujete ho.
Jako prahovou hodnotu upozornění vyberte A jako vstup. Vyberte JE NÍŽE a zadejte 10.
Posuňte se dolů do části Nastavení chování vyhodnocení . Vytvořte novou složku pro uložení upozornění. Vytvořte novou zkušební skupinu a zadejte 2 min.
V pravém horním rohu vyberte tlačítko Uložit pravidlo a ukončit ho.
V přehledu vašich upozornění se teď můžete podívat, že se upozornění aktivuje, když je vaše zařízení OEE menší než 10.
Připojení referenčního řešení k Microsoft Power BI
Pokud chcete připojit referenční řešení Power BI, potřebujete přístup k předplatnému Power BI.
Pokud chcete vytvořit řídicí panel Power BI, proveďte následující kroky:
Nainstalujte si desktopovou aplikaci Power BI.
Přihlaste se k desktopové aplikaci Power BI pomocí uživatele s přístupem k předplatnému Power BI.
Na webu Azure Portal přejděte do databáze Azure Data Exploreru s názvem ontologie a přidejte oprávnění správce databáze k uživateli Microsoft Entra ID s přístupem pouze k předplatnému použitému pro nasazenou instanci tohoto referenčního řešení. V případě potřeby vytvořte nového uživatele v Microsoft Entra ID.
V Power BI vytvořte novou sestavu a jako zdroj dat vyberte data časové řady Azure Data Exploreru: Získejte data > Azure Azure > Data Exploreru (Kusto).
V místním okně zadejte koncový bod Azure Data Exploreru vašeho clusteru (
https://<your cluster name>.<location>.kusto.windows.net
), název databáze (ontologies
) a následující dotaz: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
Přihlaste se k Azure Data Exploreru pomocí uživatele Microsoft Entra ID, který jste udělili oprávnění pro přístup k databázi Azure Data Exploreru dříve.
Poznámka:
Pokud sloupec časového razítka obsahuje stejnou hodnotu pro všechny řádky, upravte poslední řádek dotazu následujícím způsobem:
| project Timestamp1, NodeValue
.Vyberte Načíst. Tato akce importuje skutečnou dobu cyklu montážní stanice mnichovské výrobní linky za poslední hodinu.
Ve sloupci
Table view
NodeValue vyberte sloupec NodeValue a v položce nabídky Souhrn nevyhrávejte souhrn.Přepněte na tlačítko
Report view
.V části Vizualizace vyberte vizualizaci spojnicového grafu .
V části Vizualizace přesuňte
Timestamp
zdrojData
naX-axis
položku , vyberte ji a vyberte Časové razítko.V části Vizualizace přesuňte
NodeValue
zdrojData
naY-axis
položku , vyberte ji a vyberte Medián.Uložte novou sestavu.
Tip
Stejný přístup použijte k přidání dalších dat z Azure Data Exploreru do sestavy.
Připojení referenčního řešení k Microsoft Dynamics 365 Field Service
Tato integrace předvádí následující scénáře:
- Nahrajte prostředky z referenčního řešení výrobních ontologií do služby Dynamics 365 Field Service.
- Vytváření výstrah ve službě Dynamics 365 Field Service při dosažení určité prahové hodnoty pro výrobní ontologie referenční telemetrická data řešení
Integrace používá Azure Logics Apps. S Logic Apps můžete pomocí pracovních postupů bez kódu propojit aplikace a služby business-critcal. Tento příklad ukazuje, jak načíst data z Azure Data Exploreru a aktivovat akce v Dynamics 365 Field Service.
Pokud ještě nejste zákazníkem Dynamics 365 Field Service, aktivujte si 30denní zkušební verzi.
Tip
Abyste se vyhnuli nutnosti konfigurovat ověřování mezi tenanty, použijte stejné ID Microsoft Entra, které jste použili k nasazení referenčního řešení výrobních ontologií.
Vytvoření pracovního postupu Azure Logic Apps pro vytváření prostředků v Dynamics 365 Field Service
Nahrání prostředků z referenčního řešení výrobních ontologií do služby Dynamics 365 Field Service:
Přejděte na web Azure Portal a vytvořte nový prostředek aplikace logiky.
Pojmenujte Azure Logic Apps a umístěte ho do stejné skupiny prostředků jako referenční řešení pro výrobu ontologií.
Vyberte Pracovní postupy.
Pojmenujte svůj pracovní postup. V tomto scénáři použijte stavový typ, protože prostředky nejsou toky dat.
V návrháři pracovního postupu vyberte Přidat trigger. Vytvořte trigger opakování , který se bude spouštět každý den. Trigger můžete změnit tak, aby se častěji vyskytoval.
Přidejte akci za trigger opakování. V části Přidat akci vyhledejte
Azure Data Explorer
a vyberte příkaz Spustit dotaz KQL. Ponechte výchozí ověřování OAuth. Zadejte adresu URL clusteru Azure Data Exploreru aontologies
jako název databáze. V tomto dotazu zkontrolujete, jaký druh prostředků máte. Pomocí následujícího dotazu získejte prostředky z referenčního řešení výrobních ontologií: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
Pokud chcete data assetu získat do Dynamics 365 Field Service, musíte se připojit k Microsoft Dataverse. V části Přidat akci vyhledejte
Dataverse
a vyberte příkaz Přidat nový řádek . Ponechte výchozí ověřování OAuth. Připojte se k instanci služby Dynamics 365 Field Service a použijte následující konfiguraci:- V poli Název tabulky vyberte Prostředky zákazníka.
- V poli Název vyberte Zadat data z předchozího kroku a vyberte AssetName.
Uložte pracovní postup a spusťte ho. Nové prostředky se vytvářejí v Dynamics 365 Field Service:
Vytvoření pracovního postupu Azure Logic Apps pro vytváření upozornění ve službě Dynamics 365 Field
Tento pracovní postup vytvoří výstrahy ve službě Dynamics 365 Field Service, když FaultyTime
referenční řešení pro prostředky ve výrobních ontologiích dosáhne prahové hodnoty.
Pokud chcete načíst data, vytvořte funkci Azure Data Exploreru. Na panelu dotazů Azure Data Exploreru na webu Azure Portal spusťte následující kód a vytvořte
FaultyFieldAssets
funkci v databázi 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}
Vytvořte nový stavový pracovní postup v aplikaci logiky.
V návrháři pracovního postupu vytvořte trigger opakování, který se spouští každé tři minuty. Pak přidejte akci a vyberte akci spustit dotaz KQL.
Zadejte adresu URL clusteru Azure Data Exploreru, jako název databáze zadejte ontologie a jako dotaz použijte
FaultyFieldAssets
název funkce.Pokud chcete data assetu získat do Dynamics 365 Field Service, musíte se připojit k Microsoft Dataverse. V části Přidat akci vyhledejte
Dataverse
a vyberte příkaz Přidat nový řádek . Ponechte výchozí ověřování OAuth. Připojte se k instanci služby Dynamics 365 Field Service a použijte následující konfiguraci:- V poli Název tabulky vyberte Upozornění IoT.
- V poli Popis použijte k vytvoření zprávy [AssetName][Název] [Název] [Hodnota] zadejte data z předchozího kroku. AssetName, Name a Value jsou pole z předchozího kroku.
- V poli Čas upozornění vyberte Zadat data z předchozího kroku a vyberte Časové razítko.
- V poli Typ výstrahy vyberte Anomálie.
Spusťte pracovní postup a zobrazte nová upozornění vygenerovaná na řídicím panelu upozornění Služby IoT služby Dynamics 365: