Delen via


OPC UA-gegevensbronnen detecteren met behulp van de Akri-services

Belangrijk

Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in PREVIEW. Gebruik deze preview-software niet in productieomgevingen.

U moet een nieuwe Installatie van Azure IoT Operations implementeren wanneer er een algemeen beschikbare release beschikbaar wordt gesteld. U kunt geen preview-installatie upgraden.

Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.

In dit artikel leert u hoe u automatisch OPC UA-gegevensbronnen kunt detecteren. Nadat u Azure IoT Operations Preview hebt geïmplementeerd, configureert u de Akri-services om OPC UA-gegevensbronnen aan de rand te detecteren. De Akri-services maken aangepaste resources in uw Kubernetes-cluster die de gegevensbronnen vertegenwoordigen die worden gedetecteerd. Met de mogelijkheid om OPC UA-gegevensbronnen te detecteren, hoeft u ze handmatig te configureren met behulp van de webgebruikersinterface van operations experience.

Belangrijk

Op dit moment kunt u Azure Device Registry niet gebruiken om de assets te beheren die de Akri-services detecteren en maken.

Met de Akri-services kunt u assets detecteren en maken in de adresruimte van een OPC UA-server. De DETECTIE van OPC UA-assets genereert AssetType en Asset aangepaste resources voor compatibele assets voor OPC UA Device Integration (DI).

Vereisten

  • Installeer Azure IoT Operations Preview.

  • Controleer of de Akri-servicespods juist zijn geconfigureerd door de volgende opdracht uit te voeren:

    kubectl get pods -n azure-iot-operations
    

    De uitvoer bevat een regel waarin de Akri-agent en detectiepods worden uitgevoerd:

    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
    

De OPC UA-detectiehandler configureren

Als u de OPC UA-detectiehandler voor assetdetectie wilt configureren, maakt u een YAML-configuratiebestand met de waarden die in deze sectie worden beschreven:

Naam Verplicht Gegevenstype Standaardinstelling Opmerking
EndpointUrl true String Nul De OPC UA-eindpunt-URL die moet worden gebruikt voor assetdetectie
AutoAcceptUntrustedCertificates true ¹ Booleaanse waarde false Moet de client niet-vertrouwde certificaten autoaccepteren? Een certificaat kan alleen automatisch worden beschouwd als vertrouwd als er geen niet-onderdrukbare fouten zijn opgetreden tijdens de validatie van de keten. Een certificaat met onvolledige keten wordt bijvoorbeeld niet geaccepteerd.
UseSecurity true ¹ Booleaanse waarde true Moet de client een beveiligde verbinding gebruiken?
UserName false String Nul De gebruikersnaam voor gebruikersverificatie. ²
Password false String Nul Het wachtwoord voor gebruikersverificatie. ²

¹ De huidige versie van de detectiehandler ondersteunt UseSecurity=false alleen en vereist autoAcceptUntrustedCertificates=true.
² Een tijdelijke implementatie totdat de Akri-services Kubernetes-geheimen kunnen doorgeven.

In het volgende voorbeeld ziet u de detectie van een OPC PLC-server. U kunt de assetparameters voor meerdere OPC PLC-servers toevoegen.

  1. Als u het YAML-configuratiebestand wilt maken, kopieert en plakt u de volgende inhoud in een nieuw bestand en slaat u het op als opcua-configuration.yaml:

    Als u de gesimuleerde PLC-server gebruikt die is geïmplementeerd met de quickstart voor Azure IoT-bewerkingen, hoeft u deze endpointUrlniet te wijzigen. Als uw eigen OPC UA-servers worden uitgevoerd of als u de gesimuleerde PLC-servers gebruikt die zijn geïmplementeerd in Azure, voegt u uw eindpunt-URL dienovereenkomstig toe. Detectie-eindpunt-URL's zien er als volgt opc.tcp://<FQDN>:50000/uit. Als u de FQDN's van uw OPC PLC-servers wilt vinden, gaat u naar uw implementatie in Azure Portal. Kopieer en plak voor elke server de FQDN-waarde in uw eindpunt-URL's.

    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
    
  2. Voer de volgende opdracht uit om de configuratie toe te passen:

    kubectl apply -f opcua-configuration.yaml -n azure-iot-operations
    

Tip

In een standaardimplementatie van Azure IoT Operations is de OPC UA-detectiehandler al geconfigureerd om de gesimuleerde PLC-server te detecteren. Als u assets wilt detecteren die zijn verbonden met extra OPC UA-servers, kunt u deze toevoegen aan het configuratiebestand.

De configuratie controleren

Controleer of de assetdetectiecontainer is geconfigureerd en wordt uitgevoerd:

  1. Gebruik de volgende opdracht om de podlogboeken te controleren:

    kubectl logs <insert aio-opc-asset-discovery pod name> -n azure-iot-operations
    

    Een logboek van de aio-opc-asset-discovery pod geeft na een paar seconden aan dat de detectiehandler zichzelf heeft geregistreerd bij de Akri-services:

    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 
    

    Na ongeveer een minuut geven de Akri-services de eerste detectieaanvraag uit op basis van de configuratie:

    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
    

    Nadat de detectie is voltooid, stuurt de detectiehandler het resultaat terug naar de Akri-services om een aangepaste Akri-instantieresource te maken met assetinformatie en waarneembare variabelen. De detectiehandler herhaalt de detectie elke 10 minuten om eventuele wijzigingen op de server te detecteren.

  2. Voer de volgende opdracht uit om de gedetecteerde Akri-exemplaren weer te geven:

    kubectl get akrii -n azure-iot-operations
    

    De uitvoer van de vorige opdracht ziet eruit als in het volgende voorbeeld. Mogelijk moet u enkele seconden wachten totdat het Akri-exemplaar is gemaakt:

    NAME                      CONFIG             SHARED   NODES                          AGE
    akri-opcua-asset-dbdef0   akri-opcua-asset   true     ["k3d-k3s-default-server-0"]   24h
    

    De connector voor OPC UA Supervisor kijkt naar aangepaste resources van het type opc-ua-assetAkri-exemplaar en genereert de oorspronkelijke assettypen en aangepaste assetresources voor deze resources. U kunt aangepaste assetresources wijzigen door instellingen toe te voegen, zoals uitgebreide publicatie voor meer gegevenspunten of connector voor opC UA-waarneembaarheidsinstellingen.

  3. Voer de volgende opdracht uit om te bevestigen dat het Akri-exemplaar juist is verbonden met de connector voor OPC UA. Vervang de tijdelijke aanduiding door de naam van het Akri-exemplaar dat is opgenomen in de uitvoer van de vorige opdracht:

    kubectl get akrii <AKRI_INSTANCE_NAME> -n azure-iot-operations -o json
    

    De uitvoer van de opdracht bevat een sectie die lijkt op het volgende voorbeeld. Het codefragment toont de waarden van het Akri-exemplaar brokerProperties en bevestigt dat de connector voor OPC UA is verbonden.

    "spec": {
    
            "brokerProperties": {
                "ApplicationUri": "Boiler #2",
                "AssetEndpointProfile": "{\"spec\":{\"uuid\":\"opc-ua-broker-opcplc-000000-azure-iot-operation\"……