Aktivieren Sie die Erkennung von Anomalien auf den Sensoren einer Anlage - AWS IoT SiteWise

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktivieren Sie die Erkennung von Anomalien auf den Sensoren einer Anlage

Erstellen Sie ein Berechnungsmodell ()AWS CLI

Verwenden Sie die AWS Befehlszeilenschnittstelle ()AWS CLI, um ein Berechnungsmodell zu erstellen. Nachdem Sie das Berechnungsmodell definiert haben, trainieren Sie das Modell und planen Sie die Inferenz für die Erkennung von Anomalien an einer Anlage in. AWS IoT SiteWise

  • Erstellen Sie eine Datei anomaly-detection-computation-model-payload.json mit dem folgenden Inhalt:

    { "computationModelName": "anomaly-detection-computation-model-name", "computationModelConfiguration": { "anomalyDetection": { "inputProperties": "${input_properties}", "resultProperty": "${result_property}" } }, "computationModelDataBinding": { "input_properties": { "list": [{ "assetModelProperty": { "assetModelId": "asset-model-id", "propertyId": "input-property-id-1" } }, { "assetModelProperty": { "assetModelId": "asset-model-id", "propertyId": "input-property-id-2" } } ] }, "result_property": { "assetModelProperty": { "assetModelId": "asset-model-id", "propertyId": "results-property-id" } } } }
  • Führen Sie den folgenden Befehl aus, um ein Berechnungsmodell zu erstellen:

    aws iotsitewise create-computation-model \ --cli-input-json file://anomaly-detection-computation-model-payload.json

ExecuteAction Vorbereitung der API-Nutzlast

Die nächsten Schritte zur Durchführung von Training und Inferenz werden mit der ExecuteActionAPI durchgeführt. Sowohl Training als auch Inferenz werden mit einer JSON-Aktionsnutzlastkonfiguration konfiguriert. Beim Aufrufen der ExecuteActionAPI muss die Aktionsnutzlast als Wert zusammen mit einer Nutzlast bereitgestellt werden. stringValue

Die Payload muss sich strikt an die API-Anforderungen halten. Insbesondere muss der Wert eine flache Zeichenfolge ohne Steuerzeichen sein (z. B. Zeilenumbrüche, Tabulatoren oder Zeilenumbrüche).

Die folgenden Optionen bieten zwei zuverlässige Methoden zur Bereitstellung einer gültigen Aktions-Payload:

Option 1: Verwenden Sie eine saubere Payload-Datei

Das folgende Verfahren beschreibt die Schritte für eine saubere Payload-Datei:

  1. Säubern Sie die Datei, um Steuerzeichen zu entfernen.

    tr -d '\n\r\t' < original-action-payload.json > training-or-inference-action-payload.json
  2. Führen Sie die Aktion mit der Datei aus@=file://....

    aws iotsitewise execute-action \ --target-resource computationModelId=<MODEL_ID> \ --action-definition-id <ACTION_DEFINITION_ID> \ --resolve-to assetId=<ASSET_ID> \ --action-payload stringValue@=file://training-or-inference-action-payload.json

Option 2: Inline-Zeichenfolge mit maskierten Anführungszeichen

