Entdecken von OPC UA-Datenquellen mit den Akri-Diensten
Wichtig
Die von Azure Arc aktivierte Azure IoT Operations Preview befindet sich derzeit in der VORSCHAU. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.
Sie müssen eine neue Azure IoT Operations-Installation bereitstellen, wenn eine allgemein verfügbare Version verfügbar ist, können Sie keine Vorschauinstallation aktualisieren.
Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.
In diesem Artikel erfahren Sie, wie OPC UA-Datenquellen automatisch ermittelt werden. Nachdem Sie Azure IoT Einsatz Preview bereitgestellt haben, konfigurieren Sie die Akri-Dienste für das Ermitteln von OPC UA-Datenquellen am Edge. Die Akri-Dienste erstellen benutzerdefinierte Ressourcen in Ihrem Kubernetes-Cluster, die die ermittelten Datenquellen darstellen. Dank der Möglichkeit, OPC UA-Datenquellen zu erkennen, müssen Sie diese nicht mehr manuell über die Web-UI der Vorgänge konfigurieren.
Wichtig
Derzeit können Sie die Azure-Geräteregistrierung nicht verwenden, um die von den Akri-Diensten ermittelten und erstellten Ressourcen zu verwalten.
Mit den Akri-Diensten können Sie Ressourcen im Adressraum eines OPC UA-Servers erkennen und erstellen. Die OPC UA-Ressourcenerkennung generiert benutzerdefinierte AssetType
- und Asset
-Ressourcen für die mit der Spezifikation für die OPC UA-Geräteintegration (Device Integration, DI) konformen Ressourcen.
Voraussetzungen
Installieren Sie Azure IoT Einsatz Preview.
Stellen Sie sicher, dass die Pods der Akri-Dienste ordnungsgemäß konfiguriert sind, indem Sie den folgenden Befehl ausführen:
kubectl get pods -n azure-iot-operations
Die Ausgabe enthält eine Zeile, die zeigt, dass der Akri-Agent und die Ermittlungspods ausgeführt werden:
NAME READY STATUS RESTARTS AGE aio-akri-agent-daemonset-hwpc7 1/1 Running 0 17mk0s aio-opc-asset-discovery-wzlnj 1/1 Running 0 8m28s
Konfigurieren des Der OPC UA-Ermittlungshandlers
Zum Konfigurieren des OPC UA-Ermittlungshandlers für die Ressourcenerkennung erstellen Sie eine YAML-Konfigurationsdatei mit den in diesem Abschnitt beschriebenen Werten:
Name | Obligatorisch. | Datentyp | Standard | Kommentar |
---|---|---|---|---|
EndpointUrl |
true | String | NULL | Die OPC UA-Endpunkt-URL, die für die Ressourcenermittlung verwendet werden soll |
AutoAcceptUntrustedCertificates |
true ¹ | Boolean | false | Soll der Client automatisch nicht vertrauenswürdige Zertifikate akzeptieren? Ein Zertifikat kann nur automatisch als vertrauenswürdig akzeptiert werden, wenn während der Kettenüberprüfung keine nicht unterdrückbaren Fehler aufgetreten sind. Beispielsweise wird ein Zertifikat mit unvollständiger Kette nicht akzeptiert. |
UseSecurity |
true ¹ | Boolesch | true | Soll der Client eine sichere Verbindung verwenden? |
UserName |
false | String | NULL | Der Benutzername für die Benutzerauthentifizierung. ² |
Password |
false | String | NULL | Das Kennwort für die Benutzerauthentifizierung. ² |
¹ Die aktuelle Version des Ermittlungshandlers unterstützt nur UseSecurity=false
und erfordert autoAcceptUntrustedCertificates=true
.
² Temporäre Implementierung, bis die Akri-Dienste Kubernetes-Geheimnisse übergeben kann.
Im folgenden Beispiel wird die Ermittlung eines OPC PLC-Servers veranschaulicht. Sie können die Ressourcenparameter für mehrere OPC PLC-Server hinzufügen.
Um die YAML-Konfigurationsdatei zu erstellen, kopieren Sie den folgenden Inhalt und fügen ihn in eine neue Datei ein, die Sie als
opcua-configuration.yaml
speichern:Wenn Sie den simulierten PLC-Server verwenden, der mit der Azure IoT Operations-Schnellstartanleitung bereitgestellt wurde, müssen Sie
endpointUrl
nicht ändern. Wenn Ihre eigenen OPC UA-Server ausgeführt werden oder die simulierten SPS-Server verwenden, die in Azure bereitgestellt werden, fügen Sie ihre Endpunkt-URL entsprechend hinzu. Die Ermittlungsendpunkt-UrLs sehen wie folgt aus:opc.tcp://<FQDN>:50000/
. Um die FQDNs Ihrer OPC PLC-Server zu ermitteln, gehen Sie zu Ihrer Bereitstellung im Azure-Portal. Kopieren Sie für jeden Server den FQDN-Wert, und fügen Sie ihn in Ihre Endpunkt-URLs ein.apiVersion: akri.sh/v0 kind: Configuration metadata: name: aio-akri-opcua-asset spec: discoveryHandler: name: opcua-asset discoveryDetails: "opcuaDiscoveryMethod:\n - asset:\n endpointUrl: \" opc.tcp://opcplc-000000:50000\"\n useSecurity: false\n autoAcceptUntrustedCertificates: true\n" brokerProperties: {} capacity: 1
Führen Sie den folgenden Befehl aus, um die Konfiguration anzuwenden:
kubectl apply -f opcua-configuration.yaml -n azure-iot-operations
Tipp
Bei einer standardmäßigen Bereitstellung von Azure IoT-Einsätzen ist der OPC UA Ermittlungshandler bereits so konfiguriert, dass er den simulierten PLC-Server erkennt. Wenn Sie Ressourcen erkennen möchten, die mit weiteren OPC UA Servern verbunden sind, können Sie diese zur Konfigurationsdatei hinzufügen.
Überprüfen der Konfiguration
So bestätigen Sie, dass der Ressourcenermittlungscontainer konfiguriert ist und ausgeführt wird
Führen Sie den folgenden Befehl aus, um die Podprotokolle zu überprüfen:
kubectl logs <insert aio-opc-asset-discovery pod name> -n azure-iot-operations
Ein Protokoll aus dem
aio-opc-asset-discovery
Pod gibt nach ein paar Sekunden an, dass sich der Ermittlungshandler bei den Akri-Diensten registriert hat:2024-08-01T15:04:12.948Z aio-opc-asset-discovery-4nsgs - OPC UA SDK 1.5.374.70 from 07/20/2024 07:37:16 2024-08-01T15:04:12.973Z aio-opc-asset-discovery-4nsgs - OPC UA SDK informational version: 1.5.374.70+1ee3beb87993019de4968597d17cb54d5a4dc3c8 2024-08-01T15:04:12.976Z aio-opc-asset-discovery-4nsgs - Akri agent registration enabled: True 2024-08-01T15:04:13.475Z aio-opc-asset-discovery-4nsgs - Hosting starting 2024-08-01T15:04:13.547Z aio-opc-asset-discovery-4nsgs - Overriding HTTP_PORTS '8080' and HTTPS_PORTS ''. Binding to values defined by URLS instead 'http://+:8080'. 2024-08-01T15:04:13.774Z aio-opc-asset-discovery-4nsgs - Now listening on: http://:8080 2024-08-01T15:04:13.774Z aio-opc-asset-discovery-4nsgs - Application started. Press Ctrl+C to shut down. 2024-08-01T15:04:13.774Z aio-opc-asset-discovery-4nsgs - Hosting environment: Production 2024-08-01T15:04:13.774Z aio-opc-asset-discovery-4nsgs - Content root path: /app 2024-08-01T15:04:13.774Z aio-opc-asset-discovery-4nsgs - Hosting started 2024-08-01T15:04:13.881Z aio-opc-asset-discovery-4nsgs - Registering with Agent as HTTP endpoint using own IP from the environment variable POD_IP: 10.42.0.245 2024-08-01T15:04:14.875Z aio-opc-asset-discovery-4nsgs - Registered with the Akri agent with name opcua-asset for http://10.42.0.245:8080 with type Network and shared True 2024-08-01T15:04:14.877Z aio-opc-asset-discovery-4nsgs - Successfully re-registered OPC UA Asset Discovery Handler with the Akri agent 2024-08-01T15:04:14.877Z aio-opc-asset-discovery-4nsgs - Press CTRL+C to exit
Nach etwa einer Minute geben die Akri-Dienste die erste Ermittlungsanforderung basierend auf der Konfiguration aus:
2024-08-01T15:04:15.280Z aio-opc-asset-discovery-4nsgs [opcuabroker@311 SpanId:6d3db9751eebfadc, TraceId:e5594cbaf3993749e92b45c88c493377, ParentId:0000000000000000 ConnectionId:0HN5I7CQJPJL0 RequestPath:/v0.DiscoveryHandler/Discover RequestId:0HN5I7CQJPJL0:00000001] - Reading message. 2024-08-01T15:04:15.477Z aio-opc-asset-discovery-4nsgs [opcuabroker@311 SpanId:6d3db9751eebfadc, TraceId:e5594cbaf3993749e92b45c88c493377, ParentId:0000000000000000 ConnectionId:0HN5I7CQJPJL0 RequestPath:/v0.DiscoveryHandler/Discover RequestId:0HN5I7CQJPJL0:00000001] - Received discovery request from ipv6:[::ffff:10.42.0.241]:48638 2024-08-01T15:04:15.875Z aio-opc-asset-discovery-4nsgs [opcuabroker@311 SpanId:6d3db9751eebfadc, TraceId:e5594cbaf3993749e92b45c88c493377, ParentId:0000000000000000 ConnectionId:0HN5I7CQJPJL0 RequestPath:/v0.DiscoveryHandler/Discover RequestId:0HN5I7CQJPJL0:00000001] - Start asset discovery 2024-08-01T15:04:15.882Z aio-opc-asset-discovery-4nsgs [opcuabroker@311 SpanId:6d3db9751eebfadc, TraceId:e5594cbaf3993749e92b45c88c493377, ParentId:0000000000000000 ConnectionId:0HN5I7CQJPJL0 RequestPath:/v0.DiscoveryHandler/Discover RequestId:0HN5I7CQJPJL0:00000001] - Discovering OPC UA opc.tcp://opcplc-000000:50000 using Asset Discovery 2024-08-01T15:04:15.882Z aio-opc-asset-discovery-4nsgs [opcuabroker@311 SpanId:6d3db9751eebfadc, TraceId:e5594cbaf3993749e92b45c88c493377, ParentId:0000000000000000 ConnectionId:0HN5I7CQJPJL0 RequestPath:/v0.DiscoveryHandler/Discover RequestId:0HN5I7CQJPJL0:00000001] - Selected AutoAcceptUntrustedCertificates mode: False
Nach Abschluss der Ermittlung sendet der Ermittlungshandler das Ergebnis zurück an die Akri-Dienste, um eine benutzerdefinierte Ressource für die Akri-Instanz mit Ressourceninformationen und feststellbaren Variablen zu erstellen. Der Ermittlungshandler wiederholt die Ermittlung alle 10 Minuten, um Änderungen auf dem Server zu erkennen.
Führen Sie den folgenden Befehl aus, um die ermittelten Akri-Instanzen anzuzeigen:
kubectl get akrii -n azure-iot-operations
Die Ausgabe des vorherigen Befehls sieht wie im folgenden Beispiel aus. Es kann sein, dass Sie ein paar Sekunden warten müssen, bis die Akri-Instanz erstellt wurde:
NAME CONFIG SHARED NODES AGE akri-opcua-asset-dbdef0 akri-opcua-asset true ["k3d-k3s-default-server-0"] 24h
Der Anschluss für OPC UA Supervisor überwacht neue benutzerdefinierte Akri-Instanz-Ressourcen vom Typ
opc-ua-asset
und generiert die anfänglichen Ressourcentypen und benutzerdefinierte Ressourcen für ressourcenspezifische Ressourcen. Sie können benutzerdefinierte Ressourcen für Ressourcen ändern, indem Sie Einstellungen hinzufügen, z. B. erweiterte Veröffentlichung für weitere Datenpunkte oder Einstellungen für den Anschluss für OPC UA-Einblicke.Um zu bestätigen, dass die Akri-Instanz ordnungsgemäß mit dem Anschluss für OPC UA verbunden ist, führen Sie den folgenden Befehl aus. Ersetzen Sie den Platzhalter durch den Namen der Akri-Instanz, die in der Ausgabe des vorherigen Befehls enthalten war:
kubectl get akrii <AKRI_INSTANCE_NAME> -n azure-iot-operations -o json
Die Befehlsausgabe enthält einen Abschnitt, der wie im folgenden Beispiel aussieht. Der Codeschnipsel zeigt die
brokerProperties
-Werte der Akri-Instanz und bestätigt, dass der Anschluss für OPC UA verbunden ist."spec": { "brokerProperties": { "ApplicationUri": "Boiler #2", "AssetEndpointProfile": "{\"spec\":{\"uuid\":\"opc-ua-broker-opcplc-000000-azure-iot-operation\"……