In den folgenden Schritten werden die Schritte beschrieben, um die Nutzdaten inline bereitzustellen und Zwischendateien zu vermeiden:

  • Verwenden Sie maskierte Anführungszeichen (\") innerhalb der JSON-Zeichenfolge.

  • Setzen Sie den gesamten StringValue=.. Ausdruck in doppelte Anführungszeichen.

Beispiel einer Payload einer Aktion, der entgangen ist:
aws iotsitewise execute-action \ --target-resource computationModelId=<MODEL_ID> \ --action-definition-id <ACTION_DEFINITION_ID> \ --resolve-to assetId=<ASSET_ID> \ --action-payload "stringValue={\"exportDataStartTime\":1717225200,\"exportDataEndTime\":1722789360,\"targetSamplingRate\":\"PT1M\"}"

Trainiere die AWS CLI

Mit einem erstellten Berechnungsmodell können Sie ein Modell anhand der Ressourcen trainieren. Gehen Sie wie folgt vor, um ein Modell für eine Anlage zu trainieren:

  1. Führen Sie den folgenden Befehl aus, um actionDefinitionId die AWS/ANOMALY_DETECTION_TRAINING Aktion zu ermitteln. computation-model-idErsetzen Sie es durch die im vorherigen Schritt zurückgegebene ID.

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. Erstellen Sie eine Datei mit dem Namen anomaly-detection-training-payload.json und fügen Sie die folgenden Werte hinzu:

    Anmerkung

    Die Nutzlast muss den Anforderungen entsprechen. Option 1: Verwenden Sie eine saubere Payload-Datei

    1. StartTimemit dem Beginn der Trainingsdaten, angegeben in Epochensekunden.

    2. EndTimemit dem Ende der Trainingsdaten, angegeben in Epochensekunden.

    3. Sie können optional konfigurierenFortgeschrittene Trainingskonfigurationen, um die Modellleistung zu verbessern.

      1. (Optional) TargetSamplingRate mit der Abtastrate der Daten.

      2. (Optional) LabelInputConfiguration zur Angabe von Zeiträumen, in denen anomales Verhalten auftrat, um das Modelltraining zu verbessern.

      3. (Optional) ModelEvaluationConfiguration zur Bewertung der Modellleistung, indem nach Abschluss des Trainings Inferenzen für einen bestimmten Zeitraum ausgeführt werden.

    { "exportDataStartTime": StartTime, "exportDataEndTime": EndTime }
    Beispiel eines Beispiels für eine Trainingsnutzlast:
    { "exportDataStartTime": 1717225200, "exportDataEndTime": 1722789360 }
  3. Führen Sie den folgenden Befehl aus, um das Training zu starten. Ersetzen Sie die folgenden Parameter im Befehl:

    1. computation-model-idmit der ID des Zielberechnungsmodells.

    2. asset-idmit der ID des Assets, anhand dessen Sie das Modell trainieren werden.

    3. training-action-definition-idmit der ID der AWS/ANOMALY_DETECTION_TRAINING Aktion aus Schritt 1.

    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --resolve-to assetId=asset-id \ --action-definition-id training-action-definition-id \ --action-payload stringValue@=file://anomaly-detection-training-payload.json
    Beispiel einer Ausführungsaktion:
    aws iotsitewise execute-action --target-resource computationModelId=27cb824c-fd84-45b0-946b-0a5b0466d890 --resolve-to assetId=cefd4b68-481b-4735-b466-6a4220cd19ee --action-definition-id e54cea94-5d1c-4230-a59e-4f54dcbc972d --action-payload stringValue@=file://anomaly-detection-training-payload.json
  4. Führen Sie den folgenden Befehl aus, um den Status des Modelltrainingsprozesses zu überprüfen. Die letzte Ausführungsübersicht zeigt den Ausführungsstatus (RUNNING/COMPLETED/FAILED).

    aws iotsitewise list-executions \ --target-resource-type COMPUTATION_MODEL \ --target-resource-id computation-model-id\ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-id
  5. Führen Sie den folgenden Befehl aus, um die Konfiguration des zuletzt trainierten Modells zu überprüfen. Dieser Befehl erzeugt nur dann eine Ausgabe, wenn mindestens ein Modell erfolgreich trainiert wurde.

    aws iotsitewise describe-computation-model-execution-summary \ --computation-model-id computation-model-id \ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-id
  6. Wenn a verwendet ComputationModel wird AssetModelProperty, verwenden Sie die ListComputationModelResolveToResourcesAPI, um die Assets zu identifizieren, für die Aktionen ausgeführt wurden.

    aws iotsitewise list-computation-model-resolve-to-resources \ --computation-model-id computation-model-id

Inferenz starten und beenden ()AWS CLI

Starten Sie die Inferenz, nachdem Sie das Modell trainiert haben. Dies weist Sie an AWS IoT SiteWise , Ihre Industrieanlagen aktiv auf Anomalien zu überwachen.

Inferenz starten

  1. Führen Sie den folgenden Befehl aus, um die AWS/ANOMALY_DETECTION_INFERENCE Aktion actionDefinitionId zu ermitteln. computation-model-idErsetzen Sie es durch die tatsächliche ID des zuvor erstellten Berechnungsmodells.

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. Erstellen Sie eine Datei anomaly-detection-start-inference-payload.json und fügen Sie die folgenden Werte hinzu:

    Anmerkung

    Die Nutzlast muss den Anforderungen entsprechen. Option 1: Verwenden Sie eine saubere Payload-Datei

    "inferenceMode": "START", "dataUploadFrequency": "DataUploadFrequency"
    1. DataUploadFrequency: Konfigurieren Sie die Häufigkeit, mit der der Inferenzplan ausgeführt wird, um Anomalien zu erkennen. Zulässige Werte sind:. PT5M, PT10M, PT15M, PT30M, PT1H, PT2H..PT12H, PT1D

    2. (Optional) DataDelayOffsetInMinutes mit dem Verzögerungsoffset in Minuten. Stellen Sie diesen Wert zwischen 0 und 60 Minuten ein.

    3. (Optional) TargetModelVersion mit der zu aktivierenden Modellversion.

    4. (Optional) Konfigurieren Sie das weeklyOperatingWindow mit einer Schichtkonfiguration.

    5. Sie können optional konfigurierenErweiterte Inferenzkonfigurationen.

      1. Hochfrequente Inferenzierung (5 Minuten — 1 Stunde).

      2. Niederfrequenz-Inferenzierung (2 Stunden — 1 Tag).

      3. Flexible Terminplanung.

  3. Führen Sie den folgenden Befehl aus, um die Inferenz zu starten. Ersetzen Sie die folgenden Parameter in der Payload-Datei.

    1. computation-model-idmit der ID des Zielberechnungsmodells.

    2. asset-idmit der ID des Assets, für das das Modell trainiert wurde.

    3. inference-action-definition-idmit der ID der AWS/ANOMALY_DETECTION_INFERENCE Aktion aus Schritt 1.

    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --resolve-to assetId=asset-id \ --action-definition-id inference-action-definition-id \ --action-payload stringValue@=file://anomaly-detection-inference-payload.json
  4. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Inference noch läuft. Das inferenceTimerActive Feld ist auf „TRUEWenn Inferenz aktiv“ gesetzt ist.

    aws iotsitewise describe-computation-model-execution-summary \ --computation-model-id computation-model-id \ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-id
  5. Der folgende Befehl listet alle Inferenzausführungen auf:

    aws iotsitewise list-executions \ --target-resource-type COMPUTATION_MODEL \ --target-resource-id computation-model-id \ --resolve-to-resource-type ASSET \ --resolve-to-resource-id asset-id
  6. Führen Sie den folgenden Befehl aus, um eine einzelne Ausführung zu beschreiben. execution-idErsetzen Sie es durch die ID aus dem vorherigen Schritt 5.

    aws iotsitewise describe-execution \ --execution-id execution-id

Beenden Sie die Inferenz

  1. Führen Sie den folgenden Befehl aus, um die AWS/ANOMALY_DETECTION_INFERENCE Aktion actionDefinitionId zu ermitteln. computation-model-idErsetzen Sie es durch die tatsächliche ID des zuvor erstellten Berechnungsmodells.

    aws iotsitewise describe-computation-model \ --computation-model-id computation-model-id
  2. Erstellen Sie eine Datei anomaly-detection-stop-inference-payload.json und fügen Sie den folgenden Code hinzu.

    { "inferenceMode": "STOP" }
    Anmerkung

    Die Nutzlast muss den Anforderungen entsprechen. Option 1: Verwenden Sie eine saubere Payload-Datei

  3. Führen Sie den folgenden Befehl aus, um die Inferenz zu beenden. Ersetzen Sie den folgenden Parameter in der Payload-Datei:

    1. computation-model-idmit der ID des Zielberechnungsmodells.

    2. asset-idmit der ID des Assets, für das das Modell trainiert wurde.

    3. inference-action-definition-idmit der ID der AWS/ANOMALY_DETECTION_INFERENCE Aktion aus Schritt 1.

    Beispiel des Befehls Stop Inference:
    aws iotsitewise execute-action \ --target-resource computationModelId=computation-model-id \ --resolve-to assetId=asset-id \ --action-definition-id inference-action-definition-id \ --action-payload stringValue@=file://anomaly-detection-stop-inference-payload.json

Findet Berechnungsmodelle, die eine bestimmte Ressource bei der Datenbindung verwenden

Um Berechnungsmodelle aufzulisten, die an eine bestimmte Ressource gebunden sind:

  • Asset-Modell (ruft alle Berechnungsmodelle ab, an die Eigenschaften dieses Asset-Modells gebunden sind).

  • Asset (ruft alle Berechnungsmodelle ab, bei denen die Eigenschaften dieses Assets gebunden sind)

  • Eigenschaft des Asset-Modells (ruft alle Berechnungsmodelle ab, an die diese Eigenschaft gebunden ist)

  • Anlageneigenschaft (ruft alle Berechnungsmodelle ab, an die diese Eigenschaft gebunden ist). Dies kann zu Informationszwecken dienen oder erforderlich sein, wenn der Benutzer versucht, diese Eigenschaft an ein anderes Berechnungsmodell zu binden, sie aber bereits an eine andere Stelle gebunden ist)

Verwenden Sie die ListComputationModelDataBindingUsagesAPI, um eine Liste von ComputationModelId s abzurufen, die das Asset (Property) oder das Asset-Modell (Property) als Datenbindung verwenden.

Bereiten Sie eine request.json mit den folgenden Informationen vor:

{ "dataBindingValueFilter": { "asset": { "assetId": "<string>" } // OR "assetModel": { "assetModelId": "<string>" } // OR "assetProperty": { "assetId": "<string>", "propertyId": "<string>" } // OR "assetModelProperty": { "assetModelId": "<string>", "propertyId": "<string>" } }, "nextToken": "<string>", "maxResults": "<number>" }

Verwenden Sie den list-computation-model-data-binding-usages Befehl, um die Modelle mit Objekten oder Objektmodellen als Datenbindungen abzurufen.

aws iotsitewise list-computation-model-data-binding-usages \ --cli-input-json file://request.json